el-plus 0.0.60 → 0.0.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/index.css +1 -1
- package/dist/index.full.js +71 -35
- package/dist/index.full.min.js +2 -2
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +2 -2
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +71 -35
- package/es/components/form/src/form-item-vue.mjs +1 -1
- package/es/components/form/src/form-item-vue.mjs.map +1 -1
- package/es/components/search-list-page/index.d.ts +108 -6
- package/es/components/search-list-page/src/search-list-page.d.ts +8 -0
- package/es/components/search-list-page/src/search-list-page.mjs +6 -0
- package/es/components/search-list-page/src/search-list-page.mjs.map +1 -1
- package/es/components/search-list-page/src/search-list-page.vue.d.ts +44 -2
- package/es/components/search-list-page/src/use-search-list-page.d.ts +28 -2
- package/es/components/search-list-page/src/use-search-list-page.mjs +2 -0
- package/es/components/search-list-page/src/use-search-list-page.mjs.map +1 -1
- package/es/components/select/src/select.vue2.mjs +1 -1
- package/es/components/select/src/select.vue2.mjs.map +1 -1
- package/es/components/select/src/use-select.d.ts +2 -2
- package/es/components/select/src/use-select.mjs +20 -18
- package/es/components/select/src/use-select.mjs.map +1 -1
- package/es/components/table/index.d.ts +30 -0
- package/es/components/table/src/table.d.ts +8 -0
- package/es/components/table/src/table.mjs +6 -0
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.vue.d.ts +18 -0
- package/es/components/table/src/table.vue2.mjs +3 -1
- package/es/components/table/src/table.vue2.mjs.map +1 -1
- package/es/hooks/dialog/use-dialog.d.ts +2 -0
- package/es/hooks/dialog/use-dialog.mjs +9 -1
- package/es/hooks/dialog/use-dialog.mjs.map +1 -1
- package/es/hooks/dialog/use-form-dialog.d.ts +2 -0
- package/es/hooks/dialog/use-form-dialog.mjs +11 -10
- package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
- package/es/hooks/use-locale.mjs +11 -2
- package/es/hooks/use-locale.mjs.map +1 -1
- package/es/package.json.mjs +1 -1
- package/lib/components/form/src/form-item-vue.js +1 -1
- package/lib/components/form/src/form-item-vue.js.map +1 -1
- package/lib/components/search-list-page/index.d.ts +108 -6
- package/lib/components/search-list-page/src/search-list-page.d.ts +8 -0
- package/lib/components/search-list-page/src/search-list-page.js +6 -0
- package/lib/components/search-list-page/src/search-list-page.js.map +1 -1
- package/lib/components/search-list-page/src/search-list-page.vue.d.ts +44 -2
- package/lib/components/search-list-page/src/use-search-list-page.d.ts +28 -2
- package/lib/components/search-list-page/src/use-search-list-page.js +2 -0
- package/lib/components/search-list-page/src/use-search-list-page.js.map +1 -1
- package/lib/components/select/src/select.vue2.js +1 -1
- package/lib/components/select/src/select.vue2.js.map +1 -1
- package/lib/components/select/src/use-select.d.ts +2 -2
- package/lib/components/select/src/use-select.js +19 -17
- package/lib/components/select/src/use-select.js.map +1 -1
- package/lib/components/table/index.d.ts +30 -0
- package/lib/components/table/src/table.d.ts +8 -0
- package/lib/components/table/src/table.js +6 -0
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/table.vue.d.ts +18 -0
- package/lib/components/table/src/table.vue2.js +3 -1
- package/lib/components/table/src/table.vue2.js.map +1 -1
- package/lib/hooks/dialog/use-dialog.d.ts +2 -0
- package/lib/hooks/dialog/use-dialog.js +9 -1
- package/lib/hooks/dialog/use-dialog.js.map +1 -1
- package/lib/hooks/dialog/use-form-dialog.d.ts +2 -0
- package/lib/hooks/dialog/use-form-dialog.js +11 -10
- package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
- package/lib/hooks/use-locale.js +11 -2
- package/lib/hooks/use-locale.js.map +1 -1
- package/lib/package.json.js +1 -1
- package/package.json +1 -1
- package/theme-chalk/attachment.css +1 -1
- package/theme-chalk/buttons.css +1 -1
- package/theme-chalk/form.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/attachment.scss +1 -1
- package/theme-chalk/src/buttons.scss +1 -1
- package/theme-chalk/src/form.scss +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.vue2.mjs","sources":["../../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <div\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-form\n ref=\"elFormRef\"\n :model=\"{ table: data }\"\n size=\"small\"\n hide-required-asterisk\n scroll-to-error\n :scroll-into-view-options=\"{ inline: 'center' }\"\n class=\"ep-form\"\n >\n <el-table ref=\"elTableRef\" v-loading=\"loading\" v-bind=\"customAttrs\">\n <el-table-column\n v-if=\"showSelectionCol\"\n type=\"selection\"\n width=\"55\"\n :align\n :selectable\n fixed\n />\n <el-table-column\n v-if=\"showSingleSelectionCol\"\n width=\"55\"\n :align\n :selectable\n fixed\n >\n <template #default=\"scope\">\n <el-link\n type=\"primary\"\n underline=\"never\"\n style=\"font-size: 12px\"\n @click=\"emit('single-selection-change', scope.row)\"\n >{{ t('ep.table.select') }}</el-link\n >\n </template>\n </el-table-column>\n <el-table-column\n v-if=\"showIndexCol\"\n type=\"index\"\n width=\"56\"\n :align\n :label=\"t('ep.table.serialNumber')\"\n fixed\n :index=\"indexFormatter\"\n />\n\n <el-table-column\n v-if=\"actionButtons.length\"\n :label=\"t('ep.table.operation')\"\n :align\n fixed\n :width=\"actionColWidth\"\n >\n <template #default=\"scope\">\n <span :class=\"bem.e('action-buttons')\">\n <EpButtons\n :list=\"formatActionButtons(actionButtons, scope)\"\n type=\"text\"\n />\n </span>\n </template>\n </el-table-column>\n <el-table-column\n v-for=\"(item, index) in columnList\"\n :key=\"index\"\n v-bind=\"item\"\n >\n <template #default=\"scope\">\n <EpFormItem\n v-if=\"item.type || item.render\"\n :form-data=\"scope.row\"\n :table-scope=\"scope\"\n v-bind=\"formItemProps(scope, item)\"\n />\n <template v-else>\n {{ scope.row[item.prop] }}\n </template>\n </template>\n </el-table-column>\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-table>\n </el-form>\n <el-pagination\n v-if=\"showPagination\"\n v-model:current-page=\"pagination.pageNo\"\n v-model:page-size=\"pagination.pageSize\"\n :total=\"pagination.total\"\n v-bind=\"paginationProps\"\n />\n <EpCustomColumn\n v-if=\"customColumnModule\"\n ref=\"customColumnRef\"\n :module=\"customColumnModule\"\n :show-handler=\"false\"\n />\n </div>\n</template>\n<script setup lang=\"tsx\">\nimport { computed, useSlots, useTemplateRef } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport {\n tableProps,\n tableEmits,\n expandTablePropsKeys,\n tableEmitsKeys,\n} from './table'\nimport type { TableEmits } from './table'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { EpFormItem } from '@el-plus/components/form'\nimport EpCustomColumn from '@el-plus/components/custom-column'\nimport type { CustomColumnInstance } from '@el-plus/components/custom-column'\nimport { useTable, useTableColumn, useTableFormItem } from './use-table'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nconst { t } = useLocale()\ndefineOptions({\n name: 'EpTable',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('table')\nconst props = defineProps(tableProps)\nconst emit = defineEmits(tableEmits!)\n\nconst slots = computed(() => {\n return Object.keys(useSlots())\n // .filter((item) => item !== 'default')\n})\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', ...expandTablePropsKeys]),\n // 'tooltip-effect': 'light',\n size: 'small',\n data: data.value,\n ...prepareEvents<NonNullable<TableEmits>>(emit, tableEmitsKeys!),\n }\n})\nconst {\n pagination,\n paginationProps,\n data,\n validate,\n resetFields,\n clearValidate,\n clearSelection,\n loading,\n search,\n elFormRef,\n elTableRef,\n formatActionButtons,\n customColumns,\n} = useTable(props)\nconst { columnList } = useTableColumn(props, data, customColumns)\nconst { formItemProps } = useTableFormItem(props)\nconst customColumnRef = useTemplateRef<CustomColumnInstance>('customColumnRef')\n\ndefineExpose({\n elFormRef,\n elTableRef,\n validate,\n resetFields,\n clearValidate,\n clearSelection,\n search,\n openCustomColumnDialog: () => {\n customColumnRef.value?.open()\n },\n})\n</script>\n"],"names":["t","useLocale","bem","createNameSpace","props","__props","emit","__emit","slots","computed","Object","keys","useSlots","customAttrs","prepareProps","expandTablePropsKeys","size","data","value","prepareEvents","tableEmitsKeys","pagination","paginationProps","validate","resetFields","clearValidate","clearSelection","loading","search","elFormRef","elTableRef","formatActionButtons","customColumns","useTable","columnList","useTableColumn","formItemProps","useTableFormItem","customColumnRef","useTemplateRef","__expose","openCustomColumnDialog","open","_createElementBlock","class","_normalizeClass","_unref","b","prepareClassNames","style","_normalizeStyle","prepareStyles","_createVNode","_component_el_form","ref","model","inline","_withDirectives","_openBlock","_createBlock","_component_el_table","_mergeProps","_createSlots","showSelectionCol","_component_el_table_column","type","width","align","selectable","fixed","showSingleSelectionCol","default","_withCtx","scope","_component_el_link","underline","onClick","$event","row","showIndexCol","label","index","indexFormatter","actionButtons","length","actionColWidth","_createElementVNode","e","_component_EpButtons","list","_Fragment","_renderList","item","key","render","_createTextVNode","_toDisplayString","prop","name","fn","_renderSlot","_ctx","$slots","_normalizeProps","_guardReactiveProps","showPagination","_component_el_pagination","pageNo","pageSize","total","customColumnModule","EpCustomColumn","module"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.vue2.mjs","sources":["../../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <div\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-form\n ref=\"elFormRef\"\n :model=\"{ table: data }\"\n size=\"small\"\n hide-required-asterisk\n scroll-to-error\n :scroll-into-view-options=\"{ inline: 'center' }\"\n class=\"ep-form\"\n >\n <el-table ref=\"elTableRef\" v-loading=\"loading\" v-bind=\"customAttrs\">\n <el-table-column\n v-if=\"showSelectionCol\"\n type=\"selection\"\n width=\"55\"\n :align\n :selectable\n fixed\n />\n <el-table-column\n v-if=\"showSingleSelectionCol\"\n width=\"55\"\n :align\n :selectable\n fixed\n >\n <template #default=\"scope\">\n <el-link\n type=\"primary\"\n underline=\"never\"\n style=\"font-size: 12px\"\n @click=\"emit('single-selection-change', scope.row)\"\n >{{ t('ep.table.select') }}</el-link\n >\n </template>\n </el-table-column>\n <el-table-column\n v-if=\"showIndexCol\"\n type=\"index\"\n width=\"56\"\n :align\n :label=\"t('ep.table.serialNumber')\"\n fixed\n :index=\"indexFormatter\"\n />\n\n <el-table-column\n v-if=\"actionButtons.length\"\n :label=\"t('ep.table.operation')\"\n :align\n fixed\n :width=\"actionColWidth\"\n >\n <template #default=\"scope\">\n <span :class=\"bem.e('action-buttons')\">\n <EpButtons\n :list=\"formatActionButtons(actionButtons, scope)\"\n type=\"text\"\n />\n </span>\n </template>\n </el-table-column>\n <el-table-column\n v-for=\"(item, index) in columnList\"\n :key=\"index\"\n v-bind=\"item\"\n >\n <template #default=\"scope\">\n <EpFormItem\n v-if=\"item.type || item.render\"\n :form-data=\"scope.row\"\n :table-scope=\"scope\"\n v-bind=\"formItemProps(scope, item)\"\n />\n <template v-else>\n {{ scope.row[item.prop] }}\n </template>\n </template>\n </el-table-column>\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-table>\n </el-form>\n <el-pagination\n v-if=\"showPagination\"\n v-model:current-page=\"pagination.pageNo\"\n v-model:page-size=\"pagination.pageSize\"\n :total=\"pagination.total\"\n v-bind=\"paginationProps\"\n />\n <EpCustomColumn\n v-if=\"customColumnModule\"\n ref=\"customColumnRef\"\n :module=\"customColumnModule\"\n :api=\"customColumnApi\"\n :save-api=\"customColumnSaveApi\"\n :show-handler=\"false\"\n />\n </div>\n</template>\n<script setup lang=\"tsx\">\nimport { computed, useSlots, useTemplateRef } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport {\n tableProps,\n tableEmits,\n expandTablePropsKeys,\n tableEmitsKeys,\n} from './table'\nimport type { TableEmits } from './table'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { EpFormItem } from '@el-plus/components/form'\nimport EpCustomColumn from '@el-plus/components/custom-column'\nimport type { CustomColumnInstance } from '@el-plus/components/custom-column'\nimport { useTable, useTableColumn, useTableFormItem } from './use-table'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nconst { t } = useLocale()\ndefineOptions({\n name: 'EpTable',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('table')\nconst props = defineProps(tableProps)\nconst emit = defineEmits(tableEmits!)\n\nconst slots = computed(() => {\n return Object.keys(useSlots())\n // .filter((item) => item !== 'default')\n})\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', ...expandTablePropsKeys]),\n // 'tooltip-effect': 'light',\n size: 'small',\n data: data.value,\n ...prepareEvents<NonNullable<TableEmits>>(emit, tableEmitsKeys!),\n }\n})\nconst {\n pagination,\n paginationProps,\n data,\n validate,\n resetFields,\n clearValidate,\n clearSelection,\n loading,\n search,\n elFormRef,\n elTableRef,\n formatActionButtons,\n customColumns,\n} = useTable(props)\nconst { columnList } = useTableColumn(props, data, customColumns)\nconst { formItemProps } = useTableFormItem(props)\nconst customColumnRef = useTemplateRef<CustomColumnInstance>('customColumnRef')\n\ndefineExpose({\n elFormRef,\n elTableRef,\n validate,\n resetFields,\n clearValidate,\n clearSelection,\n search,\n openCustomColumnDialog: () => {\n customColumnRef.value?.open()\n },\n})\n</script>\n"],"names":["t","useLocale","bem","createNameSpace","props","__props","emit","__emit","slots","computed","Object","keys","useSlots","customAttrs","prepareProps","expandTablePropsKeys","size","data","value","prepareEvents","tableEmitsKeys","pagination","paginationProps","validate","resetFields","clearValidate","clearSelection","loading","search","elFormRef","elTableRef","formatActionButtons","customColumns","useTable","columnList","useTableColumn","formItemProps","useTableFormItem","customColumnRef","useTemplateRef","__expose","openCustomColumnDialog","open","_createElementBlock","class","_normalizeClass","_unref","b","prepareClassNames","style","_normalizeStyle","prepareStyles","_createVNode","_component_el_form","ref","model","inline","_withDirectives","_openBlock","_createBlock","_component_el_table","_mergeProps","_createSlots","showSelectionCol","_component_el_table_column","type","width","align","selectable","fixed","showSingleSelectionCol","default","_withCtx","scope","_component_el_link","underline","onClick","$event","row","showIndexCol","label","index","indexFormatter","actionButtons","length","actionColWidth","_createElementVNode","e","_component_EpButtons","list","_Fragment","_renderList","item","key","render","_createTextVNode","_toDisplayString","prop","name","fn","_renderSlot","_ctx","$slots","_normalizeProps","_guardReactiveProps","showPagination","_component_el_pagination","pageNo","pageSize","total","customColumnModule","EpCustomColumn","module","api","customColumnApi","customColumnSaveApi"],"mappings":"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"}
|
|
@@ -7,8 +7,10 @@ export type DialogOptions = Partial<DialogProps & {
|
|
|
7
7
|
scopedSlots: Record<string, (props: any) => VNode>;
|
|
8
8
|
class: string;
|
|
9
9
|
onCancel: (reject: any) => void;
|
|
10
|
+
onBeforeCancel: (reject: any) => void;
|
|
10
11
|
cancelText?: string;
|
|
11
12
|
onConfirm: (resolve: any) => void;
|
|
13
|
+
onBeforeConfirm: (resolve: any) => void;
|
|
12
14
|
confirmText?: string;
|
|
13
15
|
showFooter: boolean;
|
|
14
16
|
}>;
|
|
@@ -16,8 +16,10 @@ const useDialog = (options = {}) => {
|
|
|
16
16
|
render: render$1,
|
|
17
17
|
destroyOnClose,
|
|
18
18
|
onConfirm,
|
|
19
|
+
onBeforeConfirm,
|
|
19
20
|
confirmText,
|
|
20
21
|
onCancel,
|
|
22
|
+
onBeforeCancel,
|
|
21
23
|
cancelText,
|
|
22
24
|
showFooter = true,
|
|
23
25
|
...dialogProps
|
|
@@ -42,7 +44,10 @@ const useDialog = (options = {}) => {
|
|
|
42
44
|
"class": bem.e("footer")
|
|
43
45
|
}, [scopedSlots.footerPrepend?.(promiseOptions), createVNode(ElButton, {
|
|
44
46
|
"size": "default",
|
|
45
|
-
"onClick": () => {
|
|
47
|
+
"onClick": async () => {
|
|
48
|
+
if (onBeforeCancel) {
|
|
49
|
+
await onBeforeCancel(reject);
|
|
50
|
+
}
|
|
46
51
|
if (onCancel) {
|
|
47
52
|
onCancel(reject);
|
|
48
53
|
} else {
|
|
@@ -54,6 +59,9 @@ const useDialog = (options = {}) => {
|
|
|
54
59
|
}), scopedSlots.footerInner?.(promiseOptions), createVNode(ElButton, {
|
|
55
60
|
"type": "primary",
|
|
56
61
|
"onClick": async () => {
|
|
62
|
+
if (onBeforeConfirm) {
|
|
63
|
+
await onBeforeConfirm(resolve);
|
|
64
|
+
}
|
|
57
65
|
if (onConfirm) {
|
|
58
66
|
onConfirm(resolve);
|
|
59
67
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-dialog.mjs","sources":["../../../../../packages/hooks/dialog/use-dialog.tsx"],"sourcesContent":["import { useTemplatePromise } from '../use-template-promise'\nimport { h, getCurrentInstance, render as vRender, inject, nextTick } from 'vue'\nimport type { ComponentInternalInstance } from 'vue'\nimport {\n ElDialog,\n ElButton,\n configProviderContextKey,\n ElConfigProvider,\n} from 'element-plus'\nimport type { VNode } from 'vue'\nimport type { DialogProps } from 'element-plus'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { prepareProps } from '@el-plus/utils/props'\nimport { useLocale } from '../use-locale'\n\nexport type DialogOptions = Partial<\n DialogProps & {\n instance: ComponentInternalInstance | null\n render: (props) => VNode\n scopedSlots: Record<string, (props) => VNode>\n class: string\n onCancel: (reject) => void\n cancelText?: string\n onConfirm: (resolve) => void\n confirmText?: string\n showFooter: boolean\n }\n>\nexport type ExpandDialogOptions = {\n title?: string\n dialogProps?: DialogOptions\n}\nconst bem = createNameSpace('dialog')\n\nexport const useDialog = (options: DialogOptions = {}) => {\n const { t } = useLocale()\n const {\n scopedSlots = {},\n instance,\n render,\n destroyOnClose,\n onConfirm,\n confirmText,\n onCancel,\n cancelText,\n showFooter = true,\n ...dialogProps\n } = options\n\n const Dialog = useTemplatePromise<any>({\n destroy: destroyOnClose,\n render: (promiseOptions, ctx) => {\n // 插槽参数增加promiseOptions\n for (const key in scopedSlots) {\n scopedSlots[key] = scopedSlots[key].bind(null, promiseOptions)\n }\n const { resolve, reject, isResolving } = promiseOptions\n const renderFunc = () => {\n return render\n ? render(promiseOptions)\n : ctx.slots.default?.(promiseOptions)\n }\n const slots: DialogOptions['scopedSlots'] = {}\n if (showFooter) {\n slots.footer = () => (\n <div class={bem.e('footer')}>\n {scopedSlots.footerPrepend?.(promiseOptions)}\n <ElButton\n size=\"default\"\n onClick={() => {\n if (onCancel) {\n onCancel(reject)\n } else {\n reject('cancel')\n }\n }}\n >\n {cancelText || t('ep.dialog.cancel')}\n </ElButton>\n {scopedSlots.footerInner?.(promiseOptions)}\n <ElButton\n type=\"primary\"\n onClick={async () => {\n if (onConfirm) {\n onConfirm(resolve)\n } else {\n resolve('confirm')\n }\n }}\n loading={isResolving}\n >\n {confirmText || t('ep.dialog.confirm')}\n </ElButton>\n {scopedSlots.footerAppend?.(promiseOptions)}\n </div>\n )\n }\n return (\n <ElDialog\n class={bem.b()}\n modelValue={true}\n {...{\n closeOnClickModal: false,\n closeOnPressEscape: false,\n title: t('ep.dialog.title'),\n center: false,\n // 'append-to-body': true,\n beforeClose: () => {\n reject('cancel')\n },\n ...prepareProps(dialogProps, ['modelValue']),\n }}\n v-slots={{\n ...slots,\n ...scopedSlots,\n }}\n >\n {renderFunc()}\n </ElDialog>\n )\n },\n })\n if (render) {\n // const app = createApp(component)\n // Object.assign(app._context, parentInstance.appContext)\n // app.mount(container)\n const container = document.createElement('div')\n // container.setAttribute('id', 'ep-dialog-container')\n const newInstance = instance || getCurrentInstance()\n const config = inject(configProviderContextKey) as any\n // const parentConfig =\n // newInstance?.provides[configProviderContextKey] ||\n // newInstance?.appContext?.provides[configProviderContextKey]\n // const vnode = h(Dialog)\n const vnode = h(\n ElConfigProvider,\n { locale: config?.locale },\n { default: () => h(Dialog) },\n )\n if (newInstance && newInstance.appContext) {\n // 强制继承父应用的全局组件、指令和插件\n vnode.appContext = newInstance.appContext\n }\n nextTick(() => {\n vRender(vnode, container)\n document.body.appendChild(container)\n })\n }\n\n return Dialog\n}\n"],"names":["bem","createNameSpace","useDialog","options","t","useLocale","scopedSlots","instance","render","destroyOnClose","onConfirm","confirmText","onCancel","cancelText","showFooter","dialogProps","Dialog","useTemplatePromise","destroy","promiseOptions","ctx","key","bind","resolve","reject","isResolving","renderFunc","slots","default","footer","_createVNode","e","footerPrepend","ElButton","
|
|
1
|
+
{"version":3,"file":"use-dialog.mjs","sources":["../../../../../packages/hooks/dialog/use-dialog.tsx"],"sourcesContent":["import { useTemplatePromise } from '../use-template-promise'\nimport { h, getCurrentInstance, render as vRender, inject, nextTick } from 'vue'\nimport type { ComponentInternalInstance } from 'vue'\nimport {\n ElDialog,\n ElButton,\n configProviderContextKey,\n ElConfigProvider,\n} from 'element-plus'\nimport type { VNode } from 'vue'\nimport type { DialogProps } from 'element-plus'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { prepareProps } from '@el-plus/utils/props'\nimport { useLocale } from '../use-locale'\n\nexport type DialogOptions = Partial<\n DialogProps & {\n instance: ComponentInternalInstance | null\n render: (props) => VNode\n scopedSlots: Record<string, (props) => VNode>\n class: string\n onCancel: (reject) => void\n onBeforeCancel: (reject) => void\n cancelText?: string\n onConfirm: (resolve) => void\n onBeforeConfirm: (resolve) => void\n confirmText?: string\n showFooter: boolean\n }\n>\nexport type ExpandDialogOptions = {\n title?: string\n dialogProps?: DialogOptions\n}\nconst bem = createNameSpace('dialog')\n\nexport const useDialog = (options: DialogOptions = {}) => {\n const { t } = useLocale()\n const {\n scopedSlots = {},\n instance,\n render,\n destroyOnClose,\n onConfirm,\n onBeforeConfirm,\n confirmText,\n onCancel,\n onBeforeCancel,\n cancelText,\n showFooter = true,\n ...dialogProps\n } = options\n\n const Dialog = useTemplatePromise<any>({\n destroy: destroyOnClose,\n render: (promiseOptions, ctx) => {\n // 插槽参数增加promiseOptions\n for (const key in scopedSlots) {\n scopedSlots[key] = scopedSlots[key].bind(null, promiseOptions)\n }\n const { resolve, reject, isResolving } = promiseOptions\n const renderFunc = () => {\n return render\n ? render(promiseOptions)\n : ctx.slots.default?.(promiseOptions)\n }\n const slots: DialogOptions['scopedSlots'] = {}\n if (showFooter) {\n slots.footer = () => (\n <div class={bem.e('footer')}>\n {scopedSlots.footerPrepend?.(promiseOptions)}\n <ElButton\n size=\"default\"\n onClick={async () => {\n if (onBeforeCancel) {\n await onBeforeCancel(reject)\n }\n if (onCancel) {\n onCancel(reject)\n } else {\n reject('cancel')\n }\n }}\n >\n {cancelText || t('ep.dialog.cancel')}\n </ElButton>\n {scopedSlots.footerInner?.(promiseOptions)}\n <ElButton\n type=\"primary\"\n onClick={async () => {\n if (onBeforeConfirm) {\n await onBeforeConfirm(resolve)\n }\n if (onConfirm) {\n onConfirm(resolve)\n } else {\n resolve('confirm')\n }\n }}\n loading={isResolving}\n >\n {confirmText || t('ep.dialog.confirm')}\n </ElButton>\n {scopedSlots.footerAppend?.(promiseOptions)}\n </div>\n )\n }\n return (\n <ElDialog\n class={bem.b()}\n modelValue={true}\n {...{\n closeOnClickModal: false,\n closeOnPressEscape: false,\n title: t('ep.dialog.title'),\n center: false,\n // 'append-to-body': true,\n beforeClose: () => {\n reject('cancel')\n },\n ...prepareProps(dialogProps, ['modelValue']),\n }}\n v-slots={{\n ...slots,\n ...scopedSlots,\n }}\n >\n {renderFunc()}\n </ElDialog>\n )\n },\n })\n if (render) {\n // const app = createApp(component)\n // Object.assign(app._context, parentInstance.appContext)\n // app.mount(container)\n const container = document.createElement('div')\n // container.setAttribute('id', 'ep-dialog-container')\n const newInstance = instance || getCurrentInstance()\n const config = inject(configProviderContextKey) as any\n // const parentConfig =\n // newInstance?.provides[configProviderContextKey] ||\n // newInstance?.appContext?.provides[configProviderContextKey]\n // const vnode = h(Dialog)\n const vnode = h(\n ElConfigProvider,\n { locale: config?.locale },\n { default: () => h(Dialog) },\n )\n if (newInstance && newInstance.appContext) {\n // 强制继承父应用的全局组件、指令和插件\n vnode.appContext = newInstance.appContext\n }\n nextTick(() => {\n vRender(vnode, container)\n document.body.appendChild(container)\n })\n }\n\n return Dialog\n}\n"],"names":["bem","createNameSpace","useDialog","options","t","useLocale","scopedSlots","instance","render","destroyOnClose","onConfirm","onBeforeConfirm","confirmText","onCancel","onBeforeCancel","cancelText","showFooter","dialogProps","Dialog","useTemplatePromise","destroy","promiseOptions","ctx","key","bind","resolve","reject","isResolving","renderFunc","slots","default","footer","_createVNode","e","footerPrepend","ElButton","footerInner","footerAppend","ElDialog","_mergeProps","b","closeOnClickModal","closeOnPressEscape","title","center","beforeClose","prepareProps","container","document","createElement","newInstance","getCurrentInstance","config","inject","configProviderContextKey","vnode","h","ElConfigProvider","locale","appContext","nextTick","vRender","body","appendChild"],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@ type Options = {
|
|
|
5
5
|
width?: string;
|
|
6
6
|
dialogProps?: DialogOptions;
|
|
7
7
|
formData?: FormProps['model'];
|
|
8
|
+
onBeforeConfirm?: (formData: FormProps['model'], resolve: (value: FormProps['model']) => void) => Promise<void>;
|
|
9
|
+
onBeforeCancel?: (formData: FormProps['model'], resolve: (value: string) => void) => Promise<void>;
|
|
8
10
|
} & FormProps;
|
|
9
11
|
export declare const useFormDialog: (options?: Options) => import("el-plus/es").TemplatePromise<any, []>;
|
|
10
12
|
export {};
|
|
@@ -9,22 +9,19 @@ const useFormDialog = (options = {}) => {
|
|
|
9
9
|
dialogProps,
|
|
10
10
|
title,
|
|
11
11
|
width = "80%",
|
|
12
|
+
onBeforeConfirm,
|
|
13
|
+
onBeforeCancel,
|
|
12
14
|
...formProps
|
|
13
15
|
} = options;
|
|
14
16
|
const formRef = ref();
|
|
15
17
|
const isUseComFormData = !formProps.formData;
|
|
16
|
-
let formData
|
|
17
|
-
const isDestroy = dialogProps?.destroyOnClose;
|
|
18
|
-
const resetForm = async () => {
|
|
19
|
-
if (isDestroy) {
|
|
20
|
-
await formRef.value?.resetFields();
|
|
21
|
-
}
|
|
22
|
-
};
|
|
18
|
+
let formData;
|
|
23
19
|
return useDialog({
|
|
24
20
|
class: bem.b(),
|
|
25
21
|
width,
|
|
26
22
|
title,
|
|
27
23
|
render: () => {
|
|
24
|
+
formData = isUseComFormData ? reactive({}) : formProps.formData;
|
|
28
25
|
return createVNode(EpForm, mergeProps({
|
|
29
26
|
"ref": formRef,
|
|
30
27
|
"modelValue": formData,
|
|
@@ -37,11 +34,15 @@ const useFormDialog = (options = {}) => {
|
|
|
37
34
|
},
|
|
38
35
|
onConfirm: async (resolve) => {
|
|
39
36
|
await formRef.value.validate();
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
if (onBeforeConfirm) {
|
|
38
|
+
await onBeforeConfirm(formData, resolve);
|
|
39
|
+
}
|
|
40
|
+
return resolve(formData);
|
|
42
41
|
},
|
|
43
42
|
onCancel: async (resolve) => {
|
|
44
|
-
|
|
43
|
+
if (onBeforeCancel) {
|
|
44
|
+
await onBeforeCancel(formData, resolve);
|
|
45
|
+
}
|
|
45
46
|
resolve("cancel");
|
|
46
47
|
},
|
|
47
48
|
...dialogProps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form-dialog.mjs","sources":["../../../../../packages/hooks/dialog/use-form-dialog.tsx"],"sourcesContent":["import type { DialogOptions } from './use-dialog'\nimport type { FormProps } from '@el-plus/components/form'\nimport EpForm from '@el-plus/components/form'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useDialog } from './use-dialog'\nimport { reactive, ref, toRaw } from 'vue'\nconst bem = createNameSpace('form-dialog')\n\ntype Options = {\n title?: string\n width?: string\n dialogProps?: DialogOptions\n formData?: FormProps['model']\n} & FormProps\nexport const useFormDialog = (options: Options = {}) => {\n const {
|
|
1
|
+
{"version":3,"file":"use-form-dialog.mjs","sources":["../../../../../packages/hooks/dialog/use-form-dialog.tsx"],"sourcesContent":["import type { DialogOptions } from './use-dialog'\nimport type { FormProps } from '@el-plus/components/form'\nimport EpForm from '@el-plus/components/form'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useDialog } from './use-dialog'\nimport { reactive, ref, toRaw } from 'vue'\nconst bem = createNameSpace('form-dialog')\n\ntype Options = {\n title?: string\n width?: string\n dialogProps?: DialogOptions\n formData?: FormProps['model']\n onBeforeConfirm?: (\n formData: FormProps['model'],\n resolve: (value: FormProps['model']) => void,\n ) => Promise<void>\n onBeforeCancel?: (\n formData: FormProps['model'],\n resolve: (value: string) => void,\n ) => Promise<void>\n} & FormProps\nexport const useFormDialog = (options: Options = {}) => {\n const {\n dialogProps,\n title,\n width = '80%',\n onBeforeConfirm,\n onBeforeCancel,\n ...formProps\n } = options\n const formRef = ref()\n const isUseComFormData = !formProps.formData\n let formData\n return useDialog({\n class: bem.b(),\n width,\n title,\n render: () => {\n formData = isUseComFormData ? reactive({}) : formProps.formData // eslint-disable-line\n return (\n <EpForm\n ref={formRef}\n v-model={formData}\n {...{\n col: 1,\n 'label-width': 'auto',\n ...formProps,\n }}\n />\n )\n },\n onConfirm: async (resolve) => {\n await formRef.value.validate()\n if (onBeforeConfirm) {\n await onBeforeConfirm(formData, resolve)\n }\n return resolve(formData)\n },\n onCancel: async (resolve) => {\n if (onBeforeCancel) {\n await onBeforeCancel(formData, resolve)\n }\n resolve('cancel')\n },\n ...dialogProps,\n })\n}\n"],"names":["bem","createNameSpace","useFormDialog","options","dialogProps","title","width","onBeforeConfirm","onBeforeCancel","formProps","formRef","ref","isUseComFormData","formData","useDialog","class","b","render","reactive","_createVNode","EpForm","_mergeProps","$event","col","onConfirm","resolve","value","validate","onCancel"],"mappings":";;;;;AAMA,MAAMA,GAAAA,GAAMC,gBAAgB,aAAa,CAAA;AAgBlC,MAAMC,aAAAA,GAAgBA,CAACC,OAAAA,GAAmB,EAAC,KAAM;AACtD,EAAA,MAAM;AAAA,IACJC,WAAAA;AAAAA,IACAC,KAAAA;AAAAA,IACAC,KAAAA,GAAQ,KAAA;AAAA,IACRC,eAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACA,GAAGC;AAAAA,GACL,GAAIN,OAAAA;AACJ,EAAA,MAAMO,UAAUC,GAAAA,EAAI;AACpB,EAAA,MAAMC,gBAAAA,GAAmB,CAACH,SAAAA,CAAUI,QAAAA;AACpC,EAAA,IAAIA,QAAAA;AACJ,EAAA,OAAOC,SAAAA,CAAU;AAAA,IACfC,KAAAA,EAAOf,IAAIgB,CAAAA,EAAE;AAAA,IACbV,KAAAA;AAAAA,IACAD,KAAAA;AAAAA,IACAY,QAAQA,MAAM;AACZJ,MAAAA,QAAAA,GAAWD,gBAAAA,GAAmBM,QAAAA,CAAS,EAAE,IAAIT,SAAAA,CAAUI,QAAAA;AACvD,MAAA,OAAAM,WAAAA,CAAAC,QAAAC,UAAAA,CAAA;AAAA,QAAA,KAAA,EAESX,OAAAA;AAAAA,QAAO,YAAA,EACHG,QAAAA;AAAAA,QAAQ,qBAAA,EAAAS,YAART,QAAAA,GAAQS;AAAAA,OAAA,EAAA;AAAA,QAEfC,GAAAA,EAAK,CAAA;AAAA,QACL,aAAA,EAAe,MAAA;AAAA,QACf,GAAGd;AAAAA,OAAS,GAAA,IAAA,CAAA;AAAA,IAIpB,CAAA;AAAA,IACAe,SAAAA,EAAW,OAAOC,OAAAA,KAAY;AAC5B,MAAA,MAAMf,OAAAA,CAAQgB,MAAMC,QAAAA,EAAS;AAC7B,MAAA,IAAIpB,eAAAA,EAAiB;AACnB,QAAA,MAAMA,eAAAA,CAAgBM,UAAUY,OAAO,CAAA;AAAA,MACzC;AACA,MAAA,OAAOA,QAAQZ,QAAQ,CAAA;AAAA,IACzB,CAAA;AAAA,IACAe,QAAAA,EAAU,OAAOH,OAAAA,KAAY;AAC3B,MAAA,IAAIjB,cAAAA,EAAgB;AAClB,QAAA,MAAMA,cAAAA,CAAeK,UAAUY,OAAO,CAAA;AAAA,MACxC;AACAA,MAAAA,OAAAA,CAAQ,QAAQ,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,GAAGrB;AAAAA,GACJ,CAAA;AACH;;;;"}
|
package/es/hooks/use-locale.mjs
CHANGED
|
@@ -4,7 +4,13 @@ import { useLocale as useLocale$1 } from 'element-plus';
|
|
|
4
4
|
const elLocaleModules = import.meta.glob(
|
|
5
5
|
"/node_modules/element-plus/es/locale/lang/*.mjs"
|
|
6
6
|
);
|
|
7
|
-
|
|
7
|
+
let localeModules = import.meta.glob("../locale/lang/*.{mjs,ts}");
|
|
8
|
+
{
|
|
9
|
+
localeModules = import.meta.glob(
|
|
10
|
+
"/node_modules/el-plus/es/locale/lang/*.{mjs,ts}"
|
|
11
|
+
// 打包后到vite项目,因为有optimizeDeps,会找不到, 所以要在生产环境下重新判断
|
|
12
|
+
);
|
|
13
|
+
}
|
|
8
14
|
const TRANSLATER_KEY = /* @__PURE__ */ Symbol("TRANSLATER_KEY");
|
|
9
15
|
let cachedTranslater = null;
|
|
10
16
|
const useLocale = () => {
|
|
@@ -32,7 +38,10 @@ const useLocale = () => {
|
|
|
32
38
|
const provideFn = inSetup2 ? provide : app.provide;
|
|
33
39
|
return new Promise(async (resolve) => {
|
|
34
40
|
try {
|
|
35
|
-
|
|
41
|
+
let basePath = "../locale/lang/";
|
|
42
|
+
if ("production" === "production") {
|
|
43
|
+
basePath = "/node_modules/el-plus/es/locale/lang/";
|
|
44
|
+
}
|
|
36
45
|
const ext = "production" === "production" ? ".mjs" : ".ts";
|
|
37
46
|
const modulePath = basePath + localeLang + ext;
|
|
38
47
|
let loader = localeModules[modulePath];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-locale.mjs","sources":["../../../../packages/hooks/use-locale.ts"],"sourcesContent":["import {\n ref,\n inject,\n provide,\n getCurrentInstance,\n type App,\n nextTick,\n} from 'vue'\nimport { useLocale as useElLocale } from 'element-plus'\nimport type { Language } from 'element-plus/es/locale'\nconst elLocaleModules = import.meta.glob(\n '/node_modules/element-plus/es/locale/lang/*.mjs',\n)\
|
|
1
|
+
{"version":3,"file":"use-locale.mjs","sources":["../../../../packages/hooks/use-locale.ts"],"sourcesContent":["import {\n ref,\n inject,\n provide,\n getCurrentInstance,\n type App,\n nextTick,\n} from 'vue'\nimport { useLocale as useElLocale } from 'element-plus'\nimport type { Language } from 'element-plus/es/locale'\nconst elLocaleModules = import.meta.glob(\n '/node_modules/element-plus/es/locale/lang/*.mjs',\n)\nlet localeModules = import.meta.glob('../locale/lang/*.{mjs,ts}')\nif (process.env.NODE_ENV === 'production') {\n localeModules = import.meta.glob(\n '/node_modules/el-plus/es/locale/lang/*.{mjs,ts}', // 打包后到vite项目,因为有optimizeDeps,会找不到, 所以要在生产环境下重新判断\n )\n}\nconst TRANSLATER_KEY = Symbol('TRANSLATER_KEY')\nexport type Translater = (key: string) => string\nlet cachedTranslater: Translater | null = null\nexport const useLocale = () => {\n const localeLang = window.hxlang?.toLocaleLowerCase().split('_').join('-')\n const addLangClass = async (lang: string) => {\n await nextTick()\n const el = document.querySelector('html')\n const langclass = 'no-cn'\n if (el && lang !== 'ZH_CN') {\n el.classList.add(langclass)\n }\n }\n const inSetup = !!getCurrentInstance()\n const translater = inSetup ? inject<Translater>(TRANSLATER_KEY) : null\n if (translater) {\n cachedTranslater = translater\n }\n const loadLocale = (app?: App) => {\n const inSetup = !!getCurrentInstance()\n if (!inSetup && !app) {\n return console.error(\n 'app is required when useLocale is called outside of setup',\n )\n }\n const provideFn = inSetup ? provide : app!.provide\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<void>(async (resolve) => {\n try {\n let basePath = '../locale/lang/'\n if (process.env.NODE_ENV === 'production') {\n basePath = '/node_modules/el-plus/es/locale/lang/'\n }\n const ext = process.env.NODE_ENV === 'production' ? '.mjs' : '.ts'\n const modulePath = basePath + localeLang + ext\n let loader = localeModules[modulePath]\n if (!loader) {\n loader = localeModules[basePath + 'en' + ext]\n }\n const module = (await loader()) as { default: Language }\n const { t } = useElLocale(ref(module.default as unknown as Language))\n provideFn(TRANSLATER_KEY, t)\n resolve()\n addLangClass(window.hxlang!)\n } catch (error) {\n console.error(error)\n }\n })\n }\n const loadElLocale = async () => {\n const basePath = '/node_modules/element-plus/es/locale/lang/'\n const ext = '.mjs'\n const modulePath = basePath + localeLang + ext\n let loader = elLocaleModules[modulePath]\n if (!loader) {\n loader = elLocaleModules[basePath + 'en' + ext]\n }\n const module = (await loader()) as { default: Language }\n return module.default\n }\n return {\n loadLocale,\n loadElLocale,\n t: (key) => {\n // // 如果已经有缓存的 translater,直接使用\n if (cachedTranslater) {\n return cachedTranslater(key)\n }\n // const translater = inject<Translater>(TRANSLATER_KEY)\n if (translater) {\n // cachedTranslater = translater // 缓存起来\n return translater(key)\n }\n return key\n },\n }\n}\n"],"names":["inSetup","useElLocale"],"mappings":"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"}
|
package/es/package.json.mjs
CHANGED
|
@@ -31,7 +31,7 @@ var EpFormItem = /* @__PURE__ */ vue.defineComponent({
|
|
|
31
31
|
} = props$1;
|
|
32
32
|
return () => {
|
|
33
33
|
return vue.createVNode(elementPlus.ElFormItem, vue.mergeProps({
|
|
34
|
-
"class": [bem.b(), props.prepareClassNames()],
|
|
34
|
+
"class": [bem.b(), bem.is("hide-label", !props$1.isShowLabel), props.prepareClassNames()],
|
|
35
35
|
"style": props.prepareStyles()
|
|
36
36
|
}, {
|
|
37
37
|
...props.prepareProps(formItemProps2, [...formItem.expandFormItemPropsKeys]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-item-vue.js","sources":["../../../../../../packages/components/form/src/form-item-vue.tsx"],"sourcesContent":["import { defineComponent, useAttrs } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useFormItemRules, useFormItemSlots } from './hooks/use-form-item'\nimport { ElFormItem } from 'element-plus'\n\nimport { formItemProps, expandFormItemPropsKeys } from './form-item'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nconst bem = createNameSpace('form-item')\nexport default defineComponent({\n name: 'EpFormItem',\n inheritAttrs: false,\n props: formItemProps,\n setup(props, { emit }) {\n // const {} = useFormItem(props)\n const attrs = useAttrs()\n const { scopedSlots } = useFormItemSlots(props)\n const { rules } = useFormItemRules(props)\n const { props: childProps, disabled, ...formItemProps } = props // eslint-disable-line\n return () => {\n return (\n <ElFormItem\n class={[bem.b(), prepareClassNames()]}\n style={prepareStyles()}\n v-slots={scopedSlots}\n {...{\n ...prepareProps(formItemProps, [...expandFormItemPropsKeys]),\n rules,\n 'label-width': attrs['form-label-width'],\n }}\n // scopedSlots={scopedSlots}\n // label={label}\n // prop={prop}\n // rules={mergeRules}\n // {...{ props: formItemProps }}\n />\n )\n }\n },\n})\n"],"names":["bem","createNameSpace","name","inheritAttrs","props","formItemProps","setup","emit","attrs","useAttrs","scopedSlots","useFormItemSlots","rules","useFormItemRules","childProps","disabled","_createVNode","ElFormItem","_mergeProps","b","prepareClassNames","prepareStyles","prepareProps","expandFormItemPropsKeys"],"mappings":";;;;;;;;;;;AAYA,MAAMA,GAAAA,GAAMC,sBAAgB,WAAW,CAAA;AACvC,qDAA+B;AAAA,EAC7BC,IAAAA,EAAM,YAAA;AAAA,EACNC,YAAAA,EAAc,KAAA;AAAA,EACdC,KAAAA,EAAOC,sBAAAA;AAAAA,EACPC,MAAMF,OAAAA,EAAO;AAAA,IAAEG;AAAAA,GAAK,EAAG;AAErB,IAAA,MAAMC,QAAQC,YAAAA,EAAS;AACvB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAY,GAAIC,6BAAiBP,OAAK,CAAA;AAC9C,IAAA,MAAM;AAAA,MAAEQ;AAAAA,KAAM,GAAIC,6BAAiBT,OAAK,CAAA;AACxC,IAAA,MAAM;AAAA,MAAEA,KAAAA,EAAOU,UAAAA;AAAAA,MAAYC,QAAAA;AAAAA,MAAU,GAAGV;AAAAA,KAAc,GAAID,OAAAA;AAC1D,IAAA,OAAO,MAAM;AACX,MAAA,OAAAY,eAAAA,CAAAC,wBAAAC,cAAAA,CAAA;AAAA,QAAA,
|
|
1
|
+
{"version":3,"file":"form-item-vue.js","sources":["../../../../../../packages/components/form/src/form-item-vue.tsx"],"sourcesContent":["import { defineComponent, useAttrs } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useFormItemRules, useFormItemSlots } from './hooks/use-form-item'\nimport { ElFormItem } from 'element-plus'\n\nimport { formItemProps, expandFormItemPropsKeys } from './form-item'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nconst bem = createNameSpace('form-item')\nexport default defineComponent({\n name: 'EpFormItem',\n inheritAttrs: false,\n props: formItemProps,\n setup(props, { emit }) {\n // const {} = useFormItem(props)\n const attrs = useAttrs()\n const { scopedSlots } = useFormItemSlots(props)\n const { rules } = useFormItemRules(props)\n const { props: childProps, disabled, ...formItemProps } = props // eslint-disable-line\n return () => {\n return (\n <ElFormItem\n class={[\n bem.b(),\n bem.is('hide-label', !props.isShowLabel),\n prepareClassNames(),\n ]}\n style={prepareStyles()}\n v-slots={scopedSlots}\n {...{\n ...prepareProps(formItemProps, [...expandFormItemPropsKeys]),\n rules,\n 'label-width': attrs['form-label-width'],\n }}\n // scopedSlots={scopedSlots}\n // label={label}\n // prop={prop}\n // rules={mergeRules}\n // {...{ props: formItemProps }}\n />\n )\n }\n },\n})\n"],"names":["bem","createNameSpace","name","inheritAttrs","props","formItemProps","setup","emit","attrs","useAttrs","scopedSlots","useFormItemSlots","rules","useFormItemRules","childProps","disabled","_createVNode","ElFormItem","_mergeProps","b","is","isShowLabel","prepareClassNames","prepareStyles","prepareProps","expandFormItemPropsKeys"],"mappings":";;;;;;;;;;;AAYA,MAAMA,GAAAA,GAAMC,sBAAgB,WAAW,CAAA;AACvC,qDAA+B;AAAA,EAC7BC,IAAAA,EAAM,YAAA;AAAA,EACNC,YAAAA,EAAc,KAAA;AAAA,EACdC,KAAAA,EAAOC,sBAAAA;AAAAA,EACPC,MAAMF,OAAAA,EAAO;AAAA,IAAEG;AAAAA,GAAK,EAAG;AAErB,IAAA,MAAMC,QAAQC,YAAAA,EAAS;AACvB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAY,GAAIC,6BAAiBP,OAAK,CAAA;AAC9C,IAAA,MAAM;AAAA,MAAEQ;AAAAA,KAAM,GAAIC,6BAAiBT,OAAK,CAAA;AACxC,IAAA,MAAM;AAAA,MAAEA,KAAAA,EAAOU,UAAAA;AAAAA,MAAYC,QAAAA;AAAAA,MAAU,GAAGV;AAAAA,KAAc,GAAID,OAAAA;AAC1D,IAAA,OAAO,MAAM;AACX,MAAA,OAAAY,eAAAA,CAAAC,wBAAAC,cAAAA,CAAA;AAAA,QAAA,OAAA,EAEW,CACLlB,GAAAA,CAAImB,CAAAA,EAAE,EACNnB,GAAAA,CAAIoB,EAAAA,CAAG,YAAA,EAAc,CAAChB,OAAAA,CAAMiB,WAAW,CAAA,EACvCC,yBAAmB,CAAA;AAAA,QACpB,SACMC,mBAAAA;AAAc,OAAC,EAAA;AAAA,QAGpB,GAAGC,kBAAAA,CAAanB,cAAAA,EAAe,CAAC,GAAGoB,gCAAuB,CAAC,CAAA;AAAA,QAC3Db,KAAAA;AAAAA,QACA,aAAA,EAAeJ,MAAM,kBAAkB;AAAA,OAAC,GAJjCE,WAAW,CAAA;AAAA,IAa1B,CAAA;AAAA,EACF;AACF,CAAC,CAAA;;;;"}
|