@rjsf/utils 5.14.2 → 5.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +40 -29
- package/dist/index.js.map +3 -3
- package/dist/utils.esm.js +39 -28
- package/dist/utils.esm.js.map +2 -2
- package/dist/utils.umd.js +40 -32
- package/lib/createErrorHandler.js +2 -2
- package/lib/createErrorHandler.js.map +1 -1
- package/lib/enumOptionsSelectValue.js +1 -1
- package/lib/enumOptionsSelectValue.js.map +1 -1
- package/lib/findSchemaDefinition.js +1 -1
- package/lib/findSchemaDefinition.js.map +1 -1
- package/lib/getInputProps.js +4 -1
- package/lib/getInputProps.js.map +1 -1
- package/lib/getSubmitButtonOptions.js +1 -1
- package/lib/getSubmitButtonOptions.js.map +1 -1
- package/lib/getUiOptions.js +3 -3
- package/lib/getUiOptions.js.map +1 -1
- package/lib/getWidget.js +2 -4
- package/lib/getWidget.js.map +1 -1
- package/lib/parser/ParserValidator.js +1 -1
- package/lib/parser/ParserValidator.js.map +1 -1
- package/lib/schema/getDefaultFormState.js +19 -13
- package/lib/schema/getDefaultFormState.js.map +1 -1
- package/lib/schema/getMatchingOption.js +1 -2
- package/lib/schema/getMatchingOption.js.map +1 -1
- package/lib/schema/retrieveSchema.js +33 -18
- package/lib/schema/retrieveSchema.js.map +1 -1
- package/lib/schema/sanitizeDataForNewSchema.js +5 -1
- package/lib/schema/sanitizeDataForNewSchema.js.map +1 -1
- package/lib/schema/toPathSchema.js +4 -1
- package/lib/schema/toPathSchema.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types.d.ts +4 -0
- package/lib/unwrapErrorHandler.js +5 -2
- package/lib/unwrapErrorHandler.js.map +1 -1
- package/lib/withIdRefPrefix.js +1 -1
- package/lib/withIdRefPrefix.js.map +1 -1
- package/package.json +2 -2
- package/src/enumOptionsSelectValue.ts +1 -1
- package/src/schema/getDefaultFormState.ts +49 -29
- package/src/schema/retrieveSchema.ts +8 -1
- package/src/types.ts +4 -0
package/dist/utils.esm.js
CHANGED
|
@@ -268,6 +268,9 @@ import isEqual from "lodash/isEqual";
|
|
|
268
268
|
import set from "lodash/set";
|
|
269
269
|
import times from "lodash/times";
|
|
270
270
|
import transform from "lodash/transform";
|
|
271
|
+
import merge from "lodash/merge";
|
|
272
|
+
import flattenDeep from "lodash/flattenDeep";
|
|
273
|
+
import uniq from "lodash/uniq";
|
|
271
274
|
import mergeAllOf from "json-schema-merge-allof";
|
|
272
275
|
|
|
273
276
|
// src/getDiscriminatorFieldFromSchema.ts
|
|
@@ -474,13 +477,17 @@ function resolveAllReferences(schema, rootSchema, recurseList) {
|
|
|
474
477
|
resolvedSchema = { ...refSchema, ...localSchema };
|
|
475
478
|
}
|
|
476
479
|
if (PROPERTIES_KEY in resolvedSchema) {
|
|
480
|
+
const childrenLists = [];
|
|
477
481
|
const updatedProps = transform(
|
|
478
482
|
resolvedSchema[PROPERTIES_KEY],
|
|
479
483
|
(result, value, key) => {
|
|
480
|
-
|
|
484
|
+
const childList = [...recurseList];
|
|
485
|
+
result[key] = resolveAllReferences(value, rootSchema, childList);
|
|
486
|
+
childrenLists.push(childList);
|
|
481
487
|
},
|
|
482
488
|
{}
|
|
483
489
|
);
|
|
490
|
+
merge(recurseList, uniq(flattenDeep(childrenLists)));
|
|
484
491
|
resolvedSchema = { ...resolvedSchema, [PROPERTIES_KEY]: updatedProps };
|
|
485
492
|
}
|
|
486
493
|
if (ITEMS_KEY in resolvedSchema && !Array.isArray(resolvedSchema.items) && typeof resolvedSchema.items !== "boolean") {
|
|
@@ -1047,35 +1054,39 @@ function computeDefaults(validator, rawSchema, {
|
|
|
1047
1054
|
}
|
|
1048
1055
|
switch (getSchemaType(schema)) {
|
|
1049
1056
|
case "object": {
|
|
1050
|
-
const
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1057
|
+
const retrievedSchema = experimental_defaultFormStateBehavior?.allOf === "populateDefaults" && ALL_OF_KEY in schema ? retrieveSchema(validator, schema, rootSchema, formData) : schema;
|
|
1058
|
+
const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce(
|
|
1059
|
+
(acc, key) => {
|
|
1060
|
+
const computedDefault = computeDefaults(validator, get7(retrievedSchema, [PROPERTIES_KEY, key]), {
|
|
1061
|
+
rootSchema,
|
|
1062
|
+
_recurseList,
|
|
1063
|
+
experimental_defaultFormStateBehavior,
|
|
1064
|
+
includeUndefinedValues: includeUndefinedValues === true,
|
|
1065
|
+
parentDefaults: get7(defaults, [key]),
|
|
1066
|
+
rawFormData: get7(formData, [key]),
|
|
1067
|
+
required: retrievedSchema.required?.includes(key)
|
|
1068
|
+
});
|
|
1069
|
+
maybeAddDefaultToObject(
|
|
1070
|
+
acc,
|
|
1071
|
+
key,
|
|
1072
|
+
computedDefault,
|
|
1073
|
+
includeUndefinedValues,
|
|
1074
|
+
required,
|
|
1075
|
+
retrievedSchema.required,
|
|
1076
|
+
experimental_defaultFormStateBehavior
|
|
1077
|
+
);
|
|
1078
|
+
return acc;
|
|
1079
|
+
},
|
|
1080
|
+
{}
|
|
1081
|
+
);
|
|
1082
|
+
if (retrievedSchema.additionalProperties) {
|
|
1083
|
+
const additionalPropertiesSchema = isObject(retrievedSchema.additionalProperties) ? retrievedSchema.additionalProperties : {};
|
|
1073
1084
|
const keys = /* @__PURE__ */ new Set();
|
|
1074
1085
|
if (isObject(defaults)) {
|
|
1075
|
-
Object.keys(defaults).filter((key) => !
|
|
1086
|
+
Object.keys(defaults).filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key]).forEach((key) => keys.add(key));
|
|
1076
1087
|
}
|
|
1077
1088
|
const formDataRequired = [];
|
|
1078
|
-
Object.keys(formData).filter((key) => !
|
|
1089
|
+
Object.keys(formData).filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key]).forEach((key) => {
|
|
1079
1090
|
keys.add(key);
|
|
1080
1091
|
formDataRequired.push(key);
|
|
1081
1092
|
});
|
|
@@ -1087,7 +1098,7 @@ function computeDefaults(validator, rawSchema, {
|
|
|
1087
1098
|
includeUndefinedValues: includeUndefinedValues === true,
|
|
1088
1099
|
parentDefaults: get7(defaults, [key]),
|
|
1089
1100
|
rawFormData: get7(formData, [key]),
|
|
1090
|
-
required:
|
|
1101
|
+
required: retrievedSchema.required?.includes(key)
|
|
1091
1102
|
});
|
|
1092
1103
|
maybeAddDefaultToObject(
|
|
1093
1104
|
objectDefaults,
|
|
@@ -1795,7 +1806,7 @@ function enumOptionsIndexForValue(value, allEnumOptions = [], multiple = false)
|
|
|
1795
1806
|
}
|
|
1796
1807
|
|
|
1797
1808
|
// src/enumOptionsSelectValue.ts
|
|
1798
|
-
import
|
|
1809
|
+
import isNil from "lodash/isNil";
|
|
1799
1810
|
function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {
|
|
1800
1811
|
const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);
|
|
1801
1812
|
if (!isNil(value)) {
|