element-plus
Version:
A Component Library for Vue 3
1 lines • 2.29 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-form-item/index.ts"],"sourcesContent":["import { inject, computed, getCurrentInstance, unref } from 'vue'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { buildProps } from '@element-plus/utils/props'\nimport { useGlobalConfig } from '@element-plus/utils/util'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { MaybeRef } from '@vueuse/core'\n\nconst sizes = ['', 'large', 'medium', 'small', 'mini'] as const\n\nexport const useFormItemProps = buildProps({\n size: {\n type: String,\n values: sizes,\n default: '',\n },\n disabled: Boolean,\n} as const)\n\nexport type UseFormItemProps = ExtractPropTypes<typeof useFormItemProps>\n\nexport type LocalFallbacks = {\n size?: MaybeRef<UseFormItemProps['size'] | undefined>\n disabled?: MaybeRef<UseFormItemProps['disabled'] | undefined>\n}\n\nexport const useFormItem = ({ size, disabled }: LocalFallbacks) => {\n const vm = getCurrentInstance()!\n const $ELEMENT = useGlobalConfig()\n\n // vm.props is not reactive so we use the reactive one here.\n const props = vm.proxy?.$props as UseFormItemProps\n const form = inject(elFormKey, undefined)\n const formItem = inject(elFormItemKey, undefined)\n\n return {\n size: computed(() => {\n // TODO, fallback to default size like 'medium/large' instead of empty string\n return (\n props.size ||\n unref(size) ||\n formItem?.size ||\n form?.size ||\n $ELEMENT.size ||\n ''\n )\n }),\n disabled: computed(() => {\n return (\n props.disabled === true || unref(disabled) || form?.disabled || false\n )\n }),\n form,\n formItem,\n }\n}\n"],"names":[],"mappings":";;;;;;AAQA,MAAM,QAAQ,CAAC,IAAI,SAAS,UAAU,SAAS;MAElC,mBAAmB,WAAW;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA;AAAA,EAEX,UAAU;AAAA;MAUC,cAAc,CAAC,EAAE,MAAM,eAA+B;AA1BnE;AA2BE,QAAM,KAAK;AACX,QAAM,WAAW;AAGjB,QAAM,QAAQ,SAAG,UAAH,mBAAU;AACxB,QAAM,OAAO,OAAO,WAAW;AAC/B,QAAM,WAAW,OAAO,eAAe;AAEvC,SAAO;AAAA,IACL,MAAM,SAAS,MAAM;AAEnB,aACE,MAAM,QACN,MAAM,+CACI,uCACJ,SACN,SAAS,QACT;AAAA;AAAA,IAGJ,UAAU,SAAS,MAAM;AACvB,aACE,MAAM,aAAa,QAAQ,MAAM,2CAAmB,aAAY;AAAA;AAAA,IAGpE;AAAA,IACA;AAAA;AAAA;;;;"}