84 lines
2.5 KiB
JavaScript
84 lines
2.5 KiB
JavaScript
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
|