mirror of https://github.com/ElemeFE/element
				
				
				
			
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import Vue, { VNodeDirective } from 'vue'
 | |
| 
 | |
| /** Options used in Loading service */
 | |
| export interface LoadingServiceOptions {
 | |
|   /** The DOM node Loading needs to cover. Accepts a DOM object or a string. If it's a string, it will be passed to `document.querySelector` to get the corresponding DOM node */
 | |
|   target?: HTMLElement | string
 | |
| 
 | |
|   /** Whether to make the mask append to the body element */
 | |
|   body?: boolean
 | |
| 
 | |
|   /** Whether to show the loading mask in fullscreen */
 | |
|   fullscreen?: boolean
 | |
| 
 | |
|   /** Whether to disable scrolling on body */
 | |
|   lock?: boolean
 | |
| 
 | |
|   /** Loading text that displays under the spinner */
 | |
|   text?: string
 | |
| 
 | |
|   /** Class name of the custom spinner */
 | |
|   spinner?: string
 | |
| 
 | |
|   /** Background color of the mask */
 | |
|   background?: string
 | |
| 
 | |
|   /** Custom class name for Loading */
 | |
|   customClass?: string
 | |
| }
 | |
| 
 | |
| /** Loading Component */
 | |
| export declare class ElLoadingComponent extends Vue {
 | |
|   /** Close the Loading instance */
 | |
|   close (): void
 | |
| }
 | |
| 
 | |
| /** Loading directive definition */
 | |
| export interface ElLoadingDirective extends VNodeDirective {
 | |
|   name: 'loading',
 | |
|   value: boolean,
 | |
|   modifiers: {
 | |
|     body: boolean,
 | |
|     fullscreen: boolean
 | |
|   }
 | |
| }
 | |
| 
 | |
| /** Show animation while loading data */
 | |
| export interface ElLoading {
 | |
|   /** Install Loading directive into Vue */
 | |
|   install (vue: typeof Vue): void
 | |
| 
 | |
|   /** If you do not have a specific DOM node to attach the Loading directive, or if you simply prefer not to use Loading as a directive, you can call this service with some configs to open a Loading instance. */
 | |
|   service (options: LoadingServiceOptions): ElLoadingComponent
 | |
| 
 | |
|   directive: object
 | |
| }
 | |
| 
 | |
| declare module 'vue/types/vue' {
 | |
|   interface Vue {
 | |
|     /** If you do not have a specific DOM node to attach the Loading directive, or if you simply prefer not to use Loading as a directive, you can call this service with some configs to open a Loading instance. */
 | |
|     $loading (options: LoadingServiceOptions): ElLoadingComponent
 | |
|   }
 | |
| }
 |