You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
34 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, useSlots, inject, ref, computed, watch, reactive, toRefs, provide, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, createVNode, withCtx, createBlock, resolveDynamicComponent, normalizeStyle, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createElementVNode, TransitionGroup, nextTick } from 'vue';\nimport AsyncValidator from 'async-validator';\nimport { castArray, clone } from 'lodash-unified';\nimport { refDebounced } from '@vueuse/core';\nimport { formItemProps } from './form-item.mjs';\nimport FormLabelWrap from './form-label-wrap.mjs';\nimport { formContextKey, formItemContextKey } from './constants.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { getProp } from '../../../utils/objects.mjs';\nimport { useFormSize } from './hooks/use-form-common-props.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { useId } from '../../../hooks/use-id/index.mjs';\nimport { addUnit } from '../../../utils/dom/style.mjs';\nimport { isBoolean } from '../../../utils/types.mjs';\nimport { isString, isFunction, isArray } from '@vue/shared';\nconst __default__ = defineComponent({\n name: \"ElFormItem\"\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n props: formItemProps,\n setup(__props, {\n expose\n }) {\n const props = __props;\n const slots = useSlots();\n const formContext = inject(formContextKey, void 0);\n const parentFormItemContext = inject(formItemContextKey, void 0);\n const _size = useFormSize(void 0, {\n formItem: false\n });\n const ns = useNamespace(\"form-item\");\n const labelId = useId().value;\n const inputIds = ref([]);\n const validateState = ref(\"\");\n const validateStateDebounced = refDebounced(validateState, 100);\n const validateMessage = ref(\"\");\n const formItemRef = ref();\n let initialValue = void 0;\n let isResettingField = false;\n const labelPosition = computed(() => props.labelPosition || (formContext == null ? void 0 : formContext.labelPosition));\n const labelStyle = computed(() => {\n if (labelPosition.value === \"top\") {\n return {};\n }\n const labelWidth = addUnit(props.labelWidth || (formContext == null ? void 0 : formContext.labelWidth) || \"\");\n if (labelWidth) return {\n width: labelWidth\n };\n return {};\n });\n const contentStyle = computed(() => {\n if (labelPosition.value === \"top\" || (formContext == null ? void 0 : formContext.inline)) {\n return {};\n }\n if (!props.label && !props.labelWidth && isNested) {\n return {};\n }\n const labelWidth = addUnit(props.labelWidth || (formContext == null ? void 0 : formContext.labelWidth) || \"\");\n if (!props.label && !slots.label) {\n return {\n marginLeft: labelWidth\n };\n }\n return {};\n });\n const formItemClasses = computed(() => [ns.b(), ns.m(_size.value), ns.is(\"error\", validateState.value === \"error\"), ns.is(\"validating\", validateState.value === \"validating\"), ns.is(\"success\", validateState.value === \"success\"), ns.is(\"required\", isRequired.value || props.required), ns.is(\"no-asterisk\", formContext == null ? void 0 : formContext.hideRequiredAsterisk), (formContext == null ? void 0 : formContext.requireAsteriskPosition) === \"right\" ? \"asterisk-right\" : \"asterisk-left\", {\n [ns.m(\"feedback\")]: formContext == null ? void 0 : formContext.statusIcon,\n [ns.m(`label-${labelPosition.value}`)]: labelPosition.value\n }]);\n const _inlineMessage = computed(() => isBoolean(props.inlineMessage) ? props.inlineMessage : (formContext == null ? void 0 : formContext.inlineMessage) || false);\n const validateClasses = computed(() => [ns.e(\"error\"), {\n [ns.em(\"error\", \"inline\")]: _inlineMessage.value\n }]);\n const propString = computed(() => {\n if (!props.prop) return \"\";\n return i