tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 2.03 kB
Source Map (JSON)
{"version":3,"file":"hooks.mjs","sources":["../../src/form/hooks.ts"],"sourcesContent":["import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport isBoolean from 'lodash/isBoolean';\nimport { TdFormProps } from './type';\n\nexport interface FormDisabledProvider {\n disabled: Ref<TdFormProps['disabled']>;\n}\n\n/**\n * 用于实现 form 的全局禁用状态hook\n * 禁用优先级: 组件 > 组件组 > 表单(propsDisabled.value > extend?.value > disabled?.value)\n * @returns\n */\nexport function useFormDisabled(extend?: Ref<boolean>) {\n const ctx = getCurrentInstance();\n const propsDisabled = computed(() => ctx?.props.disabled as boolean);\n const { disabled } = inject<FormDisabledProvider>('formDisabled', Object.create(null));\n return computed(() => {\n // 组件\n if (isBoolean(propsDisabled.value)) {\n return propsDisabled.value;\n }\n // 组件组\n if (isBoolean(extend?.value)) {\n return extend.value;\n }\n // 表单\n if (isBoolean(disabled?.value)) {\n return disabled.value;\n }\n return false;\n });\n}\n"],"names":["useFormDisabled","extend","ctx","getCurrentInstance","propsDisabled","computed","props","disabled","_inject","inject","Object","create","isBoolean","value"],"mappings":";;;;;;;;;;;;;AAaO,SAASA,gBAAgBC,MAAuB,EAAA;AACrD,EAAA,IAAMC,MAAMC,kBAAmB,EAAA,CAAA;EAC/B,IAAMC,aAAgB,GAAAC,QAAA,CAAS,YAAA;IAAA,OAAMH,GAAA,aAAAA,GAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,GAAA,CAAKI,MAAMC,QAAmB,CAAA;GAAA,CAAA,CAAA;AAC7D,EAAA,IAAAC,OAAA,GAAeC,MAAA,CAA6B,+BAAuBC,MAAA,CAAAC,MAAA,CAAO,IAAI,CAAC,CAAA;IAA7EJ,mBAAAA;EACR,OAAOF,SAAS,YAAM;AAEhB,IAAA,IAAAO,WAAA,CAAUR,aAAc,CAAAS,KAAK,CAAG,EAAA;MAClC,OAAOT,aAAc,CAAAS,KAAA,CAAA;AACvB,KAAA;IAEI,IAAAD,WAAA,CAAUX,MAAQ,KAARA,IAAAA,IAAAA,MAAQ,uBAARA,MAAQ,CAAAY,KAAK,CAAG,EAAA;MAC5B,OAAOZ,MAAO,CAAAY,KAAA,CAAA;AAChB,KAAA;IAEI,IAAAD,WAAA,CAAUL,QAAU,KAAVA,IAAAA,IAAAA,QAAU,uBAAVA,QAAU,CAAAM,KAAK,CAAG,EAAA;MAC9B,OAAON,QAAS,CAAAM,KAAA,CAAA;AAClB,KAAA;AACO,IAAA,OAAA,KAAA,CAAA;AACT,GAAC,CAAA,CAAA;AACH;;;;"}