@rjsf/utils 5.17.1 → 5.18.0

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
@@ -955,14 +955,18 @@ function maybeAddDefaultToObject(obj, key, computedDefault, includeUndefinedValu
955
955
  } else if (emptyObjectFields !== "skipDefaults") {
956
956
  if (isObject(computedDefault)) {
957
957
  const isSelfOrParentRequired = isParentRequired === void 0 ? requiredFields.includes(key) : isParentRequired;
958
- if ((!isEmpty(computedDefault) || requiredFields.includes(key)) && (isSelfOrParentRequired || emptyObjectFields !== "populateRequiredDefaults")) {
958
+ if (emptyObjectFields === "skipEmptyDefaults") {
959
+ if (!isEmpty(computedDefault)) {
960
+ obj[key] = computedDefault;
961
+ }
962
+ } else if ((!isEmpty(computedDefault) || requiredFields.includes(key)) && (isSelfOrParentRequired || emptyObjectFields !== "populateRequiredDefaults")) {
959
963
  obj[key] = computedDefault;
960
964
  }
961
965
  } else if (
962
966
  // Store computedDefault if it's a defined primitive (e.g., true) and satisfies certain conditions
963
967
  // Condition 1: computedDefault is not undefined
964
- // Condition 2: If emptyObjectFields is 'populateAllDefaults' or if the key is a required field
965
- computedDefault !== void 0 && (emptyObjectFields === "populateAllDefaults" || requiredFields.includes(key))
968
+ // Condition 2: If emptyObjectFields is 'populateAllDefaults' or 'skipEmptyDefaults) or if the key is a required field
969
+ computedDefault !== void 0 && (emptyObjectFields === "populateAllDefaults" || emptyObjectFields === "skipEmptyDefaults" || requiredFields.includes(key))
966
970
  ) {
967
971
  obj[key] = computedDefault;
968
972
  }
@@ -1115,6 +1119,9 @@ function computeDefaults(validator, rawSchema, {
1115
1119
  case "array": {
1116
1120
  const neverPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "never";
1117
1121
  const ignoreMinItemsFlagSet = experimental_defaultFormStateBehavior?.arrayMinItems?.populate === "requiredOnly";
1122
+ const isSkipEmptyDefaults = experimental_defaultFormStateBehavior?.emptyObjectFields === "skipEmptyDefaults";
1123
+ const computeSkipPopulate = experimental_defaultFormStateBehavior?.arrayMinItems?.computeSkipPopulate ?? (() => false);
1124
+ const emptyDefault = isSkipEmptyDefaults ? void 0 : [];
1118
1125
  if (Array.isArray(defaults)) {
1119
1126
  defaults = defaults.map((item, idx) => {
1120
1127
  const schemaItem = getInnerSchemaForArrayItem(schema, 2 /* Fallback */, idx);
@@ -1145,14 +1152,14 @@ function computeDefaults(validator, rawSchema, {
1145
1152
  }
1146
1153
  }
1147
1154
  if (neverPopulate) {
1148
- return defaults ?? [];
1155
+ return defaults ?? emptyDefault;
1149
1156
  }
1150
1157
  if (ignoreMinItemsFlagSet && !required) {
1151
1158
  return defaults ? defaults : void 0;
1152
1159
  }
1153
1160
  const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;
1154
- if (!schema.minItems || isMultiSelect(validator, schema, rootSchema) || schema.minItems <= defaultsLength) {
1155
- return defaults ? defaults : [];
1161
+ if (!schema.minItems || isMultiSelect(validator, schema, rootSchema) || computeSkipPopulate(validator, schema, rootSchema) || schema.minItems <= defaultsLength) {
1162
+ return defaults ? defaults : emptyDefault;
1156
1163
  }
1157
1164
  const defaultEntries = defaults || [];
1158
1165
  const fillerSchema = getInnerSchemaForArrayItem(schema, 1 /* Invert */);
@@ -2476,7 +2483,7 @@ var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
2476
2483
  TranslatableString2["UnsupportedFieldWithId"] = "Unsupported field schema for field <code>%1</code>.";
2477
2484
  TranslatableString2["UnsupportedFieldWithReason"] = "Unsupported field schema: <em>%1</em>.";
2478
2485
  TranslatableString2["UnsupportedFieldWithIdAndReason"] = "Unsupported field schema for field <code>%1</code>: <em>%2</em>.";
2479
- TranslatableString2["FilesInfo"] = "<strong>%1</strong> (%2, %3 bytes)";
2486
+ TranslatableString2["FilesInfo"] = "**%1** (%2, %3 bytes)";
2480
2487
  return TranslatableString2;
2481
2488
  })(TranslatableString || {});
2482
2489