39 lines
1.6 KiB
TypeScript
39 lines
1.6 KiB
TypeScript
import { DirectiveBinding, VNode } from 'vue';
|
|
|
|
export interface DirectiveInstance<T = any, V = any> {
|
|
$name: string | undefined;
|
|
$host: T;
|
|
$binding: DirectiveBinding<V>;
|
|
$el: HTMLElement | undefined;
|
|
$css?: {
|
|
classes?: undefined;
|
|
inlineStyles?: undefined;
|
|
loadStyle?: () => void;
|
|
};
|
|
defaultPT: any;
|
|
isUnstyled: boolean;
|
|
[key: string]: any;
|
|
}
|
|
|
|
/* All parameters passed by the directive of Vue.js */
|
|
export interface DirectiveOptions<T = any, Prev = VNode<any, T> | null, V = any> {
|
|
el: T;
|
|
binding: DirectiveBinding<V>;
|
|
vnode: VNode<any, T>;
|
|
prevVNode: Prev;
|
|
}
|
|
|
|
export interface DirectiveHooks<T = any, V = any> {
|
|
onCreated?: (instance: DirectiveInstance<T, V> | undefined, options: DirectiveOptions<T, null, V>) => void;
|
|
onBeforeMount?: (instance: DirectiveInstance<T, V> | undefined, options: DirectiveOptions<T, null, V>) => void;
|
|
onMounted?: (instance: DirectiveInstance<T, V> | undefined, options: DirectiveOptions<T, null, V>) => void;
|
|
onBeforeUpdate?: (instance: DirectiveInstance<T, V> | undefined, options: DirectiveOptions<T, VNode<any, T>, V>) => void;
|
|
onUpdated?: (instance: DirectiveInstance<T, V> | undefined, options: DirectiveOptions<T, VNode<any, T>, V>) => void;
|
|
onBeforeUnmount?: (instance: DirectiveInstance<T, V> | undefined, options: DirectiveOptions<T, null, V>) => void;
|
|
onUnmounted?: (instance: DirectiveInstance<T, V> | undefined, options: DirectiveOptions<T, null, V>) => void;
|
|
}
|
|
|
|
export interface BaseDirectivePassThroughOptions {
|
|
hooks?: DirectiveHooks;
|
|
}
|