56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
|
import type { Point, AlignType, StretchType, MobileConfig } from '../interface';
|
||
|
import type { ExtractPropTypes, PropType } from 'vue';
|
||
|
|
||
|
export const innerProps = {
|
||
|
visible: Boolean,
|
||
|
|
||
|
prefixCls: String,
|
||
|
zIndex: Number,
|
||
|
|
||
|
destroyPopupOnHide: Boolean,
|
||
|
forceRender: Boolean,
|
||
|
|
||
|
// Legacy Motion
|
||
|
animation: String,
|
||
|
transitionName: String,
|
||
|
|
||
|
// Measure
|
||
|
stretch: { type: String as PropType<StretchType> },
|
||
|
|
||
|
// Align
|
||
|
align: { type: Object as PropType<AlignType> },
|
||
|
point: { type: Object as PropType<Point> },
|
||
|
getRootDomNode: { type: Function as PropType<() => HTMLElement> },
|
||
|
getClassNameFromAlign: { type: Function as PropType<(align: AlignType) => string> },
|
||
|
onMouseenter: { type: Function as PropType<(align: MouseEvent) => void> },
|
||
|
onMouseleave: { type: Function as PropType<(align: MouseEvent) => void> },
|
||
|
onMousedown: { type: Function as PropType<(align: MouseEvent) => void> },
|
||
|
onTouchstart: { type: Function as PropType<(align: MouseEvent) => void> },
|
||
|
};
|
||
|
export type PopupInnerProps = Partial<ExtractPropTypes<typeof innerProps>> & {
|
||
|
align?: AlignType;
|
||
|
};
|
||
|
|
||
|
export const mobileProps = {
|
||
|
...innerProps,
|
||
|
mobile: { type: Object as PropType<MobileConfig> },
|
||
|
};
|
||
|
|
||
|
export type MobilePopupProps = Partial<ExtractPropTypes<typeof mobileProps>> & {
|
||
|
align?: AlignType;
|
||
|
mobile: MobileConfig;
|
||
|
};
|
||
|
|
||
|
export const popupProps = {
|
||
|
...innerProps,
|
||
|
mask: Boolean,
|
||
|
mobile: { type: Object as PropType<MobileConfig> },
|
||
|
maskAnimation: String,
|
||
|
maskTransitionName: String,
|
||
|
};
|
||
|
|
||
|
export type PopupProps = Partial<ExtractPropTypes<typeof popupProps>> & {
|
||
|
align?: AlignType;
|
||
|
mobile: MobileConfig;
|
||
|
};
|