{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-form-item/index.ts"],"sourcesContent":["import {\r\n  inject,\r\n  computed,\r\n  onMounted,\r\n  onUnmounted,\r\n  ref,\r\n  toRef,\r\n  watch,\r\n} from 'vue'\r\nimport { FormContextKey, FormItemContextKey } from '@sgui-plus/components/form'\r\nimport { useId } from '../use-id/index'\r\nimport type { ComputedRef, Ref, WatchStopHandle } from 'vue'\r\nimport type { FormItemContext } from '@sgui-plus/components/form'\r\n\r\nexport type IUseFormItemInputCommonProps = {\r\n  id?: string\r\n  label?: string | number | boolean | Record<string, any>\r\n}\r\n\r\nexport const useFormItem = () => {\r\n  const form = inject(FormContextKey, undefined)\r\n  const formItem = inject(FormItemContextKey, undefined)\r\n  return {\r\n    form,\r\n    formItem,\r\n  }\r\n}\r\n\r\nexport const useFormItemInputId = (\r\n  props: Partial<IUseFormItemInputCommonProps>,\r\n  {\r\n    formItemContext,\r\n    disableIdGeneration,\r\n    disableIdManagement,\r\n  }: {\r\n    formItemContext?: FormItemContext\r\n    disableIdGeneration?: ComputedRef<boolean> | Ref<boolean>\r\n    disableIdManagement?: ComputedRef<boolean> | Ref<boolean>\r\n  }\r\n) => {\r\n  if (!disableIdGeneration) {\r\n    disableIdGeneration = ref<boolean>(false)\r\n  }\r\n  if (!disableIdManagement) {\r\n    disableIdManagement = ref<boolean>(false)\r\n  }\r\n\r\n  const inputId = ref<string>()\r\n  let idUnwatch: WatchStopHandle | undefined = undefined\r\n\r\n  const isLabeledByFormItem = computed<boolean>(() => {\r\n    return !!(\r\n      !props.label &&\r\n      formItemContext &&\r\n      formItemContext.inputIds &&\r\n      formItemContext.inputIds?.length <= 1\r\n    )\r\n  })\r\n\r\n  // Generate id for ElFormItem label if not provided as prop\r\n  onMounted(() => {\r\n    idUnwatch = watch(\r\n      [toRef(props, 'id'), disableIdGeneration] as any,\r\n      ([id, disableIdGeneration]: [string, boolean]) => {\r\n        const newId = id ?? (!disableIdGeneration ? useId().value : undefined)\r\n        if (newId !== inputId.value) {\r\n          if (formItemContext?.removeInputId) {\r\n            inputId.value && formItemContext.removeInputId(inputId.value)\r\n            if (!disableIdManagement?.value && !disableIdGeneration && newId) {\r\n              formItemContext.addInputId(newId)\r\n            }\r\n          }\r\n          inputId.value = newId\r\n        }\r\n      },\r\n      { immediate: true }\r\n    )\r\n  })\r\n\r\n  onUnmounted(() => {\r\n    idUnwatch && idUnwatch()\r\n    if (formItemContext?.removeInputId) {\r\n      inputId.value && formItemContext.removeInputId(inputId.value)\r\n    }\r\n  })\r\n\r\n  return {\r\n    isLabeledByFormItem,\r\n    inputId,\r\n  }\r\n}\r\n"],"names":[],"mappings":";;;;;AAWY,MAAC,WAAW,GAAG,MAAM;AACjC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,EAAE,OAAO;AACT,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,GAAG,CAAC;AACJ,EAAE;AACU,MAAC,kBAAkB,GAAG,CAAC,KAAK,EAAE;AAC1C,EAAE,eAAe;AACjB,EAAE,mBAAmB;AACrB,EAAE,mBAAmB;AACrB,CAAC,KAAK;AACN,EAAE,IAAI,CAAC,mBAAmB,EAAE;AAC5B,IAAI,mBAAmB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,IAAI,CAAC,mBAAmB,EAAE;AAC5B,IAAI,mBAAmB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;AACxB,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC;AACzB,EAAE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM;AAC7C,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAClJ,GAAG,CAAC,CAAC;AACL,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,oBAAoB,CAAC,KAAK;AACjG,MAAM,MAAM,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,oBAAoB,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACrF,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,aAAa,EAAE;AAC9E,UAAU,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxE,UAAU,IAAI,EAAE,mBAAmB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,KAAK,EAAE;AACrH,YAAY,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC9C,WAAW;AACX,SAAS;AACT,QAAQ,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9B,OAAO;AACP,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5B,GAAG,CAAC,CAAC;AACL,EAAE,WAAW,CAAC,MAAM;AACpB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;AAC7B,IAAI,IAAI,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,aAAa,EAAE;AAC1E,MAAM,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpE,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,mBAAmB;AACvB,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;"}