@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 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
- defaults ? (0, import_get10.default)(defaults, key) : {},
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";
@@ -2308,6 +2325,13 @@ var SchemaUtils = class {
2308
2325
  this.experimental_defaultFormStateBehavior = experimental_defaultFormStateBehavior;
2309
2326
  this.experimental_customMergeAllOf = experimental_customMergeAllOf;
2310
2327
  }
2328
+ /** Returns the `rootSchema` in the `SchemaUtilsType`
2329
+ *
2330
+ * @returns - The `rootSchema`
2331
+ */
2332
+ getRootSchema() {
2333
+ return this.rootSchema;
2334
+ }
2311
2335
  /** Returns the `ValidatorType` in the `SchemaUtilsType`
2312
2336
  *
2313
2337
  * @returns - The `ValidatorType`