@rjsf/utils 5.22.3 → 5.22.4

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
@@ -1389,10 +1389,13 @@ function getArrayDefaults(validator, rawSchema, {
1389
1389
  required
1390
1390
  } = {}, defaults) {
1391
1391
  const schema = rawSchema;
1392
- const neverPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "never";
1393
- const ignoreMinItemsFlagSet = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "requiredOnly";
1392
+ const arrayMinItemsStateBehavior = experimental_defaultFormStateBehavior?.arrayMinItems ?? {};
1393
+ const { populate: arrayMinItemsPopulate, mergeExtraDefaults: arrayMergeExtraDefaults } = arrayMinItemsStateBehavior;
1394
+ const neverPopulate = arrayMinItemsPopulate === "never";
1395
+ const ignoreMinItemsFlagSet = arrayMinItemsPopulate === "requiredOnly";
1396
+ const isPopulateAll = arrayMinItemsPopulate === "all" || !neverPopulate && !ignoreMinItemsFlagSet;
1397
+ const computeSkipPopulate = arrayMinItemsStateBehavior?.computeSkipPopulate ?? (() => false);
1394
1398
  const isSkipEmptyDefaults = experimental_defaultFormStateBehavior?.emptyObjectFields === "skipEmptyDefaults";
1395
- const computeSkipPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.computeSkipPopulate ?? (() => false);
1396
1399
  const emptyDefault = isSkipEmptyDefaults ? void 0 : [];
1397
1400
  if (Array.isArray(defaults)) {
1398
1401
  defaults = defaults.map((item, idx) => {
@@ -1411,7 +1414,7 @@ function getArrayDefaults(validator, rawSchema, {
1411
1414
  if (neverPopulate) {
1412
1415
  defaults = rawFormData;
1413
1416
  } else {
1414
- defaults = rawFormData.map((item, idx) => {
1417
+ const itemDefaults = rawFormData.map((item, idx) => {
1415
1418
  return computeDefaults(validator, schemaItem, {
1416
1419
  rootSchema,
1417
1420
  _recurseList,
@@ -1421,6 +1424,8 @@ function getArrayDefaults(validator, rawSchema, {
1421
1424
  required
1422
1425
  });
1423
1426
  });
1427
+ const mergeExtraDefaults = (ignoreMinItemsFlagSet && required || isPopulateAll) && arrayMergeExtraDefaults;
1428
+ defaults = mergeDefaultsWithFormData(defaults, itemDefaults, mergeExtraDefaults);
1424
1429
  }
1425
1430
  }
1426
1431
  const hasConst = isObject(schema) && CONST_KEY in schema;