{"version":3,"file":"useDisabled.mjs","sources":["../../src/hooks/useDisabled.ts"],"sourcesContent":["import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport isBoolean from 'lodash/isBoolean';\nimport { TdFormProps } from '../form/type';\n\nexport interface FormDisabledProvider {\n  disabled: Ref<TdFormProps['disabled']>;\n}\n\nexport interface DisabledContext {\n  beforeDisabled?: Ref<boolean>;\n  afterDisabled?: Ref<boolean>;\n}\n\nexport function useDisabled(context?: DisabledContext) {\n  const currentInstance = getCurrentInstance();\n  const componentDisabled = computed(() => currentInstance.props.disabled as boolean);\n\n  const formDisabled = inject<FormDisabledProvider>('formDisabled', Object.create(null));\n\n  return computed(() => {\n    if (isBoolean(context?.beforeDisabled.value)) return context.beforeDisabled.value;\n    // Component\n    if (isBoolean(componentDisabled.value)) return componentDisabled.value;\n    // ComponentGroup\n    if (isBoolean(context?.afterDisabled.value)) return context.afterDisabled.value;\n    // Form\n    if (isBoolean(formDisabled.disabled?.value)) return formDisabled.disabled.value;\n\n    return false;\n  });\n}\n"],"names":["isBoolean"],"mappings":";;;;;;;;;;;;;AAaO,SAAA,WAAA,CAAA,OAAA,EAAA;AACL,EAAA,IAAA,eAAA,GAAA,kBAAA,EAAA,CAAA;;AACmC,IAAA,OAAA,eAAA,CAAA,KAAA,CAAA,QAAA,CAAA;;AAEnC,EAAA,IAAA,YAAA,GAAA,MAAA,CAAA,cAAA,iBAAA,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA;;AAEsB,IAAA,IAAA,qBAAA,CAAA;AAChB,IAAA,IAAAA,WAAA,CAAA,OAAA,KAAA,IAAA,IAAA,OAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,cAAA,CAAA,KAAA,CAAA,EAAA,OAAA,OAAA,CAAA,cAAA,CAAA,KAAA,CAAA;;AAIA,IAAA,IAAAA,WAAA,CAAA,OAAA,KAAA,IAAA,IAAA,OAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,aAAA,CAAA,KAAA,CAAA,EAAA,OAAA,OAAA,CAAA,aAAA,CAAA,KAAA,CAAA;;AAIG,IAAA,OAAA,KAAA,CAAA;AACT,GAAA,CAAA,CAAA;AACF;;;;"}