UNPKG

@ohu-mobile/core

Version:
135 lines (134 loc) 5.26 kB
import type { PopupTransformOrigin, PopupPosition, PopupAnimateType, PopupEvents, PopupProps } from './types'; import { ClassOptions } from '../_utils/classHelper'; import { CSSProps } from '../types'; import type { CSSProperties } from 'vue'; interface PopupData { wrapperVisible: boolean; documentVisible: boolean; docEl: HTMLElement | null; docRect: { width: number; height: number; } | null; anchorEl: HTMLElement | null; docPos: { top: number; bottom: number; left: number; right: number; transformOrigin: string; } | null; anchorRect: DOMRect | ClientRect | null; maskZIndex: number; documentZIndex: number; touchData: { scrollY: number; pageY: number; scrollEl: HTMLElement | null; maxHeight: number; }; rootStyle: CSSProps; } export declare const popupProps: { visible: BooleanConstructor; anchor: import("vue").PropOptions<HTMLElement | (() => HTMLElement) | undefined>; transformOrigin: import("vue").PropOptions<PopupTransformOrigin | undefined>; marginThreshold: import("vue").PropOptions<number>; edgeDetect: import("vue").PropOptions<boolean>; lockScroll: import("vue").PropOptions<boolean>; position: import("vue").PropOptions<PopupPosition>; mask: import("vue").PropOptions<boolean>; maskFrosted: import("vue").PropOptions<boolean>; maskClosable: import("vue").PropOptions<boolean>; maskAnimate: import("vue").PropOptions<"none" | "mask-fade">; partialMask: import("vue").PropOptions<"top" | "bottom" | undefined>; closeOnMaskTouched: import("vue").PropOptions<boolean>; fullscreen: import("vue").PropOptions<boolean>; animate: import("vue").PropOptions<PopupAnimateType>; targetStyle: import("vue").PropOptions<CSSProperties | undefined>; targetClass: import("vue").PropOptions<ClassOptions | undefined>; scrollBody: import("vue").PropOptions<boolean>; tapThrough: import("vue").PropOptions<boolean>; zIndex: NumberConstructor; round: import("vue").PropOptions<boolean>; hideOnDeactivated: import("vue").PropOptions<boolean>; }; type PopupInnerProps = { isAnchorMode: boolean; documentTransition: string; documentClass: string[]; open: () => void; close: () => void; startScroll: () => void; stopScroll: () => void; computeDocAndAnchorRect: () => void; computeDocumentPosition: () => { top: number; left: number; bottom: number; right: number; transformOrigin: string; }; onMaskClick: (e: Event) => void; onWrapperTouchstart: (e: TouchEvent) => void; onWrapperTouchmove: (e: TouchEvent) => void; onWrapperTouchend: (e: TouchEvent) => void; onDocumentTouch: (e: TouchEvent) => void; onBeforeDocumentEnter: () => void; onAfterDocumentLeave: () => void; onDocumentAfterEnter: () => void; onDocumentEnter: (doc: Element) => void; onDocumentClick: (e: Event) => void; getDocumentStyle: () => CSSProperties; renderMask: () => JSX.Element; renderDocument: () => JSX.Element; }; export declare const POPUP_EVENT = "visibleChange"; declare const Popup: import("vue-tsx-support")._TsxComponentV3<import("vue").default<Record<string, any>, Record<string, any>, never, never, (event: string, ...args: any[]) => import("vue").default<Record<string, any>, Record<string, any>, never, never, any>> & PopupInnerProps & import("../_utils/defineComponent").OhuComponentInnerProps & PopupData & { visible: boolean; anchor: HTMLElement | (() => HTMLElement) | undefined; transformOrigin: PopupTransformOrigin | undefined; marginThreshold: number; edgeDetect: boolean; lockScroll: boolean; position: PopupPosition; mask: boolean; maskFrosted: boolean; maskClosable: boolean; maskAnimate: "none" | "mask-fade"; partialMask: "top" | "bottom" | undefined; closeOnMaskTouched: boolean; fullscreen: boolean; animate: PopupAnimateType; targetStyle: CSSProperties | undefined; targetClass: ClassOptions | undefined; scrollBody: boolean; tapThrough: boolean; zIndex: number; round: boolean; hideOnDeactivated: boolean; }, {}, {} & { anchor?: HTMLElement | (() => HTMLElement) | undefined; round?: boolean | undefined; position?: PopupPosition | undefined; animate?: PopupAnimateType | undefined; visible?: boolean | undefined; transformOrigin?: PopupTransformOrigin | undefined; marginThreshold?: number | undefined; edgeDetect?: boolean | undefined; lockScroll?: boolean | undefined; mask?: boolean | undefined; maskFrosted?: boolean | undefined; maskClosable?: boolean | undefined; maskAnimate?: "none" | "mask-fade" | undefined; partialMask?: "top" | "bottom" | undefined; closeOnMaskTouched?: boolean | undefined; fullscreen?: boolean | undefined; targetStyle?: CSSProperties | undefined; targetClass?: ClassOptions | undefined; scrollBody?: boolean | undefined; tapThrough?: boolean | undefined; zIndex?: number | undefined; hideOnDeactivated?: boolean | undefined; } & PopupProps, PopupEvents, {}, {}>; export default Popup;