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.23 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","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","isVNode","Dialog","defineComponent","name","props","expose","done","useDialog","emit","ns","useNamespace","t","isFunction","headerProps","createVNode","slots","type","_slot","ElButton","mergeProps","confirmBtnProps","default","_b","ElDialog","isShowDialog","val","footer"],"mappings":"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"}