winbox-ui-next
Version:
We Design Vue 2.0: A Vue.js 3 UI Library
81 lines (80 loc) • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports[Symbol.toStringTag] = "Module";
var vue = require("vue");
var createInjectionKey = require("../_utils/vue/create-injection-key.js");
require("../_utils/vue/wrapper.js");
require("../_utils/cssr/index.js");
require("../_utils/composable/use-adjusted-to.js");
require("vueuc");
require("../_utils/composable/use-lock-html-scroll.js");
require("../_utils/composable/use-is-composing.js");
const formItemInjectionKey = createInjectionKey.createInjectionKey("n-form-item");
function useFormItem(props, {
defaultSize = "default",
mergedSize,
mergedDisabled
} = {}) {
const NFormItem = vue.inject(formItemInjectionKey, null);
vue.provide(formItemInjectionKey, null);
const mergedSizeRef = vue.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 = vue.computed(mergedDisabled ? () => mergedDisabled(NFormItem) : () => {
const { disabled } = props;
if (disabled !== void 0) {
return disabled;
}
if (NFormItem) {
return NFormItem.disabled.value;
}
return false;
});
const mergedStatusRef = vue.computed(() => {
const { status } = props;
if (status)
return status;
return NFormItem == null ? void 0 : NFormItem.mergedValidationStatus.value;
});
vue.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();
}
}
};
}
exports["default"] = useFormItem;
exports.formItemInjectionKey = formItemInjectionKey;