@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/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
- defaults ? get10(defaults, key) : {},
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`