@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/utils.esm.js CHANGED
@@ -1252,10 +1252,13 @@ function getArrayDefaults(validator, rawSchema, {
1252
1252
  required
1253
1253
  } = {}, defaults) {
1254
1254
  const schema = rawSchema;
1255
- const neverPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "never";
1256
- const ignoreMinItemsFlagSet = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "requiredOnly";
1255
+ const arrayMinItemsStateBehavior = experimental_defaultFormStateBehavior?.arrayMinItems ?? {};
1256
+ const { populate: arrayMinItemsPopulate, mergeExtraDefaults: arrayMergeExtraDefaults } = arrayMinItemsStateBehavior;
1257
+ const neverPopulate = arrayMinItemsPopulate === "never";
1258
+ const ignoreMinItemsFlagSet = arrayMinItemsPopulate === "requiredOnly";
1259
+ const isPopulateAll = arrayMinItemsPopulate === "all" || !neverPopulate && !ignoreMinItemsFlagSet;
1260
+ const computeSkipPopulate = arrayMinItemsStateBehavior?.computeSkipPopulate ?? (() => false);
1257
1261
  const isSkipEmptyDefaults = experimental_defaultFormStateBehavior?.emptyObjectFields === "skipEmptyDefaults";
1258
- const computeSkipPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.computeSkipPopulate ?? (() => false);
1259
1262
  const emptyDefault = isSkipEmptyDefaults ? void 0 : [];
1260
1263
  if (Array.isArray(defaults)) {
1261
1264
  defaults = defaults.map((item, idx) => {
@@ -1274,7 +1277,7 @@ function getArrayDefaults(validator, rawSchema, {
1274
1277
  if (neverPopulate) {
1275
1278
  defaults = rawFormData;
1276
1279
  } else {
1277
- defaults = rawFormData.map((item, idx) => {
1280
+ const itemDefaults = rawFormData.map((item, idx) => {
1278
1281
  return computeDefaults(validator, schemaItem, {
1279
1282
  rootSchema,
1280
1283
  _recurseList,
@@ -1284,6 +1287,8 @@ function getArrayDefaults(validator, rawSchema, {
1284
1287
  required
1285
1288
  });
1286
1289
  });
1290
+ const mergeExtraDefaults = (ignoreMinItemsFlagSet && required || isPopulateAll) && arrayMergeExtraDefaults;
1291
+ defaults = mergeDefaultsWithFormData(defaults, itemDefaults, mergeExtraDefaults);
1287
1292
  }
1288
1293
  }
1289
1294
  const hasConst = isObject(schema) && CONST_KEY in schema;