ideaz-element
Version:
<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>
1 lines • 6.04 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../../packages/element/dialog/src/index.tsx"],"sourcesContent":["import { WarningFilled } from '@element-plus/icons-vue'\nimport { isFunction, isString } from '@ideaz/utils'\nimport { ElButton, ElDialog, ElIcon } from 'element-plus'\nimport type { VNode } from 'vue'\nimport { useDialog } from './hooks'\nimport type { DialogHeaderSlotProps } from './props'\nimport { dialogProps } from './props'\n\nexport default defineComponent({\n name: 'ZDialog',\n props: dialogProps,\n emits: ['update:modelValue', 'cancel', 'confirm', 'vanish'],\n setup(props, { emit, slots, expose }) {\n const { isShowDialog, dialogConfig, confirmBtnProps, cancelBtnProps, handleCancel, handleConfirm, handleClosed, done } = useDialog(props, emit)\n const ns = useNamespace('dialog')\n const { t } = useLocale()\n\n const getHeader = () => {\n if (isFunction(props.title)) {\n return (headerProps: DialogHeaderSlotProps) => (props.title as (headerProps: DialogHeaderSlotProps) => VNode)(headerProps)\n }\n\n if (isString(props.title))\n return () => <span class=\"el-dialog__title\">{props.title}</span>\n\n // default config\n if (props.extend)\n return () => <span class=\"el-dialog__title\">{t('dialog.tip')}</span>\n\n return slots.header || slots.title\n }\n\n const renderDialogFooter = () => {\n const { type } = props\n if (props.footer === false)\n return null\n\n if (isFunction(slots.footer))\n return slots.footer()\n\n if (isFunction(props.footer))\n return props.footer()\n\n if (type === 'info') {\n return (\n <div class={ns.e('footer')}>\n <ElButton\n type=\"primary\"\n size=\"default\"\n onClick={handleConfirm}\n {...confirmBtnProps.value}\n >\n {t('dialog.got')}\n </ElButton>\n </div>\n )\n }\n return (\n <div class={ns.e('footer')}>\n <ElButton\n type=\"default\"\n size=\"default\"\n onClick={handleCancel}\n {...cancelBtnProps.value}\n >\n {cancelBtnProps.value.label}\n </ElButton>\n <ElButton\n type={(type === 'warning' || type === 'danger') ? type : 'primary'}\n size=\"default\"\n onClick={handleConfirm}\n {...confirmBtnProps.value}\n >\n {confirmBtnProps.value.label}\n </ElButton>\n </div>\n )\n }\n\n const renderContent = () => {\n if (props.type !== 'normal') {\n return (\n <div class={ns.e('content')}>\n <div class={ns.e('container')}>\n <ElIcon class={[ns.e('status'), ns.bm('icon', props.type)]}>\n <WarningFilled />\n </ElIcon>\n <div class={ns.e('message')}>\n <p>{slots.default?.() || props.message}</p>\n </div>\n </div>\n </div>\n )\n }\n return slots.default?.()\n }\n\n expose({\n isShowDialog,\n done,\n })\n\n return () => {\n return (\n <ElDialog\n class={[ns.b(''), props.type !== 'normal' && ns.b('tip'), props.footer === false && ns.b('no-footer')]}\n {...dialogConfig.value}\n modelValue={props.modelValue || isShowDialog.value}\n onUpdate:modelValue={(val: boolean) => {\n isShowDialog.value = val\n emit('update:modelValue', val)\n }}\n // appendToBody={true}\n onClosed={handleClosed}\n v-slots={{\n footer: () => renderDialogFooter(),\n header: getHeader(),\n }}\n >\n {renderContent()}\n </ElDialog>\n )\n }\n },\n})\n"],"names":["_isSlot","s","vue","Dialog","name","props","expose","done","useDialog","emit","ns","useNamespace","t","is","headerProps","slots","type","_slot","elementPlus","confirmBtnProps","default","_b","isShowDialog","val","footer"],"mappings":"sWAMqC,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAA,QAAAD,CAAA,CAAA,CAErC,MAAAE,EAAAD,EAAA,gBAAA,CACEE,KAAAA,UACAC,MAAAA,EAAAA,4FAE4BC,OAAAA,CAAO,EAAA,sHAC+EC,KAAAA,CAAK,EAAAC,EAAA,UAAAH,EAAAI,CAAA,EACrHC,EAAAC,EAAA,aAAA,QAAA,GACQC,EAAAA,uBAGNC,EAAA,WAAAR,EAAA,KAAA,EACES,GAAAT,EAAA,MAAAS,CAAA,gDAIO,MAAA,+BAGTT,EAAA,OAAA,IAAAH,EAAA,YAAA,OAAA,CACS,MAAA,kBAAA,EAAA,CAAAU,EAAA,YAAA,CAAA,CAAA,EAETG,EAAA,QAAAA,EAAA,mBAIQC,KAAAA,CAAK,EAAAX,EACb,GAAAA,EAAA,SAAA,GAAA,OAAA,KAGA,GAAAQ,EAAA,WAAAE,EAAA,MAAA,EAAA,OAAAA,EAAA,OAAA,EAGA,GAAAF,EAAA,WAAAR,EAAA,MAAA,EAAA,OAAAA,EAAA,OAAA,iBAGqB,IAAAY,EACnB,OAAAf,EAAA,YAAA,MAAA,CAAA,MAAAQ,EAAA,EAAA,QAAA,CAC4B,EAAA,CAAAR,EAAA,YAAAgB,EAAA,SAAAhB,EAAA,WAAA,CAAA,KAAA,UAAA,KAAA,mBAIA,EAAAiB,EAAA,KAAA,EAAAnB,EAAAiB,EAAAL,EAAA,YAAA,CAAA,EAAAK,EAAA,gBAGN,CAAA,CAAA,CAAA,CAIxB,CACA,OAAAf,EAAA,YAAA,MAAA,CAAA,MAAAQ,EAAA,EAAA,QAAA,CAC4B,EAAA,CAAAR,EAAA,YAAAgB,EAAA,SAAAhB,EAAA,WAAA,CAAA,KAAA,UAAA,KAAA,+BAKEkB,QAAAA,IAAAA,CAAAA,EAAAA,MAAAA,KAAAA,CAEG,CAAA,EAAAlB,EAAA,YAAAgB,EAAA,SAAAhB,EAAA,WAAA,8CAGuC,KAAA,+BAGzCkB,QAAAA,IAAAA,CAAAA,EAAAA,MAAAA,KAAAA,CAEG,CAAA,CAAA,CAAA,kBAOlC,OAAAf,EAAA,OAAA,SACEH,EAAA,YAAA,MAAA,CAAA,MAAAQ,EAAA,EAAA,SAAA,CAC6B,EAAA,CAAAR,EAAA,YAAA,MAAA,CAAA,MAAAQ,EAAA,EAAA,WAAA,4BACI,MAAA,CAAAA,EAAA,EAAA,QAAA,EAAAA,EAAA,GAAA,OAAAL,EAAA,IAAA,CAAA,CAC+B,EAAA,CAAAe,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,EAAAA,cAAAA,KAAAA,IAAAA,CAAAA,CAAA,CAAA,EAAAlB,EAAA,YAAA,MAAA,CAAA,MAAAQ,EAAA,EAAA,SAAA,uFAUlEW,EAAAN,EAAA,UAAA,YAAAM,EAAA,KAAAN,IAGFT,OAAAA,EAAAA,gBAEEC,KAAAA,CACF,CAAA,EAEA,IACEL,EAAA,YAAAgB,EAAA,SAAAhB,EAAA,WAAA,CAAA,MAAA,CAAAQ,EAAA,EAAA,EAAA,EAAAL,EAAA,OAAA,UAAAK,EAAA,EAAA,KAAA,EAAAL,EAAA,SAAA,IAAAK,EAAA,EAAA,WAAA,CAAA,YAG0B,WAAAL,EAAA,YAAAiB,EAAA,MAC4B,sBAAAC,GAAA,WAGhDd,EAAAA,oBAAAA,CAAAA,aAGoB,CAAA,EAAA,CAAAW,QAAAA,IAAAA,CAAAA,EAAAA,CAAAA,EAEpBI,OAAAA,IAAAA,EAAAA,YACmB,CAAA,CAO7B,CACF,CAAA"}