UNPKG

tdesign-vue-next

Version:
1 lines 3.31 kB
{"version":3,"file":"index.mjs","sources":["../../../../components/form/hooks/index.ts"],"sourcesContent":["import { Ref, inject, computed, getCurrentInstance } from 'vue';\nimport { TdFormProps } from '../type';\n\nexport interface FormDisabledProvider {\n disabled: Ref<TdFormProps['disabled']>;\n}\n\nexport interface FormReadonlyProvider {\n readonly: Ref<TdFormProps['readonly']>;\n}\n\n/**\n * @deprecated use src/hooks/useDisabled instead\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(() => propsDisabled.value || disabled?.value || extend?.value || false);\n}\n\n/**\n * 创建一个计算属性,用于判断表单是否应为只读状态。\n * 此函数考虑了多个来源来决定表单的只读状态:\n * 1. 组件的 `readonly` 属性;\n * 2. 通过 `formReadonly` 命名空间注入的只读状态;\n * 3. 可选的 `extend` 参数,用于进一步扩展只读状态的判断逻辑。\n *\n * @param extend - 一个可选的 Ref<boolean>,用于扩展判断表单是否只读的逻辑。如果提供,它的值将被考虑在内。\n * @returns 返回一个计算属性,该属性根据上述条件决定其值,最终确定表单是否应处于只读状态。\n */\nexport function useFormReadonly(extend?: Ref<boolean>) {\n // 获取当前实例\n const ctx = getCurrentInstance();\n // 计算属性,用于获取组件的 `readonly` 属性值\n const propsReadonly = computed(() => ctx.props.readonly as boolean);\n // 从 `formReadonly` 命名空间注入的只读状态\n const { readonly } = inject<FormReadonlyProvider>('formReadonly', Object.create(null));\n // 计算最终的只读状态,优先级从高到低为:组件的 `readonly` 属性、注入的 `readonly` 状态、`extend` 参数的值,最后是默认的 `false`\n return computed(() => propsReadonly.value || readonly?.value || extend?.value || false);\n}\n"],"names":["useFormDisabled","extend","ctx","getCurrentInstance","propsDisabled","computed","props","disabled","_inject","inject","Object","create","value","useFormReadonly","propsReadonly","readonly","_inject2"],"mappings":";;;;;;;;AAcO,SAASA,gBAAgBC,MAAuB,EAAA;AACrD,EAAA,IAAMC,MAAMC,kBAAmB,EAAA,CAAA;EAC/B,IAAMC,aAAgB,GAAAC,QAAA,CAAS,YAAA;AAAA,IAAA,OAAMH,GAAA,CAAII,MAAMC,QAAmB,CAAA;GAAA,CAAA,CAAA;AAC5D,EAAA,IAAAC,OAAA,GAAeC,MAAA,CAA6B,+BAAuBC,MAAA,CAAAC,MAAA,CAAO,IAAI,CAAC,CAAA;IAA7EJ,mBAAAA;AACD,EAAA,OAAAF,QAAA,CAAS,YAAA;IAAA,OAAMD,aAAc,CAAAQ,KAAA,KAASL,aAAAA,IAAAA,IAAAA,+BAAAA,SAAUK,KAAS,CAAAX,KAAAA,MAAA,aAAAA,MAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQW,UAAS,KAAK,CAAA;GAAA,CAAA,CAAA;AACxF,CAAA;AAYO,SAASC,gBAAgBZ,MAAuB,EAAA;AAErD,EAAA,IAAMC,MAAMC,kBAAmB,EAAA,CAAA;EAE/B,IAAMW,aAAgB,GAAAT,QAAA,CAAS,YAAA;AAAA,IAAA,OAAMH,GAAA,CAAII,MAAMS,QAAmB,CAAA;GAAA,CAAA,CAAA;AAE5D,EAAA,IAAAC,QAAA,GAAeP,MAAA,CAA6B,+BAAuBC,MAAA,CAAAC,MAAA,CAAO,IAAI,CAAC,CAAA;IAA7EI,oBAAAA;AAED,EAAA,OAAAV,QAAA,CAAS,YAAA;IAAA,OAAMS,aAAc,CAAAF,KAAA,KAASG,aAAAA,IAAAA,IAAAA,+BAAAA,SAAUH,KAAS,CAAAX,KAAAA,MAAA,aAAAA,MAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQW,UAAS,KAAK,CAAA;GAAA,CAAA,CAAA;AACxF;;;;"}