UNPKG

@croz/nrich-form-configuration-core

Version:

Contains core utilities related to the nrich-form-configuration module

863 lines (823 loc) 31.7 kB
import { __async, __commonJS, __objRest, __spreadProps, __spreadValues, __toESM, require_Stack, require_Uint8Array, require_arrayLikeKeys, require_baseGetTag, require_eq, require_getNative, require_identity, require_isArguments, require_isArray, require_isArrayLike, require_isBuffer, require_isFunction, require_isIndex, require_isObject, require_isObjectLike, require_isPrototype, require_isTypedArray, require_overArg, require_root, require_uniqBy } from "./chunk-IX4UG67P.mjs"; // ../../../node_modules/lodash/_defineProperty.js var require_defineProperty = __commonJS({ "../../../node_modules/lodash/_defineProperty.js"(exports, module) { var getNative = require_getNative(); var defineProperty = function() { try { var func = getNative(Object, "defineProperty"); func({}, "", {}); return func; } catch (e) { } }(); module.exports = defineProperty; } }); // ../../../node_modules/lodash/_baseAssignValue.js var require_baseAssignValue = __commonJS({ "../../../node_modules/lodash/_baseAssignValue.js"(exports, module) { var defineProperty = require_defineProperty(); function baseAssignValue(object2, key, value) { if (key == "__proto__" && defineProperty) { defineProperty(object2, key, { "configurable": true, "enumerable": true, "value": value, "writable": true }); } else { object2[key] = value; } } module.exports = baseAssignValue; } }); // ../../../node_modules/lodash/_assignMergeValue.js var require_assignMergeValue = __commonJS({ "../../../node_modules/lodash/_assignMergeValue.js"(exports, module) { var baseAssignValue = require_baseAssignValue(); var eq = require_eq(); function assignMergeValue(object2, key, value) { if (value !== void 0 && !eq(object2[key], value) || value === void 0 && !(key in object2)) { baseAssignValue(object2, key, value); } } module.exports = assignMergeValue; } }); // ../../../node_modules/lodash/_createBaseFor.js var require_createBaseFor = __commonJS({ "../../../node_modules/lodash/_createBaseFor.js"(exports, module) { function createBaseFor(fromRight) { return function(object2, iteratee, keysFunc) { var index = -1, iterable = Object(object2), props = keysFunc(object2), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object2; }; } module.exports = createBaseFor; } }); // ../../../node_modules/lodash/_baseFor.js var require_baseFor = __commonJS({ "../../../node_modules/lodash/_baseFor.js"(exports, module) { var createBaseFor = require_createBaseFor(); var baseFor = createBaseFor(); module.exports = baseFor; } }); // ../../../node_modules/lodash/_cloneBuffer.js var require_cloneBuffer = __commonJS({ "../../../node_modules/lodash/_cloneBuffer.js"(exports, module) { var root = require_root(); var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; var moduleExports = freeModule && freeModule.exports === freeExports; var Buffer = moduleExports ? root.Buffer : void 0; var allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0; function cloneBuffer(buffer, isDeep) { if (isDeep) { return buffer.slice(); } var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); buffer.copy(result); return result; } module.exports = cloneBuffer; } }); // ../../../node_modules/lodash/_cloneArrayBuffer.js var require_cloneArrayBuffer = __commonJS({ "../../../node_modules/lodash/_cloneArrayBuffer.js"(exports, module) { var Uint8Array = require_Uint8Array(); function cloneArrayBuffer(arrayBuffer) { var result = new arrayBuffer.constructor(arrayBuffer.byteLength); new Uint8Array(result).set(new Uint8Array(arrayBuffer)); return result; } module.exports = cloneArrayBuffer; } }); // ../../../node_modules/lodash/_cloneTypedArray.js var require_cloneTypedArray = __commonJS({ "../../../node_modules/lodash/_cloneTypedArray.js"(exports, module) { var cloneArrayBuffer = require_cloneArrayBuffer(); function cloneTypedArray(typedArray, isDeep) { var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); } module.exports = cloneTypedArray; } }); // ../../../node_modules/lodash/_copyArray.js var require_copyArray = __commonJS({ "../../../node_modules/lodash/_copyArray.js"(exports, module) { function copyArray(source, array2) { var index = -1, length = source.length; array2 || (array2 = Array(length)); while (++index < length) { array2[index] = source[index]; } return array2; } module.exports = copyArray; } }); // ../../../node_modules/lodash/_baseCreate.js var require_baseCreate = __commonJS({ "../../../node_modules/lodash/_baseCreate.js"(exports, module) { var isObject = require_isObject(); var objectCreate = Object.create; var baseCreate = function() { function object2() { } return function(proto) { if (!isObject(proto)) { return {}; } if (objectCreate) { return objectCreate(proto); } object2.prototype = proto; var result = new object2(); object2.prototype = void 0; return result; }; }(); module.exports = baseCreate; } }); // ../../../node_modules/lodash/_getPrototype.js var require_getPrototype = __commonJS({ "../../../node_modules/lodash/_getPrototype.js"(exports, module) { var overArg = require_overArg(); var getPrototype = overArg(Object.getPrototypeOf, Object); module.exports = getPrototype; } }); // ../../../node_modules/lodash/_initCloneObject.js var require_initCloneObject = __commonJS({ "../../../node_modules/lodash/_initCloneObject.js"(exports, module) { var baseCreate = require_baseCreate(); var getPrototype = require_getPrototype(); var isPrototype = require_isPrototype(); function initCloneObject(object2) { return typeof object2.constructor == "function" && !isPrototype(object2) ? baseCreate(getPrototype(object2)) : {}; } module.exports = initCloneObject; } }); // ../../../node_modules/lodash/isArrayLikeObject.js var require_isArrayLikeObject = __commonJS({ "../../../node_modules/lodash/isArrayLikeObject.js"(exports, module) { var isArrayLike = require_isArrayLike(); var isObjectLike = require_isObjectLike(); function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } module.exports = isArrayLikeObject; } }); // ../../../node_modules/lodash/isPlainObject.js var require_isPlainObject = __commonJS({ "../../../node_modules/lodash/isPlainObject.js"(exports, module) { var baseGetTag = require_baseGetTag(); var getPrototype = require_getPrototype(); var isObjectLike = require_isObjectLike(); var objectTag = "[object Object]"; var funcProto = Function.prototype; var objectProto = Object.prototype; var funcToString = funcProto.toString; var hasOwnProperty = objectProto.hasOwnProperty; var objectCtorString = funcToString.call(Object); function isPlainObject(value) { if (!isObjectLike(value) || baseGetTag(value) != objectTag) { return false; } var proto = getPrototype(value); if (proto === null) { return true; } var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; } module.exports = isPlainObject; } }); // ../../../node_modules/lodash/_safeGet.js var require_safeGet = __commonJS({ "../../../node_modules/lodash/_safeGet.js"(exports, module) { function safeGet(object2, key) { if (key === "constructor" && typeof object2[key] === "function") { return; } if (key == "__proto__") { return; } return object2[key]; } module.exports = safeGet; } }); // ../../../node_modules/lodash/_assignValue.js var require_assignValue = __commonJS({ "../../../node_modules/lodash/_assignValue.js"(exports, module) { var baseAssignValue = require_baseAssignValue(); var eq = require_eq(); var objectProto = Object.prototype; var hasOwnProperty = objectProto.hasOwnProperty; function assignValue(object2, key, value) { var objValue = object2[key]; if (!(hasOwnProperty.call(object2, key) && eq(objValue, value)) || value === void 0 && !(key in object2)) { baseAssignValue(object2, key, value); } } module.exports = assignValue; } }); // ../../../node_modules/lodash/_copyObject.js var require_copyObject = __commonJS({ "../../../node_modules/lodash/_copyObject.js"(exports, module) { var assignValue = require_assignValue(); var baseAssignValue = require_baseAssignValue(); function copyObject(source, props, object2, customizer) { var isNew = !object2; object2 || (object2 = {}); var index = -1, length = props.length; while (++index < length) { var key = props[index]; var newValue = customizer ? customizer(object2[key], source[key], key, object2, source) : void 0; if (newValue === void 0) { newValue = source[key]; } if (isNew) { baseAssignValue(object2, key, newValue); } else { assignValue(object2, key, newValue); } } return object2; } module.exports = copyObject; } }); // ../../../node_modules/lodash/_nativeKeysIn.js var require_nativeKeysIn = __commonJS({ "../../../node_modules/lodash/_nativeKeysIn.js"(exports, module) { function nativeKeysIn(object2) { var result = []; if (object2 != null) { for (var key in Object(object2)) { result.push(key); } } return result; } module.exports = nativeKeysIn; } }); // ../../../node_modules/lodash/_baseKeysIn.js var require_baseKeysIn = __commonJS({ "../../../node_modules/lodash/_baseKeysIn.js"(exports, module) { var isObject = require_isObject(); var isPrototype = require_isPrototype(); var nativeKeysIn = require_nativeKeysIn(); var objectProto = Object.prototype; var hasOwnProperty = objectProto.hasOwnProperty; function baseKeysIn(object2) { if (!isObject(object2)) { return nativeKeysIn(object2); } var isProto = isPrototype(object2), result = []; for (var key in object2) { if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object2, key)))) { result.push(key); } } return result; } module.exports = baseKeysIn; } }); // ../../../node_modules/lodash/keysIn.js var require_keysIn = __commonJS({ "../../../node_modules/lodash/keysIn.js"(exports, module) { var arrayLikeKeys = require_arrayLikeKeys(); var baseKeysIn = require_baseKeysIn(); var isArrayLike = require_isArrayLike(); function keysIn(object2) { return isArrayLike(object2) ? arrayLikeKeys(object2, true) : baseKeysIn(object2); } module.exports = keysIn; } }); // ../../../node_modules/lodash/toPlainObject.js var require_toPlainObject = __commonJS({ "../../../node_modules/lodash/toPlainObject.js"(exports, module) { var copyObject = require_copyObject(); var keysIn = require_keysIn(); function toPlainObject(value) { return copyObject(value, keysIn(value)); } module.exports = toPlainObject; } }); // ../../../node_modules/lodash/_baseMergeDeep.js var require_baseMergeDeep = __commonJS({ "../../../node_modules/lodash/_baseMergeDeep.js"(exports, module) { var assignMergeValue = require_assignMergeValue(); var cloneBuffer = require_cloneBuffer(); var cloneTypedArray = require_cloneTypedArray(); var copyArray = require_copyArray(); var initCloneObject = require_initCloneObject(); var isArguments = require_isArguments(); var isArray = require_isArray(); var isArrayLikeObject = require_isArrayLikeObject(); var isBuffer = require_isBuffer(); var isFunction = require_isFunction(); var isObject = require_isObject(); var isPlainObject = require_isPlainObject(); var isTypedArray = require_isTypedArray(); var safeGet = require_safeGet(); var toPlainObject = require_toPlainObject(); function baseMergeDeep(object2, source, key, srcIndex, mergeFunc, customizer, stack) { var objValue = safeGet(object2, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); if (stacked) { assignMergeValue(object2, key, stacked); return; } var newValue = customizer ? customizer(objValue, srcValue, key + "", object2, source, stack) : void 0; var isCommon = newValue === void 0; if (isCommon) { var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); newValue = srcValue; if (isArr || isBuff || isTyped) { if (isArray(objValue)) { newValue = objValue; } else if (isArrayLikeObject(objValue)) { newValue = copyArray(objValue); } else if (isBuff) { isCommon = false; newValue = cloneBuffer(srcValue, true); } else if (isTyped) { isCommon = false; newValue = cloneTypedArray(srcValue, true); } else { newValue = []; } } else if (isPlainObject(srcValue) || isArguments(srcValue)) { newValue = objValue; if (isArguments(objValue)) { newValue = toPlainObject(objValue); } else if (!isObject(objValue) || isFunction(objValue)) { newValue = initCloneObject(srcValue); } } else { isCommon = false; } } if (isCommon) { stack.set(srcValue, newValue); mergeFunc(newValue, srcValue, srcIndex, customizer, stack); stack["delete"](srcValue); } assignMergeValue(object2, key, newValue); } module.exports = baseMergeDeep; } }); // ../../../node_modules/lodash/_baseMerge.js var require_baseMerge = __commonJS({ "../../../node_modules/lodash/_baseMerge.js"(exports, module) { var Stack = require_Stack(); var assignMergeValue = require_assignMergeValue(); var baseFor = require_baseFor(); var baseMergeDeep = require_baseMergeDeep(); var isObject = require_isObject(); var keysIn = require_keysIn(); var safeGet = require_safeGet(); function baseMerge(object2, source, srcIndex, customizer, stack) { if (object2 === source) { return; } baseFor(source, function(srcValue, key) { stack || (stack = new Stack()); if (isObject(srcValue)) { baseMergeDeep(object2, source, key, srcIndex, baseMerge, customizer, stack); } else { var newValue = customizer ? customizer(safeGet(object2, key), srcValue, key + "", object2, source, stack) : void 0; if (newValue === void 0) { newValue = srcValue; } assignMergeValue(object2, key, newValue); } }, keysIn); } module.exports = baseMerge; } }); // ../../../node_modules/lodash/_apply.js var require_apply = __commonJS({ "../../../node_modules/lodash/_apply.js"(exports, module) { function apply(func, thisArg, args) { switch (args.length) { case 0: return func.call(thisArg); case 1: return func.call(thisArg, args[0]); case 2: return func.call(thisArg, args[0], args[1]); case 3: return func.call(thisArg, args[0], args[1], args[2]); } return func.apply(thisArg, args); } module.exports = apply; } }); // ../../../node_modules/lodash/_overRest.js var require_overRest = __commonJS({ "../../../node_modules/lodash/_overRest.js"(exports, module) { var apply = require_apply(); var nativeMax = Math.max; function overRest(func, start, transform) { start = nativeMax(start === void 0 ? func.length - 1 : start, 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array2 = Array(length); while (++index < length) { array2[index] = args[start + index]; } index = -1; var otherArgs = Array(start + 1); while (++index < start) { otherArgs[index] = args[index]; } otherArgs[start] = transform(array2); return apply(func, this, otherArgs); }; } module.exports = overRest; } }); // ../../../node_modules/lodash/constant.js var require_constant = __commonJS({ "../../../node_modules/lodash/constant.js"(exports, module) { function constant(value) { return function() { return value; }; } module.exports = constant; } }); // ../../../node_modules/lodash/_baseSetToString.js var require_baseSetToString = __commonJS({ "../../../node_modules/lodash/_baseSetToString.js"(exports, module) { var constant = require_constant(); var defineProperty = require_defineProperty(); var identity = require_identity(); var baseSetToString = !defineProperty ? identity : function(func, string) { return defineProperty(func, "toString", { "configurable": true, "enumerable": false, "value": constant(string), "writable": true }); }; module.exports = baseSetToString; } }); // ../../../node_modules/lodash/_shortOut.js var require_shortOut = __commonJS({ "../../../node_modules/lodash/_shortOut.js"(exports, module) { var HOT_COUNT = 800; var HOT_SPAN = 16; var nativeNow = Date.now; function shortOut(func) { var count = 0, lastCalled = 0; return function() { var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); lastCalled = stamp; if (remaining > 0) { if (++count >= HOT_COUNT) { return arguments[0]; } } else { count = 0; } return func.apply(void 0, arguments); }; } module.exports = shortOut; } }); // ../../../node_modules/lodash/_setToString.js var require_setToString = __commonJS({ "../../../node_modules/lodash/_setToString.js"(exports, module) { var baseSetToString = require_baseSetToString(); var shortOut = require_shortOut(); var setToString = shortOut(baseSetToString); module.exports = setToString; } }); // ../../../node_modules/lodash/_baseRest.js var require_baseRest = __commonJS({ "../../../node_modules/lodash/_baseRest.js"(exports, module) { var identity = require_identity(); var overRest = require_overRest(); var setToString = require_setToString(); function baseRest(func, start) { return setToString(overRest(func, start, identity), func + ""); } module.exports = baseRest; } }); // ../../../node_modules/lodash/_isIterateeCall.js var require_isIterateeCall = __commonJS({ "../../../node_modules/lodash/_isIterateeCall.js"(exports, module) { var eq = require_eq(); var isArrayLike = require_isArrayLike(); var isIndex = require_isIndex(); var isObject = require_isObject(); function isIterateeCall(value, index, object2) { if (!isObject(object2)) { return false; } var type = typeof index; if (type == "number" ? isArrayLike(object2) && isIndex(index, object2.length) : type == "string" && index in object2) { return eq(object2[index], value); } return false; } module.exports = isIterateeCall; } }); // ../../../node_modules/lodash/_createAssigner.js var require_createAssigner = __commonJS({ "../../../node_modules/lodash/_createAssigner.js"(exports, module) { var baseRest = require_baseRest(); var isIterateeCall = require_isIterateeCall(); function createAssigner(assigner) { return baseRest(function(object2, sources) { var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0; customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0; if (guard && isIterateeCall(sources[0], sources[1], guard)) { customizer = length < 3 ? void 0 : customizer; length = 1; } object2 = Object(object2); while (++index < length) { var source = sources[index]; if (source) { assigner(object2, source, index, customizer); } } return object2; }); } module.exports = createAssigner; } }); // ../../../node_modules/lodash/mergeWith.js var require_mergeWith = __commonJS({ "../../../node_modules/lodash/mergeWith.js"(exports, module) { var baseMerge = require_baseMerge(); var createAssigner = require_createAssigner(); var mergeWith = createAssigner(function(object2, source, srcIndex, customizer) { baseMerge(object2, source, srcIndex, customizer); }); module.exports = mergeWith; } }); // src/yup/store/form-configuration-store.ts import { create } from "zustand"; var useYupFormConfigurationStore = create((set) => ({ yupFormConfigurations: [], formConfigurationLoaded: false, set: (yupFormConfigurations) => set((state) => __spreadProps(__spreadValues({}, state), { yupFormConfigurations })), add: (yupFormConfigurations) => set((state) => ({ yupFormConfigurations: [...state.yupFormConfigurations, __spreadValues({}, yupFormConfigurations)] })), remove: (yupFormConfigurations) => set((state) => ({ yupFormConfigurations: state.yupFormConfigurations.filter((currentFormConfiguration) => currentFormConfiguration !== yupFormConfigurations) })), setFormConfigurationLoaded: (formConfigurationLoaded) => set((state) => __spreadProps(__spreadValues({}, state), { formConfigurationLoaded })) })); // src/yup/hook/use-form-configuration.ts var useFormConfiguration = () => { const formYupConfigurations = useYupFormConfigurationStore((state) => state.yupFormConfigurations); const formConfigurationLoaded = useYupFormConfigurationStore((state) => state.formConfigurationLoaded); const set = useYupFormConfigurationStore((state) => state.set); const add = useYupFormConfigurationStore((state) => state.add); const remove = useYupFormConfigurationStore((state) => state.remove); const setFormConfigurationLoaded = useYupFormConfigurationStore((state) => state.setFormConfigurationLoaded); return { formYupConfigurations, formConfigurationLoaded, set, add, remove, setFormConfigurationLoaded }; }; var useYupFormConfiguration = (formId) => { const { formYupConfigurations } = useFormConfiguration(); const searchedFormConfiguration = formYupConfigurations.find((formYupConfiguration) => formYupConfiguration.formId === formId); if (!searchedFormConfiguration) { return void 0; } return searchedFormConfiguration.yupSchema; }; // src/yup/component/FormConfigurationProvider.tsx import React, { useEffect } from "react"; // src/yup/loader/fetch-form-configurations.ts var import_uniqBy = __toESM(require_uniqBy()); // src/yup/converter/FormConfigurationValidationYupConverter.ts var import_mergeWith = __toESM(require_mergeWith()); import * as yup from "yup"; var _FormConfigurationValidationYupConverter = class { constructor(additionalConverters = []) { this.additionalConverters = additionalConverters; } /** * Converts {@link ConstrainedPropertyConfiguration} array to Yup's schema using builtin and provided converters. * @param constrainedPropertyConfigurationList array of {@link ConstrainedPropertyConfiguration} to convert */ convertFormConfigurationToYupSchema(constrainedPropertyConfigurationList) { return this.convertFormConfigurationToYupSchemaInternal(constrainedPropertyConfigurationList); } convertFormConfigurationToYupSchemaInternal(constrainedPropertyConfigurationList) { let schema = yup.object().shape({}); constrainedPropertyConfigurationList.forEach((property) => { const yupValidation = yup[property.javascriptType]; if (!yupValidation) { return; } const validator = property.validatorList.reduce((previousValidator, validatorConfiguration) => this.applyConverter(validatorConfiguration, previousValidator), yupValidation().default(void 0).nullable()); const [propertyName, restOfPathList] = _FormConfigurationValidationYupConverter.convertPath(property.path); if (restOfPathList.length > 0) { const currentPathSchema = [...restOfPathList].reverse().reduce((currentShape, path) => ({ [path]: yup.object().shape(currentShape).default(void 0).nullable() }), { [propertyName]: validator }); schema = this.mergeSchemas(schema, yup.object().shape(currentPathSchema)); } else { const currentPropertySchema = yup.object().shape({ [propertyName]: validator }); schema = schema.concat(currentPropertySchema); } }); return schema; } // Function to recursively merge two Yup schemas mergeSchemas(schema1, schema2) { const mergeObjects = (obj1, obj2) => { const merged = __spreadValues({}, obj1); Object.keys(obj2).forEach((key) => { if (Object.prototype.hasOwnProperty.call(merged, key)) { if (obj1[key].type === "object" && obj2[key].type === "object") { merged[key] = this.mergeSchemas(obj1[key], obj2[key]); merged[key].spec = (0, import_mergeWith.default)(obj1[key].spec, obj2[key].spec, (field1, field2) => typeof field1 === "boolean" ? field1 && field2 : field1 != null ? field1 : field2); merged[key].internalTests = __spreadValues(__spreadValues({}, obj1[key].internalTests), obj2[key].internalTests); } else if (obj1[key].type === "array" && obj2[key].type === "array") { if (obj1[key].innerType.type === "object" && obj2[key].innerType.type === "object") { merged[key] = yup.array().of(this.mergeSchemas(obj1[key].innerType, obj2[key].innerType)); } else { merged[key] = yup.array().of(obj2[key].innerType); } } else { merged[key] = obj2[key]; } } else { merged[key] = obj2[key]; } }); return merged; }; const fields1 = schema1.fields; const fields2 = schema2.fields; const mergedFields = mergeObjects(fields1, fields2); return yup.object().shape(mergedFields); } applyConverter(validatorConfiguration, validator) { const converter = this.resolveConverter(validatorConfiguration); let resolvedValidator = validator; if (converter) { try { resolvedValidator = converter.convert(validatorConfiguration, validator); } catch (ignore) { } } return resolvedValidator; } resolveConverter(validatorConfiguration) { const allConverters = this.additionalConverters.concat(_FormConfigurationValidationYupConverter.DEFAULT_CONVERTER_LIST); return allConverters.find((additionalConverter) => additionalConverter.supports(validatorConfiguration)); } static convertPath(path) { const pathList = path.split(this.PATH_SEPARATOR); const propertyName = pathList[pathList.length - 1]; pathList.pop(); return [propertyName, pathList]; } }; var FormConfigurationValidationYupConverter = _FormConfigurationValidationYupConverter; FormConfigurationValidationYupConverter.PATH_SEPARATOR = "."; FormConfigurationValidationYupConverter.DEFAULT_CONVERTER_LIST = [ { supports: (configuration) => ["NotNull", "NotBlank", "NotEmpty"].includes(configuration.name), convert: (configuration, validator) => validator.required(configuration.errorMessage) }, { supports: (configuration) => ["Size", "Length"].includes(configuration.name), convert: (configuration, validator) => validator.min(configuration.argumentMap.min, configuration.errorMessage).max(configuration.argumentMap.max, configuration.errorMessage) }, { supports: (configuration) => ["Pattern"].includes(configuration.name), convert: (configuration, validator) => validator.matches(configuration.argumentMap.pattern, configuration.errorMessage) }, { supports: (configuration) => ["Min", "Max"].includes(configuration.name), convert: (configuration, validator) => validator[configuration.name.toLowerCase()](configuration.argumentMap.value, configuration.errorMessage) }, { supports: (configuration) => ["InList"].includes(configuration.name), convert: (configuration, validator) => validator.test("inList", configuration.errorMessage, (value) => configuration.argumentMap.value.includes(value)) }, { supports: () => true, convert: (configuration, validator) => validator[configuration.name.toLowerCase()](configuration.errorMessage) } ]; // src/yup/loader/fetch-form-configurations.ts var mergeYupFormConfigurationsWithoutDuplicates = (oldFormConfiguration, newFormConfiguration) => { const mergedYupFormConfigurations = [...oldFormConfiguration, ...newFormConfiguration]; return (0, import_uniqBy.default)(mergedYupFormConfigurations, "formId"); }; var fetchFormConfigurations = (_0) => __async(void 0, [_0], function* ({ url, requestOptionsResolver, additionalValidatorConverters }) { const formConfigurationValidationConverter = new FormConfigurationValidationYupConverter(additionalValidatorConverters); const additionalOptions = (requestOptionsResolver == null ? void 0 : requestOptionsResolver()) || {}; const finalUrl = url || "/nrich/form/configuration"; const response = yield fetch(`${finalUrl}/fetch-all`, __spreadValues({ method: "POST" }, additionalOptions)); const body = yield response.json(); const formYupConfigurations = []; if (response.ok) { body.forEach((item) => { formYupConfigurations.push({ formId: item.formId, yupSchema: formConfigurationValidationConverter.convertFormConfigurationToYupSchema(item.constrainedPropertyConfigurationList) }); }); useYupFormConfigurationStore.getState().set(mergeYupFormConfigurationsWithoutDuplicates(useYupFormConfigurationStore.getState().yupFormConfigurations, formYupConfigurations)); useYupFormConfigurationStore.getState().setFormConfigurationLoaded(true); } return body; }); // src/yup/component/FormConfigurationProvider.tsx var FormConfigurationProvider = (_a) => { var _b = _a, { children, loader } = _b, fetchProps = __objRest(_b, ["children", "loader"]); useEffect(() => { fetchFormConfigurations(__spreadValues({}, fetchProps)); }, []); const { formConfigurationLoaded } = useFormConfiguration(); return /* @__PURE__ */ React.createElement("div", null, formConfigurationLoaded ? children : loader != null ? loader : null); }; export { FormConfigurationProvider, useFormConfiguration, useYupFormConfiguration }; //# sourceMappingURL=index.mjs.map