UNPKG

winbox-ui-next

Version:

We Design Vue 2.0: A Vue.js 3 UI Library

77 lines (76 loc) 2.1 kB
import { inject, provide, computed, onBeforeUnmount } from "vue"; import { createInjectionKey } from "../_utils/vue/create-injection-key.js"; import "../_utils/vue/wrapper.js"; import "../_utils/cssr/index.js"; import "../_utils/composable/use-adjusted-to.js"; import "vueuc"; import "../_utils/composable/use-lock-html-scroll.js"; import "../_utils/composable/use-is-composing.js"; const formItemInjectionKey = createInjectionKey("n-form-item"); function useFormItem(props, { defaultSize = "default", mergedSize, mergedDisabled } = {}) { const NFormItem = inject(formItemInjectionKey, null); provide(formItemInjectionKey, null); const mergedSizeRef = computed(mergedSize ? () => mergedSize(NFormItem) : () => { const { size } = props; if (size) return size; if (NFormItem) { const { mergedSize: mergedSize2 } = NFormItem; if (mergedSize2.value !== void 0) { return mergedSize2.value; } } return defaultSize; }); const mergedDisabledRef = computed(mergedDisabled ? () => mergedDisabled(NFormItem) : () => { const { disabled } = props; if (disabled !== void 0) { return disabled; } if (NFormItem) { return NFormItem.disabled.value; } return false; }); const mergedStatusRef = computed(() => { const { status } = props; if (status) return status; return NFormItem == null ? void 0 : NFormItem.mergedValidationStatus.value; }); onBeforeUnmount(() => { if (NFormItem) { NFormItem.restoreValidation(); } }); return { mergedSizeRef, mergedDisabledRef, mergedStatusRef, nTriggerFormBlur() { if (NFormItem) { NFormItem.handleContentBlur(); } }, nTriggerFormChange() { if (NFormItem) { NFormItem.handleContentChange(); } }, nTriggerFormFocus() { if (NFormItem) { NFormItem.handleContentFocus(); } }, nTriggerFormInput() { if (NFormItem) { NFormItem.handleContentInput(); } } }; } export { useFormItem as default, formItemInjectionKey };