element-plus/packages/components/dialog/src/dialog.ts

98 lines
1.7 KiB
TypeScript
Raw Normal View History

import {
buildProps,
definePropType,
iconPropType,
} from '@element-plus/utils-v2'
import { UPDATE_MODEL_EVENT } from '@element-plus/constants'
import type { ExtractPropTypes } from 'vue'
export const dialogProps = buildProps({
appendToBody: {
type: Boolean,
default: false,
},
beforeClose: {
type: definePropType<(...args: any[]) => void>(Function),
},
destroyOnClose: {
type: Boolean,
default: false,
},
center: {
type: Boolean,
default: false,
},
customClass: {
type: String,
default: '',
},
closeIcon: {
type: iconPropType,
default: '',
},
closeOnClickModal: {
type: Boolean,
default: true,
},
closeOnPressEscape: {
type: Boolean,
default: true,
},
fullscreen: {
type: Boolean,
default: false,
},
draggable: {
type: Boolean,
default: false,
},
lockScroll: {
type: Boolean,
default: true,
},
modal: {
type: Boolean,
default: true,
},
showClose: {
type: Boolean,
default: true,
},
title: {
type: String,
default: '',
},
openDelay: {
type: Number,
default: 0,
},
closeDelay: {
type: Number,
default: 0,
},
top: {
type: String,
},
modelValue: {
type: Boolean,
required: true,
},
modalClass: String,
width: {
type: [String, Number],
},
zIndex: {
type: Number,
},
} as const)
export type DialogProps = ExtractPropTypes<typeof dialogProps>
export const dialogEmits = {
open: () => true,
opened: () => true,
close: () => true,
closed: () => true,
[UPDATE_MODEL_EVENT]: (value: boolean) => typeof value === 'boolean',
}
export type DialogEmits = typeof dialogEmits