UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 1.85 kB
{"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;;;;"}