UNPKG

yanzhen-design-vue

Version:

53 lines (52 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const vue = require("vue"); const context = require("ant-design-vue/es/form/context"); const utils = require("@yanzhen-libs/utils"); const valueUtil = require("ant-design-vue/es/form/utils/valueUtil"); const FormItemContext = require("ant-design-vue/es/form/FormItemContext"); const formItemGroupContext = require("./hooks/form-item-group-context.cjs"); const defaultItemNamePrefixCls = "yz_form_item_wrapper"; function useFormItemWrapper(props, emit) { const slots = vue.useSlots(); const { onFieldBlur, onFieldChange, clearValidate } = formItemGroupContext.useInjectFormItemGroupContext(); const formContext = context.useInjectForm(); const fieldName = vue.computed(() => props.name); const namePath = vue.computed(() => { const name = vue.unref(fieldName); if (utils.isEmptyValue(name)) return null; return valueUtil.getNamePath(name); }); const fieldId = vue.computed(() => { const namePaths = vue.unref(namePath); if (utils.isEmptyArray(namePaths)) { return void 0; } else { const formName = vue.unref(formContext.name); const mergedId = namePaths.join("_"); return formName ? `${formName}_${mergedId}` : `${defaultItemNamePrefixCls}_${mergedId}`; } }); FormItemContext.useProvideFormItemContext( { id: fieldId, onFieldBlur: () => { onFieldBlur(vue.unref(fieldName)); }, onFieldChange: () => { onFieldChange(vue.unref(fieldName)); }, clearValidate: () => { clearValidate(vue.unref(fieldName)); } }, vue.computed(() => { return !!(props.autoLink && vue.unref(formContext.model) && vue.unref(fieldName)); }) ); return [{ fieldId, fieldName }, () => { var _a; return (_a = slots == null ? void 0 : slots.default) == null ? void 0 : _a.call(slots); }]; } exports.useFormItemWrapper = useFormItemWrapper;