74 lines
2.3 KiB
JavaScript
Raw Normal View History

2024-01-29 09:26:07 +08:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.formItemInjectionKey = void 0;
2024-08-02 18:19:39 +08:00
exports.default = useFormItem;
2024-01-29 09:26:07 +08:00
const vue_1 = require("vue");
const _utils_1 = require("../_utils");
exports.formItemInjectionKey = (0, _utils_1.createInjectionKey)('n-form-item');
function useFormItem(props, { defaultSize = 'medium', mergedSize, mergedDisabled } = {}) {
const NFormItem = (0, vue_1.inject)(exports.formItemInjectionKey, null);
(0, vue_1.provide)(exports.formItemInjectionKey, null);
const mergedSizeRef = (0, vue_1.computed)(mergedSize
? () => mergedSize(NFormItem)
: () => {
const { size } = props;
if (size)
return size;
if (NFormItem) {
const { mergedSize } = NFormItem;
if (mergedSize.value !== undefined) {
return mergedSize.value;
}
}
return defaultSize;
});
const mergedDisabledRef = (0, vue_1.computed)(mergedDisabled
? () => mergedDisabled(NFormItem)
: () => {
const { disabled } = props;
if (disabled !== undefined) {
return disabled;
}
if (NFormItem) {
return NFormItem.disabled.value;
}
return false;
});
const mergedStatusRef = (0, vue_1.computed)(() => {
const { status } = props;
if (status)
return status;
return NFormItem === null || NFormItem === void 0 ? void 0 : NFormItem.mergedValidationStatus.value;
});
(0, vue_1.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();
}
}
};
}