element-plus 2.1.3 → 2.1.4
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/dist/index.css +1 -1
- package/dist/index.full.js +32 -13
- package/dist/index.full.min.js +7 -7
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +7 -7
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +32 -13
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/components/dialog/src/dialog.d.ts +1 -1
- package/es/components/dialog/src/dialog.mjs.map +1 -1
- package/es/components/dialog/src/use-dialog.mjs.map +1 -1
- package/es/components/form/index.d.ts +18 -12
- package/es/components/form/index.mjs.map +1 -1
- package/es/components/form/src/form-item.d.ts +2 -3
- package/es/components/form/src/form-item.mjs.map +1 -1
- package/es/components/form/src/form-item.vue.d.ts +6 -4
- package/es/components/form/src/form-item2.mjs +15 -6
- package/es/components/form/src/form-item2.mjs.map +1 -1
- package/es/components/form/src/form.d.ts +1 -3
- package/es/components/form/src/form.mjs.map +1 -1
- package/es/components/form/src/form.vue.d.ts +5 -5
- package/es/components/form/src/form2.mjs +3 -1
- package/es/components/form/src/form2.mjs.map +1 -1
- package/es/components/input-number/src/input-number2.mjs +5 -0
- package/es/components/input-number/src/input-number2.mjs.map +1 -1
- package/es/components/menu/src/menu.mjs +1 -1
- package/es/components/menu/src/menu.mjs.map +1 -1
- package/es/components/table/index.d.ts +1 -1
- package/es/components/table/src/table/style-helper.d.ts +1 -1
- package/es/components/table/src/table/style-helper.mjs +3 -3
- package/es/components/table/src/table/style-helper.mjs.map +1 -1
- package/es/components/table/src/table.vue.d.ts +1 -1
- package/es/utils/types.mjs +5 -1
- package/es/utils/types.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/dialog/src/dialog.d.ts +1 -1
- package/lib/components/dialog/src/dialog.js.map +1 -1
- package/lib/components/dialog/src/use-dialog.js.map +1 -1
- package/lib/components/form/index.d.ts +18 -12
- package/lib/components/form/index.js.map +1 -1
- package/lib/components/form/src/form-item.d.ts +2 -3
- package/lib/components/form/src/form-item.js.map +1 -1
- package/lib/components/form/src/form-item.vue.d.ts +6 -4
- package/lib/components/form/src/form-item2.js +14 -5
- package/lib/components/form/src/form-item2.js.map +1 -1
- package/lib/components/form/src/form.d.ts +1 -3
- package/lib/components/form/src/form.js.map +1 -1
- package/lib/components/form/src/form.vue.d.ts +5 -5
- package/lib/components/form/src/form2.js +3 -1
- package/lib/components/form/src/form2.js.map +1 -1
- package/lib/components/input-number/src/input-number2.js +5 -0
- package/lib/components/input-number/src/input-number2.js.map +1 -1
- package/lib/components/menu/src/menu.js +1 -1
- package/lib/components/menu/src/menu.js.map +1 -1
- package/lib/components/table/index.d.ts +1 -1
- package/lib/components/table/src/table/style-helper.d.ts +1 -1
- package/lib/components/table/src/table/style-helper.js +3 -3
- package/lib/components/table/src/table/style-helper.js.map +1 -1
- package/lib/components/table/src/table.vue.d.ts +1 -1
- package/lib/utils/types.js +5 -1
- package/lib/utils/types.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/theme-chalk/el-table.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/table.scss +2 -0
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-dialog.mjs","sources":["../../../../../../packages/components/dialog/src/use-dialog.ts"],"sourcesContent":["import {\n computed,\n ref,\n watch,\n nextTick,\n onMounted,\n getCurrentInstance,\n} from 'vue'\nimport { useTimeoutFn, isClient } from '@vueuse/core'\n\nimport {\n useLockscreen,\n useRestoreActive,\n useModal,\n useZIndex,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { isNumber } from '@element-plus/utils'\n\nimport type { CSSProperties, Ref, SetupContext } from 'vue'\nimport type { DialogEmits, DialogProps } from './dialog'\n\nexport const useDialog = (\n props: DialogProps,\n targetRef: Ref<HTMLElement | undefined>\n) => {\n const instance = getCurrentInstance()!\n const emit = instance.emit as SetupContext<DialogEmits>['emit']\n const { nextZIndex } = useZIndex()\n\n let lastPosition = ''\n const visible = ref(false)\n const closed = ref(false)\n const rendered = ref(false) // when desctroyOnClose is true, we initialize it as false vise versa\n const zIndex = ref(props.zIndex || nextZIndex())\n\n let openTimer: (() => void) | undefined = undefined\n let closeTimer: (() => void) | undefined = undefined\n\n const normalizeWidth = computed(() =>\n isNumber(props.width) ? `${props.width}px` : props.width\n )\n\n const style = computed<CSSProperties>(() => {\n const style: CSSProperties = {}\n const varPrefix = `--el-dialog`\n if (!props.fullscreen) {\n if (props.top) {\n style[`${varPrefix}-margin-top`] = props.top\n }\n if (props.width) {\n style[`${varPrefix}-width`] = normalizeWidth.value\n }\n }\n return style\n })\n\n function afterEnter() {\n emit('opened')\n }\n\n function afterLeave() {\n emit('closed')\n emit(UPDATE_MODEL_EVENT, false)\n if (props.destroyOnClose) {\n rendered.value = false\n }\n }\n\n function beforeLeave() {\n emit('close')\n }\n\n function open() {\n closeTimer?.()\n openTimer?.()\n\n if (props.openDelay && props.openDelay > 0) {\n ;({ stop: openTimer } = useTimeoutFn(() => doOpen(), props.openDelay))\n } else {\n doOpen()\n }\n }\n\n function close() {\n openTimer?.()\n closeTimer?.()\n\n if (props.closeDelay && props.closeDelay > 0) {\n ;({ stop: closeTimer } = useTimeoutFn(() => doClose(), props.closeDelay))\n } else {\n doClose()\n }\n }\n\n function handleClose() {\n function hide(shouldCancel
|
|
1
|
+
{"version":3,"file":"use-dialog.mjs","sources":["../../../../../../packages/components/dialog/src/use-dialog.ts"],"sourcesContent":["import {\n computed,\n ref,\n watch,\n nextTick,\n onMounted,\n getCurrentInstance,\n} from 'vue'\nimport { useTimeoutFn, isClient } from '@vueuse/core'\n\nimport {\n useLockscreen,\n useRestoreActive,\n useModal,\n useZIndex,\n} from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { isNumber } from '@element-plus/utils'\n\nimport type { CSSProperties, Ref, SetupContext } from 'vue'\nimport type { DialogEmits, DialogProps } from './dialog'\n\nexport const useDialog = (\n props: DialogProps,\n targetRef: Ref<HTMLElement | undefined>\n) => {\n const instance = getCurrentInstance()!\n const emit = instance.emit as SetupContext<DialogEmits>['emit']\n const { nextZIndex } = useZIndex()\n\n let lastPosition = ''\n const visible = ref(false)\n const closed = ref(false)\n const rendered = ref(false) // when desctroyOnClose is true, we initialize it as false vise versa\n const zIndex = ref(props.zIndex || nextZIndex())\n\n let openTimer: (() => void) | undefined = undefined\n let closeTimer: (() => void) | undefined = undefined\n\n const normalizeWidth = computed(() =>\n isNumber(props.width) ? `${props.width}px` : props.width\n )\n\n const style = computed<CSSProperties>(() => {\n const style: CSSProperties = {}\n const varPrefix = `--el-dialog`\n if (!props.fullscreen) {\n if (props.top) {\n style[`${varPrefix}-margin-top`] = props.top\n }\n if (props.width) {\n style[`${varPrefix}-width`] = normalizeWidth.value\n }\n }\n return style\n })\n\n function afterEnter() {\n emit('opened')\n }\n\n function afterLeave() {\n emit('closed')\n emit(UPDATE_MODEL_EVENT, false)\n if (props.destroyOnClose) {\n rendered.value = false\n }\n }\n\n function beforeLeave() {\n emit('close')\n }\n\n function open() {\n closeTimer?.()\n openTimer?.()\n\n if (props.openDelay && props.openDelay > 0) {\n ;({ stop: openTimer } = useTimeoutFn(() => doOpen(), props.openDelay))\n } else {\n doOpen()\n }\n }\n\n function close() {\n openTimer?.()\n closeTimer?.()\n\n if (props.closeDelay && props.closeDelay > 0) {\n ;({ stop: closeTimer } = useTimeoutFn(() => doClose(), props.closeDelay))\n } else {\n doClose()\n }\n }\n\n function handleClose() {\n function hide(shouldCancel?: boolean) {\n if (shouldCancel) return\n closed.value = true\n visible.value = false\n }\n\n if (props.beforeClose) {\n props.beforeClose(hide)\n } else {\n close()\n }\n }\n\n function onModalClick() {\n if (props.closeOnClickModal) {\n handleClose()\n }\n }\n\n function doOpen() {\n if (!isClient) return\n visible.value = true\n }\n\n function doClose() {\n visible.value = false\n }\n\n if (props.lockScroll) {\n useLockscreen(visible)\n }\n\n if (props.closeOnPressEscape) {\n useModal(\n {\n handleClose,\n },\n visible\n )\n }\n\n useRestoreActive(visible)\n\n watch(\n () => props.modelValue,\n (val) => {\n if (val) {\n closed.value = false\n open()\n rendered.value = true // enables lazy rendering\n emit('open')\n zIndex.value = props.zIndex ? zIndex.value++ : nextZIndex()\n // this.$el.addEventListener('scroll', this.updatePopper)\n nextTick(() => {\n if (targetRef.value) {\n targetRef.value.scrollTop = 0\n }\n })\n } else {\n // this.$el.removeEventListener('scroll', this.updatePopper\n if (visible.value) {\n close()\n }\n }\n }\n )\n\n watch(\n () => props.fullscreen,\n (val) => {\n if (!targetRef.value) return\n if (val) {\n lastPosition = targetRef.value.style.transform\n targetRef.value.style.transform = ''\n } else {\n targetRef.value.style.transform = lastPosition\n }\n }\n )\n\n onMounted(() => {\n if (props.modelValue) {\n visible.value = true\n rendered.value = true // enables lazy rendering\n open()\n }\n })\n\n return {\n afterEnter,\n afterLeave,\n beforeLeave,\n handleClose,\n onModalClick,\n close,\n doClose,\n closed,\n style,\n rendered,\n visible,\n zIndex,\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import Form from './src/form.vue';
|
|
2
|
+
import FormItem from './src/form-item.vue';
|
|
1
3
|
export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<import("vue").DefineComponent<{
|
|
2
4
|
readonly model: ObjectConstructor;
|
|
3
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
5
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
|
|
4
6
|
readonly labelPosition: StringConstructor;
|
|
5
7
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
6
8
|
readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
|
|
@@ -17,7 +19,7 @@ export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<impo
|
|
|
17
19
|
COMPONENT_NAME: string;
|
|
18
20
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
19
21
|
readonly model: ObjectConstructor;
|
|
20
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
22
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
|
|
21
23
|
readonly labelPosition: StringConstructor;
|
|
22
24
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
23
25
|
readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
|
|
@@ -67,7 +69,7 @@ export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<impo
|
|
|
67
69
|
validate: (prop: import("./src/form-item").FormItemProp, isValid: boolean, message: string) => boolean;
|
|
68
70
|
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
69
71
|
readonly model: ObjectConstructor;
|
|
70
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
72
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
|
|
71
73
|
readonly labelPosition: StringConstructor;
|
|
72
74
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
73
75
|
readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
|
|
@@ -85,7 +87,7 @@ export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<impo
|
|
|
85
87
|
}, {
|
|
86
88
|
size: import("element-plus/es/utils").BuildPropType<StringConstructor, "default" | "small" | "large", unknown>;
|
|
87
89
|
disabled: boolean;
|
|
88
|
-
rules:
|
|
90
|
+
rules: Partial<Record<string, import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>>;
|
|
89
91
|
labelWidth: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
|
|
90
92
|
labelSuffix: string;
|
|
91
93
|
showMessage: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -101,7 +103,7 @@ export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<impo
|
|
|
101
103
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
102
104
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
103
105
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
104
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
106
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
105
107
|
readonly error: StringConstructor;
|
|
106
108
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
107
109
|
readonly for: StringConstructor;
|
|
@@ -115,7 +117,7 @@ export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<impo
|
|
|
115
117
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
116
118
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
117
119
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
118
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
120
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
119
121
|
readonly error: StringConstructor;
|
|
120
122
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
121
123
|
readonly for: StringConstructor;
|
|
@@ -170,6 +172,7 @@ export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<impo
|
|
|
170
172
|
currentLabel: import("vue").ComputedRef<string>;
|
|
171
173
|
setValidationState: (state: "" | "success" | "error" | "validating") => void;
|
|
172
174
|
onValidationFailed: (error: import("../..").FormValidateFailure) => void;
|
|
175
|
+
onValidationSucceeded: () => void;
|
|
173
176
|
doValidate: (rules: import("async-validator").RuleItem[]) => Promise<true>;
|
|
174
177
|
validate: (trigger: string, callback?: import("../..").FormValidateCallback | undefined) => import("../..").FormValidationResult;
|
|
175
178
|
clearValidate: () => void;
|
|
@@ -190,7 +193,7 @@ export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<impo
|
|
|
190
193
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
191
194
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
192
195
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
193
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
196
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
194
197
|
readonly error: StringConstructor;
|
|
195
198
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
196
199
|
readonly for: StringConstructor;
|
|
@@ -200,7 +203,7 @@ export declare const ElForm: import("element-plus/es/utils").SFCWithInstall<impo
|
|
|
200
203
|
}>>, {
|
|
201
204
|
required: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
202
205
|
size: import("element-plus/es/utils").BuildPropType<StringConstructor, "default" | "small" | "large", unknown>;
|
|
203
|
-
rules:
|
|
206
|
+
rules: import("element-plus/es/utils").BuildPropType<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>, unknown, unknown>;
|
|
204
207
|
labelWidth: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
|
|
205
208
|
showMessage: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
206
209
|
inlineMessage: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
|
|
@@ -214,7 +217,7 @@ export declare const ElFormItem: import("element-plus/es/utils").SFCWithInstall<
|
|
|
214
217
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
215
218
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
216
219
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
217
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
220
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
218
221
|
readonly error: StringConstructor;
|
|
219
222
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
220
223
|
readonly for: StringConstructor;
|
|
@@ -228,7 +231,7 @@ export declare const ElFormItem: import("element-plus/es/utils").SFCWithInstall<
|
|
|
228
231
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
229
232
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
230
233
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
231
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
234
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
232
235
|
readonly error: StringConstructor;
|
|
233
236
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
234
237
|
readonly for: StringConstructor;
|
|
@@ -283,6 +286,7 @@ export declare const ElFormItem: import("element-plus/es/utils").SFCWithInstall<
|
|
|
283
286
|
currentLabel: import("vue").ComputedRef<string>;
|
|
284
287
|
setValidationState: (state: "" | "success" | "error" | "validating") => void;
|
|
285
288
|
onValidationFailed: (error: import("../..").FormValidateFailure) => void;
|
|
289
|
+
onValidationSucceeded: () => void;
|
|
286
290
|
doValidate: (rules: import("async-validator").RuleItem[]) => Promise<true>;
|
|
287
291
|
validate: (trigger: string, callback?: import("../..").FormValidateCallback | undefined) => import("../..").FormValidationResult;
|
|
288
292
|
clearValidate: () => void;
|
|
@@ -303,7 +307,7 @@ export declare const ElFormItem: import("element-plus/es/utils").SFCWithInstall<
|
|
|
303
307
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
304
308
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./src/form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
305
309
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
306
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
310
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
307
311
|
readonly error: StringConstructor;
|
|
308
312
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
309
313
|
readonly for: StringConstructor;
|
|
@@ -313,7 +317,7 @@ export declare const ElFormItem: import("element-plus/es/utils").SFCWithInstall<
|
|
|
313
317
|
}>>, {
|
|
314
318
|
required: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
315
319
|
size: import("element-plus/es/utils").BuildPropType<StringConstructor, "default" | "small" | "large", unknown>;
|
|
316
|
-
rules:
|
|
320
|
+
rules: import("element-plus/es/utils").BuildPropType<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<import("../..").FormItemRule>>, unknown, unknown>;
|
|
317
321
|
labelWidth: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
|
|
318
322
|
showMessage: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
319
323
|
inlineMessage: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
|
|
@@ -323,3 +327,5 @@ export declare const ElFormItem: import("element-plus/es/utils").SFCWithInstall<
|
|
|
323
327
|
export * from './src/form';
|
|
324
328
|
export * from './src/form-item';
|
|
325
329
|
export * from './src/types';
|
|
330
|
+
export declare type FormInstance = InstanceType<typeof Form>;
|
|
331
|
+
export declare type FormItemInstance = InstanceType<typeof FormItem>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/form/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Form from './src/form.vue'\nimport FormItem from './src/form-item.vue'\n\nexport const ElForm = withInstall(Form, {\n FormItem,\n})\nexport default ElForm\nexport const ElFormItem = withNoopInstall(FormItem)\n\nexport * from './src/form'\nexport * from './src/form-item'\nexport * from './src/types'\n"],"names":["Form","FormItem"],"mappings":";;;;;;;;AAGY,MAAC,MAAM,GAAG,WAAW,CAACA,SAAI,EAAE;AACxC,YAAEC,WAAQ;AACV,CAAC,EAAE;AAES,MAAC,UAAU,GAAG,eAAe,CAACA,WAAQ;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/form/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Form from './src/form.vue'\nimport FormItem from './src/form-item.vue'\n\nexport const ElForm = withInstall(Form, {\n FormItem,\n})\nexport default ElForm\nexport const ElFormItem = withNoopInstall(FormItem)\n\nexport * from './src/form'\nexport * from './src/form-item'\nexport * from './src/types'\n\nexport type FormInstance = InstanceType<typeof Form>\nexport type FormItemInstance = InstanceType<typeof FormItem>\n"],"names":["Form","FormItem"],"mappings":";;;;;;;;AAGY,MAAC,MAAM,GAAG,WAAW,CAACA,SAAI,EAAE;AACxC,YAAEC,WAAQ;AACV,CAAC,EAAE;AAES,MAAC,UAAU,GAAG,eAAe,CAACA,WAAQ;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ExtractPropTypes } from 'vue';
|
|
2
2
|
import type { Arrayable } from 'element-plus/es/utils';
|
|
3
|
-
import type
|
|
3
|
+
import type { FormItemRule } from 'element-plus/es/tokens';
|
|
4
4
|
export declare const formItemValidateStates: readonly ["", "error", "validating", "success"];
|
|
5
5
|
export declare type FormItemValidateState = typeof formItemValidateStates[number];
|
|
6
6
|
export declare type FormItemProp = Arrayable<string>;
|
|
@@ -9,7 +9,7 @@ export declare const formItemProps: {
|
|
|
9
9
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
10
10
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
11
11
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
12
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
12
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Arrayable<FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
13
13
|
readonly error: StringConstructor;
|
|
14
14
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
15
15
|
readonly for: StringConstructor;
|
|
@@ -18,4 +18,3 @@ export declare const formItemProps: {
|
|
|
18
18
|
readonly size: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "default" | "small" | "large", unknown>;
|
|
19
19
|
};
|
|
20
20
|
export declare type FormItemProps = ExtractPropTypes<typeof formItemProps>;
|
|
21
|
-
export declare type FormItemInstance = InstanceType<typeof FormItem>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-item.mjs","sources":["../../../../../../packages/components/form/src/form-item.ts"],"sourcesContent":["import { componentSizes } from '@element-plus/constants'\nimport { buildProps, definePropType } from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { Arrayable } from '@element-plus/utils'\nimport type
|
|
1
|
+
{"version":3,"file":"form-item.mjs","sources":["../../../../../../packages/components/form/src/form-item.ts"],"sourcesContent":["import { componentSizes } from '@element-plus/constants'\nimport { buildProps, definePropType } from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormItemRule } from '@element-plus/tokens'\n\nexport const formItemValidateStates = [\n '',\n 'error',\n 'validating',\n 'success',\n] as const\nexport type FormItemValidateState = typeof formItemValidateStates[number]\n\nexport type FormItemProp = Arrayable<string>\n\nexport const formItemProps = buildProps({\n label: String,\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n prop: {\n type: definePropType<FormItemProp>([String, Array]),\n },\n required: {\n type: Boolean,\n default: undefined,\n },\n rules: {\n type: definePropType<Arrayable<FormItemRule>>([Object, Array]),\n },\n error: String,\n validateStatus: {\n type: String,\n values: formItemValidateStates,\n },\n for: String,\n inlineMessage: {\n type: [String, Boolean],\n default: '',\n },\n showMessage: {\n type: Boolean,\n default: true,\n },\n size: {\n type: String,\n values: componentSizes,\n },\n} as const)\nexport type FormItemProps = ExtractPropTypes<typeof formItemProps>\n"],"names":[],"mappings":";;;;;AAEY,MAAC,sBAAsB,GAAG;AACtC,EAAE,EAAE;AACJ,EAAE,OAAO;AACT,EAAE,YAAY;AACd,EAAE,SAAS;AACX,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,CAAC;AACxC,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzC,GAAG;AACH,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,cAAc,EAAE;AAClB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,sBAAsB;AAClC,GAAG;AACH,EAAE,GAAG,EAAE,MAAM;AACb,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;AAC3B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,GAAG;AACH,CAAC;;;;"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { CSSProperties } from 'vue';
|
|
2
2
|
import type { RuleItem } from 'async-validator';
|
|
3
3
|
import type { FormItemContext, FormItemRule, FormValidateFailure } from 'element-plus/es/tokens';
|
|
4
|
+
import type { Arrayable } from 'element-plus/es/utils';
|
|
4
5
|
import type { FormItemValidateState } from './form-item';
|
|
5
6
|
declare const _default: import("vue").DefineComponent<{
|
|
6
7
|
readonly label: StringConstructor;
|
|
7
8
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
8
9
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
9
10
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
10
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
11
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Arrayable<FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
11
12
|
readonly error: StringConstructor;
|
|
12
13
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
13
14
|
readonly for: StringConstructor;
|
|
@@ -21,7 +22,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
21
22
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
22
23
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
23
24
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
24
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
25
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Arrayable<FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
25
26
|
readonly error: StringConstructor;
|
|
26
27
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
27
28
|
readonly for: StringConstructor;
|
|
@@ -76,6 +77,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
76
77
|
currentLabel: import("vue").ComputedRef<string>;
|
|
77
78
|
setValidationState: (state: FormItemValidateState) => void;
|
|
78
79
|
onValidationFailed: (error: FormValidateFailure) => void;
|
|
80
|
+
onValidationSucceeded: () => void;
|
|
79
81
|
doValidate: (rules: RuleItem[]) => Promise<true>;
|
|
80
82
|
validate: (trigger: string, callback?: import("element-plus/es/tokens").FormValidateCallback | undefined) => import("element-plus/es/tokens").FormValidationResult;
|
|
81
83
|
clearValidate: () => void;
|
|
@@ -96,7 +98,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
96
98
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
97
99
|
readonly prop: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<import("./form-item").FormItemProp>, unknown, unknown, unknown, unknown>;
|
|
98
100
|
readonly required: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, undefined, unknown, unknown, unknown>;
|
|
99
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
101
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Arrayable<FormItemRule>>, unknown, unknown, unknown, unknown>;
|
|
100
102
|
readonly error: StringConstructor;
|
|
101
103
|
readonly validateStatus: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "" | "success" | "error" | "validating", unknown>;
|
|
102
104
|
readonly for: StringConstructor;
|
|
@@ -106,7 +108,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
106
108
|
}>>, {
|
|
107
109
|
required: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
108
110
|
size: import("element-plus/es/utils").BuildPropType<StringConstructor, "default" | "small" | "large", unknown>;
|
|
109
|
-
rules:
|
|
111
|
+
rules: import("element-plus/es/utils").BuildPropType<import("element-plus/es/utils").PropWrapper<Arrayable<FormItemRule>>, unknown, unknown>;
|
|
110
112
|
labelWidth: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
|
|
111
113
|
showMessage: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
112
114
|
inlineMessage: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
|
|
@@ -12,7 +12,7 @@ import { useSize } from '../../../hooks/use-common-props/index.mjs';
|
|
|
12
12
|
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
13
13
|
import { addUnit } from '../../../utils/vue/style.mjs';
|
|
14
14
|
import { isBoolean } from '@vueuse/core';
|
|
15
|
-
import { isString } from '@vue/shared';
|
|
15
|
+
import { isString, isFunction } from '@vue/shared';
|
|
16
16
|
import { getProp } from '../../../utils/objects.mjs';
|
|
17
17
|
|
|
18
18
|
const _hoisted_1 = ["for"];
|
|
@@ -128,7 +128,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
128
128
|
}
|
|
129
129
|
setValidationState("error");
|
|
130
130
|
validateMessage.value = errors ? (_b = (_a = errors == null ? void 0 : errors[0]) == null ? void 0 : _a.message) != null ? _b : `${props.prop} is required` : "";
|
|
131
|
-
formContext.emit("validate", props.prop,
|
|
131
|
+
formContext.emit("validate", props.prop, false, validateMessage.value);
|
|
132
|
+
};
|
|
133
|
+
const onValidationSucceeded = () => {
|
|
134
|
+
setValidationState("success");
|
|
135
|
+
formContext.emit("validate", props.prop, true, "");
|
|
132
136
|
};
|
|
133
137
|
const doValidate = async (rules) => {
|
|
134
138
|
const modelName = propString.value;
|
|
@@ -136,7 +140,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
136
140
|
[modelName]: rules
|
|
137
141
|
});
|
|
138
142
|
return validator.validate({ [modelName]: fieldValue.value }, { firstFields: true }).then(() => {
|
|
139
|
-
|
|
143
|
+
onValidationSucceeded();
|
|
140
144
|
return true;
|
|
141
145
|
}).catch((err) => {
|
|
142
146
|
onValidationFailed(err);
|
|
@@ -144,11 +148,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
144
148
|
});
|
|
145
149
|
};
|
|
146
150
|
const validate = async (trigger, callback) => {
|
|
147
|
-
|
|
151
|
+
const hasCallback = isFunction(callback);
|
|
152
|
+
if (!validateEnabled.value) {
|
|
153
|
+
callback == null ? void 0 : callback(false);
|
|
148
154
|
return false;
|
|
155
|
+
}
|
|
149
156
|
const rules = getFilteredRule(trigger);
|
|
150
|
-
if (rules.length === 0)
|
|
157
|
+
if (rules.length === 0) {
|
|
158
|
+
callback == null ? void 0 : callback(true);
|
|
151
159
|
return true;
|
|
160
|
+
}
|
|
152
161
|
setValidationState("validating");
|
|
153
162
|
return doValidate(rules).then(() => {
|
|
154
163
|
callback == null ? void 0 : callback(true);
|
|
@@ -156,7 +165,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
156
165
|
}).catch((err) => {
|
|
157
166
|
const { fields } = err;
|
|
158
167
|
callback == null ? void 0 : callback(false, fields);
|
|
159
|
-
return Promise.reject(fields);
|
|
168
|
+
return hasCallback ? false : Promise.reject(fields);
|
|
160
169
|
});
|
|
161
170
|
};
|
|
162
171
|
const clearValidate = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-item2.mjs","sources":["../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<template>\n <div ref=\"formItemRef\" :class=\"formItemClasses\">\n <form-label-wrap\n :is-auto-width=\"labelStyle.width === 'auto'\"\n :update-all=\"formContext.labelWidth === 'auto'\"\n >\n <label\n v-if=\"label || $slots.label\"\n :for=\"labelFor\"\n :class=\"ns.e('label')\"\n :style=\"labelStyle\"\n >\n <slot name=\"label\" :label=\"currentLabel\">\n {{ currentLabel }}\n </slot>\n </label>\n </form-label-wrap>\n\n <div :class=\"ns.e('content')\" :style=\"contentStyle\">\n <slot />\n <transition :name=\"`${ns.namespace.value}-zoom-in-top`\">\n <slot v-if=\"shouldShowError\" name=\"error\" :error=\"validateMessage\">\n <div :class=\"validateClasses\">\n {{ validateMessage }}\n </div>\n </slot>\n </transition>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n nextTick,\n useSlots,\n} from 'vue'\nimport AsyncValidator from 'async-validator'\nimport { clone } from 'lodash-unified'\nimport {\n addUnit,\n ensureArray,\n getProp,\n isString,\n isBoolean,\n throwError,\n} from '@element-plus/utils'\nimport { formItemContextKey, formContextKey } from '@element-plus/tokens'\nimport { useSize, useNamespace } from '@element-plus/hooks'\nimport { formItemProps } from './form-item'\nimport FormLabelWrap from './form-label-wrap'\n\nimport type { CSSProperties } from 'vue'\nimport type { RuleItem } from 'async-validator'\nimport type {\n FormItemContext,\n FormItemRule,\n FormValidateFailure,\n} from '@element-plus/tokens'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormItemValidateState } from './form-item'\n\nconst COMPONENT_NAME = 'ElFormItem'\ndefineOptions({\n name: 'ElFormItem',\n})\nconst props = defineProps(formItemProps)\nconst slots = useSlots()\n\nconst formContext = inject(formContextKey)\nif (!formContext)\n throwError(COMPONENT_NAME, 'usage: <el-form><el-form-item /></el-form>')\nconst parentFormItemContext = inject(formItemContextKey, undefined)\n\nconst _size = useSize(undefined, { formItem: false })\nconst ns = useNamespace('form-item')\n\nconst validateState = ref<FormItemValidateState>('')\nconst validateMessage = ref('')\nconst formItemRef = ref<HTMLDivElement>()\nlet initialValue: any = undefined\n\nconst labelStyle = computed<CSSProperties>(() => {\n if (formContext.labelPosition === 'top') {\n return {}\n }\n\n const labelWidth = addUnit(props.labelWidth || formContext.labelWidth || '')\n if (labelWidth) return { width: labelWidth }\n return {}\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n if (formContext.labelPosition === 'top' || formContext.inline) {\n return {}\n }\n if (!props.label && !props.labelWidth && isNested) {\n return {}\n }\n const labelWidth = addUnit(props.labelWidth || formContext.labelWidth || '')\n if (!props.label && !slots.label) {\n return { marginLeft: labelWidth }\n }\n return {}\n})\n\nconst formItemClasses = computed(() => [\n ns.b(),\n ns.m(_size.value),\n ns.is('error', validateState.value === 'error'),\n ns.is('validating', validateState.value === 'validating'),\n ns.is('success', validateState.value === 'success'),\n ns.is('required', isRequired.value || props.required),\n ns.is('no-asterisk', formContext.hideRequiredAsterisk),\n { [ns.m('feedback')]: formContext.statusIcon },\n])\n\nconst _inlineMessage = computed(() =>\n isBoolean(props.inlineMessage)\n ? props.inlineMessage\n : formContext.inlineMessage || false\n)\n\nconst validateClasses = computed(() => [\n ns.e('error'),\n { [ns.em('error', 'inline')]: _inlineMessage.value },\n])\n\nconst propString = computed(() => {\n if (!props.prop) return ''\n return isString(props.prop) ? props.prop : props.prop.join('.')\n})\n\nconst labelFor = computed(() => props.for || propString.value)\n\nconst isNested = !!parentFormItemContext\n\nconst fieldValue = computed(() => {\n const model = formContext.model\n if (!model || !props.prop) {\n return\n }\n return getProp(model, props.prop).value\n})\n\nconst _rules = computed(() => {\n const rules: FormItemRule[] = props.rules ? ensureArray(props.rules) : []\n\n const formRules = formContext.rules\n if (formRules && props.prop) {\n const _rules = getProp<Arrayable<FormItemRule> | undefined>(\n formRules,\n props.prop\n ).value\n if (_rules) {\n rules.push(...ensureArray(_rules))\n }\n }\n\n if (props.required !== undefined) {\n rules.push({ required: !!props.required })\n }\n\n return rules\n})\n\nconst validateEnabled = computed(() => _rules.value.length > 0)\n\nconst getFilteredRule = (trigger: string) => {\n const rules = _rules.value\n return (\n rules\n .filter((rule) => {\n if (!rule.trigger || !trigger) return true\n if (Array.isArray(rule.trigger)) {\n return rule.trigger.includes(trigger)\n } else {\n return rule.trigger === trigger\n }\n })\n // exclude trigger\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .map(({ trigger, ...rule }): RuleItem => rule)\n )\n}\n\nconst isRequired = computed(() =>\n _rules.value.some((rule) => rule.required === true)\n)\n\nconst shouldShowError = computed(\n () =>\n validateState.value === 'error' &&\n props.showMessage &&\n formContext.showMessage\n)\n\nconst currentLabel = computed(\n () => `${props.label || ''}${formContext.labelSuffix || ''}`\n)\n\nconst setValidationState = (state: FormItemValidateState) => {\n validateState.value = state\n}\n\nconst onValidationFailed = (error: FormValidateFailure) => {\n const { errors, fields } = error\n if (!errors || !fields) {\n console.error(error)\n }\n\n setValidationState('error')\n validateMessage.value = errors\n ? errors?.[0]?.message ?? `${props.prop} is required`\n : ''\n\n formContext.emit('validate', props.prop!, !errors, validateMessage.value)\n}\n\nconst doValidate = async (rules: RuleItem[]): Promise<true> => {\n const modelName = propString.value\n const validator = new AsyncValidator({\n [modelName]: rules,\n })\n return validator\n .validate({ [modelName]: fieldValue.value }, { firstFields: true })\n .then(() => {\n setValidationState('success')\n return true as const\n })\n .catch((err: FormValidateFailure) => {\n onValidationFailed(err as FormValidateFailure)\n return Promise.reject(err)\n })\n}\nconst validate: FormItemContext['validate'] = async (trigger, callback) => {\n if (!validateEnabled.value) return false\n\n const rules = getFilteredRule(trigger)\n if (rules.length === 0) return true\n\n setValidationState('validating')\n\n return doValidate(rules)\n .then(() => {\n callback?.(true)\n return true as const\n })\n .catch((err: FormValidateFailure) => {\n const { fields } = err\n callback?.(false, fields)\n return Promise.reject(fields)\n })\n}\n\nconst clearValidate: FormItemContext['clearValidate'] = () => {\n setValidationState('')\n validateMessage.value = ''\n}\n\nconst resetField: FormItemContext['resetField'] = () => {\n const model = formContext.model\n if (!model || !props.prop) return\n\n getProp(model, props.prop).value = initialValue\n nextTick(() => clearValidate())\n}\n\nwatch(\n () => props.error,\n (val) => {\n validateMessage.value = val || ''\n setValidationState(val ? 'error' : '')\n },\n { immediate: true }\n)\n\nwatch(\n () => props.validateStatus,\n (val) => setValidationState(val || '')\n)\n\nconst context: FormItemContext = reactive({\n ...toRefs(props),\n $el: formItemRef,\n size: _size,\n validateState,\n resetField,\n clearValidate,\n validate,\n})\n\nprovide(formItemContextKey, context)\n\nonMounted(() => {\n if (props.prop) {\n formContext.addField(context)\n initialValue = clone(fieldValue.value)\n }\n})\n\nonBeforeUnmount(() => {\n formContext.removeField(context)\n})\n\ndefineExpose({\n /** @description form item size */\n size: _size,\n /** @description validation message */\n validateMessage,\n /** @description validate form item */\n validate,\n /** @description clear validation status */\n clearValidate,\n /** @description reset field value */\n resetField,\n})\n</script>\n"],"names":["ensureArray"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-item2.mjs","sources":["../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<template>\n <div ref=\"formItemRef\" :class=\"formItemClasses\">\n <form-label-wrap\n :is-auto-width=\"labelStyle.width === 'auto'\"\n :update-all=\"formContext.labelWidth === 'auto'\"\n >\n <label\n v-if=\"label || $slots.label\"\n :for=\"labelFor\"\n :class=\"ns.e('label')\"\n :style=\"labelStyle\"\n >\n <slot name=\"label\" :label=\"currentLabel\">\n {{ currentLabel }}\n </slot>\n </label>\n </form-label-wrap>\n\n <div :class=\"ns.e('content')\" :style=\"contentStyle\">\n <slot />\n <transition :name=\"`${ns.namespace.value}-zoom-in-top`\">\n <slot v-if=\"shouldShowError\" name=\"error\" :error=\"validateMessage\">\n <div :class=\"validateClasses\">\n {{ validateMessage }}\n </div>\n </slot>\n </transition>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n nextTick,\n useSlots,\n} from 'vue'\nimport AsyncValidator from 'async-validator'\nimport { clone } from 'lodash-unified'\nimport {\n addUnit,\n ensureArray,\n getProp,\n isString,\n isBoolean,\n isFunction,\n throwError,\n} from '@element-plus/utils'\nimport { formItemContextKey, formContextKey } from '@element-plus/tokens'\nimport { useSize, useNamespace } from '@element-plus/hooks'\nimport { formItemProps } from './form-item'\nimport FormLabelWrap from './form-label-wrap'\n\nimport type { CSSProperties } from 'vue'\nimport type { RuleItem } from 'async-validator'\nimport type {\n FormItemContext,\n FormItemRule,\n FormValidateFailure,\n} from '@element-plus/tokens'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormItemValidateState } from './form-item'\n\nconst COMPONENT_NAME = 'ElFormItem'\ndefineOptions({\n name: 'ElFormItem',\n})\nconst props = defineProps(formItemProps)\nconst slots = useSlots()\n\nconst formContext = inject(formContextKey)\nif (!formContext)\n throwError(COMPONENT_NAME, 'usage: <el-form><el-form-item /></el-form>')\nconst parentFormItemContext = inject(formItemContextKey, undefined)\n\nconst _size = useSize(undefined, { formItem: false })\nconst ns = useNamespace('form-item')\n\nconst validateState = ref<FormItemValidateState>('')\nconst validateMessage = ref('')\nconst formItemRef = ref<HTMLDivElement>()\nlet initialValue: any = undefined\n\nconst labelStyle = computed<CSSProperties>(() => {\n if (formContext.labelPosition === 'top') {\n return {}\n }\n\n const labelWidth = addUnit(props.labelWidth || formContext.labelWidth || '')\n if (labelWidth) return { width: labelWidth }\n return {}\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n if (formContext.labelPosition === 'top' || formContext.inline) {\n return {}\n }\n if (!props.label && !props.labelWidth && isNested) {\n return {}\n }\n const labelWidth = addUnit(props.labelWidth || formContext.labelWidth || '')\n if (!props.label && !slots.label) {\n return { marginLeft: labelWidth }\n }\n return {}\n})\n\nconst formItemClasses = computed(() => [\n ns.b(),\n ns.m(_size.value),\n ns.is('error', validateState.value === 'error'),\n ns.is('validating', validateState.value === 'validating'),\n ns.is('success', validateState.value === 'success'),\n ns.is('required', isRequired.value || props.required),\n ns.is('no-asterisk', formContext.hideRequiredAsterisk),\n { [ns.m('feedback')]: formContext.statusIcon },\n])\n\nconst _inlineMessage = computed(() =>\n isBoolean(props.inlineMessage)\n ? props.inlineMessage\n : formContext.inlineMessage || false\n)\n\nconst validateClasses = computed(() => [\n ns.e('error'),\n { [ns.em('error', 'inline')]: _inlineMessage.value },\n])\n\nconst propString = computed(() => {\n if (!props.prop) return ''\n return isString(props.prop) ? props.prop : props.prop.join('.')\n})\n\nconst labelFor = computed(() => props.for || propString.value)\n\nconst isNested = !!parentFormItemContext\n\nconst fieldValue = computed(() => {\n const model = formContext.model\n if (!model || !props.prop) {\n return\n }\n return getProp(model, props.prop).value\n})\n\nconst _rules = computed(() => {\n const rules: FormItemRule[] = props.rules ? ensureArray(props.rules) : []\n\n const formRules = formContext.rules\n if (formRules && props.prop) {\n const _rules = getProp<Arrayable<FormItemRule> | undefined>(\n formRules,\n props.prop\n ).value\n if (_rules) {\n rules.push(...ensureArray(_rules))\n }\n }\n\n if (props.required !== undefined) {\n rules.push({ required: !!props.required })\n }\n\n return rules\n})\n\nconst validateEnabled = computed(() => _rules.value.length > 0)\n\nconst getFilteredRule = (trigger: string) => {\n const rules = _rules.value\n return (\n rules\n .filter((rule) => {\n if (!rule.trigger || !trigger) return true\n if (Array.isArray(rule.trigger)) {\n return rule.trigger.includes(trigger)\n } else {\n return rule.trigger === trigger\n }\n })\n // exclude trigger\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .map(({ trigger, ...rule }): RuleItem => rule)\n )\n}\n\nconst isRequired = computed(() =>\n _rules.value.some((rule) => rule.required === true)\n)\n\nconst shouldShowError = computed(\n () =>\n validateState.value === 'error' &&\n props.showMessage &&\n formContext.showMessage\n)\n\nconst currentLabel = computed(\n () => `${props.label || ''}${formContext.labelSuffix || ''}`\n)\n\nconst setValidationState = (state: FormItemValidateState) => {\n validateState.value = state\n}\n\nconst onValidationFailed = (error: FormValidateFailure) => {\n const { errors, fields } = error\n if (!errors || !fields) {\n console.error(error)\n }\n\n setValidationState('error')\n validateMessage.value = errors\n ? errors?.[0]?.message ?? `${props.prop} is required`\n : ''\n\n formContext.emit('validate', props.prop!, false, validateMessage.value)\n}\n\nconst onValidationSucceeded = () => {\n setValidationState('success')\n formContext.emit('validate', props.prop!, true, '')\n}\n\nconst doValidate = async (rules: RuleItem[]): Promise<true> => {\n const modelName = propString.value\n const validator = new AsyncValidator({\n [modelName]: rules,\n })\n return validator\n .validate({ [modelName]: fieldValue.value }, { firstFields: true })\n .then(() => {\n onValidationSucceeded()\n return true as const\n })\n .catch((err: FormValidateFailure) => {\n onValidationFailed(err as FormValidateFailure)\n return Promise.reject(err)\n })\n}\n\nconst validate: FormItemContext['validate'] = async (trigger, callback) => {\n const hasCallback = isFunction(callback)\n if (!validateEnabled.value) {\n callback?.(false)\n return false\n }\n\n const rules = getFilteredRule(trigger)\n if (rules.length === 0) {\n callback?.(true)\n return true\n }\n\n setValidationState('validating')\n\n return doValidate(rules)\n .then(() => {\n callback?.(true)\n return true as const\n })\n .catch((err: FormValidateFailure) => {\n const { fields } = err\n callback?.(false, fields)\n return hasCallback ? false : Promise.reject(fields)\n })\n}\n\nconst clearValidate: FormItemContext['clearValidate'] = () => {\n setValidationState('')\n validateMessage.value = ''\n}\n\nconst resetField: FormItemContext['resetField'] = () => {\n const model = formContext.model\n if (!model || !props.prop) return\n\n getProp(model, props.prop).value = initialValue\n nextTick(() => clearValidate())\n}\n\nwatch(\n () => props.error,\n (val) => {\n validateMessage.value = val || ''\n setValidationState(val ? 'error' : '')\n },\n { immediate: true }\n)\n\nwatch(\n () => props.validateStatus,\n (val) => setValidationState(val || '')\n)\n\nconst context: FormItemContext = reactive({\n ...toRefs(props),\n $el: formItemRef,\n size: _size,\n validateState,\n resetField,\n clearValidate,\n validate,\n})\n\nprovide(formItemContextKey, context)\n\nonMounted(() => {\n if (props.prop) {\n formContext.addField(context)\n initialValue = clone(fieldValue.value)\n }\n})\n\nonBeforeUnmount(() => {\n formContext.removeField(context)\n})\n\ndefineExpose({\n /** @description form item size */\n size: _size,\n /** @description validation message */\n validateMessage,\n /** @description validate form item */\n validate,\n /** @description clear validation status */\n clearValidate,\n /** @description reset field value */\n resetField,\n})\n</script>\n"],"names":["ensureArray"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA,IAAA,MAAA,cAAA,GAAA,YAAA,CAAA;AAKA,IAAA,MAAA,KAAA,GAAA,QAAA,EAAA,CAAA;AAEA,IAAA,MAAA,cAAA,MAAA,CAAA,cAAA,CAAA,CAAA;AACA,IAAA,IAAA,CAAA,WAAA;AACA,MAAA,UAAA,CAAA,cAAA,EAAA,4CAAA,CAAA,CAAA;AACA,IAAA,MAAA,qBAAA,GAAA,OAAA,kBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEA,IAAA,MAAA,KAAA,GAAA,OAAA,CAAA,KAAA,CAAA,EAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,CAAA;AACA,IAAA,MAAA,KAAA,YAAA,CAAA,WAAA,CAAA,CAAA;AAEA,IAAA,MAAA,gBAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AACA,IAAA,MAAA,kBAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AACA,IAAA,MAAA,WAAA,GAAA,GAAA,EAAA,CAAA;AACA,IAAA,IAAA,YAAA,GAAA,KAAA,CAAA,CAAA;AAEA,IAAA,MAAA,UAAA,GAAA,SAAA,MAAA;AACA,MAAA,IAAA,WAAA,CAAA,kBAAA,KAAA,EAAA;AACA,QAAA,OAAA,EAAA,CAAA;AAAA,OAAA;AAGA,MAAA,MAAA,UAAA,GAAA,OAAA,CAAA,KAAA,CAAA,UAAA,IAAA,YAAA,UAAA,IAAA,EAAA,CAAA,CAAA;AACA,MAAA,IAAA,UAAA;AAAA,QAAA,OAAA,EAAA,KAAA,EAAA,UAAA,EAAA,CAAA;AACA,MAAA,OAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,YAAA,GAAA,SAAA,MAAA;AACA,MAAA,IAAA,WAAA,CAAA,aAAA,KAAA,KAAA,IAAA,WAAA,CAAA,MAAA,EAAA;AACA,QAAA,OAAA,EAAA,CAAA;AAAA,OAAA;AAEA,MAAA,IAAA,CAAA,KAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,cAAA,QAAA,EAAA;AACA,QAAA,OAAA,EAAA,CAAA;AAAA,OAAA;AAEA,MAAA,MAAA,UAAA,GAAA,OAAA,CAAA,KAAA,CAAA,UAAA,IAAA,YAAA,UAAA,IAAA,EAAA,CAAA,CAAA;AACA,MAAA,IAAA,CAAA,KAAA,CAAA,KAAA,IAAA,CAAA,MAAA,KAAA,EAAA;AACA,QAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,CAAA;AAAA,OAAA;AAEA,MAAA,OAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,eAAA,GAAA,SAAA,MAAA;AAAA,MACA,EAAA,CAAA,CAAA,EAAA;AAAA,MACA,EAAA,CAAA,EAAA,KAAA,CAAA,KAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,KAAA,KAAA,OAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,aAAA,CAAA,KAAA,KAAA,YAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,KAAA,KAAA,SAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,SAAA,KAAA,CAAA,QAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,aAAA,EAAA,WAAA,CAAA,oBAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,UAAA,CAAA,GAAA,WAAA,CAAA,UAAA,EAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,cAAA,GAAA,SAAA,MACA,SAAA,CAAA,MAAA,aACA,CAAA,GAAA,KAAA,CAAA,aACA,GAAA,WAAA,CAAA,aAAA,IAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,eAAA,GAAA,SAAA,MAAA;AAAA,MACA,GAAA,CAAA,CAAA,OAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,YAAA,cAAA,CAAA,KAAA,EAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,UAAA,GAAA,SAAA,MAAA;AACA,MAAA,IAAA,CAAA,KAAA,CAAA,IAAA;AAAA,QAAA,OAAA,EAAA,CAAA;AACA,MAAA,OAAA,SAAA,KAAA,CAAA,IAAA,CAAA,GAAA,MAAA,IAAA,GAAA,KAAA,CAAA,KAAA,IAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,QAAA,GAAA,QAAA,CAAA,MAAA,KAAA,CAAA,OAAA,UAAA,CAAA,KAAA,CAAA,CAAA;AAEA,IAAA,MAAA,QAAA,GAAA,CAAA,CAAA,qBAAA,CAAA;AAEA,IAAA,MAAA,UAAA,GAAA,SAAA,MAAA;AACA,MAAA,MAAA,QAAA,WAAA,CAAA,KAAA,CAAA;AACA,MAAA,IAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,IAAA,EAAA;AACA,QAAA,OAAA;AAAA,OAAA;AAEA,MAAA,OAAA,OAAA,CAAA,KAAA,EAAA,KAAA,CAAA,IAAA,CAAA,CAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,MAAA,GAAA,SAAA,MAAA;AACA,MAAA,MAAA,KAAA,GAAA,KAAA,CAAA,KAAA,GAAAA,SAAA,CAAA,MAAA,KAAA,CAAA,GAAA,EAAA,CAAA;AAEA,MAAA,MAAA,YAAA,WAAA,CAAA,KAAA,CAAA;AACA,MAAA,IAAA,SAAA,IAAA,MAAA,IAAA,EAAA;AACA,QAAA,MAAA,OAAA,GAAA,OAAA,CACA,SACA,EAAA,KAAA,CAAA,IACA,CAAA,CAAA,KAAA,CAAA;AACA,QAAA,IAAA,OAAA,EAAA;AACA,UAAA,KAAA,CAAA,IAAA,CAAA,GAAAA,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAIA,MAAA,IAAA,KAAA,CAAA,aAAA,KAAA,CAAA,EAAA;AACA,QAAA,KAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,KAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAA,OAAA;AAGA,MAAA,OAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,eAAA,GAAA,QAAA,CAAA,MAAA,MAAA,CAAA,MAAA,MAAA,GAAA,CAAA,CAAA,CAAA;AAEA,IAAA,MAAA,eAAA,GAAA,CAAA,OAAA,KAAA;AACA,MAAA,MAAA,QAAA,MAAA,CAAA,KAAA,CAAA;AACA,MACA,OAAA,KAAA,CACA,MAAA,CAAA,CAAA,IAAA,KAAA;AACA,QAAA,IAAA,CAAA,IAAA,CAAA,OAAA,IAAA,CAAA,OAAA;AAAA,UAAA,OAAA,IAAA,CAAA;AACA,QAAA,IAAA,KAAA,CAAA,OAAA,CAAA,IAAA,CAAA,OAAA,CAAA,EAAA;AACA,UAAA,OAAA,IAAA,CAAA,QAAA,QAAA,CAAA,OAAA,CAAA,CAAA;AAAA,SACA,MAAA;AACA,UAAA,OAAA,KAAA,OAAA,KAAA,OAAA,CAAA;AAAA,SAAA;AAAA,OAAA,CAAA,CAKA,GAAA,CAAA,CAAA,EAAA,OAAA,EAAA,QAAA,EAAA,GAAA,IAAA,EAAA,KAAA,IAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAIA,IAAA,MAAA,UAAA,GAAA,SAAA,MACA,MAAA,CAAA,MAAA,IAAA,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,QAAA,KAAA,IAAA,CAAA,CAAA,CAAA;AAGA,IAAA,MAAA,eAAA,GAAA,SACA,MACA,aAAA,CAAA,UAAA,OACA,IAAA,KAAA,CAAA,eACA,WAAA,CAAA,WAAA,CAAA,CAAA;AAGA,IAAA,MAAA,YAAA,GAAA,SACA,MAAA,CAAA,EAAA,MAAA,KAAA,IAAA,EAAA,CAAA,EAAA,YAAA,WAAA,IAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAGA,IAAA,MAAA,kBAAA,GAAA,CAAA,KAAA,KAAA;AACA,MAAA,aAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AAAA,KAAA,CAAA;AAGA,IAAA,MAAA,kBAAA,GAAA,CAAA,KAAA,KAAA;AACA,MAAA,IAAA,EAAA,EAAA;AACA,MAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,GAAA,KAAA,CAAA;AACA,MAAA,IAAA,CAAA,MAAA,IAAA,CAAA,MAAA,EAAA;AAAA,QAAA,OAAA,CAAA,KAAA,CAAA,KAAA,CAAA,CAAA;AAGA,OAAA;AACA,MAAA,0BACA,CAAA,CAAA;AAGA,MAAA,eAAA,CAAA,KAAA,GAAA,MAAA,GAAA,CAAA,EAAA,GAAA,CAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,CAAA,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,KAAA,IAAA,GAAA,EAAA,GAAA,CAAA,EAAA,KAAA,CAAA,IAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA;AAAA,MAAA,WAAA,CAAA,IAAA,CAAA,UAAA,EAAA,KAAA,CAAA,IAAA,EAAA,KAAA,EAAA,eAAA,CAAA,KAAA,CAAA,CAAA;AAGA,KAAA,CAAA;AACA,IAAA,MAAA,qBAAA,GAAA,MAAA;AACA,MAAA,kBAAA,CAAA,SAAA,CAAA,CAAA;AAAA,MAAA,WAAA,CAAA,IAAA,CAAA,UAAA,EAAA,KAAA,CAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;AAGA,KAAA,CAAA;AACA,IAAA,MAAA,oBAAA,KAAA,KAAA;AACA,MAAA,MAAA,SAAA,GAAA,UAAA,CAAA,KAAA,CAAA;AAAA,MAAA,MACA,SAAA,GAAA,IAAA,cAAA,CAAA;AAAA,QAAA,CAAA,SAAA,GAAA,KAAA;AAEA,OAAA,CAAA,CAAA;AAGA,MAAA,OAAA,SAAA,CAAA,QAAA,CAAA,EAAA,CAAA,SAAA,GAAA,UAAA,CAAA,KAAA,EAAA,EAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,CAAA,IAAA,CAAA,MAAA;AACA,QAAA,qBAAA,EAAA,CAAA;AAAA,QAEA,OAAA,IAAA,CAAA;AACA,OAAA,CAAA,CAAA,KAAA,CAAA,CAAA,GAAA,KAAA;AACA,QAAA,kBAAA,CAAA,GAAA,CAAA,CAAA;AAAA,QAAA,OAAA,OAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAIA,KAAA,CAAA;AACA,IAAA,MAAA,kBAAA,OAAA,EAAA,QAAA,KAAA;AACA,MAAA,8BAAA,CAAA,QAAA,CAAA,CAAA;AACA,MAAA,IAAA,CAAA,eAAA,CAAA,KAAA,EAAA;AACA,QAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AAAA,QAAA,OAAA,KAAA,CAAA;AAGA,OAAA;AACA,MAAA,MAAA,uBAAA,CAAA,OAAA,CAAA,CAAA;AACA,MAAA,IAAA,KAAA,CAAA,MAAA,KAAA,CAAA,EAAA;AACA,QAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,IAAA,CAAA,CAAA;AAAA,QAAA,OAAA,IAAA,CAAA;AAGA,OAAA;AAEA,MAAA,kBAAA,CACA,YAAA,CAAA,CAAA;AACA,MAAA,OAAA,UAAA,CAAA,KAAA,CAAA,CAAA,IAAA,CAAA,MAAA;AACA,QAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,IAAA,CAAA,CAAA;AAAA,QAEA,OAAA,IAAA,CAAA;AACA,OAAA,CAAA,CAAA,KAAA,EAAA,GAAA,KAAA;AACA,QAAA,MAAA,EAAA,MAAA,EAAA,GAAA,GAAA,CAAA;AACA,QAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,KAAA,EAAA,MAAA,CAAA,CAAA;AAAA,QAAA,OAAA,WAAA,GAAA,KAAA,GAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAIA,KAAA,CAAA;AACA,IAAA,MAAA,aAAA,GAAA,MAAA;AACA,MAAA,kBAAA,CAAA,EAAA,CAAA,CAAA;AAAA,MAAA,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA;AAGA,KAAA,CAAA;AACA,IAAA,MAAA,UAAA,GAAA,MAAA;AACA,MAAA,MAAA,KAAA,GAAA,WAAA,CAAA,KAAA,CAAA;AAAA,MAAA,IAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,IAAA;AAEA,QAAA,OAAA;AACA,MAAA,OAAA,CAAA,KAAA,EAAA,KAAA,CAAA,IAAA,CAAA,CAAA,KAAA,GAAA,YAAA,CAAA;AAAA,MAAA,QAAA,CAAA,MAAA,aAAA,EAAA,CAAA,CAAA;AAGA,KAAA,CAAA;AAGA,IAAA,KAAA,CAAA,MAAA,KAAA,CAAA,QAAA,GAAA,KAAA;AACA,MAAA,eAAA,CAAA,WAAA,IAAA,EAAA,CAAA;AAAA,MAAA,kBAEA,CAAA,GAAA,GAAA,OAAA,GAAA,EAAA,CAAA,CAAA;AAGA,KAAA,EAAA,EAAA,SACA,EAAA,IAAA,EAAA,CAAA,CAAA;AAIA,IAAA,KAAA,CAAA,WAAA,CAAA,cAAA,EAAA,CAAA,GAAA,KAAA,kBAAA,CAAA,GAAA,IAAA,EAAA,CAAA,CAAA,CAAA;AAAA,IAAA,MACA,OAAA,GAAA,QAAA,CAAA;AAAA,MACA,GAAA,MAAA,CAAA,KAAA,CAAA;AAAA,MACA,GAAA,EAAA,WAAA;AAAA,MACA,IAAA,EAAA,KAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MAAA,QAAA;AAGA,KAAA,CAAA,CAAA;AAEA,IAAA,OAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,CAAA;AACA,IAAA,gBAAA;AACA,MAAA,IAAA,KAAA,CAAA,IAAA,EAAA;AACA,QAAA,WAAA,CAAA,SAAA,OAAA,CAAA,CAAA;AAAA,QAAA,YAAA,GAAA,KAAA,CAAA,UAAA,CAAA,KAAA,CAAA,CAAA;AAAA,OAAA;AAIA,KAAA,CAAA,CAAA;AACA,IAAA,eAAA,CAAA,MAAA;AAAA,MAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,CAAA;AAGA,KAAA,CAAA,CAAA;AAAA,IAAA,MAEA,CAAA;AAAA,MAEA,IAAA,EAAA,KAAA;AAAA,MAEA,eAAA;AAAA,MAEA,QAAA;AAAA,MAEA,aAAA;AAAA,MAAA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { ExtractPropTypes } from 'vue';
|
|
2
2
|
import type { FormItemProp } from './form-item';
|
|
3
|
-
import type Form from './form.vue';
|
|
4
3
|
export declare const formProps: {
|
|
5
4
|
readonly model: ObjectConstructor;
|
|
6
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
5
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("element-plus/es/tokens").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
|
|
7
6
|
readonly labelPosition: StringConstructor;
|
|
8
7
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
9
8
|
readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
|
|
@@ -22,4 +21,3 @@ export declare const formEmits: {
|
|
|
22
21
|
validate: (prop: FormItemProp, isValid: boolean, message: string) => boolean;
|
|
23
22
|
};
|
|
24
23
|
export declare type FormEmits = typeof formEmits;
|
|
25
|
-
export declare type FormInstance = InstanceType<typeof Form>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.mjs","sources":["../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { componentSizes } from '@element-plus/constants'\nimport {\n buildProps,\n definePropType,\n isArray,\n isString,\n isBoolean,\n} from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { FormItemProp } from './form-item'\nimport type { FormRules } from '
|
|
1
|
+
{"version":3,"file":"form.mjs","sources":["../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { componentSizes } from '@element-plus/constants'\nimport {\n buildProps,\n definePropType,\n isArray,\n isString,\n isBoolean,\n} from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { FormItemProp } from './form-item'\nimport type { FormRules } from '@element-plus/tokens'\n\nexport const formProps = buildProps({\n model: Object,\n rules: {\n type: definePropType<FormRules>(Object),\n },\n labelPosition: String,\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n labelSuffix: {\n type: String,\n default: '',\n },\n inline: Boolean,\n inlineMessage: Boolean,\n statusIcon: Boolean,\n showMessage: {\n type: Boolean,\n default: true,\n },\n size: {\n type: String,\n values: componentSizes,\n },\n disabled: Boolean,\n validateOnRuleChange: {\n type: Boolean,\n default: true,\n },\n hideRequiredAsterisk: {\n type: Boolean,\n default: false,\n },\n scrollToError: Boolean,\n} as const)\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\nexport const formEmits = {\n validate: (prop: FormItemProp, isValid: boolean, message: string) =>\n (isArray(prop) || isString(prop)) &&\n isBoolean(isValid) &&\n isString(message),\n}\nexport type FormEmits = typeof formEmits\n"],"names":[],"mappings":";;;;;;;AAQY,MAAC,SAAS,GAAG,UAAU,CAAC;AACpC,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,aAAa,EAAE,MAAM;AACvB,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,oBAAoB,EAAE;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,aAAa,EAAE,OAAO;AACxB,CAAC,EAAE;AACS,MAAC,SAAS,GAAG;AACzB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;AACpH;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Arrayable } from 'element-plus/es/utils';
|
|
2
2
|
import type { FormItemContext, FormValidateCallback, FormValidationResult } from 'element-plus/es/tokens';
|
|
3
3
|
import type { FormItemProp } from './form-item';
|
|
4
4
|
declare const _default: import("vue").DefineComponent<{
|
|
5
5
|
readonly model: ObjectConstructor;
|
|
6
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
6
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, Arrayable<import("element-plus/es/tokens").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
|
|
7
7
|
readonly labelPosition: StringConstructor;
|
|
8
8
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
9
9
|
readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
|
|
@@ -20,7 +20,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
20
20
|
COMPONENT_NAME: string;
|
|
21
21
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
22
22
|
readonly model: ObjectConstructor;
|
|
23
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
23
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, Arrayable<import("element-plus/es/tokens").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
|
|
24
24
|
readonly labelPosition: StringConstructor;
|
|
25
25
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
26
26
|
readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
|
|
@@ -70,7 +70,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
70
70
|
validate: (prop: FormItemProp, isValid: boolean, message: string) => boolean;
|
|
71
71
|
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
72
72
|
readonly model: ObjectConstructor;
|
|
73
|
-
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<
|
|
73
|
+
readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, Arrayable<import("element-plus/es/tokens").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
|
|
74
74
|
readonly labelPosition: StringConstructor;
|
|
75
75
|
readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
|
|
76
76
|
readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
|
|
@@ -88,7 +88,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
88
88
|
}, {
|
|
89
89
|
size: import("element-plus/es/utils").BuildPropType<StringConstructor, "default" | "small" | "large", unknown>;
|
|
90
90
|
disabled: boolean;
|
|
91
|
-
rules:
|
|
91
|
+
rules: Partial<Record<string, Arrayable<import("element-plus/es/tokens").FormItemRule>>>;
|
|
92
92
|
labelWidth: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
|
|
93
93
|
labelSuffix: string;
|
|
94
94
|
showMessage: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -7,6 +7,7 @@ import { filterFields, useFormLabelWidth } from './utils.mjs';
|
|
|
7
7
|
import { useSize } from '../../../hooks/use-common-props/index.mjs';
|
|
8
8
|
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
9
9
|
import { debugWarn } from '../../../utils/error.mjs';
|
|
10
|
+
import { isFunction } from '@vue/shared';
|
|
10
11
|
import { formContextKey } from '../../../tokens/form.mjs';
|
|
11
12
|
|
|
12
13
|
const __default__ = {
|
|
@@ -91,6 +92,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
91
92
|
return Promise.reject(validationErrors);
|
|
92
93
|
};
|
|
93
94
|
const validateField = async (modelProps = [], callback) => {
|
|
95
|
+
const shouldThrow = !isFunction(callback);
|
|
94
96
|
try {
|
|
95
97
|
const result = await doValidateField(modelProps);
|
|
96
98
|
if (result === true) {
|
|
@@ -103,7 +105,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
103
105
|
scrollToField(Object.keys(invalidFields)[0]);
|
|
104
106
|
}
|
|
105
107
|
callback == null ? void 0 : callback(false, invalidFields);
|
|
106
|
-
return Promise.reject(invalidFields);
|
|
108
|
+
return shouldThrow && Promise.reject(invalidFields);
|
|
107
109
|
}
|
|
108
110
|
};
|
|
109
111
|
const scrollToField = (prop) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form2.mjs","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form :class=\"formClasses\">\n <slot />\n </form>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, reactive, toRefs, watch } from 'vue'\nimport { debugWarn,
|
|
1
|
+
{"version":3,"file":"form2.mjs","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form :class=\"formClasses\">\n <slot />\n </form>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, reactive, toRefs, watch } from 'vue'\nimport { debugWarn, isFunction } from '@element-plus/utils'\nimport { formContextKey } from '@element-plus/tokens'\nimport { useNamespace, useSize } from '@element-plus/hooks'\nimport { formProps, formEmits } from './form'\nimport { useFormLabelWidth, filterFields } from './utils'\n\nimport type { ValidateFieldsError } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type {\n FormItemContext,\n FormContext,\n FormValidateCallback,\n FormValidationResult,\n} from '@element-plus/tokens'\nimport type { FormItemProp } from './form-item'\n\nconst COMPONENT_NAME = 'ElForm'\ndefineOptions({\n name: 'ElForm',\n})\nconst props = defineProps(formProps)\nconst emit = defineEmits(formEmits)\n\nconst fields: FormItemContext[] = []\n\nconst formSize = useSize()\nconst ns = useNamespace('form')\nconst formClasses = computed(() => {\n const { labelPosition, inline } = props\n return [\n ns.b(),\n ns.m(formSize.value),\n {\n [ns.m(`label-${labelPosition}`)]: labelPosition,\n [ns.m('inline')]: inline,\n },\n ]\n})\n\nconst addField: FormContext['addField'] = (field) => {\n fields.push(field)\n}\n\nconst removeField: FormContext['removeField'] = (field) => {\n if (field.prop) {\n fields.splice(fields.indexOf(field), 1)\n }\n}\n\nconst resetFields: FormContext['resetFields'] = (properties = []) => {\n if (!props.model) {\n debugWarn(COMPONENT_NAME, 'model is required for resetFields to work.')\n return\n }\n filterFields(fields, properties).forEach((field) => field.resetField())\n}\n\nconst clearValidate: FormContext['clearValidate'] = (props = []) => {\n filterFields(fields, props).forEach((field) => field.clearValidate())\n}\n\nconst isValidatable = computed(() => {\n const hasModel = !!props.model\n if (!hasModel) {\n debugWarn(COMPONENT_NAME, 'model is required for validate to work.')\n }\n return hasModel\n})\n\nconst obtainValidateFields = (props: Arrayable<FormItemProp>) => {\n if (fields.length === 0) return []\n\n const filteredFields = filterFields(fields, props)\n if (!filteredFields.length) {\n debugWarn(COMPONENT_NAME, 'please pass correct props!')\n return []\n }\n return filteredFields\n}\n\nconst validate = async (\n callback?: FormValidateCallback\n): FormValidationResult => validateField(undefined, callback)\n\nconst doValidateField = async (\n props: Arrayable<FormItemProp> = []\n): Promise<boolean> => {\n if (!isValidatable.value) return false\n\n const fields = obtainValidateFields(props)\n if (fields.length === 0) return true\n\n let validationErrors: ValidateFieldsError = {}\n for (const field of fields) {\n try {\n await field.validate('')\n } catch (fields) {\n validationErrors = {\n ...validationErrors,\n ...(fields as ValidateFieldsError),\n }\n }\n }\n\n if (Object.keys(validationErrors).length === 0) return true\n return Promise.reject(validationErrors)\n}\n\nconst validateField: FormContext['validateField'] = async (\n modelProps = [],\n callback\n) => {\n const shouldThrow = !isFunction(callback)\n try {\n const result = await doValidateField(modelProps)\n // When result is false meaning that the fields are not validatable\n if (result === true) {\n callback?.(result)\n }\n return result\n } catch (e) {\n const invalidFields = e as ValidateFieldsError\n\n if (props.scrollToError) {\n scrollToField(Object.keys(invalidFields)[0])\n }\n callback?.(false, invalidFields)\n return shouldThrow && Promise.reject(invalidFields)\n }\n}\n\nconst scrollToField = (prop: FormItemProp) => {\n const field = filterFields(fields, prop)[0]\n if (field) {\n field.$el?.scrollIntoView()\n }\n}\n\nwatch(\n () => props.rules,\n () => {\n if (props.validateOnRuleChange) validate()\n },\n { deep: true }\n)\n\nprovide(\n formContextKey,\n reactive({\n ...toRefs(props),\n emit,\n\n resetFields,\n clearValidate,\n validateField,\n addField,\n removeField,\n\n ...useFormLabelWidth(),\n })\n)\n\ndefineExpose({\n /** @description validate form */\n validate,\n /** @description validate form field */\n validateField,\n /** @description reset fields */\n resetFields,\n /** @description clear validation status */\n clearValidate,\n /** @description scroll to field */\n scrollToField,\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -116,6 +116,11 @@ const _sfc_main = defineComponent({
|
|
|
116
116
|
const setCurrentValue = (newVal) => {
|
|
117
117
|
var _a;
|
|
118
118
|
const oldVal = data.currentValue;
|
|
119
|
+
if (props.stepStrictly) {
|
|
120
|
+
const stepPrecision = getPrecision(props.step);
|
|
121
|
+
const precisionFactor = 10 ** stepPrecision;
|
|
122
|
+
newVal = Math.round(newVal / props.step) * precisionFactor * props.step / precisionFactor;
|
|
123
|
+
}
|
|
119
124
|
if (typeof newVal === "number" && props.precision !== void 0) {
|
|
120
125
|
newVal = toPrecision(newVal, props.precision);
|
|
121
126
|
}
|