@rjsf/utils 6.0.0-beta.10 → 6.0.0-beta.11
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 +20 -3
- package/dist/index.js.map +2 -2
- package/dist/utils.esm.js +20 -3
- package/dist/utils.esm.js.map +2 -2
- package/dist/utils.umd.js +20 -3
- 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 +9 -0
- package/package.json +1 -1
- package/src/mergeDefaultsWithFormData.ts +15 -1
- package/src/schema/getDefaultFormState.ts +9 -2
- package/src/types.ts +14 -0
package/dist/index.js
CHANGED
|
@@ -1379,8 +1379,19 @@ function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults =
|
|
|
1379
1379
|
const keyValue = (0, import_get10.default)(formData, key);
|
|
1380
1380
|
const keyExistsInDefaults = isObject(defaults) && key in defaults;
|
|
1381
1381
|
const keyExistsInFormData = key in formData;
|
|
1382
|
+
const keyDefault = (0, import_get10.default)(defaults, key) ?? {};
|
|
1383
|
+
const defaultValueIsNestedObject = keyExistsInDefaults && Object.entries(keyDefault).some(([, v]) => isObject(v));
|
|
1384
|
+
const keyDefaultIsObject = keyExistsInDefaults && isObject((0, import_get10.default)(defaults, key));
|
|
1385
|
+
const keyHasFormDataObject = keyExistsInFormData && isObject(keyValue);
|
|
1386
|
+
if (keyDefaultIsObject && keyHasFormDataObject && !defaultValueIsNestedObject) {
|
|
1387
|
+
acc2[key] = {
|
|
1388
|
+
...(0, import_get10.default)(defaults, key),
|
|
1389
|
+
...keyValue
|
|
1390
|
+
};
|
|
1391
|
+
return acc2;
|
|
1392
|
+
}
|
|
1382
1393
|
acc2[key] = mergeDefaultsWithFormData(
|
|
1383
|
-
|
|
1394
|
+
(0, import_get10.default)(defaults, key) ?? {},
|
|
1384
1395
|
keyValue,
|
|
1385
1396
|
mergeExtraArrayDefaults,
|
|
1386
1397
|
defaultSupercedesUndefined,
|
|
@@ -1581,7 +1592,7 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
|
|
|
1581
1592
|
let schemaToCompute = null;
|
|
1582
1593
|
let experimental_dfsb_to_compute = experimental_defaultFormStateBehavior;
|
|
1583
1594
|
let updatedRecurseList = _recurseList;
|
|
1584
|
-
if (schema[CONST_KEY] && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(schema)) {
|
|
1595
|
+
if (schema[CONST_KEY] !== void 0 && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(schema)) {
|
|
1585
1596
|
defaults = schema[CONST_KEY];
|
|
1586
1597
|
} else if (isObject(defaults) && isObject(schema.default)) {
|
|
1587
1598
|
defaults = mergeObjects(defaults, schema.default);
|
|
@@ -1676,7 +1687,7 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
|
|
|
1676
1687
|
experimental_defaultFormStateBehavior: experimental_dfsb_to_compute,
|
|
1677
1688
|
experimental_customMergeAllOf,
|
|
1678
1689
|
parentDefaults: defaults,
|
|
1679
|
-
rawFormData: formData,
|
|
1690
|
+
rawFormData: rawFormData ?? formData,
|
|
1680
1691
|
required,
|
|
1681
1692
|
shouldMergeDefaultsIntoFormData
|
|
1682
1693
|
});
|
|
@@ -1909,6 +1920,12 @@ function getDefaultFormState(validator, theSchema, formData, rootSchema, include
|
|
|
1909
1920
|
rawFormData: formData,
|
|
1910
1921
|
shouldMergeDefaultsIntoFormData: true
|
|
1911
1922
|
});
|
|
1923
|
+
if (schema.type !== "object" && isObject(schema.default)) {
|
|
1924
|
+
return {
|
|
1925
|
+
...defaults,
|
|
1926
|
+
...formData
|
|
1927
|
+
};
|
|
1928
|
+
}
|
|
1912
1929
|
if (isObject(formData) || Array.isArray(formData)) {
|
|
1913
1930
|
const { mergeDefaultsIntoFormData } = experimental_defaultFormStateBehavior || {};
|
|
1914
1931
|
const defaultSupercedesUndefined = mergeDefaultsIntoFormData === "useDefaultIfFormDataUndefined";
|