{"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;;;;"}