@element-plus/nightly 0.0.20260329 → 0.0.20260331
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.full.js +153 -13
- package/dist/index.full.min.js +6 -6
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +6 -6
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +153 -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-eg.js +1 -1
- package/dist/locale/ar-eg.min.js +1 -1
- package/dist/locale/ar-eg.min.mjs +1 -1
- package/dist/locale/ar-eg.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/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.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/ckb.js +1 -1
- package/dist/locale/ckb.min.js +1 -1
- package/dist/locale/ckb.min.mjs +1 -1
- package/dist/locale/ckb.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/hi.js +1 -1
- package/dist/locale/hi.min.js +1 -1
- package/dist/locale/hi.min.mjs +1 -1
- package/dist/locale/hi.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/lo.js +1 -1
- package/dist/locale/lo.min.js +1 -1
- package/dist/locale/lo.min.mjs +1 -1
- package/dist/locale/lo.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/ms.js +1 -1
- package/dist/locale/ms.min.js +1 -1
- package/dist/locale/ms.min.mjs +1 -1
- package/dist/locale/ms.mjs +1 -1
- package/dist/locale/my.js +1 -1
- package/dist/locale/my.min.js +1 -1
- package/dist/locale/my.min.mjs +1 -1
- package/dist/locale/my.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/no.js +1 -1
- package/dist/locale/no.min.js +1 -1
- package/dist/locale/no.min.mjs +1 -1
- package/dist/locale/no.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/sw.js +1 -1
- package/dist/locale/sw.min.js +1 -1
- package/dist/locale/sw.min.mjs +1 -1
- package/dist/locale/sw.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/te.js +1 -1
- package/dist/locale/te.min.js +1 -1
- package/dist/locale/te.min.mjs +1 -1
- package/dist/locale/te.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-hk.js +1 -1
- package/dist/locale/zh-hk.min.js +1 -1
- package/dist/locale/zh-hk.min.mjs +1 -1
- package/dist/locale/zh-hk.mjs +1 -1
- package/dist/locale/zh-mo.js +1 -1
- package/dist/locale/zh-mo.min.js +1 -1
- package/dist/locale/zh-mo.min.mjs +1 -1
- package/dist/locale/zh-mo.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/anchor/src/anchor-link.vue.d.ts +1 -3
- package/es/components/anchor/src/anchor-link.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/anchor/src/anchor-link2.mjs.map +1 -1
- package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs +6 -1
- package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/cascader/src/cascader2.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/color-picker-panel/src/composables/use-predefine.mjs.map +1 -1
- package/es/components/descriptions/src/description.mjs.map +1 -1
- package/es/components/dialog/src/use-dialog.d.ts +2 -2
- package/es/components/dialog/src/use-dialog.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item.vue.d.ts +3 -9
- package/es/components/dropdown/src/dropdown.vue.d.ts +3 -9
- package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs +11 -1
- package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/form/src/form-item2.mjs.map +1 -1
- package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs +11 -3
- package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/form/src/form2.mjs.map +1 -1
- package/es/components/form/src/types.d.ts +2 -1
- package/es/components/icon/src/icon.vue.d.ts +1 -3
- package/es/components/icon/src/icon.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/icon/src/icon2.mjs.map +1 -1
- package/es/components/popper/src/trigger.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/popper/src/trigger2.mjs.map +1 -1
- package/es/components/select/src/select.vue.d.ts +3 -9
- package/es/components/select-v2/src/select.vue.d.ts +3 -9
- package/es/components/time-picker/src/common/picker.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs +4 -3
- package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/transfer/src/composables/use-check.d.ts +4 -4
- package/es/components/transfer/src/composables/use-check.mjs.map +1 -1
- package/es/components/transfer/src/composables/use-computed-data.d.ts +3 -3
- package/es/components/transfer/src/composables/use-computed-data.mjs +1 -1
- package/es/components/transfer/src/composables/use-computed-data.mjs.map +1 -1
- package/es/components/transfer/src/composables/use-move.d.ts +2 -2
- package/es/components/transfer/src/composables/use-move.mjs.map +1 -1
- package/es/components/transfer/src/composables/use-props-alias.d.ts +4 -2
- package/es/components/transfer/src/composables/use-props-alias.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.d.ts +11 -10
- package/es/components/transfer/src/transfer-panel.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue.d.ts +23 -25
- package/es/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.mjs +48 -2
- package/es/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
- package/es/components/transfer/src/transfer.d.ts +9 -8
- package/es/components/transfer/src/transfer.mjs.map +1 -1
- package/es/components/transfer/src/transfer.vue.d.ts +32 -42
- package/es/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.mjs +73 -2
- package/es/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer2.mjs.map +1 -1
- package/es/components/tree/src/tree.vue.d.ts +3 -9
- package/es/components/upload/src/upload-content.mjs.map +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/anchor/src/anchor-link.vue.d.ts +1 -3
- package/lib/components/anchor/src/anchor-link.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/anchor/src/anchor-link2.js.map +1 -1
- package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js +6 -1
- package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/cascader/src/cascader2.js.map +1 -1
- package/lib/components/cascader-panel/src/index.js.map +1 -1
- package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/color-picker-panel/src/composables/use-predefine.js.map +1 -1
- package/lib/components/descriptions/src/description.js.map +1 -1
- package/lib/components/dialog/src/use-dialog.d.ts +2 -2
- package/lib/components/dialog/src/use-dialog.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue.d.ts +3 -9
- package/lib/components/dropdown/src/dropdown.vue.d.ts +3 -9
- package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js +11 -1
- package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/form/src/form-item2.js.map +1 -1
- package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js +11 -3
- package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/form/src/form2.js.map +1 -1
- package/lib/components/form/src/types.d.ts +2 -1
- package/lib/components/icon/src/icon.vue.d.ts +1 -3
- package/lib/components/icon/src/icon.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/icon/src/icon2.js.map +1 -1
- package/lib/components/popper/src/trigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/popper/src/trigger2.js.map +1 -1
- package/lib/components/select/src/select.vue.d.ts +3 -9
- package/lib/components/select-v2/src/select.vue.d.ts +3 -9
- package/lib/components/time-picker/src/common/picker.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js +4 -3
- package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/transfer/src/composables/use-check.d.ts +4 -4
- package/lib/components/transfer/src/composables/use-check.js.map +1 -1
- package/lib/components/transfer/src/composables/use-computed-data.d.ts +3 -3
- package/lib/components/transfer/src/composables/use-computed-data.js +1 -1
- package/lib/components/transfer/src/composables/use-computed-data.js.map +1 -1
- package/lib/components/transfer/src/composables/use-move.d.ts +2 -2
- package/lib/components/transfer/src/composables/use-move.js.map +1 -1
- package/lib/components/transfer/src/composables/use-props-alias.d.ts +4 -2
- package/lib/components/transfer/src/composables/use-props-alias.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.d.ts +11 -10
- package/lib/components/transfer/src/transfer-panel.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue.d.ts +23 -25
- package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.js +47 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
- package/lib/components/transfer/src/transfer.d.ts +9 -8
- package/lib/components/transfer/src/transfer.js.map +1 -1
- package/lib/components/transfer/src/transfer.vue.d.ts +32 -42
- package/lib/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.js +72 -1
- package/lib/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/transfer/src/transfer2.js.map +1 -1
- package/lib/components/tree/src/tree.vue.d.ts +3 -9
- package/lib/components/upload/src/upload-content.js.map +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/web-types.json +1 -1
|
@@ -157,24 +157,18 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
157
157
|
readonly divided: boolean;
|
|
158
158
|
}, {}, {
|
|
159
159
|
ElIcon: SFCWithInstall<{
|
|
160
|
-
new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {
|
|
161
|
-
size: number | string;
|
|
162
|
-
}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
|
|
160
|
+
new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
|
|
163
161
|
P: {};
|
|
164
162
|
B: {};
|
|
165
163
|
D: {};
|
|
166
164
|
C: {};
|
|
167
165
|
M: {};
|
|
168
166
|
Defaults: {};
|
|
169
|
-
}, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, {
|
|
170
|
-
size: number | string;
|
|
171
|
-
}>;
|
|
167
|
+
}, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
172
168
|
__isFragment?: never;
|
|
173
169
|
__isTeleport?: never;
|
|
174
170
|
__isSuspense?: never;
|
|
175
|
-
} & vue.ComponentOptionsBase<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
176
|
-
size: number | string;
|
|
177
|
-
}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
171
|
+
} & vue.ComponentOptionsBase<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
178
172
|
$slots: {
|
|
179
173
|
default?: (props: {}) => any;
|
|
180
174
|
};
|
|
@@ -908,24 +908,18 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
908
908
|
[key: string]: any;
|
|
909
909
|
}> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
910
910
|
ElIcon: SFCWithInstall<{
|
|
911
|
-
new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {
|
|
912
|
-
size: number | string;
|
|
913
|
-
}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
|
|
911
|
+
new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
|
|
914
912
|
P: {};
|
|
915
913
|
B: {};
|
|
916
914
|
D: {};
|
|
917
915
|
C: {};
|
|
918
916
|
M: {};
|
|
919
917
|
Defaults: {};
|
|
920
|
-
}, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, {
|
|
921
|
-
size: number | string;
|
|
922
|
-
}>;
|
|
918
|
+
}, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
923
919
|
__isFragment?: never;
|
|
924
920
|
__isTeleport?: never;
|
|
925
921
|
__isSuspense?: never;
|
|
926
|
-
} & vue.ComponentOptionsBase<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
927
|
-
size: number | string;
|
|
928
|
-
}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
922
|
+
} & vue.ComponentOptionsBase<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
929
923
|
$slots: {
|
|
930
924
|
default?: (props: {}) => any;
|
|
931
925
|
};
|
|
@@ -184,6 +184,7 @@ var form_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
184
184
|
const setInitialValue = (value) => {
|
|
185
185
|
initialValue = cloneDeep(value);
|
|
186
186
|
};
|
|
187
|
+
const getInitialValue = () => initialValue;
|
|
187
188
|
watch(() => props.error, (val) => {
|
|
188
189
|
validateMessage.value = val || "";
|
|
189
190
|
setValidationState(val ? "error" : "");
|
|
@@ -206,9 +207,18 @@ var form_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
206
207
|
clearValidate,
|
|
207
208
|
validate,
|
|
208
209
|
propString,
|
|
209
|
-
setInitialValue
|
|
210
|
+
setInitialValue,
|
|
211
|
+
getInitialValue
|
|
210
212
|
});
|
|
211
213
|
provide(formItemContextKey, context);
|
|
214
|
+
watch(propString, (newPropString, oldPropString) => {
|
|
215
|
+
if (!formContext || !oldPropString) return;
|
|
216
|
+
formContext.removeField(context, oldPropString);
|
|
217
|
+
if (newPropString) {
|
|
218
|
+
setInitialValue(fieldValue.value);
|
|
219
|
+
formContext.addField(context);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
212
222
|
onMounted(() => {
|
|
213
223
|
if (props.prop) {
|
|
214
224
|
setInitialValue(fieldValue.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-item.vue_vue_type_script_setup_true_lang.mjs","names":["$slots"],"sources":["../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<template>\n <div\n ref=\"formItemRef\"\n :class=\"formItemClasses\"\n :role=\"isGroup ? 'group' : undefined\"\n :aria-labelledby=\"isGroup ? labelId : undefined\"\n >\n <form-label-wrap\n :is-auto-width=\"labelStyle.width === 'auto'\"\n :update-all=\"formContext?.labelWidth === 'auto'\"\n >\n <component\n :is=\"labelFor ? 'label' : 'div'\"\n v-if=\"!!(label || $slots.label)\"\n :id=\"labelId\"\n :for=\"labelFor\"\n :class=\"ns.e('label')\"\n :style=\"labelStyle\"\n >\n <slot name=\"label\" :label=\"currentLabel\">\n {{ currentLabel }}\n </slot>\n </component>\n </form-label-wrap>\n\n <div :class=\"ns.e('content')\" :style=\"contentStyle\">\n <slot />\n <transition-group :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-group>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n useSlots,\n watch,\n} from 'vue'\nimport AsyncValidator from 'async-validator'\nimport { refDebounced } from '@vueuse/core'\nimport {\n addUnit,\n ensureArray,\n getProp,\n isArray,\n isBoolean,\n isFunction,\n} from '@element-plus/utils'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from './hooks'\nimport FormLabelWrap from './form-label-wrap'\nimport { formContextKey, formItemContextKey } from './constants'\nimport { cloneDeep } from 'lodash-unified'\n\nimport type { CSSProperties } from 'vue'\nimport type { RuleItem } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type {\n FormItemContext,\n FormItemRule,\n FormValidateFailure,\n} from './types'\nimport type { FormItemProps, FormItemValidateState } from './form-item'\n\ndefineOptions({\n name: 'ElFormItem',\n})\nconst props = withDefaults(defineProps<FormItemProps>(), {\n labelPosition: '',\n showMessage: true,\n required: undefined,\n inlineMessage: undefined,\n})\nconst slots = useSlots()\n\nconst formContext = inject(formContextKey, undefined)\nconst parentFormItemContext = inject(formItemContextKey, undefined)\n\nconst _size = useFormSize(undefined, { formItem: false })\nconst ns = useNamespace('form-item')\n\nconst labelId = useId().value\nconst inputIds = ref<string[]>([])\n\nconst validateState = ref<FormItemValidateState>('')\nconst validateStateDebounced = refDebounced(validateState, 100)\nconst validateMessage = ref('')\nconst formItemRef = ref<HTMLDivElement>()\n// special inline value.\nlet initialValue: any = undefined\nlet isResettingField = false\n\nconst labelPosition = computed(\n () => props.labelPosition || formContext?.labelPosition\n)\n\nconst labelStyle = computed<CSSProperties>(() => {\n if (labelPosition.value === 'top') {\n return {}\n }\n\n const labelWidth = addUnit(props.labelWidth ?? formContext?.labelWidth)\n return { width: labelWidth }\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n if (labelPosition.value === '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 formContext?.requireAsteriskPosition === 'right'\n ? 'asterisk-right'\n : 'asterisk-left',\n {\n [ns.m('feedback')]: formContext?.statusIcon,\n [ns.m(`label-${labelPosition.value}`)]: labelPosition.value,\n },\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 isArray(props.prop) ? props.prop.join('.') : props.prop\n})\n\nconst hasLabel = computed<boolean>(() => {\n return !!(props.label || slots.label)\n})\n\nconst labelFor = computed<string | undefined>(() => {\n return (\n props.for ?? (inputIds.value.length === 1 ? inputIds.value[0] : undefined)\n )\n})\n\nconst isGroup = computed<boolean>(() => {\n return !labelFor.value && hasLabel.value\n})\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 normalizedRules = computed(() => {\n const { required } = props\n\n const rules: FormItemRule[] = []\n\n if (props.rules) {\n rules.push(...ensureArray(props.rules))\n }\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 (required !== undefined) {\n const requiredRules = rules\n .map((rule, i) => [rule, i] as const)\n .filter(([rule]) => 'required' in rule)\n\n if (requiredRules.length > 0) {\n for (const [rule, i] of requiredRules) {\n if (rule.required === required) continue\n rules[i] = { ...rule, required }\n }\n } else {\n rules.push({ required })\n }\n }\n\n return rules\n})\n\nconst validateEnabled = computed(() => normalizedRules.value.length > 0)\n\nconst getFilteredRule = (trigger: string) => {\n const rules = normalizedRules.value\n return (\n rules\n .filter((rule) => {\n if (!rule.trigger || !trigger) return true\n if (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 normalizedRules.value.some((rule) => rule.required)\n)\n\nconst shouldShowError = computed(\n () =>\n validateStateDebounced.value === 'error' &&\n props.showMessage &&\n (formContext?.showMessage ?? true)\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)\n return Promise.reject(err)\n })\n}\n\nconst validate: FormItemContext['validate'] = async (trigger, callback) => {\n // skip validation if its resetting\n if (isResettingField || !props.prop) {\n return false\n }\n\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 isResettingField = false\n}\n\nconst resetField: FormItemContext['resetField'] = async () => {\n const model = formContext?.model\n if (!model || !props.prop) return\n\n const computedValue = getProp(model, props.prop)\n\n // prevent validation from being triggered\n isResettingField = true\n\n computedValue.value = cloneDeep(initialValue)\n\n await nextTick()\n clearValidate()\n\n isResettingField = false\n}\n\nconst addInputId: FormItemContext['addInputId'] = (id: string) => {\n if (!inputIds.value.includes(id)) {\n inputIds.value.push(id)\n }\n}\n\nconst removeInputId: FormItemContext['removeInputId'] = (id: string) => {\n inputIds.value = inputIds.value.filter((listId) => listId !== id)\n}\n\nconst setInitialValue: FormItemContext['setInitialValue'] = (value: any) => {\n initialValue = cloneDeep(value)\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 validateMessage,\n validateState,\n labelId,\n inputIds,\n isGroup,\n hasLabel,\n fieldValue,\n addInputId,\n removeInputId,\n resetField,\n clearValidate,\n validate,\n propString,\n setInitialValue,\n})\n\nprovide(formItemContextKey, context)\n\nonMounted(() => {\n if (props.prop) {\n setInitialValue(fieldValue.value)\n formContext?.addField(context)\n }\n})\n\nonBeforeUnmount(() => {\n formContext?.removeField(context)\n})\n\ndefineExpose({\n /**\n * @description Form item size.\n */\n size: _size,\n /**\n * @description Validation message.\n */\n validateMessage,\n /**\n * @description Validation state.\n */\n validateState,\n /**\n * @description Validate form item.\n */\n validate,\n /**\n * @description Remove validation status of the field.\n */\n clearValidate,\n /**\n * @description Reset current field and remove validation result.\n */\n resetField,\n /**\n * @description Set initial value for this field. When `resetField` is called, the field will reset to this value.\n */\n setInitialValue,\n})\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-item.vue_vue_type_script_setup_true_lang.mjs","names":["$slots"],"sources":["../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<template>\n <div\n ref=\"formItemRef\"\n :class=\"formItemClasses\"\n :role=\"isGroup ? 'group' : undefined\"\n :aria-labelledby=\"isGroup ? labelId : undefined\"\n >\n <form-label-wrap\n :is-auto-width=\"labelStyle.width === 'auto'\"\n :update-all=\"formContext?.labelWidth === 'auto'\"\n >\n <component\n :is=\"labelFor ? 'label' : 'div'\"\n v-if=\"!!(label || $slots.label)\"\n :id=\"labelId\"\n :for=\"labelFor\"\n :class=\"ns.e('label')\"\n :style=\"labelStyle\"\n >\n <slot name=\"label\" :label=\"currentLabel\">\n {{ currentLabel }}\n </slot>\n </component>\n </form-label-wrap>\n\n <div :class=\"ns.e('content')\" :style=\"contentStyle\">\n <slot />\n <transition-group :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-group>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n useSlots,\n watch,\n} from 'vue'\nimport AsyncValidator from 'async-validator'\nimport { refDebounced } from '@vueuse/core'\nimport {\n addUnit,\n ensureArray,\n getProp,\n isArray,\n isBoolean,\n isFunction,\n} from '@element-plus/utils'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from './hooks'\nimport FormLabelWrap from './form-label-wrap'\nimport { formContextKey, formItemContextKey } from './constants'\nimport { cloneDeep } from 'lodash-unified'\n\nimport type { CSSProperties } from 'vue'\nimport type { RuleItem } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type {\n FormItemContext,\n FormItemRule,\n FormValidateFailure,\n} from './types'\nimport type { FormItemProps, FormItemValidateState } from './form-item'\n\ndefineOptions({\n name: 'ElFormItem',\n})\nconst props = withDefaults(defineProps<FormItemProps>(), {\n labelPosition: '',\n showMessage: true,\n required: undefined,\n inlineMessage: undefined,\n})\nconst slots = useSlots()\n\nconst formContext = inject(formContextKey, undefined)\nconst parentFormItemContext = inject(formItemContextKey, undefined)\n\nconst _size = useFormSize(undefined, { formItem: false })\nconst ns = useNamespace('form-item')\n\nconst labelId = useId().value\nconst inputIds = ref<string[]>([])\n\nconst validateState = ref<FormItemValidateState>('')\nconst validateStateDebounced = refDebounced(validateState, 100)\nconst validateMessage = ref('')\nconst formItemRef = ref<HTMLDivElement>()\n// special inline value.\nlet initialValue: any = undefined\nlet isResettingField = false\n\nconst labelPosition = computed(\n () => props.labelPosition || formContext?.labelPosition\n)\n\nconst labelStyle = computed<CSSProperties>(() => {\n if (labelPosition.value === 'top') {\n return {}\n }\n\n const labelWidth = addUnit(props.labelWidth ?? formContext?.labelWidth)\n return { width: labelWidth }\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n if (labelPosition.value === '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 formContext?.requireAsteriskPosition === 'right'\n ? 'asterisk-right'\n : 'asterisk-left',\n {\n [ns.m('feedback')]: formContext?.statusIcon,\n [ns.m(`label-${labelPosition.value}`)]: labelPosition.value,\n },\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 isArray(props.prop) ? props.prop.join('.') : props.prop\n})\n\nconst hasLabel = computed<boolean>(() => {\n return !!(props.label || slots.label)\n})\n\nconst labelFor = computed<string | undefined>(() => {\n return (\n props.for ?? (inputIds.value.length === 1 ? inputIds.value[0] : undefined)\n )\n})\n\nconst isGroup = computed<boolean>(() => {\n return !labelFor.value && hasLabel.value\n})\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 normalizedRules = computed(() => {\n const { required } = props\n\n const rules: FormItemRule[] = []\n\n if (props.rules) {\n rules.push(...ensureArray(props.rules))\n }\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 (required !== undefined) {\n const requiredRules = rules\n .map((rule, i) => [rule, i] as const)\n .filter(([rule]) => 'required' in rule)\n\n if (requiredRules.length > 0) {\n for (const [rule, i] of requiredRules) {\n if (rule.required === required) continue\n rules[i] = { ...rule, required }\n }\n } else {\n rules.push({ required })\n }\n }\n\n return rules\n})\n\nconst validateEnabled = computed(() => normalizedRules.value.length > 0)\n\nconst getFilteredRule = (trigger: string) => {\n const rules = normalizedRules.value\n return (\n rules\n .filter((rule) => {\n if (!rule.trigger || !trigger) return true\n if (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 normalizedRules.value.some((rule) => rule.required)\n)\n\nconst shouldShowError = computed(\n () =>\n validateStateDebounced.value === 'error' &&\n props.showMessage &&\n (formContext?.showMessage ?? true)\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)\n return Promise.reject(err)\n })\n}\n\nconst validate: FormItemContext['validate'] = async (trigger, callback) => {\n // skip validation if its resetting\n if (isResettingField || !props.prop) {\n return false\n }\n\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 isResettingField = false\n}\n\nconst resetField: FormItemContext['resetField'] = async () => {\n const model = formContext?.model\n if (!model || !props.prop) return\n\n const computedValue = getProp(model, props.prop)\n\n // prevent validation from being triggered\n isResettingField = true\n\n computedValue.value = cloneDeep(initialValue)\n\n await nextTick()\n clearValidate()\n\n isResettingField = false\n}\n\nconst addInputId: FormItemContext['addInputId'] = (id: string) => {\n if (!inputIds.value.includes(id)) {\n inputIds.value.push(id)\n }\n}\n\nconst removeInputId: FormItemContext['removeInputId'] = (id: string) => {\n inputIds.value = inputIds.value.filter((listId) => listId !== id)\n}\n\nconst setInitialValue: FormItemContext['setInitialValue'] = (value: any) => {\n initialValue = cloneDeep(value)\n}\n\nconst getInitialValue: FormItemContext['getInitialValue'] = () => initialValue\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 validateMessage,\n validateState,\n labelId,\n inputIds,\n isGroup,\n hasLabel,\n fieldValue,\n addInputId,\n removeInputId,\n resetField,\n clearValidate,\n validate,\n propString,\n setInitialValue,\n getInitialValue,\n})\n\nprovide(formItemContextKey, context)\n\nwatch(propString, (newPropString, oldPropString) => {\n if (!formContext || !oldPropString) return\n formContext.removeField(context, oldPropString)\n if (newPropString) {\n setInitialValue(fieldValue.value)\n formContext.addField(context)\n }\n})\n\nonMounted(() => {\n if (props.prop) {\n setInitialValue(fieldValue.value)\n formContext?.addField(context)\n }\n})\n\nonBeforeUnmount(() => {\n formContext?.removeField(context)\n})\n\ndefineExpose({\n /**\n * @description Form item size.\n */\n size: _size,\n /**\n * @description Validation message.\n */\n validateMessage,\n /**\n * @description Validation state.\n */\n validateState,\n /**\n * @description Validate form item.\n */\n validate,\n /**\n * @description Remove validation status of the field.\n */\n clearValidate,\n /**\n * @description Reset current field and remove validation result.\n */\n resetField,\n /**\n * @description Set initial value for this field. When `resetField` is called, the field will reset to this value.\n */\n setInitialValue,\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-item2.mjs","names":[],"sources":["../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<template>\n <div\n ref=\"formItemRef\"\n :class=\"formItemClasses\"\n :role=\"isGroup ? 'group' : undefined\"\n :aria-labelledby=\"isGroup ? labelId : undefined\"\n >\n <form-label-wrap\n :is-auto-width=\"labelStyle.width === 'auto'\"\n :update-all=\"formContext?.labelWidth === 'auto'\"\n >\n <component\n :is=\"labelFor ? 'label' : 'div'\"\n v-if=\"!!(label || $slots.label)\"\n :id=\"labelId\"\n :for=\"labelFor\"\n :class=\"ns.e('label')\"\n :style=\"labelStyle\"\n >\n <slot name=\"label\" :label=\"currentLabel\">\n {{ currentLabel }}\n </slot>\n </component>\n </form-label-wrap>\n\n <div :class=\"ns.e('content')\" :style=\"contentStyle\">\n <slot />\n <transition-group :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-group>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n useSlots,\n watch,\n} from 'vue'\nimport AsyncValidator from 'async-validator'\nimport { refDebounced } from '@vueuse/core'\nimport {\n addUnit,\n ensureArray,\n getProp,\n isArray,\n isBoolean,\n isFunction,\n} from '@element-plus/utils'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from './hooks'\nimport FormLabelWrap from './form-label-wrap'\nimport { formContextKey, formItemContextKey } from './constants'\nimport { cloneDeep } from 'lodash-unified'\n\nimport type { CSSProperties } from 'vue'\nimport type { RuleItem } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type {\n FormItemContext,\n FormItemRule,\n FormValidateFailure,\n} from './types'\nimport type { FormItemProps, FormItemValidateState } from './form-item'\n\ndefineOptions({\n name: 'ElFormItem',\n})\nconst props = withDefaults(defineProps<FormItemProps>(), {\n labelPosition: '',\n showMessage: true,\n required: undefined,\n inlineMessage: undefined,\n})\nconst slots = useSlots()\n\nconst formContext = inject(formContextKey, undefined)\nconst parentFormItemContext = inject(formItemContextKey, undefined)\n\nconst _size = useFormSize(undefined, { formItem: false })\nconst ns = useNamespace('form-item')\n\nconst labelId = useId().value\nconst inputIds = ref<string[]>([])\n\nconst validateState = ref<FormItemValidateState>('')\nconst validateStateDebounced = refDebounced(validateState, 100)\nconst validateMessage = ref('')\nconst formItemRef = ref<HTMLDivElement>()\n// special inline value.\nlet initialValue: any = undefined\nlet isResettingField = false\n\nconst labelPosition = computed(\n () => props.labelPosition || formContext?.labelPosition\n)\n\nconst labelStyle = computed<CSSProperties>(() => {\n if (labelPosition.value === 'top') {\n return {}\n }\n\n const labelWidth = addUnit(props.labelWidth ?? formContext?.labelWidth)\n return { width: labelWidth }\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n if (labelPosition.value === '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 formContext?.requireAsteriskPosition === 'right'\n ? 'asterisk-right'\n : 'asterisk-left',\n {\n [ns.m('feedback')]: formContext?.statusIcon,\n [ns.m(`label-${labelPosition.value}`)]: labelPosition.value,\n },\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 isArray(props.prop) ? props.prop.join('.') : props.prop\n})\n\nconst hasLabel = computed<boolean>(() => {\n return !!(props.label || slots.label)\n})\n\nconst labelFor = computed<string | undefined>(() => {\n return (\n props.for ?? (inputIds.value.length === 1 ? inputIds.value[0] : undefined)\n )\n})\n\nconst isGroup = computed<boolean>(() => {\n return !labelFor.value && hasLabel.value\n})\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 normalizedRules = computed(() => {\n const { required } = props\n\n const rules: FormItemRule[] = []\n\n if (props.rules) {\n rules.push(...ensureArray(props.rules))\n }\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 (required !== undefined) {\n const requiredRules = rules\n .map((rule, i) => [rule, i] as const)\n .filter(([rule]) => 'required' in rule)\n\n if (requiredRules.length > 0) {\n for (const [rule, i] of requiredRules) {\n if (rule.required === required) continue\n rules[i] = { ...rule, required }\n }\n } else {\n rules.push({ required })\n }\n }\n\n return rules\n})\n\nconst validateEnabled = computed(() => normalizedRules.value.length > 0)\n\nconst getFilteredRule = (trigger: string) => {\n const rules = normalizedRules.value\n return (\n rules\n .filter((rule) => {\n if (!rule.trigger || !trigger) return true\n if (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 normalizedRules.value.some((rule) => rule.required)\n)\n\nconst shouldShowError = computed(\n () =>\n validateStateDebounced.value === 'error' &&\n props.showMessage &&\n (formContext?.showMessage ?? true)\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)\n return Promise.reject(err)\n })\n}\n\nconst validate: FormItemContext['validate'] = async (trigger, callback) => {\n // skip validation if its resetting\n if (isResettingField || !props.prop) {\n return false\n }\n\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 isResettingField = false\n}\n\nconst resetField: FormItemContext['resetField'] = async () => {\n const model = formContext?.model\n if (!model || !props.prop) return\n\n const computedValue = getProp(model, props.prop)\n\n // prevent validation from being triggered\n isResettingField = true\n\n computedValue.value = cloneDeep(initialValue)\n\n await nextTick()\n clearValidate()\n\n isResettingField = false\n}\n\nconst addInputId: FormItemContext['addInputId'] = (id: string) => {\n if (!inputIds.value.includes(id)) {\n inputIds.value.push(id)\n }\n}\n\nconst removeInputId: FormItemContext['removeInputId'] = (id: string) => {\n inputIds.value = inputIds.value.filter((listId) => listId !== id)\n}\n\nconst setInitialValue: FormItemContext['setInitialValue'] = (value: any) => {\n initialValue = cloneDeep(value)\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 validateMessage,\n validateState,\n labelId,\n inputIds,\n isGroup,\n hasLabel,\n fieldValue,\n addInputId,\n removeInputId,\n resetField,\n clearValidate,\n validate,\n propString,\n setInitialValue,\n})\n\nprovide(formItemContextKey, context)\n\nonMounted(() => {\n if (props.prop) {\n setInitialValue(fieldValue.value)\n formContext?.addField(context)\n }\n})\n\nonBeforeUnmount(() => {\n formContext?.removeField(context)\n})\n\ndefineExpose({\n /**\n * @description Form item size.\n */\n size: _size,\n /**\n * @description Validation message.\n */\n validateMessage,\n /**\n * @description Validation state.\n */\n validateState,\n /**\n * @description Validate form item.\n */\n validate,\n /**\n * @description Remove validation status of the field.\n */\n clearValidate,\n /**\n * @description Reset current field and remove validation result.\n */\n resetField,\n /**\n * @description Set initial value for this field. When `resetField` is called, the field will reset to this value.\n */\n setInitialValue,\n})\n</script>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"form-item2.mjs","names":[],"sources":["../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<template>\n <div\n ref=\"formItemRef\"\n :class=\"formItemClasses\"\n :role=\"isGroup ? 'group' : undefined\"\n :aria-labelledby=\"isGroup ? labelId : undefined\"\n >\n <form-label-wrap\n :is-auto-width=\"labelStyle.width === 'auto'\"\n :update-all=\"formContext?.labelWidth === 'auto'\"\n >\n <component\n :is=\"labelFor ? 'label' : 'div'\"\n v-if=\"!!(label || $slots.label)\"\n :id=\"labelId\"\n :for=\"labelFor\"\n :class=\"ns.e('label')\"\n :style=\"labelStyle\"\n >\n <slot name=\"label\" :label=\"currentLabel\">\n {{ currentLabel }}\n </slot>\n </component>\n </form-label-wrap>\n\n <div :class=\"ns.e('content')\" :style=\"contentStyle\">\n <slot />\n <transition-group :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-group>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n useSlots,\n watch,\n} from 'vue'\nimport AsyncValidator from 'async-validator'\nimport { refDebounced } from '@vueuse/core'\nimport {\n addUnit,\n ensureArray,\n getProp,\n isArray,\n isBoolean,\n isFunction,\n} from '@element-plus/utils'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from './hooks'\nimport FormLabelWrap from './form-label-wrap'\nimport { formContextKey, formItemContextKey } from './constants'\nimport { cloneDeep } from 'lodash-unified'\n\nimport type { CSSProperties } from 'vue'\nimport type { RuleItem } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type {\n FormItemContext,\n FormItemRule,\n FormValidateFailure,\n} from './types'\nimport type { FormItemProps, FormItemValidateState } from './form-item'\n\ndefineOptions({\n name: 'ElFormItem',\n})\nconst props = withDefaults(defineProps<FormItemProps>(), {\n labelPosition: '',\n showMessage: true,\n required: undefined,\n inlineMessage: undefined,\n})\nconst slots = useSlots()\n\nconst formContext = inject(formContextKey, undefined)\nconst parentFormItemContext = inject(formItemContextKey, undefined)\n\nconst _size = useFormSize(undefined, { formItem: false })\nconst ns = useNamespace('form-item')\n\nconst labelId = useId().value\nconst inputIds = ref<string[]>([])\n\nconst validateState = ref<FormItemValidateState>('')\nconst validateStateDebounced = refDebounced(validateState, 100)\nconst validateMessage = ref('')\nconst formItemRef = ref<HTMLDivElement>()\n// special inline value.\nlet initialValue: any = undefined\nlet isResettingField = false\n\nconst labelPosition = computed(\n () => props.labelPosition || formContext?.labelPosition\n)\n\nconst labelStyle = computed<CSSProperties>(() => {\n if (labelPosition.value === 'top') {\n return {}\n }\n\n const labelWidth = addUnit(props.labelWidth ?? formContext?.labelWidth)\n return { width: labelWidth }\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n if (labelPosition.value === '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 formContext?.requireAsteriskPosition === 'right'\n ? 'asterisk-right'\n : 'asterisk-left',\n {\n [ns.m('feedback')]: formContext?.statusIcon,\n [ns.m(`label-${labelPosition.value}`)]: labelPosition.value,\n },\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 isArray(props.prop) ? props.prop.join('.') : props.prop\n})\n\nconst hasLabel = computed<boolean>(() => {\n return !!(props.label || slots.label)\n})\n\nconst labelFor = computed<string | undefined>(() => {\n return (\n props.for ?? (inputIds.value.length === 1 ? inputIds.value[0] : undefined)\n )\n})\n\nconst isGroup = computed<boolean>(() => {\n return !labelFor.value && hasLabel.value\n})\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 normalizedRules = computed(() => {\n const { required } = props\n\n const rules: FormItemRule[] = []\n\n if (props.rules) {\n rules.push(...ensureArray(props.rules))\n }\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 (required !== undefined) {\n const requiredRules = rules\n .map((rule, i) => [rule, i] as const)\n .filter(([rule]) => 'required' in rule)\n\n if (requiredRules.length > 0) {\n for (const [rule, i] of requiredRules) {\n if (rule.required === required) continue\n rules[i] = { ...rule, required }\n }\n } else {\n rules.push({ required })\n }\n }\n\n return rules\n})\n\nconst validateEnabled = computed(() => normalizedRules.value.length > 0)\n\nconst getFilteredRule = (trigger: string) => {\n const rules = normalizedRules.value\n return (\n rules\n .filter((rule) => {\n if (!rule.trigger || !trigger) return true\n if (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 normalizedRules.value.some((rule) => rule.required)\n)\n\nconst shouldShowError = computed(\n () =>\n validateStateDebounced.value === 'error' &&\n props.showMessage &&\n (formContext?.showMessage ?? true)\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)\n return Promise.reject(err)\n })\n}\n\nconst validate: FormItemContext['validate'] = async (trigger, callback) => {\n // skip validation if its resetting\n if (isResettingField || !props.prop) {\n return false\n }\n\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 isResettingField = false\n}\n\nconst resetField: FormItemContext['resetField'] = async () => {\n const model = formContext?.model\n if (!model || !props.prop) return\n\n const computedValue = getProp(model, props.prop)\n\n // prevent validation from being triggered\n isResettingField = true\n\n computedValue.value = cloneDeep(initialValue)\n\n await nextTick()\n clearValidate()\n\n isResettingField = false\n}\n\nconst addInputId: FormItemContext['addInputId'] = (id: string) => {\n if (!inputIds.value.includes(id)) {\n inputIds.value.push(id)\n }\n}\n\nconst removeInputId: FormItemContext['removeInputId'] = (id: string) => {\n inputIds.value = inputIds.value.filter((listId) => listId !== id)\n}\n\nconst setInitialValue: FormItemContext['setInitialValue'] = (value: any) => {\n initialValue = cloneDeep(value)\n}\n\nconst getInitialValue: FormItemContext['getInitialValue'] = () => initialValue\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 validateMessage,\n validateState,\n labelId,\n inputIds,\n isGroup,\n hasLabel,\n fieldValue,\n addInputId,\n removeInputId,\n resetField,\n clearValidate,\n validate,\n propString,\n setInitialValue,\n getInitialValue,\n})\n\nprovide(formItemContextKey, context)\n\nwatch(propString, (newPropString, oldPropString) => {\n if (!formContext || !oldPropString) return\n formContext.removeField(context, oldPropString)\n if (newPropString) {\n setInitialValue(fieldValue.value)\n formContext.addField(context)\n }\n})\n\nonMounted(() => {\n if (props.prop) {\n setInitialValue(fieldValue.value)\n formContext?.addField(context)\n }\n})\n\nonBeforeUnmount(() => {\n formContext?.removeField(context)\n})\n\ndefineExpose({\n /**\n * @description Form item size.\n */\n size: _size,\n /**\n * @description Validation message.\n */\n validateMessage,\n /**\n * @description Validation state.\n */\n validateState,\n /**\n * @description Validate form item.\n */\n validate,\n /**\n * @description Remove validation status of the field.\n */\n clearValidate,\n /**\n * @description Reset current field and remove validation result.\n */\n resetField,\n /**\n * @description Set initial value for this field. When `resetField` is called, the field will reset to this value.\n */\n setInitialValue,\n})\n</script>\n"],"mappings":""}
|
|
@@ -40,12 +40,20 @@ var form_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
40
40
|
return filterFields(fields, [prop])[0];
|
|
41
41
|
};
|
|
42
42
|
const addField = (field) => {
|
|
43
|
-
fields.push(field);
|
|
43
|
+
if (!fields.includes(field)) fields.push(field);
|
|
44
44
|
if (field.propString) if (initialValues.has(field.propString)) field.setInitialValue(initialValues.get(field.propString));
|
|
45
45
|
else initialValues.set(field.propString, cloneDeep(field.fieldValue));
|
|
46
46
|
};
|
|
47
|
-
const removeField = (field) => {
|
|
48
|
-
if (
|
|
47
|
+
const removeField = (field, oldPropString) => {
|
|
48
|
+
if (oldPropString) {
|
|
49
|
+
initialValues.delete(oldPropString);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const idx = fields.indexOf(field);
|
|
53
|
+
if (idx > -1) {
|
|
54
|
+
fields.splice(idx, 1);
|
|
55
|
+
if (field.propString) initialValues.set(field.propString, cloneDeep(field.getInitialValue()));
|
|
56
|
+
}
|
|
49
57
|
};
|
|
50
58
|
const setInitialValues = (initModel) => {
|
|
51
59
|
if (!props.model) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.vue_vue_type_script_setup_true_lang.mjs","names":[],"sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form ref=\"formRef\" :class=\"formClasses\">\n <slot />\n </form>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, reactive, ref, toRefs, watch } from 'vue'\nimport { cloneDeep } from 'lodash-unified'\nimport {\n debugWarn,\n ensureArray,\n getProp,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from './hooks'\nimport { formContextKey } from './constants'\nimport { formEmits } from './form'\nimport { filterFields, useFormLabelWidth } from './utils'\n\nimport type { ValidateFieldsError } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormProps } from './form'\nimport type {\n FormContext,\n FormItemContext,\n FormValidateCallback,\n FormValidationResult,\n} from './types'\nimport type { FormItemProp } from './form-item'\n\nconst COMPONENT_NAME = 'ElForm'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = withDefaults(defineProps<FormProps>(), {\n labelPosition: 'right',\n requireAsteriskPosition: 'left',\n labelWidth: '',\n labelSuffix: '',\n showMessage: true,\n validateOnRuleChange: true,\n scrollIntoViewOptions: true,\n})\nconst emit = defineEmits(formEmits)\n\nconst formRef = ref<HTMLElement>()\nconst fields = reactive<FormItemContext[]>([])\nconst initialValues = new Map<string, any>()\n\nconst formSize = useFormSize()\nconst ns = useNamespace('form')\nconst formClasses = computed(() => {\n const { labelPosition, inline } = props\n return [\n ns.b(),\n ns.m(formSize.value || 'default'),\n {\n [ns.m(`label-${labelPosition}`)]: labelPosition,\n [ns.m('inline')]: inline,\n },\n ]\n})\n\nconst getField: FormContext['getField'] = (prop) => {\n return filterFields(fields, [prop])[0]\n}\n\nconst addField: FormContext['addField'] = (field) => {\n fields.push(field)\n if (field.propString) {\n if (initialValues.has(field.propString)) {\n field.setInitialValue(initialValues.get(field.propString))\n } else {\n initialValues.set(field.propString, cloneDeep(field.fieldValue))\n }\n }\n}\n\nconst removeField: FormContext['removeField'] = (field) => {\n if (field.prop) {\n fields.splice(fields.indexOf(field), 1)\n }\n}\n\nconst setInitialValues: FormContext['setInitialValues'] = (initModel) => {\n if (!props.model) {\n debugWarn(COMPONENT_NAME, 'model is required for setInitialValues to work.')\n return\n }\n if (!initModel) {\n debugWarn(\n COMPONENT_NAME,\n 'initModel is required for setInitialValues to work.'\n )\n return\n }\n\n for (const key of initialValues.keys()) {\n initialValues.set(key, cloneDeep(getProp(initModel, key).value))\n }\n fields.forEach((field) => {\n if (field.prop) {\n field.setInitialValue(getProp(initModel, field.prop).value)\n }\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\n filterFields(fields, properties).forEach((field) => field.resetField())\n\n const activePropStrings = new Set(\n fields.map((f) => f.propString).filter(Boolean)\n )\n const propsToCheck =\n properties.length > 0\n ? ensureArray(properties).map((p) => (isArray(p) ? p.join('.') : p))\n : [...initialValues.keys()]\n\n for (const propString of propsToCheck) {\n if (!activePropStrings.has(propString) && initialValues.has(propString)) {\n getProp(props.model, propString).value = cloneDeep(\n initialValues.get(propString)\n )\n }\n }\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 if (field.validateState === 'error' && !field.error) field.resetField()\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 let result = false\n const shouldThrow = !isFunction(callback)\n try {\n result = await doValidateField(modelProps)\n // When result is false meaning that the fields are not validatable\n if (result === true) {\n await callback?.(result)\n }\n return result\n } catch (e) {\n if (e instanceof Error) throw e\n\n const invalidFields = e as ValidateFieldsError\n\n if (props.scrollToError) {\n // form-item may be dynamically rendered based on the judgment conditions, and the order in invalidFields is uncertain.\n // Therefore, the first form field with an error is determined by directly looking for the rendered element.\n if (formRef.value) {\n const formItem = formRef.value.querySelector(`.${ns.b()}-item.is-error`)\n formItem?.scrollIntoView(props.scrollIntoViewOptions)\n }\n }\n !result && (await callback?.(false, invalidFields))\n return shouldThrow && Promise.reject(invalidFields)\n }\n}\n\nconst scrollToField = (prop: FormItemProp) => {\n const field = getField(prop)\n if (field) {\n field.$el?.scrollIntoView(props.scrollIntoViewOptions)\n }\n}\n\nwatch(\n () => props.rules,\n () => {\n if (props.validateOnRuleChange) {\n validate().catch((err) => debugWarn(err))\n }\n },\n { deep: true, flush: 'post' }\n)\n\nprovide(\n formContextKey,\n reactive({\n ...toRefs(props),\n emit,\n\n resetFields,\n clearValidate,\n validateField,\n getField,\n addField,\n removeField,\n setInitialValues,\n\n ...useFormLabelWidth(),\n })\n)\n\ndefineExpose({\n /**\n * @description Validate the whole form. Receives a callback or returns `Promise`.\n */\n validate,\n /**\n * @description Validate specified fields.\n */\n validateField,\n /**\n * @description Reset specified fields and remove validation result.\n */\n resetFields,\n /**\n * @description Clear validation message for specified fields.\n */\n clearValidate,\n /**\n * @description Scroll to the specified fields.\n */\n scrollToField,\n /**\n * @description Get a field context.\n */\n getField,\n /**\n * @description All fields context.\n */\n fields,\n /**\n * @description Set initial values for form fields. When `resetFields` is called, fields will reset to these values.\n */\n setInitialValues,\n})\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form.vue_vue_type_script_setup_true_lang.mjs","names":[],"sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form ref=\"formRef\" :class=\"formClasses\">\n <slot />\n </form>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, reactive, ref, toRefs, watch } from 'vue'\nimport { cloneDeep } from 'lodash-unified'\nimport {\n debugWarn,\n ensureArray,\n getProp,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from './hooks'\nimport { formContextKey } from './constants'\nimport { formEmits } from './form'\nimport { filterFields, useFormLabelWidth } from './utils'\n\nimport type { ValidateFieldsError } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormProps } from './form'\nimport type {\n FormContext,\n FormItemContext,\n FormValidateCallback,\n FormValidationResult,\n} from './types'\nimport type { FormItemProp } from './form-item'\n\nconst COMPONENT_NAME = 'ElForm'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = withDefaults(defineProps<FormProps>(), {\n labelPosition: 'right',\n requireAsteriskPosition: 'left',\n labelWidth: '',\n labelSuffix: '',\n showMessage: true,\n validateOnRuleChange: true,\n scrollIntoViewOptions: true,\n})\nconst emit = defineEmits(formEmits)\n\nconst formRef = ref<HTMLElement>()\nconst fields = reactive<FormItemContext[]>([])\nconst initialValues = new Map<string, any>()\n\nconst formSize = useFormSize()\nconst ns = useNamespace('form')\nconst formClasses = computed(() => {\n const { labelPosition, inline } = props\n return [\n ns.b(),\n ns.m(formSize.value || 'default'),\n {\n [ns.m(`label-${labelPosition}`)]: labelPosition,\n [ns.m('inline')]: inline,\n },\n ]\n})\n\nconst getField: FormContext['getField'] = (prop) => {\n return filterFields(fields, [prop])[0]\n}\n\nconst addField: FormContext['addField'] = (field) => {\n if (!fields.includes(field)) {\n fields.push(field)\n }\n if (field.propString) {\n if (initialValues.has(field.propString)) {\n field.setInitialValue(initialValues.get(field.propString))\n } else {\n initialValues.set(field.propString, cloneDeep(field.fieldValue))\n }\n }\n}\n\nconst removeField: FormContext['removeField'] = (field, oldPropString?) => {\n if (oldPropString) {\n // Prop changed on a live field: delete stale key, field stays in fields[]\n initialValues.delete(oldPropString)\n return\n }\n // Unmount: splice from array, cache initialValue for potential remount\n const idx = fields.indexOf(field)\n if (idx > -1) {\n fields.splice(idx, 1)\n if (field.propString) {\n initialValues.set(field.propString, cloneDeep(field.getInitialValue()))\n }\n }\n}\n\nconst setInitialValues: FormContext['setInitialValues'] = (initModel) => {\n if (!props.model) {\n debugWarn(COMPONENT_NAME, 'model is required for setInitialValues to work.')\n return\n }\n if (!initModel) {\n debugWarn(\n COMPONENT_NAME,\n 'initModel is required for setInitialValues to work.'\n )\n return\n }\n\n for (const key of initialValues.keys()) {\n initialValues.set(key, cloneDeep(getProp(initModel, key).value))\n }\n fields.forEach((field) => {\n if (field.prop) {\n field.setInitialValue(getProp(initModel, field.prop).value)\n }\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\n filterFields(fields, properties).forEach((field) => field.resetField())\n\n const activePropStrings = new Set(\n fields.map((f) => f.propString).filter(Boolean)\n )\n const propsToCheck =\n properties.length > 0\n ? ensureArray(properties).map((p) => (isArray(p) ? p.join('.') : p))\n : [...initialValues.keys()]\n\n for (const propString of propsToCheck) {\n if (!activePropStrings.has(propString) && initialValues.has(propString)) {\n getProp(props.model, propString).value = cloneDeep(\n initialValues.get(propString)\n )\n }\n }\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 if (field.validateState === 'error' && !field.error) field.resetField()\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 let result = false\n const shouldThrow = !isFunction(callback)\n try {\n result = await doValidateField(modelProps)\n // When result is false meaning that the fields are not validatable\n if (result === true) {\n await callback?.(result)\n }\n return result\n } catch (e) {\n if (e instanceof Error) throw e\n\n const invalidFields = e as ValidateFieldsError\n\n if (props.scrollToError) {\n // form-item may be dynamically rendered based on the judgment conditions, and the order in invalidFields is uncertain.\n // Therefore, the first form field with an error is determined by directly looking for the rendered element.\n if (formRef.value) {\n const formItem = formRef.value.querySelector(`.${ns.b()}-item.is-error`)\n formItem?.scrollIntoView(props.scrollIntoViewOptions)\n }\n }\n !result && (await callback?.(false, invalidFields))\n return shouldThrow && Promise.reject(invalidFields)\n }\n}\n\nconst scrollToField = (prop: FormItemProp) => {\n const field = getField(prop)\n if (field) {\n field.$el?.scrollIntoView(props.scrollIntoViewOptions)\n }\n}\n\nwatch(\n () => props.rules,\n () => {\n if (props.validateOnRuleChange) {\n validate().catch((err) => debugWarn(err))\n }\n },\n { deep: true, flush: 'post' }\n)\n\nprovide(\n formContextKey,\n reactive({\n ...toRefs(props),\n emit,\n\n resetFields,\n clearValidate,\n validateField,\n getField,\n addField,\n removeField,\n setInitialValues,\n\n ...useFormLabelWidth(),\n })\n)\n\ndefineExpose({\n /**\n * @description Validate the whole form. Receives a callback or returns `Promise`.\n */\n validate,\n /**\n * @description Validate specified fields.\n */\n validateField,\n /**\n * @description Reset specified fields and remove validation result.\n */\n resetFields,\n /**\n * @description Clear validation message for specified fields.\n */\n clearValidate,\n /**\n * @description Scroll to the specified fields.\n */\n scrollToField,\n /**\n * @description Get a field context.\n */\n getField,\n /**\n * @description All fields context.\n */\n fields,\n /**\n * @description Set initial values for form fields. When `resetFields` is called, fields will reset to these values.\n */\n setInitialValues,\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form2.mjs","names":[],"sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form ref=\"formRef\" :class=\"formClasses\">\n <slot />\n </form>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, reactive, ref, toRefs, watch } from 'vue'\nimport { cloneDeep } from 'lodash-unified'\nimport {\n debugWarn,\n ensureArray,\n getProp,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from './hooks'\nimport { formContextKey } from './constants'\nimport { formEmits } from './form'\nimport { filterFields, useFormLabelWidth } from './utils'\n\nimport type { ValidateFieldsError } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormProps } from './form'\nimport type {\n FormContext,\n FormItemContext,\n FormValidateCallback,\n FormValidationResult,\n} from './types'\nimport type { FormItemProp } from './form-item'\n\nconst COMPONENT_NAME = 'ElForm'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = withDefaults(defineProps<FormProps>(), {\n labelPosition: 'right',\n requireAsteriskPosition: 'left',\n labelWidth: '',\n labelSuffix: '',\n showMessage: true,\n validateOnRuleChange: true,\n scrollIntoViewOptions: true,\n})\nconst emit = defineEmits(formEmits)\n\nconst formRef = ref<HTMLElement>()\nconst fields = reactive<FormItemContext[]>([])\nconst initialValues = new Map<string, any>()\n\nconst formSize = useFormSize()\nconst ns = useNamespace('form')\nconst formClasses = computed(() => {\n const { labelPosition, inline } = props\n return [\n ns.b(),\n ns.m(formSize.value || 'default'),\n {\n [ns.m(`label-${labelPosition}`)]: labelPosition,\n [ns.m('inline')]: inline,\n },\n ]\n})\n\nconst getField: FormContext['getField'] = (prop) => {\n return filterFields(fields, [prop])[0]\n}\n\nconst addField: FormContext['addField'] = (field) => {\n fields.push(field)\n if (field.propString) {\n if (initialValues.has(field.propString)) {\n field.setInitialValue(initialValues.get(field.propString))\n } else {\n initialValues.set(field.propString, cloneDeep(field.fieldValue))\n }\n }\n}\n\nconst removeField: FormContext['removeField'] = (field) => {\n if (
|
|
1
|
+
{"version":3,"file":"form2.mjs","names":[],"sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form ref=\"formRef\" :class=\"formClasses\">\n <slot />\n </form>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, reactive, ref, toRefs, watch } from 'vue'\nimport { cloneDeep } from 'lodash-unified'\nimport {\n debugWarn,\n ensureArray,\n getProp,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from './hooks'\nimport { formContextKey } from './constants'\nimport { formEmits } from './form'\nimport { filterFields, useFormLabelWidth } from './utils'\n\nimport type { ValidateFieldsError } from 'async-validator'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormProps } from './form'\nimport type {\n FormContext,\n FormItemContext,\n FormValidateCallback,\n FormValidationResult,\n} from './types'\nimport type { FormItemProp } from './form-item'\n\nconst COMPONENT_NAME = 'ElForm'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = withDefaults(defineProps<FormProps>(), {\n labelPosition: 'right',\n requireAsteriskPosition: 'left',\n labelWidth: '',\n labelSuffix: '',\n showMessage: true,\n validateOnRuleChange: true,\n scrollIntoViewOptions: true,\n})\nconst emit = defineEmits(formEmits)\n\nconst formRef = ref<HTMLElement>()\nconst fields = reactive<FormItemContext[]>([])\nconst initialValues = new Map<string, any>()\n\nconst formSize = useFormSize()\nconst ns = useNamespace('form')\nconst formClasses = computed(() => {\n const { labelPosition, inline } = props\n return [\n ns.b(),\n ns.m(formSize.value || 'default'),\n {\n [ns.m(`label-${labelPosition}`)]: labelPosition,\n [ns.m('inline')]: inline,\n },\n ]\n})\n\nconst getField: FormContext['getField'] = (prop) => {\n return filterFields(fields, [prop])[0]\n}\n\nconst addField: FormContext['addField'] = (field) => {\n if (!fields.includes(field)) {\n fields.push(field)\n }\n if (field.propString) {\n if (initialValues.has(field.propString)) {\n field.setInitialValue(initialValues.get(field.propString))\n } else {\n initialValues.set(field.propString, cloneDeep(field.fieldValue))\n }\n }\n}\n\nconst removeField: FormContext['removeField'] = (field, oldPropString?) => {\n if (oldPropString) {\n // Prop changed on a live field: delete stale key, field stays in fields[]\n initialValues.delete(oldPropString)\n return\n }\n // Unmount: splice from array, cache initialValue for potential remount\n const idx = fields.indexOf(field)\n if (idx > -1) {\n fields.splice(idx, 1)\n if (field.propString) {\n initialValues.set(field.propString, cloneDeep(field.getInitialValue()))\n }\n }\n}\n\nconst setInitialValues: FormContext['setInitialValues'] = (initModel) => {\n if (!props.model) {\n debugWarn(COMPONENT_NAME, 'model is required for setInitialValues to work.')\n return\n }\n if (!initModel) {\n debugWarn(\n COMPONENT_NAME,\n 'initModel is required for setInitialValues to work.'\n )\n return\n }\n\n for (const key of initialValues.keys()) {\n initialValues.set(key, cloneDeep(getProp(initModel, key).value))\n }\n fields.forEach((field) => {\n if (field.prop) {\n field.setInitialValue(getProp(initModel, field.prop).value)\n }\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\n filterFields(fields, properties).forEach((field) => field.resetField())\n\n const activePropStrings = new Set(\n fields.map((f) => f.propString).filter(Boolean)\n )\n const propsToCheck =\n properties.length > 0\n ? ensureArray(properties).map((p) => (isArray(p) ? p.join('.') : p))\n : [...initialValues.keys()]\n\n for (const propString of propsToCheck) {\n if (!activePropStrings.has(propString) && initialValues.has(propString)) {\n getProp(props.model, propString).value = cloneDeep(\n initialValues.get(propString)\n )\n }\n }\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 if (field.validateState === 'error' && !field.error) field.resetField()\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 let result = false\n const shouldThrow = !isFunction(callback)\n try {\n result = await doValidateField(modelProps)\n // When result is false meaning that the fields are not validatable\n if (result === true) {\n await callback?.(result)\n }\n return result\n } catch (e) {\n if (e instanceof Error) throw e\n\n const invalidFields = e as ValidateFieldsError\n\n if (props.scrollToError) {\n // form-item may be dynamically rendered based on the judgment conditions, and the order in invalidFields is uncertain.\n // Therefore, the first form field with an error is determined by directly looking for the rendered element.\n if (formRef.value) {\n const formItem = formRef.value.querySelector(`.${ns.b()}-item.is-error`)\n formItem?.scrollIntoView(props.scrollIntoViewOptions)\n }\n }\n !result && (await callback?.(false, invalidFields))\n return shouldThrow && Promise.reject(invalidFields)\n }\n}\n\nconst scrollToField = (prop: FormItemProp) => {\n const field = getField(prop)\n if (field) {\n field.$el?.scrollIntoView(props.scrollIntoViewOptions)\n }\n}\n\nwatch(\n () => props.rules,\n () => {\n if (props.validateOnRuleChange) {\n validate().catch((err) => debugWarn(err))\n }\n },\n { deep: true, flush: 'post' }\n)\n\nprovide(\n formContextKey,\n reactive({\n ...toRefs(props),\n emit,\n\n resetFields,\n clearValidate,\n validateField,\n getField,\n addField,\n removeField,\n setInitialValues,\n\n ...useFormLabelWidth(),\n })\n)\n\ndefineExpose({\n /**\n * @description Validate the whole form. Receives a callback or returns `Promise`.\n */\n validate,\n /**\n * @description Validate specified fields.\n */\n validateField,\n /**\n * @description Reset specified fields and remove validation result.\n */\n resetFields,\n /**\n * @description Clear validation message for specified fields.\n */\n clearValidate,\n /**\n * @description Scroll to the specified fields.\n */\n scrollToField,\n /**\n * @description Get a field context.\n */\n getField,\n /**\n * @description All fields context.\n */\n fields,\n /**\n * @description Set initial values for form fields. When `resetFields` is called, fields will reset to these values.\n */\n setInitialValues,\n})\n</script>\n"],"mappings":""}
|
|
@@ -25,7 +25,7 @@ type FormContext = FormProps & UnwrapRef<FormLabelWidthContext> & {
|
|
|
25
25
|
emit: SetupContext<FormEmits>['emit'];
|
|
26
26
|
getField: (prop: FormItemProp) => FormItemContext | undefined;
|
|
27
27
|
addField: (field: FormItemContext) => void;
|
|
28
|
-
removeField: (field: FormItemContext) => void;
|
|
28
|
+
removeField: (field: FormItemContext, oldPropString?: string) => void;
|
|
29
29
|
resetFields: (props?: Arrayable<FormItemProp>) => void;
|
|
30
30
|
setInitialValues: (initModel: Record<string, any>) => void;
|
|
31
31
|
clearValidate: (props?: Arrayable<FormItemProp>) => void;
|
|
@@ -48,6 +48,7 @@ interface FormItemContext extends FormItemProps {
|
|
|
48
48
|
resetField(): void;
|
|
49
49
|
clearValidate(): void;
|
|
50
50
|
setInitialValue: (value: any) => void;
|
|
51
|
+
getInitialValue: () => any;
|
|
51
52
|
}
|
|
52
53
|
//#endregion
|
|
53
54
|
export { FormContext, FormItemContext, FormItemRule, FormLabelWidthContext, FormRules, FormValidateCallback, FormValidateFailure, FormValidationResult };
|
|
@@ -6,9 +6,7 @@ declare var __VLS_1: {};
|
|
|
6
6
|
type __VLS_Slots = {} & {
|
|
7
7
|
default?: (props: typeof __VLS_1) => any;
|
|
8
8
|
};
|
|
9
|
-
declare const __VLS_base: vue.DefineComponent<IconProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<IconProps> & Readonly<{}>, {
|
|
10
|
-
size: number | string;
|
|
11
|
-
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_base: vue.DefineComponent<IconProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
12
10
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
11
|
declare const _default: typeof __VLS_export;
|
|
14
12
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.vue_vue_type_script_setup_true_lang.mjs","names":["$attrs"],"sources":["../../../../../../packages/components/icon/src/icon.vue"],"sourcesContent":["<template>\n <i :class=\"ns.b()\" :style=\"style\" v-bind=\"$attrs\">\n <slot />\n </i>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { addUnit } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { CSSProperties } from 'vue'\nimport type { IconProps } from './icon'\n\ndefineOptions({\n name: 'ElIcon',\n inheritAttrs: false,\n})\nconst props =
|
|
1
|
+
{"version":3,"file":"icon.vue_vue_type_script_setup_true_lang.mjs","names":["$attrs"],"sources":["../../../../../../packages/components/icon/src/icon.vue"],"sourcesContent":["<template>\n <i :class=\"ns.b()\" :style=\"style\" v-bind=\"$attrs\">\n <slot />\n </i>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { addUnit } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { CSSProperties } from 'vue'\nimport type { IconProps } from './icon'\n\ndefineOptions({\n name: 'ElIcon',\n inheritAttrs: false,\n})\nconst props = defineProps<IconProps>()\nconst ns = useNamespace('icon')\n\nconst style = computed<CSSProperties>(() => {\n const { size, color } = props\n const fontSize = addUnit(size)\n if (!fontSize && !color) return {}\n\n return {\n fontSize,\n '--color': color,\n }\n})\n</script>\n"],"mappings":";;;;;;;;;;;;EAkBA,MAAM,QAAQ;EACd,MAAM,KAAK,aAAa,OAAM;EAE9B,MAAM,QAAQ,eAA8B;GAC1C,MAAM,EAAE,MAAM,UAAU;GACxB,MAAM,WAAW,QAAQ,KAAI;AAC7B,OAAI,CAAC,YAAY,CAAC,MAAO,QAAO,EAAC;AAEjC,UAAO;IACL;IACA,WAAW;IACb;IACD;;uBA7BC,mBAEI,KAFJ,WAEI;IAFA,OAAO,MAAA,GAAE,CAAC,GAAC;IAAK,OAAO,MAAA;MAAeA,KAAAA,OAAM,EAAA,CAC9C,WAAQ,KAAA,QAAA,UAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon2.mjs","names":[],"sources":["../../../../../../packages/components/icon/src/icon.vue"],"sourcesContent":["<template>\n <i :class=\"ns.b()\" :style=\"style\" v-bind=\"$attrs\">\n <slot />\n </i>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { addUnit } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { CSSProperties } from 'vue'\nimport type { IconProps } from './icon'\n\ndefineOptions({\n name: 'ElIcon',\n inheritAttrs: false,\n})\nconst props =
|
|
1
|
+
{"version":3,"file":"icon2.mjs","names":[],"sources":["../../../../../../packages/components/icon/src/icon.vue"],"sourcesContent":["<template>\n <i :class=\"ns.b()\" :style=\"style\" v-bind=\"$attrs\">\n <slot />\n </i>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { addUnit } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { CSSProperties } from 'vue'\nimport type { IconProps } from './icon'\n\ndefineOptions({\n name: 'ElIcon',\n inheritAttrs: false,\n})\nconst props = defineProps<IconProps>()\nconst ns = useNamespace('icon')\n\nconst style = computed<CSSProperties>(() => {\n const { size, color } = props\n const fontSize = addUnit(size)\n if (!fontSize && !color) return {}\n\n return {\n fontSize,\n '--color': color,\n }\n})\n</script>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.vue_vue_type_script_setup_true_lang.mjs","names":["$attrs"],"sources":["../../../../../../packages/components/popper/src/trigger.vue"],"sourcesContent":["<template>\n <el-only-child\n v-if=\"!virtualTriggering\"\n v-bind=\"$attrs\"\n :aria-controls=\"ariaControls\"\n :aria-describedby=\"ariaDescribedby\"\n :aria-expanded=\"ariaExpanded\"\n :aria-haspopup=\"ariaHaspopup\"\n >\n <slot />\n </el-only-child>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { unrefElement } from '@vueuse/core'\nimport { ElOnlyChild } from '@element-plus/components/slot'\nimport { useForwardRef } from '@element-plus/hooks'\nimport { isElement, isFocusable } from '@element-plus/utils'\nimport { POPPER_INJECTION_KEY } from './constants'\n\nimport type { WatchStopHandle } from 'vue'\nimport type { PopperTriggerProps } from './trigger'\n\ndefineOptions({\n name: 'ElPopperTrigger',\n inheritAttrs: false,\n})\n\nconst props =
|
|
1
|
+
{"version":3,"file":"trigger.vue_vue_type_script_setup_true_lang.mjs","names":["$attrs"],"sources":["../../../../../../packages/components/popper/src/trigger.vue"],"sourcesContent":["<template>\n <el-only-child\n v-if=\"!virtualTriggering\"\n v-bind=\"$attrs\"\n :aria-controls=\"ariaControls\"\n :aria-describedby=\"ariaDescribedby\"\n :aria-expanded=\"ariaExpanded\"\n :aria-haspopup=\"ariaHaspopup\"\n >\n <slot />\n </el-only-child>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { unrefElement } from '@vueuse/core'\nimport { ElOnlyChild } from '@element-plus/components/slot'\nimport { useForwardRef } from '@element-plus/hooks'\nimport { isElement, isFocusable } from '@element-plus/utils'\nimport { POPPER_INJECTION_KEY } from './constants'\n\nimport type { WatchStopHandle } from 'vue'\nimport type { PopperTriggerProps } from './trigger'\n\ndefineOptions({\n name: 'ElPopperTrigger',\n inheritAttrs: false,\n})\n\nconst props = defineProps<PopperTriggerProps>()\n\nconst { role, triggerRef } = inject(POPPER_INJECTION_KEY, undefined)!\n\nuseForwardRef(triggerRef)\n\nconst ariaControls = computed<string | undefined>(() => {\n return ariaHaspopup.value ? props.id : undefined\n})\n\nconst ariaDescribedby = computed<string | undefined>(() => {\n if (role && role.value === 'tooltip') {\n return props.open && props.id ? props.id : undefined\n }\n return undefined\n})\n\nconst ariaHaspopup = computed<string | undefined>(() => {\n if (role && role.value !== 'tooltip') {\n return role.value\n }\n return undefined\n})\n\nconst ariaExpanded = computed<string | undefined>(() => {\n return ariaHaspopup.value ? `${props.open}` : undefined\n})\n\nlet virtualTriggerAriaStopWatch: WatchStopHandle | undefined = undefined\n\nconst TRIGGER_ELE_EVENTS = [\n 'onMouseenter',\n 'onMouseleave',\n 'onClick',\n 'onKeydown',\n 'onFocus',\n 'onBlur',\n 'onContextmenu',\n] as const\n\nonMounted(() => {\n watch(\n () => props.virtualRef,\n (virtualEl) => {\n if (virtualEl) {\n triggerRef.value = unrefElement(virtualEl as HTMLElement)\n }\n },\n {\n immediate: true,\n }\n )\n\n watch(\n triggerRef,\n (el, prevEl) => {\n virtualTriggerAriaStopWatch?.()\n virtualTriggerAriaStopWatch = undefined\n\n if (isElement(prevEl)) {\n TRIGGER_ELE_EVENTS.forEach((eventName) => {\n const handler = props[eventName]\n if (handler) {\n // @ts-ignore\n ;(prevEl as HTMLElement).removeEventListener(\n eventName.slice(2).toLowerCase(),\n handler,\n ['onFocus', 'onBlur'].includes(eventName)\n )\n }\n })\n }\n if (isElement(el)) {\n TRIGGER_ELE_EVENTS.forEach((eventName) => {\n const handler = props[eventName]\n if (handler) {\n // It's not worth doing type gymnastics here\n // @ts-ignore\n ;(el as HTMLElement).addEventListener(\n eventName.slice(2).toLowerCase(),\n handler,\n ['onFocus', 'onBlur'].includes(eventName)\n )\n }\n })\n if (isFocusable(el as HTMLElement)) {\n virtualTriggerAriaStopWatch = watch(\n [ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded],\n (watches) => {\n ;[\n 'aria-controls',\n 'aria-describedby',\n 'aria-haspopup',\n 'aria-expanded',\n ].forEach((key, idx) => {\n isNil(watches[idx])\n ? el.removeAttribute(key)\n : el.setAttribute(key, watches[idx]!)\n })\n },\n { immediate: true }\n )\n }\n }\n if (isElement(prevEl) && isFocusable(prevEl as HTMLElement)) {\n ;[\n 'aria-controls',\n 'aria-describedby',\n 'aria-haspopup',\n 'aria-expanded',\n ].forEach((key) => prevEl.removeAttribute(key))\n }\n },\n {\n immediate: true,\n }\n )\n})\n\nonBeforeUnmount(() => {\n virtualTriggerAriaStopWatch?.()\n virtualTriggerAriaStopWatch = undefined\n if (triggerRef.value && isElement(triggerRef.value)) {\n const el = triggerRef.value as HTMLElement\n TRIGGER_ELE_EVENTS.forEach((eventName) => {\n const handler = props[eventName]\n if (handler) {\n // @ts-ignore\n el.removeEventListener(\n eventName.slice(2).toLowerCase(),\n handler,\n ['onFocus', 'onBlur'].includes(eventName)\n )\n }\n })\n triggerRef.value = undefined\n }\n})\n\ndefineExpose({\n /**\n * @description trigger element\n */\n triggerRef,\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;EA8BA,MAAM,QAAQ;EAEd,MAAM,EAAE,MAAM,eAAe,OAAO,sBAAsB,OAAU;AAEpE,gBAAc,WAAU;EAExB,MAAM,eAAe,eAAmC;AACtD,UAAO,aAAa,QAAQ,MAAM,KAAK;IACxC;EAED,MAAM,kBAAkB,eAAmC;AACzD,OAAI,QAAQ,KAAK,UAAU,UACzB,QAAO,MAAM,QAAQ,MAAM,KAAK,MAAM,KAAK;IAG9C;EAED,MAAM,eAAe,eAAmC;AACtD,OAAI,QAAQ,KAAK,UAAU,UACzB,QAAO,KAAK;IAGf;EAED,MAAM,eAAe,eAAmC;AACtD,UAAO,aAAa,QAAQ,GAAG,MAAM,SAAS;IAC/C;EAED,IAAI,8BAA2D;EAE/D,MAAM,qBAAqB;GACzB;GACA;GACA;GACA;GACA;GACA;GACA;GACD;AAED,kBAAgB;AACd,eACQ,MAAM,aACX,cAAc;AACb,QAAI,UACF,YAAW,QAAQ,aAAa,UAAwB;MAG5D,EACE,WAAW,MACb,CACF;AAEA,SACE,aACC,IAAI,WAAW;AACd,mCAA8B;AAC9B,kCAA8B;AAE9B,QAAI,UAAU,OAAO,CACnB,oBAAmB,SAAS,cAAc;KACxC,MAAM,UAAU,MAAM;AACtB,SAAI,QAED,CAAC,OAAuB,oBACvB,UAAU,MAAM,EAAE,CAAC,aAAa,EAChC,SACA,CAAC,WAAW,SAAS,CAAC,SAAS,UAAS,CAC1C;MAEH;AAEH,QAAI,UAAU,GAAG,EAAE;AACjB,wBAAmB,SAAS,cAAc;MACxC,MAAM,UAAU,MAAM;AACtB,UAAI,QAGD,CAAC,GAAmB,iBACnB,UAAU,MAAM,EAAE,CAAC,aAAa,EAChC,SACA,CAAC,WAAW,SAAS,CAAC,SAAS,UAAS,CAC1C;OAEH;AACD,SAAI,YAAY,GAAkB,CAChC,+BAA8B,MAC5B;MAAC;MAAc;MAAiB;MAAc;MAAa,GAC1D,YAAY;AACV;OACC;OACA;OACA;OACA;OACD,CAAC,SAAS,KAAK,QAAQ;AACtB,aAAM,QAAQ,KAAI,GACd,GAAG,gBAAgB,IAAG,GACtB,GAAG,aAAa,KAAK,QAAQ,KAAK;QACvC;QAEH,EAAE,WAAW,MAAK,CACpB;;AAGJ,QAAI,UAAU,OAAO,IAAI,YAAY,OAAsB,CACxD;KACC;KACA;KACA;KACA;KACD,CAAC,SAAS,QAAQ,OAAO,gBAAgB,IAAI,CAAA;MAGlD,EACE,WAAW,MACb,CACF;IACD;AAED,wBAAsB;AACpB,kCAA8B;AAC9B,iCAA8B;AAC9B,OAAI,WAAW,SAAS,UAAU,WAAW,MAAM,EAAE;IACnD,MAAM,KAAK,WAAW;AACtB,uBAAmB,SAAS,cAAc;KACxC,MAAM,UAAU,MAAM;AACtB,SAAI,QAEF,IAAG,oBACD,UAAU,MAAM,EAAE,CAAC,aAAa,EAChC,SACA,CAAC,WAAW,SAAS,CAAC,SAAS,UAAS,CAC1C;MAEH;AACD,eAAW,QAAQ;;IAEtB;AAED,WAAa,EAIX,YACD,CAAA;;WA5KU,QAAA,kCADT,YASgB,MAAA,UAAA,EAThB,WASgB,EAAA,KAAA,GAAA,EAPNA,KAAAA,QAAM;IACb,iBAAe,aAAA;IACf,oBAAkB,gBAAA;IAClB,iBAAe,aAAA;IACf,iBAAe,aAAA;;2BAER,CAAR,WAAQ,KAAA,QAAA,UAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger2.mjs","names":[],"sources":["../../../../../../packages/components/popper/src/trigger.vue"],"sourcesContent":["<template>\n <el-only-child\n v-if=\"!virtualTriggering\"\n v-bind=\"$attrs\"\n :aria-controls=\"ariaControls\"\n :aria-describedby=\"ariaDescribedby\"\n :aria-expanded=\"ariaExpanded\"\n :aria-haspopup=\"ariaHaspopup\"\n >\n <slot />\n </el-only-child>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { unrefElement } from '@vueuse/core'\nimport { ElOnlyChild } from '@element-plus/components/slot'\nimport { useForwardRef } from '@element-plus/hooks'\nimport { isElement, isFocusable } from '@element-plus/utils'\nimport { POPPER_INJECTION_KEY } from './constants'\n\nimport type { WatchStopHandle } from 'vue'\nimport type { PopperTriggerProps } from './trigger'\n\ndefineOptions({\n name: 'ElPopperTrigger',\n inheritAttrs: false,\n})\n\nconst props =
|
|
1
|
+
{"version":3,"file":"trigger2.mjs","names":[],"sources":["../../../../../../packages/components/popper/src/trigger.vue"],"sourcesContent":["<template>\n <el-only-child\n v-if=\"!virtualTriggering\"\n v-bind=\"$attrs\"\n :aria-controls=\"ariaControls\"\n :aria-describedby=\"ariaDescribedby\"\n :aria-expanded=\"ariaExpanded\"\n :aria-haspopup=\"ariaHaspopup\"\n >\n <slot />\n </el-only-child>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { unrefElement } from '@vueuse/core'\nimport { ElOnlyChild } from '@element-plus/components/slot'\nimport { useForwardRef } from '@element-plus/hooks'\nimport { isElement, isFocusable } from '@element-plus/utils'\nimport { POPPER_INJECTION_KEY } from './constants'\n\nimport type { WatchStopHandle } from 'vue'\nimport type { PopperTriggerProps } from './trigger'\n\ndefineOptions({\n name: 'ElPopperTrigger',\n inheritAttrs: false,\n})\n\nconst props = defineProps<PopperTriggerProps>()\n\nconst { role, triggerRef } = inject(POPPER_INJECTION_KEY, undefined)!\n\nuseForwardRef(triggerRef)\n\nconst ariaControls = computed<string | undefined>(() => {\n return ariaHaspopup.value ? props.id : undefined\n})\n\nconst ariaDescribedby = computed<string | undefined>(() => {\n if (role && role.value === 'tooltip') {\n return props.open && props.id ? props.id : undefined\n }\n return undefined\n})\n\nconst ariaHaspopup = computed<string | undefined>(() => {\n if (role && role.value !== 'tooltip') {\n return role.value\n }\n return undefined\n})\n\nconst ariaExpanded = computed<string | undefined>(() => {\n return ariaHaspopup.value ? `${props.open}` : undefined\n})\n\nlet virtualTriggerAriaStopWatch: WatchStopHandle | undefined = undefined\n\nconst TRIGGER_ELE_EVENTS = [\n 'onMouseenter',\n 'onMouseleave',\n 'onClick',\n 'onKeydown',\n 'onFocus',\n 'onBlur',\n 'onContextmenu',\n] as const\n\nonMounted(() => {\n watch(\n () => props.virtualRef,\n (virtualEl) => {\n if (virtualEl) {\n triggerRef.value = unrefElement(virtualEl as HTMLElement)\n }\n },\n {\n immediate: true,\n }\n )\n\n watch(\n triggerRef,\n (el, prevEl) => {\n virtualTriggerAriaStopWatch?.()\n virtualTriggerAriaStopWatch = undefined\n\n if (isElement(prevEl)) {\n TRIGGER_ELE_EVENTS.forEach((eventName) => {\n const handler = props[eventName]\n if (handler) {\n // @ts-ignore\n ;(prevEl as HTMLElement).removeEventListener(\n eventName.slice(2).toLowerCase(),\n handler,\n ['onFocus', 'onBlur'].includes(eventName)\n )\n }\n })\n }\n if (isElement(el)) {\n TRIGGER_ELE_EVENTS.forEach((eventName) => {\n const handler = props[eventName]\n if (handler) {\n // It's not worth doing type gymnastics here\n // @ts-ignore\n ;(el as HTMLElement).addEventListener(\n eventName.slice(2).toLowerCase(),\n handler,\n ['onFocus', 'onBlur'].includes(eventName)\n )\n }\n })\n if (isFocusable(el as HTMLElement)) {\n virtualTriggerAriaStopWatch = watch(\n [ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded],\n (watches) => {\n ;[\n 'aria-controls',\n 'aria-describedby',\n 'aria-haspopup',\n 'aria-expanded',\n ].forEach((key, idx) => {\n isNil(watches[idx])\n ? el.removeAttribute(key)\n : el.setAttribute(key, watches[idx]!)\n })\n },\n { immediate: true }\n )\n }\n }\n if (isElement(prevEl) && isFocusable(prevEl as HTMLElement)) {\n ;[\n 'aria-controls',\n 'aria-describedby',\n 'aria-haspopup',\n 'aria-expanded',\n ].forEach((key) => prevEl.removeAttribute(key))\n }\n },\n {\n immediate: true,\n }\n )\n})\n\nonBeforeUnmount(() => {\n virtualTriggerAriaStopWatch?.()\n virtualTriggerAriaStopWatch = undefined\n if (triggerRef.value && isElement(triggerRef.value)) {\n const el = triggerRef.value as HTMLElement\n TRIGGER_ELE_EVENTS.forEach((eventName) => {\n const handler = props[eventName]\n if (handler) {\n // @ts-ignore\n el.removeEventListener(\n eventName.slice(2).toLowerCase(),\n handler,\n ['onFocus', 'onBlur'].includes(eventName)\n )\n }\n })\n triggerRef.value = undefined\n }\n})\n\ndefineExpose({\n /**\n * @description trigger element\n */\n triggerRef,\n})\n</script>\n"],"mappings":""}
|
|
@@ -889,24 +889,18 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
889
889
|
};
|
|
890
890
|
})>;
|
|
891
891
|
ElIcon: SFCWithInstall<{
|
|
892
|
-
new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {
|
|
893
|
-
size: number | string;
|
|
894
|
-
}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
|
|
892
|
+
new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
|
|
895
893
|
P: {};
|
|
896
894
|
B: {};
|
|
897
895
|
D: {};
|
|
898
896
|
C: {};
|
|
899
897
|
M: {};
|
|
900
898
|
Defaults: {};
|
|
901
|
-
}, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, {
|
|
902
|
-
size: number | string;
|
|
903
|
-
}>;
|
|
899
|
+
}, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
904
900
|
__isFragment?: never;
|
|
905
901
|
__isTeleport?: never;
|
|
906
902
|
__isSuspense?: never;
|
|
907
|
-
} & vue.ComponentOptionsBase<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
908
|
-
size: number | string;
|
|
909
|
-
}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
903
|
+
} & vue.ComponentOptionsBase<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
910
904
|
$slots: {
|
|
911
905
|
default?: (props: {}) => any;
|
|
912
906
|
};
|
|
@@ -870,24 +870,18 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
870
870
|
};
|
|
871
871
|
})>;
|
|
872
872
|
ElIcon: SFCWithInstall<{
|
|
873
|
-
new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {
|
|
874
|
-
size: number | string;
|
|
875
|
-
}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
|
|
873
|
+
new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.PublicProps, {}, false, {}, {}, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
|
|
876
874
|
P: {};
|
|
877
875
|
B: {};
|
|
878
876
|
D: {};
|
|
879
877
|
C: {};
|
|
880
878
|
M: {};
|
|
881
879
|
Defaults: {};
|
|
882
|
-
}, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, {
|
|
883
|
-
size: number | string;
|
|
884
|
-
}>;
|
|
880
|
+
}, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, {}>;
|
|
885
881
|
__isFragment?: never;
|
|
886
882
|
__isTeleport?: never;
|
|
887
883
|
__isSuspense?: never;
|
|
888
|
-
} & vue.ComponentOptionsBase<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
889
|
-
size: number | string;
|
|
890
|
-
}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
884
|
+
} & vue.ComponentOptionsBase<Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
891
885
|
$slots: {
|
|
892
886
|
default?: (props: {}) => any;
|
|
893
887
|
};
|