{"version":3,"file":"props.mjs","sources":["../../../components/modal/props.ts"],"sourcesContent":["import {\r\n  booleanProp,\r\n  booleanStringProp,\r\n  buildProps,\r\n  classProp,\r\n  eventProp,\r\n  localeProp,\r\n  sizeProp,\r\n  styleProp,\r\n} from '@vexip-ui/config'\r\n\r\nimport type { ExtractPropTypes, PropType } from 'vue'\r\nimport type { ConfigurableProps } from '@vexip-ui/config'\r\nimport type { ButtonProps, ButtonType } from '@/components/button'\r\nimport type { ModalSlots, PositionPayload, SizePayload } from './symbol'\r\n\r\nconst positionType = [Number, String]\r\n\r\nexport const positionValidator = (value: string | number) => {\r\n  return value === 'auto' || !Number.isNaN(parseFloat(value as string))\r\n}\r\nexport const positionProp = {\r\n  default: 'auto' as const,\r\n  validator: positionValidator,\r\n}\r\n\r\nexport const modalProps = buildProps({\r\n  locale: localeProp('modal'),\r\n  transfer: booleanStringProp,\r\n  active: booleanProp,\r\n  width: positionType,\r\n  height: positionType,\r\n  top: positionType,\r\n  left: positionType,\r\n  right: positionType,\r\n  bottom: positionType,\r\n  title: String,\r\n  closable: booleanProp,\r\n  inner: booleanProp,\r\n  maskClose: booleanProp,\r\n  modalClass: classProp,\r\n  modalStyle: styleProp,\r\n  noFooter: booleanProp,\r\n  hideMask: booleanProp,\r\n  draggable: booleanProp,\r\n  resizable: booleanProp,\r\n  onBeforeClose: Function as PropType<(isConfirm: boolean) => any>,\r\n  loading: booleanProp,\r\n  minWidth: Number,\r\n  minHeight: Number,\r\n  transitionName: String,\r\n  confirmText: String,\r\n  cancelText: String,\r\n  actionSize: sizeProp,\r\n  autoRemove: booleanProp,\r\n  confirmType: String as PropType<ButtonType>,\r\n  confirmProps: Object as PropType<ButtonProps>,\r\n  cancelType: String as PropType<ButtonType>,\r\n  cancelProps: Object as PropType<ButtonProps>,\r\n  undivided: booleanProp,\r\n  xOffset: positionType,\r\n  yOffset: positionType,\r\n  disableEsc: booleanProp,\r\n  slots: Object as PropType<ModalSlots>,\r\n  onToggle: eventProp<(active: boolean) => void>(),\r\n  onConfirm: eventProp(),\r\n  onCancel: eventProp(),\r\n  onClose: eventProp(),\r\n  onShow: eventProp(),\r\n  onHide: eventProp(),\r\n  onDragStart: eventProp<(position: PositionPayload) => void>(),\r\n  onDragMove: eventProp<(position: PositionPayload) => void>(),\r\n  onDragEnd: eventProp<(position: PositionPayload) => void>(),\r\n  onResizeStart: eventProp<(size: SizePayload) => void>(),\r\n  onResizeMove: eventProp<(size: SizePayload) => void>(),\r\n  onResizeEnd: eventProp<(size: SizePayload) => void>(),\r\n})\r\n\r\nexport type ModalProps = ExtractPropTypes<typeof modalProps>\r\nexport type ModalCProps = ConfigurableProps<ModalProps, never, 'onBeforeClose'>\r\n"],"names":["positionType","positionValidator","value","positionProp","modalProps","buildProps","localeProp","booleanStringProp","booleanProp","classProp","styleProp","sizeProp","eventProp"],"mappings":";AAgBA,MAAMA,IAAe,CAAC,QAAQ,MAAM,GAEvBC,IAAoB,CAACC,MACzBA,MAAU,UAAU,CAAC,OAAO,MAAM,WAAWA,CAAe,CAAC,GAEzDC,IAAe;AAAA,EAC1B,SAAS;AAAA,EACT,WAAWF;AACb,GAEaG,IAAaC,EAAW;AAAA,EACnC,QAAQC,EAAW,OAAO;AAAA,EAC1B,UAAUC;AAAA,EACV,QAAQC;AAAA,EACR,OAAOR;AAAA,EACP,QAAQA;AAAA,EACR,KAAKA;AAAA,EACL,MAAMA;AAAA,EACN,OAAOA;AAAA,EACP,QAAQA;AAAA,EACR,OAAO;AAAA,EACP,UAAUQ;AAAA,EACV,OAAOA;AAAA,EACP,WAAWA;AAAA,EACX,YAAYC;AAAA,EACZ,YAAYC;AAAA,EACZ,UAAUF;AAAA,EACV,UAAUA;AAAA,EACV,WAAWA;AAAA,EACX,WAAWA;AAAA,EACX,eAAe;AAAA,EACf,SAASA;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAYG;AAAA,EACZ,YAAYH;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAWA;AAAA,EACX,SAASR;AAAA,EACT,SAASA;AAAA,EACT,YAAYQ;AAAA,EACZ,OAAO;AAAA,EACP,UAAUI,EAAqC;AAAA,EAC/C,WAAWA,EAAU;AAAA,EACrB,UAAUA,EAAU;AAAA,EACpB,SAASA,EAAU;AAAA,EACnB,QAAQA,EAAU;AAAA,EAClB,QAAQA,EAAU;AAAA,EAClB,aAAaA,EAA+C;AAAA,EAC5D,YAAYA,EAA+C;AAAA,EAC3D,WAAWA,EAA+C;AAAA,EAC1D,eAAeA,EAAuC;AAAA,EACtD,cAAcA,EAAuC;AAAA,EACrD,aAAaA,EAAuC;AACtD,CAAC;"}