@rjsf/utils 6.0.0-beta.10 → 6.0.0-beta.12
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 +27 -3
- package/dist/index.js.map +2 -2
- package/dist/utils.esm.js +27 -3
- package/dist/utils.esm.js.map +2 -2
- package/dist/utils.umd.js +27 -3
- package/lib/createSchemaUtils.js +7 -0
- package/lib/createSchemaUtils.js.map +1 -1
- package/lib/mergeDefaultsWithFormData.js +13 -1
- package/lib/mergeDefaultsWithFormData.js.map +1 -1
- package/lib/schema/getDefaultFormState.js +8 -2
- package/lib/schema/getDefaultFormState.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types.d.ts +14 -0
- package/package.json +1 -1
- package/src/createSchemaUtils.ts +8 -0
- package/src/mergeDefaultsWithFormData.ts +15 -1
- package/src/schema/getDefaultFormState.ts +9 -2
- package/src/types.ts +19 -0
package/dist/utils.esm.js
CHANGED
|
@@ -1228,8 +1228,19 @@ function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults =
|
|
|
1228
1228
|
const keyValue = get10(formData, key);
|
|
1229
1229
|
const keyExistsInDefaults = isObject(defaults) && key in defaults;
|
|
1230
1230
|
const keyExistsInFormData = key in formData;
|
|
1231
|
+
const keyDefault = get10(defaults, key) ?? {};
|
|
1232
|
+
const defaultValueIsNestedObject = keyExistsInDefaults && Object.entries(keyDefault).some(([, v]) => isObject(v));
|
|
1233
|
+
const keyDefaultIsObject = keyExistsInDefaults && isObject(get10(defaults, key));
|
|
1234
|
+
const keyHasFormDataObject = keyExistsInFormData && isObject(keyValue);
|
|
1235
|
+
if (keyDefaultIsObject && keyHasFormDataObject && !defaultValueIsNestedObject) {
|
|
1236
|
+
acc2[key] = {
|
|
1237
|
+
...get10(defaults, key),
|
|
1238
|
+
...keyValue
|
|
1239
|
+
};
|
|
1240
|
+
return acc2;
|
|
1241
|
+
}
|
|
1231
1242
|
acc2[key] = mergeDefaultsWithFormData(
|
|
1232
|
-
|
|
1243
|
+
get10(defaults, key) ?? {},
|
|
1233
1244
|
keyValue,
|
|
1234
1245
|
mergeExtraArrayDefaults,
|
|
1235
1246
|
defaultSupercedesUndefined,
|
|
@@ -1430,7 +1441,7 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
|
|
|
1430
1441
|
let schemaToCompute = null;
|
|
1431
1442
|
let experimental_dfsb_to_compute = experimental_defaultFormStateBehavior;
|
|
1432
1443
|
let updatedRecurseList = _recurseList;
|
|
1433
|
-
if (schema[CONST_KEY] && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(schema)) {
|
|
1444
|
+
if (schema[CONST_KEY] !== void 0 && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(schema)) {
|
|
1434
1445
|
defaults = schema[CONST_KEY];
|
|
1435
1446
|
} else if (isObject(defaults) && isObject(schema.default)) {
|
|
1436
1447
|
defaults = mergeObjects(defaults, schema.default);
|
|
@@ -1525,7 +1536,7 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
|
|
|
1525
1536
|
experimental_defaultFormStateBehavior: experimental_dfsb_to_compute,
|
|
1526
1537
|
experimental_customMergeAllOf,
|
|
1527
1538
|
parentDefaults: defaults,
|
|
1528
|
-
rawFormData: formData,
|
|
1539
|
+
rawFormData: rawFormData ?? formData,
|
|
1529
1540
|
required,
|
|
1530
1541
|
shouldMergeDefaultsIntoFormData
|
|
1531
1542
|
});
|
|
@@ -1758,6 +1769,12 @@ function getDefaultFormState(validator, theSchema, formData, rootSchema, include
|
|
|
1758
1769
|
rawFormData: formData,
|
|
1759
1770
|
shouldMergeDefaultsIntoFormData: true
|
|
1760
1771
|
});
|
|
1772
|
+
if (schema.type !== "object" && isObject(schema.default)) {
|
|
1773
|
+
return {
|
|
1774
|
+
...defaults,
|
|
1775
|
+
...formData
|
|
1776
|
+
};
|
|
1777
|
+
}
|
|
1761
1778
|
if (isObject(formData) || Array.isArray(formData)) {
|
|
1762
1779
|
const { mergeDefaultsIntoFormData } = experimental_defaultFormStateBehavior || {};
|
|
1763
1780
|
const defaultSupercedesUndefined = mergeDefaultsIntoFormData === "useDefaultIfFormDataUndefined";
|
|
@@ -2157,6 +2174,13 @@ var SchemaUtils = class {
|
|
|
2157
2174
|
this.experimental_defaultFormStateBehavior = experimental_defaultFormStateBehavior;
|
|
2158
2175
|
this.experimental_customMergeAllOf = experimental_customMergeAllOf;
|
|
2159
2176
|
}
|
|
2177
|
+
/** Returns the `rootSchema` in the `SchemaUtilsType`
|
|
2178
|
+
*
|
|
2179
|
+
* @returns - The `rootSchema`
|
|
2180
|
+
*/
|
|
2181
|
+
getRootSchema() {
|
|
2182
|
+
return this.rootSchema;
|
|
2183
|
+
}
|
|
2160
2184
|
/** Returns the `ValidatorType` in the `SchemaUtilsType`
|
|
2161
2185
|
*
|
|
2162
2186
|
* @returns - The `ValidatorType`
|