jenesius-vue-modal
Version:
The progressive and simple modal system for Vue.js v3
22 lines (21 loc) • 1.12 kB
TypeScript
import { IEventClose } from "./dto";
import { Component, ComputedRef, ExtractPropTypes, Ref, UnwrapRef } from "vue";
import { INamespaceKey } from "./NamespaceStore";
import { ConfigInterface } from "./state";
export declare type GuardFunction = (e: IEventClose) => void | boolean | Promise<boolean>;
export declare type GuardFunctionPromisify = () => Promise<void>;
export interface IModalCloseOptions {
namespace?: INamespaceKey;
}
export declare type WrapComponent<T = {}> = Component & {
props?: T;
};
export declare type WrapComponentProps<P extends WrapComponent = WrapComponent> = P["props"] | UnwrapRef<P["props"]> | Ref<any> | ComputedRef<P["props"]> | ExtractPropTypes<P["props"]>;
export declare type IStoreElement = IStoreComponentConfiguration | Component;
export interface IStoreComponentConfiguration extends Partial<Pick<ConfigInterface, 'beforeEach' | 'backgroundClose' | 'draggable'>> {
component: Component;
}
/**
* @description Callback, which will be called before each attempt to open the modal window.
*/
export declare type IBeforeEachCallback = () => any;