import { defineComponent, computed, ref, getCurrentInstance, watch, provide, inject } from 'vue'; import { a2 as createContext } from './server.mjs'; const ContextKey = Symbol("ContextProps"); const InternalContextKey = Symbol("InternalContextProps"); const useProvideFormItemContext = function(props) { let useValidation = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : computed(() => true); const formItemFields = ref(/* @__PURE__ */ new Map()); const addFormItemField = (key, type) => { formItemFields.value.set(key, type); formItemFields.value = new Map(formItemFields.value); }; const removeFormItemField = (key) => { formItemFields.value.delete(key); formItemFields.value = new Map(formItemFields.value); }; getCurrentInstance(); watch([useValidation, formItemFields], () => { }); provide(ContextKey, props); provide(InternalContextKey, { addFormItemField, removeFormItemField }); }; const defaultContext = { id: computed(() => void 0), onFieldBlur: () => { }, onFieldChange: () => { }, clearValidate: () => { } }; const defaultInternalContext = { addFormItemField: () => { }, removeFormItemField: () => { } }; const useInjectFormItemContext = () => { const internalContext = inject(InternalContextKey, defaultInternalContext); const formItemFieldKey = Symbol("FormItemFieldKey"); const instance = getCurrentInstance(); internalContext.addFormItemField(formItemFieldKey, instance.type); provide(InternalContextKey, defaultInternalContext); provide(ContextKey, defaultContext); return inject(ContextKey, defaultContext); }; const FormItemRest = defineComponent({ compatConfig: { MODE: 3 }, name: "AFormItemRest", setup(_, _ref) { let { slots } = _ref; provide(InternalContextKey, defaultInternalContext); provide(ContextKey, defaultContext); return () => { var _a; return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots); }; } }); const FormItemInputContext = createContext({}); const NoFormStatus = defineComponent({ name: "NoFormStatus", setup(_, _ref2) { let { slots } = _ref2; FormItemInputContext.useProvide({}); return () => { var _a; return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots); }; } }); export { FormItemInputContext as F, NoFormStatus as N, FormItemRest as a, useProvideFormItemContext as b, useInjectFormItemContext as u }; //# sourceMappingURL=FormItemContext-CDDW52IT.mjs.map