element3
Version:
A Component Library for Vue3
59 lines (47 loc) • 1.9 kB
TypeScript
import { ElementUIComponent } from './component'
/** 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 interface ILoadingComponent {
/** Close the Loading instance */
close(): void
}
/** Loading directive definition */
export interface ElLoadingDirective {
name: 'loading'
value: boolean
modifiers: {
body: boolean
fullscreen: boolean
}
}
export const ElLoading: IElLoading
/** Show animation while loading data */
interface IElLoading extends ElementUIComponent {
/** 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): ILoadingComponent
directive: any
}
declare module '@vue/runtime-core' {
export interface ComponentCustomProperties {
/** 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): ILoadingComponent
}
}