@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 15.8 kB
Source Map (JSON)
{"version":3,"file":"confirm.vue2.mjs","sources":["../../../components/confirm/confirm.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Button } from '@/components/button'\r\nimport { Icon } from '@/components/icon'\r\nimport { Modal } from '@/components/modal'\r\nimport { Renderer } from '@/components/renderer'\r\n\r\nimport { nextTick, onMounted, reactive, ref, toRef } from 'vue'\r\n\r\nimport { useIcons, useLocale, useNameHelper, useProps } from '@vexip-ui/config'\r\nimport { isFunction, isPromise } from '@vexip-ui/utils'\r\nimport { confirmProps } from './props'\r\n\r\nimport type { ConfirmButtonType, ConfirmOptions, ConfirmRenderFn, ConfirmState } from './symbol'\r\n\r\nconst positionValidator = (value: string | number) => {\r\n return value === 'auto' || !Number.isNaN(parseFloat(value as string))\r\n}\r\nconst positionProp = {\r\n default: 'auto',\r\n validator: positionValidator,\r\n}\r\n\r\nconst confirmButtonTypes = Object.freeze<ConfirmButtonType[]>([\r\n 'default',\r\n 'primary',\r\n 'info',\r\n 'success',\r\n 'warning',\r\n 'error',\r\n])\r\n\r\ndefineOptions({ name: 'Confirm' })\r\n\r\nconst _props = defineProps(confirmProps)\r\nconst props = useProps('confirm', _props, {\r\n locale: null,\r\n width: {\r\n default: 420,\r\n validator: positionValidator,\r\n },\r\n height: positionProp,\r\n top: positionProp,\r\n left: positionProp,\r\n right: positionProp,\r\n bottom: positionProp,\r\n maskClose: false,\r\n confirmType: {\r\n default: 'primary',\r\n validator: value => confirmButtonTypes.includes(value),\r\n },\r\n cancelType: {\r\n default: 'default',\r\n validator: value => confirmButtonTypes.includes(value),\r\n },\r\n confirmText: null,\r\n cancelText: null,\r\n icon: {\r\n isFunc: true,\r\n default: false,\r\n },\r\n className: null,\r\n style: null,\r\n renderer: {\r\n default: null,\r\n isFunc: true,\r\n static: true,\r\n },\r\n iconProps: () => ({}),\r\n closable: false,\r\n parseHtml: false,\r\n contentAlign: 'left',\r\n actionsAlign: 'right',\r\n cancelable: true,\r\n xOffset: 0,\r\n yOffset: 0,\r\n})\r\n\r\nconst nh = useNameHelper('confirm')\r\nconst icons = useIcons()\r\nconst locale = useLocale('confirm', toRef(props, 'locale'))\r\n\r\nconst commonProps = [\r\n 'className',\r\n 'style',\r\n 'icon',\r\n 'iconProps',\r\n 'maskClose',\r\n 'confirmType',\r\n 'cancelType',\r\n 'confirmText',\r\n 'cancelText',\r\n 'parseHtml',\r\n 'closable',\r\n 'contentAlign',\r\n 'actionsAlign',\r\n 'cancelable',\r\n 'width',\r\n 'height',\r\n 'top',\r\n 'right',\r\n 'bottom',\r\n 'left',\r\n 'xOffset',\r\n 'yOffset',\r\n] as const\r\n\r\nconst state = reactive<ConfirmState>({\r\n ...commonProps.reduce((prev, current) => ((prev[current] = props[current]), prev), {} as any),\r\n visible: false,\r\n loading: false,\r\n title: '',\r\n content: '',\r\n raw: {},\r\n})\r\n\r\nconst rendererR = ref<ConfirmRenderFn | null>(props.renderer)\r\n\r\nlet beforeConfirmR: (() => unknown) | null = null\r\n\r\nlet onConfirm: (() => void) | null = null\r\nlet onCancel: (() => void) | null = null\r\n\r\nconst mountedPromise = new Promise<void>(resolve => {\r\n onMounted(() => {\r\n nextTick(resolve)\r\n })\r\n})\r\n\r\ndefineExpose({ state, openConfirm, closeConfirm: handleCancel, handleReset })\r\n\r\nasync function openConfirm(options: ConfirmOptions) {\r\n await mountedPromise\r\n\r\n return await new Promise<boolean>(resolve => {\r\n for (const prop of commonProps) {\r\n ;(state as any)[prop] = options[prop] ?? props[prop]\r\n }\r\n\r\n state.title = options.title ?? ''\r\n state.content = options.content ?? ''\r\n\r\n state.raw = options\r\n\r\n rendererR.value = isFunction(options.renderer) ? options.renderer : props.renderer\r\n beforeConfirmR = isFunction(options.onBeforeConfirm) ? options.onBeforeConfirm : null\r\n\r\n if (isFunction(rendererR.value)) {\r\n const render = rendererR.value\r\n\r\n rendererR.value = () => render(state, handleConfirm, handleCancel)\r\n }\r\n\r\n state.visible = true\r\n onConfirm = () => {\r\n resolve(true)\r\n beforeConfirmR = null\r\n }\r\n onCancel = () => {\r\n resolve(false)\r\n beforeConfirmR = null\r\n }\r\n })\r\n}\r\n\r\nasync function handleConfirm() {\r\n state.loading = true\r\n\r\n if (isFunction(beforeConfirmR)) {\r\n let result = beforeConfirmR()\r\n\r\n if (isPromise(result)) {\r\n result = await result\r\n }\r\n\r\n if (result === false) {\r\n state.loading = false\r\n\r\n return\r\n }\r\n }\r\n\r\n state.visible = false\r\n state.loading = false\r\n\r\n if (isFunction(onConfirm)) {\r\n onConfirm()\r\n onConfirm = null\r\n }\r\n}\r\n\r\nfunction handleCancel() {\r\n state.visible = false\r\n\r\n if (isFunction(onCancel)) {\r\n onCancel()\r\n onCancel = null\r\n }\r\n}\r\n\r\nfunction handleReset() {\r\n for (const prop of commonProps) {\r\n ;(state as any)[prop] = props[prop]\r\n }\r\n\r\n state.visible = false\r\n state.loading = false\r\n state.title = ''\r\n state.content = ''\r\n\r\n state.raw = {}\r\n\r\n rendererR.value = props.renderer\r\n}\r\n</script>\r\n\r\n<template>\r\n <!-- eslint-disable vue/no-v-html -->\r\n <div :class=\"[nh.b(), nh.bs('vars')]\">\r\n <Modal\r\n no-footer\r\n :auto-remove=\"false\"\r\n :transfer=\"false\"\r\n :closable=\"false\"\r\n :active=\"state.visible\"\r\n :modal-class=\"state.className\"\r\n :modal-style=\"state.style\"\r\n :width=\"state.width\"\r\n :height=\"state.height\"\r\n :top=\"state.top\"\r\n :left=\"state.left\"\r\n :right=\"state.right\"\r\n :bottom=\"state.bottom\"\r\n :x-offset=\"state.xOffset\"\r\n :y-offset=\"state.yOffset\"\r\n :mask-close=\"state.maskClose\"\r\n @hide=\"handleReset\"\r\n >\r\n <Renderer v-if=\"isFunction(rendererR)\" :renderer=\"rendererR\"></Renderer>\r\n <template v-else>\r\n <div v-if=\"state.title\" :class=\"nh.be('header')\">\r\n <div :class=\"nh.be('title')\">\r\n <Renderer v-if=\"typeof state.title === 'function'\" :renderer=\"state.title\"></Renderer>\r\n <template v-else>\r\n {{ state.title }}\r\n </template>\r\n </div>\r\n <button\r\n v-if=\"state.closable\"\r\n type=\"button\"\r\n :class=\"nh.be('close')\"\r\n @mousedown.stop\r\n @click=\"handleCancel\"\r\n >\r\n <slot name=\"close\">\r\n <Icon\r\n v-bind=\"icons.close\"\r\n :scale=\"+(icons.close.scale || 1) * 1.2\"\r\n label=\"close\"\r\n ></Icon>\r\n </slot>\r\n </button>\r\n </div>\r\n <div\r\n :class=\"[\r\n nh.be('body'),\r\n nh.bem('body', state.contentAlign),\r\n !state.title && nh.bem('body', 'no-title')\r\n ]\"\r\n >\r\n <div v-if=\"state.icon !== false\" :class=\"nh.be('icon')\">\r\n <Icon\r\n v-if=\"typeof state.icon !== 'boolean'\"\r\n v-bind=\"state.iconProps\"\r\n :icon=\"state.icon\"\r\n ></Icon>\r\n <Icon\r\n v-else\r\n :scale=\"2.2\"\r\n v-bind=\"{\r\n ...(state.cancelable ? icons.question : icons.warning),\r\n ...state.iconProps\r\n }\"\r\n :icon=\"(state.cancelable ? icons.question : icons.warning).icon\"\r\n ></Icon>\r\n </div>\r\n <Renderer v-if=\"typeof state.content === 'function'\" :renderer=\"state.content\"></Renderer>\r\n <template v-else>\r\n <div v-if=\"state.parseHtml\" :class=\"nh.be('content')\" v-html=\"state.content\"></div>\r\n <div v-else :class=\"nh.be('content')\">\r\n {{ state.content }}\r\n </div>\r\n </template>\r\n </div>\r\n <div :class=\"[nh.be('footer'), nh.bem('footer', state.actionsAlign)]\">\r\n <Button\r\n v-if=\"state.cancelable\"\r\n :class=\"[nh.be('button'), nh.bem('button', 'cancel')]\"\r\n inherit\r\n no-pulse\r\n :type=\"state.cancelType\"\r\n @click=\"handleCancel\"\r\n >\r\n {{ state.cancelText || locale.cancel }}\r\n </Button>\r\n <Button\r\n :class=\"[nh.be('button'), nh.bem('button', 'confirm')]\"\r\n inherit\r\n no-pulse\r\n :type=\"state.confirmType\"\r\n :loading=\"state.loading\"\r\n @click=\"handleConfirm\"\r\n >\r\n {{ state.confirmText || locale.confirm }}\r\n </Button>\r\n </div>\r\n </template>\r\n </Modal>\r\n </div>\r\n</template>\r\n"],"names":["positionValidator","value","positionProp","confirmButtonTypes","props","useProps","__props","nh","useNameHelper","icons","useIcons","locale","useLocale","toRef","commonProps","state","reactive","prev","current","rendererR","ref","beforeConfirmR","onConfirm","onCancel","mountedPromise","resolve","onMounted","nextTick","__expose","openConfirm","handleCancel","handleReset","options","prop","isFunction","render","handleConfirm","result","isPromise","_createElementBlock","_unref","_createVNode","Modal","_createBlock","Renderer","_Fragment","_normalizeClass","_createElementVNode","_createTextVNode","_toDisplayString","_renderSlot","_ctx","Icon","_mergeProps","_openBlock","Button"],"mappings":"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"}