UNPKG

@seemusic/ui-components

Version:

A Vue 3 UI Library. Uses Composable.

1 lines 5.96 kB
{"version":3,"file":"SopDrawer.mjs","sources":["../../../src/components/SopDrawer/SopDrawer.tsx"],"sourcesContent":["import { defineComponent, ref, computed, Slots } from 'vue';\nimport { ElDrawer, ElButton } from 'element-plus';\nimport { useLocale } from '../../composables/useLocale';\n\nexport interface OnOKEvent {\n close: () => void\n setLoading: (status: boolean) => void\n}\nexport interface DialogOrDrawerHeaderSlots {\n close: () => void\n titleId: string\n titleClass: string\n}\n\nexport default defineComponent({\n name: 'SopDrawer',\n components: { ElDrawer, ElButton },\n props: {\n visible: {\n type: Boolean,\n required: true\n },\n size: {\n type: Number || String,\n default: 448\n },\n isShowFooter: {\n type: Boolean,\n default: true\n },\n isShowDefaultFooter: {\n type: Boolean,\n default: false\n },\n isShowConfirmBtn: {\n type: Boolean,\n default: true\n },\n isShowCancelBtn: {\n type: Boolean,\n default: true\n },\n confirmBtnText: {\n type: String\n },\n cancelBtnText: {\n type: String\n }\n },\n emits: ['update:visible', 'on-ok', 'on-close'],\n setup(props, { attrs, emit, slots }) {\n const { t } = useLocale();\n\n const confirmBtnText = ref(props.confirmBtnText || t('sop.common.confirm'));\n const cancelBtnText = ref(props.cancelBtnText || t('sop.common.cancel'));\n const loading = ref(false);\n const isShowDefaultFooter = computed(() => (props.isShowCancelBtn || props.isShowConfirmBtn) && props.isShowDefaultFooter);\n\n function beforeClose() {\n emit('on-close');\n emit('update:visible', !props.visible);\n }\n\n function setLoading(status: boolean) {\n loading.value = status;\n }\n\n const okEvents: OnOKEvent = {\n close: beforeClose,\n setLoading\n };\n\n function renderFooter(slots: Slots) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const slot: Record<string, any> = {\n header: (val: DialogOrDrawerHeaderSlots) => slots.header?.(val),\n default: () => slots.default?.()\n };\n if (props.isShowFooter) {\n slot['footer'] = () => (\n isShowDefaultFooter.value ?\n <>\n {\n props.isShowCancelBtn &&\n <ElButton onClick={beforeClose}>{cancelBtnText.value}</ElButton>\n }\n {\n props.isShowConfirmBtn &&\n <ElButton\n loading={loading.value}\n type=\"primary\"\n onClick={() => {\n emit('on-ok', okEvents);\n }}\n >\n {confirmBtnText.value}\n </ElButton>\n }\n </> :\n slots.footer?.()\n );\n }\n return slot;\n }\n\n return () => (\n <ElDrawer\n {...attrs}\n modelValue={props.visible}\n before-close={beforeClose}\n size={props.size}\n destroy-on-close\n >\n {renderFooter(slots)}\n </ElDrawer>\n );\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","components","ElDrawer","ElButton","props","visible","type","Boolean","required","size","Number","String","default","isShowFooter","isShowDefaultFooter","isShowConfirmBtn","isShowCancelBtn","confirmBtnText","cancelBtnText","emits","setup","attrs","emit","slots","t","useLocale","ref","loading","computed","beforeClose","setLoading","status","value","okEvents","close","renderFooter","slot","header","val","_createVNode","_Fragment","onClick","footer","_slot","_mergeProps"],"mappings":"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"}