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.

1 lines
6.7 KiB

{"ast":null,"code":"import { inject, ref, computed, onMounted, watch, toRef, onUnmounted } from 'vue';\nimport { formContextKey, formItemContextKey } from '../constants.mjs';\nimport { useId } from '../../../../hooks/use-id/index.mjs';\nconst useFormItem = () => {\n const form = inject(formContextKey, void 0);\n const formItem = inject(formItemContextKey, void 0);\n return {\n form,\n formItem\n };\n};\nconst useFormItemInputId = (props, {\n formItemContext,\n disableIdGeneration,\n disableIdManagement\n}) => {\n if (!disableIdGeneration) {\n disableIdGeneration = ref(false);\n }\n if (!disableIdManagement) {\n disableIdManagement = ref(false);\n }\n const inputId = ref();\n let idUnwatch = void 0;\n const isLabeledByFormItem = computed(() => {\n var _a;\n return !!(!(props.label || props.ariaLabel) && formItemContext && formItemContext.inputIds && ((_a = formItemContext.inputIds) == null ? void 0 : _a.length) <= 1);\n });\n onMounted(() => {\n idUnwatch = watch([toRef(props, \"id\"), disableIdGeneration], ([id, disableIdGeneration2]) => {\n const newId = id != null ? id : !disableIdGeneration2 ? useId().value : void 0;\n if (newId !== inputId.value) {\n if (formItemContext == null ? void 0 : formItemContext.removeInputId) {\n inputId.value && formItemContext.removeInputId(inputId.value);\n if (!(disableIdManagement == null ? void 0 : disableIdManagement.value) && !disableIdGeneration2 && newId) {\n formItemContext.addInputId(newId);\n }\n }\n inputId.value = newId;\n }\n }, {\n immediate: true\n });\n });\n onUnmounted(() => {\n idUnwatch && idUnwatch();\n if (formItemContext == null ? void 0 : formItemContext.removeInputId) {\n inputId.value && formItemContext.removeInputId(inputId.value);\n }\n });\n return {\n isLabeledByFormItem,\n inputId\n };\n};\nexport { useFormItem, useFormItemInputId };","map":{"version":3,"names":["useFormItem","form","inject","formContextKey","formItem","formItemContextKey","useFormItemInputId","props","formItemContext","disableIdGeneration","disableIdManagement","ref","inputId","idUnwatch","isLabeledByFormItem","computed","_a","label","ariaLabel","inputIds","length","onMounted","watch","toRef","id","disableIdGeneration2","newId","useId","value","removeInputId","addInputId","immediate","onUnmounted"],"sources":["../../../../../../../packages/components/form/src/hooks/use-form-item.ts"],"sourcesContent":["import {\n computed,\n inject,\n onMounted,\n onUnmounted,\n ref,\n toRef,\n watch,\n} from 'vue'\nimport { useId } from '@element-plus/hooks'\nimport { formContextKey, formItemContextKey } from '../constants'\n\nimport type { ComputedRef, Ref, WatchStopHandle } from 'vue'\nimport type { FormItemContext } from '../types'\n\nexport const useFormItem = () => {\n const form = inject(formContextKey, undefined)\n const formItem = inject(formItemContextKey, undefined)\n return {\n form,\n formItem,\n }\n}\n\nexport type IUseFormItemInputCommonProps = {\n id?: string\n label?: string | number | boolean | Record<string, any>\n ariaLabel?: string | number | boolean | Record<string, any>\n}\n\nexport const useFormItemInputId = (\n props: Partial<IUseFormItemInputCommonProps>,\n {\n formItemContext,\n disableIdGeneration,\n disableIdManagement,\n }: {\n formItemContext?: FormItemContext\n disableIdGeneration?: ComputedRef<boolean> | Ref<boolean>\n disableIdManagement?: ComputedRef<boolean> | Ref<boolean>\n }\n) => {\n if (!disableIdGeneration) {\n disableIdGeneration = ref<boolean>(false)\n }\n if (!disableIdManagement) {\n disableIdManagement = ref<boolean>(false)\n }\n\n const inputId = ref<string>()\n let idUnwatch: WatchStopHandle | undefined = undefined\n\n const isLabeledByFormItem = computed<boolean>(() => {\n return !!(\n !(props.label || props.ariaLabel) &&\n formItemContext &&\n formItemContext.inputIds &&\n formItemContext.inputIds?.length <= 1\n )\n })\n\n // Generate id for ElFormItem label if not provided as prop\n onMounted(() => {\n idUnwatch = watch(\n [toRef(props, 'id'), disableIdGeneration] as any,\n ([id, disableIdGeneration]: [string, boolean]) => {\n const newId = id ?? (!disableIdGeneration ? useId().value : undefined)\n if (newId !== inputId.value) {\n if (formItemContext?.removeInputId) {\n inputId.value && formItemContext.removeInputId(inputId.value)\n if (!disableIdManagement?.value && !disableIdGeneration && newId) {\n formItemContext.addInputId(newId)\n }\n }\n inputId.value = newId\n }\n },\n { immediate: true }\n )\n })\n\n onUnmounted(() => {\n idUnwatch && idUnwatch()\n if (formItemContext?.removeInputId) {\n inputId.value && formItemContext.removeInputId(inputId.value)\n }\n })\n\n return {\n isLabeledByFormItem,\n inputId,\n }\n}\n"],"mappings":";;;AAWY,MAACA,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMC,IAAI,GAAGC,MAAM,CAACC,cAAc,EAAE,KAAK,CAAC,CAAC;EAC3C,MAAMC,QAAQ,GAAGF,MAAM,CAACG,kBAAkB,EAAE,KAAK,CAAC,CAAC;EACnD,OAAO;IACLJ,IAAI;IACJG;EACJ,CAAG;AACH;AACY,MAACE,kBAAkB,GAAGA,CAACC,KAAK,EAAE;EACxCC,eAAe;EACfC,mBAAmB;EACnBC;AACF,CAAC,KAAK;EACJ,IAAI,CAACD,mBAAmB,EAAE;IACxBA,mBAAmB,GAAGE,GAAG,CAAC,KAAK,CAAC;EACpC;EACE,IAAI,CAACD,mBAAmB,EAAE;IACxBA,mBAAmB,GAAGC,GAAG,CAAC,KAAK,CAAC;EACpC;EACE,MAAMC,OAAO,GAAGD,GAAG,EAAE;EACrB,IAAIE,SAAS,GAAG,KAAK,CAAC;EACtB,MAAMC,mBAAmB,GAAGC,QAAQ,CAAC,MAAM;IACzC,IAAIC,EAAE;IACN,OAAO,CAAC,EAAE,EAAET,KAAK,CAACU,KAAK,IAAIV,KAAK,CAACW,SAAS,CAAC,IAAIV,eAAe,IAAIA,eAAe,CAACW,QAAQ,IAAI,CAAC,CAACH,EAAE,GAAGR,eAAe,CAACW,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGH,EAAE,CAACI,MAAM,KAAK,CAAC,CAAC;EACtK,CAAG,CAAC;EACFC,SAAS,CAAC,MAAM;IACdR,SAAS,GAAGS,KAAK,CAAC,CAACC,KAAK,CAAChB,KAAK,EAAE,IAAI,CAAC,EAAEE,mBAAmB,CAAC,EAAE,CAAC,CAACe,EAAE,EAAEC,oBAAoB,CAAC,KAAK;MAC3F,MAAMC,KAAK,GAAGF,EAAE,IAAI,IAAI,GAAGA,EAAE,GAAG,CAACC,oBAAoB,GAAGE,KAAK,EAAE,CAACC,KAAK,GAAG,KAAK,CAAC;MAC9E,IAAIF,KAAK,KAAKd,OAAO,CAACgB,KAAK,EAAE;QAC3B,IAAIpB,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,eAAe,CAACqB,aAAa,EAAE;UACpEjB,OAAO,CAACgB,KAAK,IAAIpB,eAAe,CAACqB,aAAa,CAACjB,OAAO,CAACgB,KAAK,CAAC;UAC7D,IAAI,EAAElB,mBAAmB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,mBAAmB,CAACkB,KAAK,CAAC,IAAI,CAACH,oBAAoB,IAAIC,KAAK,EAAE;YACzGlB,eAAe,CAACsB,UAAU,CAACJ,KAAK,CAAC;UAC7C;QACA;QACQd,OAAO,CAACgB,KAAK,GAAGF,KAAK;MAC7B;IACA,CAAK,EAAE;MAAEK,SAAS,EAAE;IAAI,CAAE,CAAC;EAC3B,CAAG,CAAC;EACFC,WAAW,CAAC,MAAM;IAChBnB,SAAS,IAAIA,SAAS,EAAE;IACxB,IAAIL,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,eAAe,CAACqB,aAAa,EAAE;MACpEjB,OAAO,CAACgB,KAAK,IAAIpB,eAAe,CAACqB,aAAa,CAACjB,OAAO,CAACgB,KAAK,CAAC;IACnE;EACA,CAAG,CAAC;EACF,OAAO;IACLd,mBAAmB;IACnBF;EACJ,CAAG;AACH","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}