import { ExtractPropTypes } from 'vue'; import { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from '../../../shared.type'; import { mouseEnterEvent, mouseLeaveEvent } from './renderless'; export type { ISharedRenderlessParamHooks } from '../../../shared.type'; export declare const $constants: { MODAL_STATUS: { INFO: string; SUCCESS: string; WARNING: string; ERROR: string; LOADING: string; }; NODAL_TYPE: { ALERT: string; CONFIRM: string; MESSAGE: string; }; STATUS_MAPPING_CLASSS: { INFO: string; SUCCESS: string; WARNING: string; ERROR: string; LOADING: string; }; PC_SCROLL_LOCK_CLASS: string; MOBILE_FIRST_SCROLL_LOCK_CLASS: string; Mode: string; SCROLL_LOCK_CLASS(mode: any): string; }; export declare const modalProps: { _constants: { type: ObjectConstructor; default: () => { MODAL_STATUS: { INFO: string; SUCCESS: string; WARNING: string; ERROR: string; LOADING: string; }; NODAL_TYPE: { ALERT: string; CONFIRM: string; MESSAGE: string; }; STATUS_MAPPING_CLASSS: { INFO: string; SUCCESS: string; WARNING: string; ERROR: string; LOADING: string; }; PC_SCROLL_LOCK_CLASS: string; MOBILE_FIRST_SCROLL_LOCK_CLASS: string; Mode: string; SCROLL_LOCK_CLASS(mode: any): string; }; }; animat: { type: BooleanConstructor; default: () => boolean; }; beforeClose: FunctionConstructor; duration: { type: (NumberConstructor | StringConstructor)[]; default: () => number; }; escClosable: BooleanConstructor; events: ObjectConstructor; fullscreen: BooleanConstructor; height: (NumberConstructor | StringConstructor)[]; id: StringConstructor; isFormReset: { type: BooleanConstructor; default: boolean; }; lockScroll: BooleanConstructor; lockView: { type: BooleanConstructor; default: () => boolean; }; marginSize: { type: (NumberConstructor | StringConstructor)[]; default: number; }; mask: { type: BooleanConstructor; default: () => boolean; }; maskClosable: BooleanConstructor; message: (StringConstructor | FunctionConstructor | ObjectConstructor)[]; minHeight: { type: (NumberConstructor | StringConstructor)[]; default: () => number; }; minWidth: { type: (NumberConstructor | StringConstructor)[]; default: () => number; }; modelValue: BooleanConstructor; resize: BooleanConstructor; showFooter: BooleanConstructor; showHeader: { type: BooleanConstructor; default: boolean; }; status: { type: (StringConstructor | ObjectConstructor)[]; default: string; }; title: StringConstructor; top: { type: (NumberConstructor | StringConstructor)[]; default: number; }; type: { type: StringConstructor; default: string; }; vSize: StringConstructor; width: (NumberConstructor | StringConstructor)[]; zIndex: (NumberConstructor | StringConstructor)[]; description: StringConstructor; options: ArrayConstructor; showClose: { type: BooleanConstructor; default: boolean; }; confirmContent: StringConstructor; cancelContent: StringConstructor; position: { type: StringConstructor; default: string; validator(val: string): boolean; }; customClass: StringConstructor; confirmBtnProps: { type: ObjectConstructor; default: () => {}; }; cancelBtnProps: { type: ObjectConstructor; default: () => {}; }; footerDragable: BooleanConstructor; tiny_theme: StringConstructor; slots: ObjectConstructor; }; type zoomLocatType = null | { top: number; left: number; width: number; height: number; }; export interface IModalState { emitter: ISharedRenderlessParamUtils['emitter']; visible: boolean; contentVisible: boolean; cumsumZindex: number; modalTop: number; modalZindex: number | string; zoomLocat: zoomLocatType; isMsg: boolean; prevEvent: null | Event; options: any[]; theme: string | undefined; } export type IModalProps = ExtractPropTypes; export type IModalConstants = typeof $constants; export type IModalRenderlessParams = ISharedRenderlessFunctionParams & { api: IModalApi; state: IModalState; props: IModalProps; }; export interface IModalApi { state: IModalState; broadcast: () => void; computedIsMsg: (props: IModalProps) => boolean; updateStyle: () => void; getBox: () => IModalRenderlessParams['vm']; watchValue: (visible: boolean) => void; created: () => void; mounted: () => void; beforeUnmouted: () => void; selfClickEvent: (event: MouseEvent) => void; mouseEnterEvent: ReturnType; mouseLeaveEvent: ReturnType; updateZindex: () => void; handleEvent: (type: string, event: Event, options?: any[]) => void; closeEvent: (event: PointerEvent) => void; confirmEvent: (event: PointerEvent) => void; cancelEvent: (event: PointerEvent) => void; open: () => void; addMsgQueue: () => void; removeMsgQueue: () => void; close: (type: string) => void; handleGlobalKeydownEvent: (event: KeyboardEvent) => void; maximize: () => Promise; revert: () => Promise; toggleZoomEvent: (event: PointerEvent) => void; mousedownEvent: (event: MouseEvent) => void; dragEvent: (event: MouseEvent) => void; resetDragStyle: () => void; } export type IModalRenderlessParamUtils = ISharedRenderlessParamUtils; export interface IModalEmitParam { type: string; $modal: IModalRenderlessParamUtils['parent']; options?: any[]; } export type IModalEmitZoomParam = { params: IModalEmitParam; event: Event; } & Pick; interface IModalSizeInfo { width: number; height: number; top: number; offsetWidth: number; offsetHeight: number; visibleWidth: number; visibleHeight: number; minWidth: number | string; minHeight: number | string; x: number; y: number; temp: number; offsetLeft: number; offsetTop: number; marginSize: number | string; left: number; modalBoxElem: IModalRenderlessParams['vm']; } export type IModalComputeLeftParam = Pick; export type IModalComputeTopParam = Pick; export type IModalComputeRightParam = Pick; export type IModalComputeBottomParam = Pick; export type IModalUpdateWlParam = Pick; export type IModalUpdateWrParam = Pick; export type IModalUpdateStParam = Pick; export type IModalUpdateSbParam = Pick; export interface IModalRet { width?: number; height?: number; top?: number; left?: number; } export interface IModalUpdateDeltaParam { event: MouseEvent; delta: { x: number; y: number; }; state: IModalRenderlessParams['state']; } export type IModalDragDirection = 'wl' | 'wr' | 'st' | 'sb' | 'swst' | 'sest' | 'swlb' | 'selb'; export interface IModalSetModalBoxStyleParam { delta: { x: number; y: number; }; params: { type: IModalDragDirection; props: IModalProps; disX: number; disY: number; } & Pick; }