yanzhen-design-vue
Version:
61 lines (60 loc) • 2.13 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const vue = require("vue");
const antDesignVue = require("ant-design-vue");
const utilsVue = require("@yanzhen-libs/utils-vue");
const lodashEs = require("lodash-es");
const utils = require("@yanzhen-libs/utils");
const formItem = require("./form-item.cjs");
const formItemGroupContext = require("./hooks/form-item-group-context.cjs");
require("./form-item-wrapper.vue.cjs");
const formItemWrapper_vue_vue_type_script_setup_true_lang = require("./form-item-wrapper.vue2.cjs");
const useFormItem = (props, emit, expose) => {
const slots = { ...vue.useSlots() };
const fieldName = vue.computed(() => props.name || props.prop);
const config = vue.computed(() => {
const _props2 = lodashEs.pick(props, ...Object.keys(formItem.AntFormItem.props));
if (typeof _props2.label === "function") {
slots["label"] = _props2.label;
delete _props2.label;
}
return _props2;
});
const _props = utilsVue.useProxyProps(config, formItem.AntFormItem.emits, {
emit,
exclude: ["name", "prop", "help"],
filter: true
});
const { id: groupNames } = formItemGroupContext.useInjectFormItemGroupContext();
const help = vue.computed(() => {
const names = vue.unref(groupNames);
if (utils.isEmptyArray(names)) {
return props.help;
}
const data = lodashEs.fromPairs(names.map((name2) => [name2, true]));
const name = vue.unref(fieldName);
return name && lodashEs.get(data, name) === true ? [] : props.help;
});
return [
{
_props
},
(props2) => {
const propsData = vue.mergeProps(vue.unref(_props), props2 ?? {}, {
name: vue.unref(fieldName),
help: vue.unref(help)
});
return vue.h(antDesignVue.FormItem, propsData, {
...slots,
default: vue.withCtx(() => {
return [
vue.createVNode(formItemWrapper_vue_vue_type_script_setup_true_lang.default, propsData, {
default: slots.default
})
];
})
});
}
];
};
exports.useFormItem = useFormItem;