@rjsf/utils 6.0.0-beta.1 → 6.0.0-beta.11

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
@@ -46,6 +46,7 @@ __export(index_exports, {
46
46
  ID_KEY: () => ID_KEY,
47
47
  IF_KEY: () => IF_KEY,
48
48
  ITEMS_KEY: () => ITEMS_KEY,
49
+ JSON_SCHEMA_DRAFT_2020_12: () => JSON_SCHEMA_DRAFT_2020_12,
49
50
  JUNK_OPTION_ID: () => JUNK_OPTION_ID,
50
51
  LOOKUP_MAP_NAME: () => LOOKUP_MAP_NAME,
51
52
  NAME_KEY: () => NAME_KEY,
@@ -57,6 +58,7 @@ __export(index_exports, {
57
58
  REQUIRED_KEY: () => REQUIRED_KEY,
58
59
  RJSF_ADDITIONAL_PROPERTIES_FLAG: () => RJSF_ADDITIONAL_PROPERTIES_FLAG,
59
60
  ROOT_SCHEMA_PREFIX: () => ROOT_SCHEMA_PREFIX,
61
+ SCHEMA_KEY: () => SCHEMA_KEY,
60
62
  SUBMIT_BTN_OPTIONS_KEY: () => SUBMIT_BTN_OPTIONS_KEY,
61
63
  TranslatableString: () => TranslatableString,
62
64
  UI_FIELD_KEY: () => UI_FIELD_KEY,
@@ -214,6 +216,7 @@ var READONLY_KEY = "readonly";
214
216
  var REQUIRED_KEY = "required";
215
217
  var SUBMIT_BTN_OPTIONS_KEY = "submitButtonOptions";
216
218
  var REF_KEY = "$ref";
219
+ var SCHEMA_KEY = "$schema";
217
220
  var DISCRIMINATOR_PATH = ["discriminator", "propertyName"];
218
221
  var FORM_CONTEXT_NAME = "formContext";
219
222
  var LOOKUP_MAP_NAME = "layoutGridLookupMap";
@@ -223,6 +226,7 @@ var UI_FIELD_KEY = "ui:field";
223
226
  var UI_WIDGET_KEY = "ui:widget";
224
227
  var UI_OPTIONS_KEY = "ui:options";
225
228
  var UI_GLOBAL_OPTIONS_KEY = "ui:globalOptions";
229
+ var JSON_SCHEMA_DRAFT_2020_12 = "https://json-schema.org/draft/2020-12/schema";
226
230
 
227
231
  // src/getUiOptions.ts
228
232
  function getUiOptions(uiSchema = {}, globalOptions = {}) {
@@ -295,15 +299,15 @@ function deepEquals(a, b) {
295
299
  }
296
300
 
297
301
  // src/schema/findFieldInSchema.ts
298
- var import_get7 = __toESM(require("lodash/get"), 1);
302
+ var import_get8 = __toESM(require("lodash/get"), 1);
299
303
  var import_has3 = __toESM(require("lodash/has"), 1);
300
304
 
301
305
  // src/schema/findSelectedOptionInXxxOf.ts
302
- var import_get5 = __toESM(require("lodash/get"), 1);
306
+ var import_get6 = __toESM(require("lodash/get"), 1);
303
307
  var import_isEqual = __toESM(require("lodash/isEqual"), 1);
304
308
 
305
309
  // src/schema/retrieveSchema.ts
306
- var import_get4 = __toESM(require("lodash/get"), 1);
310
+ var import_get5 = __toESM(require("lodash/get"), 1);
307
311
  var import_set = __toESM(require("lodash/set"), 1);
308
312
  var import_times = __toESM(require("lodash/times"), 1);
309
313
  var import_transform = __toESM(require("lodash/transform"), 1);
@@ -315,20 +319,53 @@ var import_json_schema_merge_allof = __toESM(require("json-schema-merge-allof"),
315
319
  // src/findSchemaDefinition.ts
316
320
  var import_jsonpointer = __toESM(require("jsonpointer"), 1);
317
321
  var import_omit = __toESM(require("lodash/omit"), 1);
322
+ var import_isObject3 = __toESM(require("lodash/isObject"), 1);
323
+ var import_isEmpty = __toESM(require("lodash/isEmpty"), 1);
324
+ var import_fast_uri = __toESM(require("fast-uri"), 1);
325
+ var import_get = __toESM(require("lodash/get"), 1);
326
+ function findEmbeddedSchemaRecursive(schema, ref) {
327
+ if (ID_KEY in schema && import_fast_uri.default.equal(schema[ID_KEY], ref)) {
328
+ return schema;
329
+ }
330
+ for (const subSchema of Object.values(schema)) {
331
+ if ((0, import_isObject3.default)(subSchema)) {
332
+ const result = findEmbeddedSchemaRecursive(subSchema, ref);
333
+ if (result !== void 0) {
334
+ return result;
335
+ }
336
+ }
337
+ }
338
+ return void 0;
339
+ }
318
340
  function splitKeyElementFromObject(key, object) {
319
341
  const value = object[key];
320
342
  const remaining = (0, import_omit.default)(object, [key]);
321
343
  return [remaining, value];
322
344
  }
323
- function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = []) {
345
+ function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = [], baseURI = (0, import_get.default)(rootSchema, [ID_KEY])) {
324
346
  const ref = $ref || "";
325
- let decodedRef;
347
+ let current = void 0;
326
348
  if (ref.startsWith("#")) {
327
- decodedRef = decodeURIComponent(ref.substring(1));
328
- } else {
329
- throw new Error(`Could not find a definition for ${$ref}.`);
349
+ const decodedRef = decodeURIComponent(ref.substring(1));
350
+ if (baseURI === void 0 || ID_KEY in rootSchema && rootSchema[ID_KEY] === baseURI) {
351
+ current = import_jsonpointer.default.get(rootSchema, decodedRef);
352
+ } else if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {
353
+ current = findEmbeddedSchemaRecursive(rootSchema, baseURI.replace(/\/$/, ""));
354
+ if (current !== void 0) {
355
+ current = import_jsonpointer.default.get(current, decodedRef);
356
+ }
357
+ }
358
+ } else if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {
359
+ const resolvedRef = baseURI ? import_fast_uri.default.resolve(baseURI, ref) : ref;
360
+ const [refId, ...refAnchor] = resolvedRef.replace(/#\/?$/, "").split("#");
361
+ current = findEmbeddedSchemaRecursive(rootSchema, refId.replace(/\/$/, ""));
362
+ if (current !== void 0) {
363
+ baseURI = current[ID_KEY];
364
+ if (!(0, import_isEmpty.default)(refAnchor)) {
365
+ current = import_jsonpointer.default.get(current, decodeURIComponent(refAnchor.join("#")));
366
+ }
367
+ }
330
368
  }
331
- const current = import_jsonpointer.default.get(rootSchema, decodedRef);
332
369
  if (current === void 0) {
333
370
  throw new Error(`Could not find a definition for ${$ref}.`);
334
371
  }
@@ -343,7 +380,7 @@ function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = [])
343
380
  throw new Error(`Definition for ${firstRef} contains a circular reference through ${circularPath}`);
344
381
  }
345
382
  const [remaining, theRef] = splitKeyElementFromObject(REF_KEY, current);
346
- const subSchema = findSchemaDefinitionRecursive(theRef, rootSchema, [...recurseList, ref]);
383
+ const subSchema = findSchemaDefinitionRecursive(theRef, rootSchema, [...recurseList, ref], baseURI);
347
384
  if (Object.keys(remaining).length > 0) {
348
385
  return { ...remaining, ...subSchema };
349
386
  }
@@ -351,17 +388,17 @@ function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = [])
351
388
  }
352
389
  return current;
353
390
  }
354
- function findSchemaDefinition($ref, rootSchema = {}) {
391
+ function findSchemaDefinition($ref, rootSchema = {}, baseURI = (0, import_get.default)(rootSchema, [ID_KEY])) {
355
392
  const recurseList = [];
356
- return findSchemaDefinitionRecursive($ref, rootSchema, recurseList);
393
+ return findSchemaDefinitionRecursive($ref, rootSchema, recurseList, baseURI);
357
394
  }
358
395
 
359
396
  // src/getDiscriminatorFieldFromSchema.ts
360
- var import_get = __toESM(require("lodash/get"), 1);
397
+ var import_get2 = __toESM(require("lodash/get"), 1);
361
398
  var import_isString = __toESM(require("lodash/isString"), 1);
362
399
  function getDiscriminatorFieldFromSchema(schema) {
363
400
  let discriminator;
364
- const maybeString = (0, import_get.default)(schema, DISCRIMINATOR_PATH);
401
+ const maybeString = (0, import_get2.default)(schema, DISCRIMINATOR_PATH);
365
402
  if ((0, import_isString.default)(maybeString)) {
366
403
  discriminator = maybeString;
367
404
  } else if (maybeString !== void 0) {
@@ -435,21 +472,21 @@ function mergeSchemas(obj1, obj2) {
435
472
  }
436
473
 
437
474
  // src/schema/getFirstMatchingOption.ts
438
- var import_get3 = __toESM(require("lodash/get"), 1);
475
+ var import_get4 = __toESM(require("lodash/get"), 1);
439
476
  var import_has = __toESM(require("lodash/has"), 1);
440
477
  var import_isNumber = __toESM(require("lodash/isNumber"), 1);
441
478
 
442
479
  // src/getOptionMatchingSimpleDiscriminator.ts
443
- var import_get2 = __toESM(require("lodash/get"), 1);
480
+ var import_get3 = __toESM(require("lodash/get"), 1);
444
481
  function getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField) {
445
482
  if (formData && discriminatorField) {
446
- const value = (0, import_get2.default)(formData, discriminatorField);
483
+ const value = (0, import_get3.default)(formData, discriminatorField);
447
484
  if (value === void 0) {
448
485
  return;
449
486
  }
450
487
  for (let i = 0; i < options.length; i++) {
451
488
  const option = options[i];
452
- const discriminator = (0, import_get2.default)(option, [PROPERTIES_KEY, discriminatorField], {});
489
+ const discriminator = (0, import_get3.default)(option, [PROPERTIES_KEY, discriminatorField], {});
453
490
  if (discriminator.type === "object" || discriminator.type === "array") {
454
491
  continue;
455
492
  }
@@ -476,8 +513,8 @@ function getFirstMatchingOption(validator, formData, options, rootSchema, discri
476
513
  for (let i = 0; i < options.length; i++) {
477
514
  const option = options[i];
478
515
  if (discriminatorField && (0, import_has.default)(option, [PROPERTIES_KEY, discriminatorField])) {
479
- const value = (0, import_get3.default)(formData, discriminatorField);
480
- const discriminator = (0, import_get3.default)(option, [PROPERTIES_KEY, discriminatorField], {});
516
+ const value = (0, import_get4.default)(formData, discriminatorField);
517
+ const discriminator = (0, import_get4.default)(option, [PROPERTIES_KEY, discriminatorField], {});
481
518
  if (validator.isValid(discriminator, value, rootSchema)) {
482
519
  return i;
483
520
  }
@@ -512,7 +549,7 @@ function getFirstMatchingOption(validator, formData, options, rootSchema, discri
512
549
  }
513
550
 
514
551
  // src/schema/retrieveSchema.ts
515
- var import_isEmpty = __toESM(require("lodash/isEmpty"), 1);
552
+ var import_isEmpty2 = __toESM(require("lodash/isEmpty"), 1);
516
553
  function retrieveSchema(validator, schema, rootSchema = {}, rawFormData, experimental_customMergeAllOf) {
517
554
  return retrieveSchemaInternal(
518
555
  validator,
@@ -678,7 +715,7 @@ function resolveReference(validator, schema, rootSchema, expandAllBranches, recu
678
715
  }
679
716
  return [schema];
680
717
  }
681
- function resolveAllReferences(schema, rootSchema, recurseList) {
718
+ function resolveAllReferences(schema, rootSchema, recurseList, baseURI) {
682
719
  if (!isObject(schema)) {
683
720
  return schema;
684
721
  }
@@ -689,8 +726,11 @@ function resolveAllReferences(schema, rootSchema, recurseList) {
689
726
  return resolvedSchema;
690
727
  }
691
728
  recurseList.push($ref);
692
- const refSchema = findSchemaDefinition($ref, rootSchema);
729
+ const refSchema = findSchemaDefinition($ref, rootSchema, baseURI);
693
730
  resolvedSchema = { ...refSchema, ...localSchema };
731
+ if (ID_KEY in resolvedSchema) {
732
+ baseURI = resolvedSchema[ID_KEY];
733
+ }
694
734
  }
695
735
  if (PROPERTIES_KEY in resolvedSchema) {
696
736
  const childrenLists = [];
@@ -698,7 +738,7 @@ function resolveAllReferences(schema, rootSchema, recurseList) {
698
738
  resolvedSchema[PROPERTIES_KEY],
699
739
  (result, value, key) => {
700
740
  const childList = [...recurseList];
701
- result[key] = resolveAllReferences(value, rootSchema, childList);
741
+ result[key] = resolveAllReferences(value, rootSchema, childList, baseURI);
702
742
  childrenLists.push(childList);
703
743
  },
704
744
  {}
@@ -709,7 +749,7 @@ function resolveAllReferences(schema, rootSchema, recurseList) {
709
749
  if (ITEMS_KEY in resolvedSchema && !Array.isArray(resolvedSchema.items) && typeof resolvedSchema.items !== "boolean") {
710
750
  resolvedSchema = {
711
751
  ...resolvedSchema,
712
- items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList)
752
+ items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList, baseURI)
713
753
  };
714
754
  }
715
755
  return deepEquals(schema, resolvedSchema) ? schema : resolvedSchema;
@@ -726,12 +766,12 @@ function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFor
726
766
  }
727
767
  if (PATTERN_PROPERTIES_KEY in schema) {
728
768
  const matchingProperties = getMatchingPatternProperties(schema, key);
729
- if (!(0, import_isEmpty.default)(matchingProperties)) {
769
+ if (!(0, import_isEmpty2.default)(matchingProperties)) {
730
770
  schema.properties[key] = retrieveSchema(
731
771
  validator,
732
772
  { allOf: Object.values(matchingProperties) },
733
773
  rootSchema,
734
- formData,
774
+ (0, import_get5.default)(formData, [key]),
735
775
  experimental_customMergeAllOf
736
776
  );
737
777
  (0, import_set.default)(schema.properties, [key, ADDITIONAL_PROPERTY_FLAG], true);
@@ -744,7 +784,7 @@ function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFor
744
784
  if (REF_KEY in schema.additionalProperties) {
745
785
  additionalProperties = retrieveSchema(
746
786
  validator,
747
- { $ref: (0, import_get4.default)(schema.additionalProperties, [REF_KEY]) },
787
+ { $ref: (0, import_get5.default)(schema.additionalProperties, [REF_KEY]) },
748
788
  rootSchema,
749
789
  formData,
750
790
  experimental_customMergeAllOf
@@ -757,10 +797,10 @@ function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFor
757
797
  ...schema.additionalProperties
758
798
  };
759
799
  } else {
760
- additionalProperties = { type: guessType((0, import_get4.default)(formData, [key])) };
800
+ additionalProperties = { type: guessType((0, import_get5.default)(formData, [key])) };
761
801
  }
762
802
  } else {
763
- additionalProperties = { type: guessType((0, import_get4.default)(formData, [key])) };
803
+ additionalProperties = { type: guessType((0, import_get5.default)(formData, [key])) };
764
804
  }
765
805
  schema.properties[key] = additionalProperties;
766
806
  (0, import_set.default)(schema.properties, [key, ADDITIONAL_PROPERTY_FLAG], true);
@@ -816,7 +856,10 @@ function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expa
816
856
  resolvedSchema = { ...resolvedSchema, allOf: withoutContainsSchemas };
817
857
  }
818
858
  resolvedSchema = experimental_customMergeAllOf ? experimental_customMergeAllOf(resolvedSchema) : (0, import_json_schema_merge_allof.default)(resolvedSchema, {
819
- deep: false
859
+ deep: false,
860
+ resolvers: {
861
+ $defs: import_json_schema_merge_allof.default.options.resolvers.definitions
862
+ }
820
863
  });
821
864
  if (withContainsSchemas.length) {
822
865
  resolvedSchema.allOf = withContainsSchemas;
@@ -831,12 +874,12 @@ function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expa
831
874
  resolvedSchema = Object.keys(resolvedSchema.properties).reduce(
832
875
  (schema2, key) => {
833
876
  const matchingProperties = getMatchingPatternProperties(schema2, key);
834
- if (!(0, import_isEmpty.default)(matchingProperties)) {
877
+ if (!(0, import_isEmpty2.default)(matchingProperties)) {
835
878
  schema2.properties[key] = retrieveSchema(
836
879
  validator,
837
880
  { allOf: [schema2.properties[key], ...Object.values(matchingProperties)] },
838
881
  rootSchema,
839
- rawFormData,
882
+ (0, import_get5.default)(rawFormData, [key]),
840
883
  experimental_customMergeAllOf
841
884
  );
842
885
  }
@@ -908,7 +951,7 @@ function resolveDependencies(validator, schema, rootSchema, expandAllBranches, r
908
951
  function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
909
952
  let schemas = [resolvedSchema];
910
953
  for (const dependencyKey in dependencies) {
911
- if (!expandAllBranches && (0, import_get4.default)(formData, [dependencyKey]) === void 0) {
954
+ if (!expandAllBranches && (0, import_get5.default)(formData, [dependencyKey]) === void 0) {
912
955
  continue;
913
956
  }
914
957
  if (resolvedSchema.properties && !(dependencyKey in resolvedSchema.properties)) {
@@ -1039,11 +1082,11 @@ function findSelectedOptionInXxxOf(validator, rootSchema, schema, fallbackField,
1039
1082
  const xxxOfs = schema[xxx].map(
1040
1083
  (xxxOf) => retrieveSchema(validator, xxxOf, rootSchema, formData, experimental_customMergeAllOf)
1041
1084
  );
1042
- const data = (0, import_get5.default)(formData, selectorField);
1085
+ const data = (0, import_get6.default)(formData, selectorField);
1043
1086
  if (data !== void 0) {
1044
1087
  return xxxOfs.find((xxx2) => {
1045
1088
  return (0, import_isEqual.default)(
1046
- (0, import_get5.default)(xxx2, [PROPERTIES_KEY, selectorField, DEFAULT_KEY], (0, import_get5.default)(xxx2, [PROPERTIES_KEY, selectorField, CONST_KEY])),
1089
+ (0, import_get6.default)(xxx2, [PROPERTIES_KEY, selectorField, DEFAULT_KEY], (0, import_get6.default)(xxx2, [PROPERTIES_KEY, selectorField, CONST_KEY])),
1047
1090
  data
1048
1091
  );
1049
1092
  });
@@ -1053,21 +1096,21 @@ function findSelectedOptionInXxxOf(validator, rootSchema, schema, fallbackField,
1053
1096
  }
1054
1097
 
1055
1098
  // src/schema/getFromSchema.ts
1056
- var import_get6 = __toESM(require("lodash/get"), 1);
1099
+ var import_get7 = __toESM(require("lodash/get"), 1);
1057
1100
  var import_has2 = __toESM(require("lodash/has"), 1);
1058
- var import_isEmpty2 = __toESM(require("lodash/isEmpty"), 1);
1101
+ var import_isEmpty3 = __toESM(require("lodash/isEmpty"), 1);
1059
1102
  function getFromSchemaInternal(validator, rootSchema, schema, path, experimental_customMergeAllOf) {
1060
1103
  let fieldSchema = schema;
1061
1104
  if ((0, import_has2.default)(schema, REF_KEY)) {
1062
1105
  fieldSchema = retrieveSchema(validator, schema, rootSchema, void 0, experimental_customMergeAllOf);
1063
1106
  }
1064
- if ((0, import_isEmpty2.default)(path)) {
1107
+ if ((0, import_isEmpty3.default)(path)) {
1065
1108
  return fieldSchema;
1066
1109
  }
1067
1110
  const pathList = Array.isArray(path) ? path : path.split(".");
1068
1111
  const [part, ...nestedPath] = pathList;
1069
1112
  if (part && (0, import_has2.default)(fieldSchema, part)) {
1070
- fieldSchema = (0, import_get6.default)(fieldSchema, part);
1113
+ fieldSchema = (0, import_get7.default)(fieldSchema, part);
1071
1114
  return getFromSchemaInternal(
1072
1115
  validator,
1073
1116
  rootSchema,
@@ -1109,7 +1152,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
1109
1152
  parentField,
1110
1153
  fieldName,
1111
1154
  ONE_OF_KEY,
1112
- (0, import_get7.default)(formData, subPath),
1155
+ (0, import_get8.default)(formData, subPath),
1113
1156
  experimental_customMergeAllOf
1114
1157
  );
1115
1158
  } else if ((0, import_has3.default)(parentField, ANY_OF_KEY)) {
@@ -1119,7 +1162,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
1119
1162
  parentField,
1120
1163
  fieldName,
1121
1164
  ANY_OF_KEY,
1122
- (0, import_get7.default)(formData, subPath),
1165
+ (0, import_get8.default)(formData, subPath),
1123
1166
  experimental_customMergeAllOf
1124
1167
  );
1125
1168
  }
@@ -1173,14 +1216,14 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
1173
1216
  }
1174
1217
 
1175
1218
  // src/schema/getDefaultFormState.ts
1176
- var import_get11 = __toESM(require("lodash/get"), 1);
1177
- var import_isEmpty3 = __toESM(require("lodash/isEmpty"), 1);
1219
+ var import_get12 = __toESM(require("lodash/get"), 1);
1220
+ var import_isEmpty4 = __toESM(require("lodash/isEmpty"), 1);
1178
1221
 
1179
1222
  // src/schema/getClosestMatchingOption.ts
1180
- var import_get8 = __toESM(require("lodash/get"), 1);
1223
+ var import_get9 = __toESM(require("lodash/get"), 1);
1181
1224
  var import_has4 = __toESM(require("lodash/has"), 1);
1182
1225
  var import_isNumber2 = __toESM(require("lodash/isNumber"), 1);
1183
- var import_isObject5 = __toESM(require("lodash/isObject"), 1);
1226
+ var import_isObject6 = __toESM(require("lodash/isObject"), 1);
1184
1227
  var import_isString2 = __toESM(require("lodash/isString"), 1);
1185
1228
  var import_reduce = __toESM(require("lodash/reduce"), 1);
1186
1229
  var import_times2 = __toESM(require("lodash/times"), 1);
@@ -1196,11 +1239,11 @@ var JUNK_OPTION = {
1196
1239
  function calculateIndexScore(validator, rootSchema, schema, formData, experimental_customMergeAllOf) {
1197
1240
  let totalScore = 0;
1198
1241
  if (schema) {
1199
- if ((0, import_isObject5.default)(schema.properties)) {
1242
+ if ((0, import_isObject6.default)(schema.properties)) {
1200
1243
  totalScore += (0, import_reduce.default)(
1201
1244
  schema.properties,
1202
1245
  (score, value, key) => {
1203
- const formValue = (0, import_get8.default)(formData, key);
1246
+ const formValue = (0, import_get9.default)(formData, key);
1204
1247
  if (typeof value === "boolean") {
1205
1248
  return score;
1206
1249
  }
@@ -1227,14 +1270,14 @@ function calculateIndexScore(validator, rootSchema, schema, formData, experiment
1227
1270
  validator,
1228
1271
  rootSchema,
1229
1272
  formValue,
1230
- (0, import_get8.default)(value, key2),
1273
+ (0, import_get9.default)(value, key2),
1231
1274
  -1,
1232
1275
  discriminator,
1233
1276
  experimental_customMergeAllOf
1234
1277
  );
1235
1278
  }
1236
1279
  if (value.type === "object") {
1237
- if ((0, import_isObject5.default)(formValue)) {
1280
+ if ((0, import_isObject6.default)(formValue)) {
1238
1281
  score += 1;
1239
1282
  }
1240
1283
  return score + calculateIndexScore(validator, rootSchema, value, formValue, experimental_customMergeAllOf);
@@ -1306,7 +1349,7 @@ function isFixedItems(schema) {
1306
1349
  }
1307
1350
 
1308
1351
  // src/mergeDefaultsWithFormData.ts
1309
- var import_get9 = __toESM(require("lodash/get"), 1);
1352
+ var import_get10 = __toESM(require("lodash/get"), 1);
1310
1353
  var import_isNil = __toESM(require("lodash/isNil"), 1);
1311
1354
  function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults = false, defaultSupercedesUndefined = false, overrideFormDataWithDefaults = false) {
1312
1355
  if (Array.isArray(formData)) {
@@ -1333,11 +1376,22 @@ function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults =
1333
1376
  if (isObject(formData)) {
1334
1377
  const acc = Object.assign({}, defaults);
1335
1378
  return Object.keys(formData).reduce((acc2, key) => {
1336
- const keyValue = (0, import_get9.default)(formData, key);
1379
+ const keyValue = (0, import_get10.default)(formData, key);
1337
1380
  const keyExistsInDefaults = isObject(defaults) && key in defaults;
1338
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
+ }
1339
1393
  acc2[key] = mergeDefaultsWithFormData(
1340
- defaults ? (0, import_get9.default)(defaults, key) : {},
1394
+ (0, import_get10.default)(defaults, key) ?? {},
1341
1395
  keyValue,
1342
1396
  mergeExtraArrayDefaults,
1343
1397
  defaultSupercedesUndefined,
@@ -1416,7 +1470,7 @@ function constIsAjvDataReference(schema) {
1416
1470
  }
1417
1471
 
1418
1472
  // src/optionsList.ts
1419
- var import_get10 = __toESM(require("lodash/get"), 1);
1473
+ var import_get11 = __toESM(require("lodash/get"), 1);
1420
1474
 
1421
1475
  // src/toConstant.ts
1422
1476
  function toConstant(schema) {
@@ -1462,8 +1516,8 @@ function optionsList(schema, uiSchema) {
1462
1516
  let value;
1463
1517
  let label = title;
1464
1518
  if (selectorField) {
1465
- const innerSchema = (0, import_get10.default)(aSchema, [PROPERTIES_KEY, selectorField], {});
1466
- value = (0, import_get10.default)(innerSchema, DEFAULT_KEY, (0, import_get10.default)(innerSchema, CONST_KEY));
1519
+ const innerSchema = (0, import_get11.default)(aSchema, [PROPERTIES_KEY, selectorField], {});
1520
+ value = (0, import_get11.default)(innerSchema, DEFAULT_KEY, (0, import_get11.default)(innerSchema, CONST_KEY));
1467
1521
  label = label || innerSchema?.title || aSchema.title || String(value);
1468
1522
  } else {
1469
1523
  value = toConstant(aSchema);
@@ -1503,10 +1557,10 @@ function maybeAddDefaultToObject(obj, key, computedDefault, includeUndefinedValu
1503
1557
  const isSelfOrParentRequired = isParentRequired === void 0 ? requiredFields.includes(key) : isParentRequired;
1504
1558
  if (isObject(computedDefault)) {
1505
1559
  if (emptyObjectFields === "skipEmptyDefaults") {
1506
- if (!(0, import_isEmpty3.default)(computedDefault)) {
1560
+ if (!(0, import_isEmpty4.default)(computedDefault)) {
1507
1561
  obj[key] = computedDefault;
1508
1562
  }
1509
- } else if ((!(0, import_isEmpty3.default)(computedDefault) || requiredFields.includes(key)) && (isSelfOrParentRequired || emptyObjectFields !== "populateRequiredDefaults")) {
1563
+ } else if ((!(0, import_isEmpty4.default)(computedDefault) || requiredFields.includes(key)) && (isSelfOrParentRequired || emptyObjectFields !== "populateRequiredDefaults")) {
1510
1564
  obj[key] = computedDefault;
1511
1565
  }
1512
1566
  } else if (
@@ -1532,17 +1586,17 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
1532
1586
  required,
1533
1587
  shouldMergeDefaultsIntoFormData = false
1534
1588
  } = computeDefaultsProps;
1535
- const formData = isObject(rawFormData) ? rawFormData : {};
1589
+ let formData = isObject(rawFormData) ? rawFormData : {};
1536
1590
  const schema = isObject(rawSchema) ? rawSchema : {};
1537
1591
  let defaults = parentDefaults;
1538
1592
  let schemaToCompute = null;
1539
1593
  let experimental_dfsb_to_compute = experimental_defaultFormStateBehavior;
1540
1594
  let updatedRecurseList = _recurseList;
1541
- if (schema[CONST_KEY] && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(schema)) {
1595
+ if (schema[CONST_KEY] !== void 0 && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(schema)) {
1542
1596
  defaults = schema[CONST_KEY];
1543
1597
  } else if (isObject(defaults) && isObject(schema.default)) {
1544
1598
  defaults = mergeObjects(defaults, schema.default);
1545
- } else if (DEFAULT_KEY in schema && !schema[ANY_OF_KEY] && !schema[ONE_OF_KEY]) {
1599
+ } else if (DEFAULT_KEY in schema && !schema[ANY_OF_KEY] && !schema[ONE_OF_KEY] && !schema[REF_KEY]) {
1546
1600
  defaults = schema.default;
1547
1601
  } else if (REF_KEY in schema) {
1548
1602
  const refName = schema[REF_KEY];
@@ -1550,6 +1604,12 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
1550
1604
  updatedRecurseList = _recurseList.concat(refName);
1551
1605
  schemaToCompute = findSchemaDefinition(refName, rootSchema);
1552
1606
  }
1607
+ if (schemaToCompute && !defaults) {
1608
+ defaults = schema.default;
1609
+ }
1610
+ if (shouldMergeDefaultsIntoFormData && schemaToCompute && !isObject(rawFormData)) {
1611
+ formData = rawFormData;
1612
+ }
1553
1613
  } else if (DEPENDENCIES_KEY in schema) {
1554
1614
  const defaultFormData = {
1555
1615
  ...getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults),
@@ -1627,7 +1687,7 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
1627
1687
  experimental_defaultFormStateBehavior: experimental_dfsb_to_compute,
1628
1688
  experimental_customMergeAllOf,
1629
1689
  parentDefaults: defaults,
1630
- rawFormData: formData,
1690
+ rawFormData: rawFormData ?? formData,
1631
1691
  required,
1632
1692
  shouldMergeDefaultsIntoFormData
1633
1693
  });
@@ -1690,7 +1750,7 @@ function getObjectDefaults(validator, rawSchema, {
1690
1750
  const parentConst = retrievedSchema[CONST_KEY];
1691
1751
  const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce(
1692
1752
  (acc, key) => {
1693
- const propertySchema = (0, import_get11.default)(retrievedSchema, [PROPERTIES_KEY, key], {});
1753
+ const propertySchema = (0, import_get12.default)(retrievedSchema, [PROPERTIES_KEY, key], {});
1694
1754
  const hasParentConst = isObject(parentConst) && parentConst[key] !== void 0;
1695
1755
  const hasConst = (isObject(propertySchema) && CONST_KEY in propertySchema || hasParentConst) && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(propertySchema);
1696
1756
  const computedDefault = computeDefaults(validator, propertySchema, {
@@ -1699,8 +1759,8 @@ function getObjectDefaults(validator, rawSchema, {
1699
1759
  experimental_defaultFormStateBehavior,
1700
1760
  experimental_customMergeAllOf,
1701
1761
  includeUndefinedValues: includeUndefinedValues === true,
1702
- parentDefaults: (0, import_get11.default)(defaults, [key]),
1703
- rawFormData: (0, import_get11.default)(formData, [key]),
1762
+ parentDefaults: (0, import_get12.default)(defaults, [key]),
1763
+ rawFormData: (0, import_get12.default)(formData, [key]),
1704
1764
  required: retrievedSchema.required?.includes(key),
1705
1765
  shouldMergeDefaultsIntoFormData
1706
1766
  });
@@ -1736,8 +1796,8 @@ function getObjectDefaults(validator, rawSchema, {
1736
1796
  experimental_defaultFormStateBehavior,
1737
1797
  experimental_customMergeAllOf,
1738
1798
  includeUndefinedValues: includeUndefinedValues === true,
1739
- parentDefaults: (0, import_get11.default)(defaults, [key]),
1740
- rawFormData: (0, import_get11.default)(formData, [key]),
1799
+ parentDefaults: (0, import_get12.default)(defaults, [key]),
1800
+ rawFormData: (0, import_get12.default)(formData, [key]),
1741
1801
  required: retrievedSchema.required?.includes(key),
1742
1802
  shouldMergeDefaultsIntoFormData
1743
1803
  });
@@ -1798,7 +1858,7 @@ function getArrayDefaults(validator, rawSchema, {
1798
1858
  experimental_defaultFormStateBehavior,
1799
1859
  experimental_customMergeAllOf,
1800
1860
  rawFormData: item,
1801
- parentDefaults: (0, import_get11.default)(defaults, [idx]),
1861
+ parentDefaults: (0, import_get12.default)(defaults, [idx]),
1802
1862
  required,
1803
1863
  shouldMergeDefaultsIntoFormData
1804
1864
  });
@@ -1860,6 +1920,12 @@ function getDefaultFormState(validator, theSchema, formData, rootSchema, include
1860
1920
  rawFormData: formData,
1861
1921
  shouldMergeDefaultsIntoFormData: true
1862
1922
  });
1923
+ if (schema.type !== "object" && isObject(schema.default)) {
1924
+ return {
1925
+ ...defaults,
1926
+ ...formData
1927
+ };
1928
+ }
1863
1929
  if (isObject(formData) || Array.isArray(formData)) {
1864
1930
  const { mergeDefaultsIntoFormData } = experimental_defaultFormStateBehavior || {};
1865
1931
  const defaultSupercedesUndefined = mergeDefaultsIntoFormData === "useDefaultIfFormDataUndefined";
@@ -1926,7 +1992,7 @@ function getDisplayLabel(validator, schema, uiSchema = {}, rootSchema, globalOpt
1926
1992
  }
1927
1993
 
1928
1994
  // src/schema/sanitizeDataForNewSchema.ts
1929
- var import_get12 = __toESM(require("lodash/get"), 1);
1995
+ var import_get13 = __toESM(require("lodash/get"), 1);
1930
1996
  var import_has5 = __toESM(require("lodash/has"), 1);
1931
1997
  var NO_VALUE = Symbol("no Value");
1932
1998
  function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, data = {}, experimental_customMergeAllOf) {
@@ -1934,19 +2000,19 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
1934
2000
  if ((0, import_has5.default)(newSchema, PROPERTIES_KEY)) {
1935
2001
  const removeOldSchemaData = {};
1936
2002
  if ((0, import_has5.default)(oldSchema, PROPERTIES_KEY)) {
1937
- const properties = (0, import_get12.default)(oldSchema, PROPERTIES_KEY, {});
2003
+ const properties = (0, import_get13.default)(oldSchema, PROPERTIES_KEY, {});
1938
2004
  Object.keys(properties).forEach((key) => {
1939
2005
  if ((0, import_has5.default)(data, key)) {
1940
2006
  removeOldSchemaData[key] = void 0;
1941
2007
  }
1942
2008
  });
1943
2009
  }
1944
- const keys2 = Object.keys((0, import_get12.default)(newSchema, PROPERTIES_KEY, {}));
2010
+ const keys2 = Object.keys((0, import_get13.default)(newSchema, PROPERTIES_KEY, {}));
1945
2011
  const nestedData = {};
1946
2012
  keys2.forEach((key) => {
1947
- const formValue = (0, import_get12.default)(data, key);
1948
- let oldKeyedSchema = (0, import_get12.default)(oldSchema, [PROPERTIES_KEY, key], {});
1949
- let newKeyedSchema = (0, import_get12.default)(newSchema, [PROPERTIES_KEY, key], {});
2013
+ const formValue = (0, import_get13.default)(data, key);
2014
+ let oldKeyedSchema = (0, import_get13.default)(oldSchema, [PROPERTIES_KEY, key], {});
2015
+ let newKeyedSchema = (0, import_get13.default)(newSchema, [PROPERTIES_KEY, key], {});
1950
2016
  if ((0, import_has5.default)(oldKeyedSchema, REF_KEY)) {
1951
2017
  oldKeyedSchema = retrieveSchema(
1952
2018
  validator,
@@ -1965,8 +2031,8 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
1965
2031
  experimental_customMergeAllOf
1966
2032
  );
1967
2033
  }
1968
- const oldSchemaTypeForKey = (0, import_get12.default)(oldKeyedSchema, "type");
1969
- const newSchemaTypeForKey = (0, import_get12.default)(newKeyedSchema, "type");
2034
+ const oldSchemaTypeForKey = (0, import_get13.default)(oldKeyedSchema, "type");
2035
+ const newSchemaTypeForKey = (0, import_get13.default)(newKeyedSchema, "type");
1970
2036
  if (!oldSchemaTypeForKey || oldSchemaTypeForKey === newSchemaTypeForKey) {
1971
2037
  if ((0, import_has5.default)(removeOldSchemaData, key)) {
1972
2038
  delete removeOldSchemaData[key];
@@ -1984,17 +2050,17 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
1984
2050
  nestedData[key] = itemData;
1985
2051
  }
1986
2052
  } else {
1987
- const newOptionDefault = (0, import_get12.default)(newKeyedSchema, "default", NO_VALUE);
1988
- const oldOptionDefault = (0, import_get12.default)(oldKeyedSchema, "default", NO_VALUE);
2053
+ const newOptionDefault = (0, import_get13.default)(newKeyedSchema, "default", NO_VALUE);
2054
+ const oldOptionDefault = (0, import_get13.default)(oldKeyedSchema, "default", NO_VALUE);
1989
2055
  if (newOptionDefault !== NO_VALUE && newOptionDefault !== formValue) {
1990
2056
  if (oldOptionDefault === formValue) {
1991
2057
  removeOldSchemaData[key] = newOptionDefault;
1992
- } else if ((0, import_get12.default)(newKeyedSchema, "readOnly") === true) {
2058
+ } else if ((0, import_get13.default)(newKeyedSchema, "readOnly") === true) {
1993
2059
  removeOldSchemaData[key] = void 0;
1994
2060
  }
1995
2061
  }
1996
- const newOptionConst = (0, import_get12.default)(newKeyedSchema, "const", NO_VALUE);
1997
- const oldOptionConst = (0, import_get12.default)(oldKeyedSchema, "const", NO_VALUE);
2062
+ const newOptionConst = (0, import_get13.default)(newKeyedSchema, "const", NO_VALUE);
2063
+ const oldOptionConst = (0, import_get13.default)(oldKeyedSchema, "const", NO_VALUE);
1998
2064
  if (newOptionConst !== NO_VALUE && newOptionConst !== formValue) {
1999
2065
  removeOldSchemaData[key] = oldOptionConst === formValue ? newOptionConst : void 0;
2000
2066
  }
@@ -2006,9 +2072,9 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
2006
2072
  ...removeOldSchemaData,
2007
2073
  ...nestedData
2008
2074
  };
2009
- } else if ((0, import_get12.default)(oldSchema, "type") === "array" && (0, import_get12.default)(newSchema, "type") === "array" && Array.isArray(data)) {
2010
- let oldSchemaItems = (0, import_get12.default)(oldSchema, "items");
2011
- let newSchemaItems = (0, import_get12.default)(newSchema, "items");
2075
+ } else if ((0, import_get13.default)(oldSchema, "type") === "array" && (0, import_get13.default)(newSchema, "type") === "array" && Array.isArray(data)) {
2076
+ let oldSchemaItems = (0, import_get13.default)(oldSchema, "items");
2077
+ let newSchemaItems = (0, import_get13.default)(newSchema, "items");
2012
2078
  if (typeof oldSchemaItems === "object" && typeof newSchemaItems === "object" && !Array.isArray(oldSchemaItems) && !Array.isArray(newSchemaItems)) {
2013
2079
  if ((0, import_has5.default)(oldSchemaItems, REF_KEY)) {
2014
2080
  oldSchemaItems = retrieveSchema(
@@ -2028,10 +2094,10 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
2028
2094
  experimental_customMergeAllOf
2029
2095
  );
2030
2096
  }
2031
- const oldSchemaType = (0, import_get12.default)(oldSchemaItems, "type");
2032
- const newSchemaType = (0, import_get12.default)(newSchemaItems, "type");
2097
+ const oldSchemaType = (0, import_get13.default)(oldSchemaItems, "type");
2098
+ const newSchemaType = (0, import_get13.default)(newSchemaItems, "type");
2033
2099
  if (!oldSchemaType || oldSchemaType === newSchemaType) {
2034
- const maxItems = (0, import_get12.default)(newSchema, "maxItems", -1);
2100
+ const maxItems = (0, import_get13.default)(newSchema, "maxItems", -1);
2035
2101
  if (newSchemaType === "object") {
2036
2102
  newFormData = data.reduce((newValue, aValue) => {
2037
2103
  const itemValue = sanitizeDataForNewSchema(
@@ -2059,7 +2125,7 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
2059
2125
  }
2060
2126
 
2061
2127
  // src/schema/toIdSchema.ts
2062
- var import_get13 = __toESM(require("lodash/get"), 1);
2128
+ var import_get14 = __toESM(require("lodash/get"), 1);
2063
2129
  function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
2064
2130
  const $id = id || idPrefix;
2065
2131
  const idSchema = { $id };
@@ -2081,10 +2147,10 @@ function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSc
2081
2147
  );
2082
2148
  }
2083
2149
  }
2084
- if (ITEMS_KEY in schema && !(0, import_get13.default)(schema, [ITEMS_KEY, REF_KEY])) {
2150
+ if (ITEMS_KEY in schema && !(0, import_get14.default)(schema, [ITEMS_KEY, REF_KEY])) {
2085
2151
  return toIdSchemaInternal(
2086
2152
  validator,
2087
- (0, import_get13.default)(schema, ITEMS_KEY),
2153
+ (0, import_get14.default)(schema, ITEMS_KEY),
2088
2154
  idPrefix,
2089
2155
  idSeparator,
2090
2156
  id,
@@ -2107,7 +2173,7 @@ function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSc
2107
2173
  rootSchema,
2108
2174
  // It's possible that formData is not an object -- this can happen if an
2109
2175
  // array item has just been added, but not populated with data yet
2110
- (0, import_get13.default)(formData, [name]),
2176
+ (0, import_get14.default)(formData, [name]),
2111
2177
  _recurseList,
2112
2178
  experimental_customMergeAllOf
2113
2179
  );
@@ -2131,7 +2197,7 @@ function toIdSchema(validator, schema, id, rootSchema, formData, idPrefix = "roo
2131
2197
  }
2132
2198
 
2133
2199
  // src/schema/toPathSchema.ts
2134
- var import_get14 = __toESM(require("lodash/get"), 1);
2200
+ var import_get15 = __toESM(require("lodash/get"), 1);
2135
2201
  var import_set2 = __toESM(require("lodash/set"), 1);
2136
2202
  function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
2137
2203
  if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {
@@ -2224,7 +2290,7 @@ function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _re
2224
2290
  }
2225
2291
  } else if (PROPERTIES_KEY in schema) {
2226
2292
  for (const property in schema.properties) {
2227
- const field = (0, import_get14.default)(schema, [PROPERTIES_KEY, property], {});
2293
+ const field = (0, import_get15.default)(schema, [PROPERTIES_KEY, property], {});
2228
2294
  pathSchema[property] = toPathSchemaInternal(
2229
2295
  validator,
2230
2296
  field,
@@ -2232,7 +2298,7 @@ function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _re
2232
2298
  rootSchema,
2233
2299
  // It's possible that formData is not an object -- this can happen if an
2234
2300
  // array item has just been added, but not populated with data yet
2235
- (0, import_get14.default)(formData, [property]),
2301
+ (0, import_get15.default)(formData, [property]),
2236
2302
  _recurseList,
2237
2303
  experimental_customMergeAllOf
2238
2304
  );
@@ -2650,7 +2716,7 @@ function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {
2650
2716
 
2651
2717
  // src/ErrorSchemaBuilder.ts
2652
2718
  var import_cloneDeep = __toESM(require("lodash/cloneDeep"), 1);
2653
- var import_get15 = __toESM(require("lodash/get"), 1);
2719
+ var import_get16 = __toESM(require("lodash/get"), 1);
2654
2720
  var import_set3 = __toESM(require("lodash/set"), 1);
2655
2721
  var import_setWith = __toESM(require("lodash/setWith"), 1);
2656
2722
  var ErrorSchemaBuilder = class {
@@ -2679,7 +2745,7 @@ var ErrorSchemaBuilder = class {
2679
2745
  */
2680
2746
  getOrCreateErrorBlock(pathOfError) {
2681
2747
  const hasPath = Array.isArray(pathOfError) && pathOfError.length > 0 || typeof pathOfError === "string";
2682
- let errorBlock = hasPath ? (0, import_get15.default)(this.errorSchema, pathOfError) : this.errorSchema;
2748
+ let errorBlock = hasPath ? (0, import_get16.default)(this.errorSchema, pathOfError) : this.errorSchema;
2683
2749
  if (!errorBlock && pathOfError) {
2684
2750
  errorBlock = {};
2685
2751
  (0, import_setWith.default)(this.errorSchema, pathOfError, errorBlock, Object);
@@ -2705,7 +2771,7 @@ var ErrorSchemaBuilder = class {
2705
2771
  */
2706
2772
  addErrors(errorOrList, pathOfError) {
2707
2773
  const errorBlock = this.getOrCreateErrorBlock(pathOfError);
2708
- let errorsList = (0, import_get15.default)(errorBlock, ERRORS_KEY);
2774
+ let errorsList = (0, import_get16.default)(errorBlock, ERRORS_KEY);
2709
2775
  if (!Array.isArray(errorsList)) {
2710
2776
  errorsList = [];
2711
2777
  errorBlock[ERRORS_KEY] = errorsList;
@@ -2854,9 +2920,9 @@ function getTemplate(name, registry, uiOptions = {}) {
2854
2920
 
2855
2921
  // src/getTestIds.ts
2856
2922
  var import_nanoid = require("nanoid");
2857
- var import_get16 = __toESM(require("lodash/get"), 1);
2923
+ var import_get17 = __toESM(require("lodash/get"), 1);
2858
2924
  function getTestIds() {
2859
- if (typeof process === "undefined" || (0, import_get16.default)(process, "env.NODE_ENV") !== "test") {
2925
+ if (typeof process === "undefined" || (0, import_get17.default)(process, "env.NODE_ENV") !== "test") {
2860
2926
  return {};
2861
2927
  }
2862
2928
  const ids = /* @__PURE__ */ new Map();
@@ -2876,7 +2942,7 @@ function getTestIds() {
2876
2942
  // src/getWidget.tsx
2877
2943
  var import_react = require("react");
2878
2944
  var import_react_is = __toESM(require("react-is"), 1);
2879
- var import_get17 = __toESM(require("lodash/get"), 1);
2945
+ var import_get18 = __toESM(require("lodash/get"), 1);
2880
2946
  var import_set4 = __toESM(require("lodash/set"), 1);
2881
2947
  var import_jsx_runtime = require("react/jsx-runtime");
2882
2948
  var widgetMap = {
@@ -2932,7 +2998,7 @@ var widgetMap = {
2932
2998
  }
2933
2999
  };
2934
3000
  function mergeWidgetOptions(AWidget) {
2935
- let MergedWidget = (0, import_get17.default)(AWidget, "MergedWidget");
3001
+ let MergedWidget = (0, import_get18.default)(AWidget, "MergedWidget");
2936
3002
  if (!MergedWidget) {
2937
3003
  const defaultOptions = AWidget.defaultProps && AWidget.defaultProps.options || {};
2938
3004
  MergedWidget = ({ options, ...props }) => {
@@ -3045,14 +3111,14 @@ function localToUTC(dateString) {
3045
3111
  }
3046
3112
 
3047
3113
  // src/lookupFromFormContext.ts
3048
- var import_get18 = __toESM(require("lodash/get"), 1);
3114
+ var import_get19 = __toESM(require("lodash/get"), 1);
3049
3115
  var import_has6 = __toESM(require("lodash/has"), 1);
3050
3116
  function lookupFromFormContext(regOrFc, toLookup, fallback) {
3051
3117
  const lookupPath = [LOOKUP_MAP_NAME];
3052
3118
  if ((0, import_has6.default)(regOrFc, FORM_CONTEXT_NAME)) {
3053
3119
  lookupPath.unshift(FORM_CONTEXT_NAME);
3054
3120
  }
3055
- return (0, import_get18.default)(regOrFc, [...lookupPath, toLookup], fallback);
3121
+ return (0, import_get19.default)(regOrFc, [...lookupPath, toLookup], fallback);
3056
3122
  }
3057
3123
 
3058
3124
  // src/orderProperties.ts
@@ -3231,7 +3297,7 @@ function utcToLocal(jsonDate) {
3231
3297
  }
3232
3298
 
3233
3299
  // src/validationDataMerge.ts
3234
- var import_isEmpty4 = __toESM(require("lodash/isEmpty"), 1);
3300
+ var import_isEmpty5 = __toESM(require("lodash/isEmpty"), 1);
3235
3301
  function validationDataMerge(validationData, additionalErrorSchema) {
3236
3302
  if (!additionalErrorSchema) {
3237
3303
  return validationData;
@@ -3239,7 +3305,7 @@ function validationDataMerge(validationData, additionalErrorSchema) {
3239
3305
  const { errors: oldErrors, errorSchema: oldErrorSchema } = validationData;
3240
3306
  let errors = toErrorList(additionalErrorSchema);
3241
3307
  let errorSchema = additionalErrorSchema;
3242
- if (!(0, import_isEmpty4.default)(oldErrorSchema)) {
3308
+ if (!(0, import_isEmpty5.default)(oldErrorSchema)) {
3243
3309
  errorSchema = mergeObjects(oldErrorSchema, additionalErrorSchema, true);
3244
3310
  errors = [...oldErrors].concat(errors);
3245
3311
  }
@@ -3247,7 +3313,7 @@ function validationDataMerge(validationData, additionalErrorSchema) {
3247
3313
  }
3248
3314
 
3249
3315
  // src/withIdRefPrefix.ts
3250
- var import_isObject10 = __toESM(require("lodash/isObject"), 1);
3316
+ var import_isObject11 = __toESM(require("lodash/isObject"), 1);
3251
3317
  function withIdRefPrefixObject(node) {
3252
3318
  for (const key in node) {
3253
3319
  const realObj = node;
@@ -3270,7 +3336,7 @@ function withIdRefPrefix(schemaNode) {
3270
3336
  if (Array.isArray(schemaNode)) {
3271
3337
  return withIdRefPrefixArray([...schemaNode]);
3272
3338
  }
3273
- if ((0, import_isObject10.default)(schemaNode)) {
3339
+ if ((0, import_isObject11.default)(schemaNode)) {
3274
3340
  return withIdRefPrefixObject({ ...schemaNode });
3275
3341
  }
3276
3342
  return schemaNode;
@@ -3280,7 +3346,7 @@ function withIdRefPrefix(schemaNode) {
3280
3346
  var import_keys = __toESM(require("lodash/keys"), 1);
3281
3347
  var import_pickBy = __toESM(require("lodash/pickBy"), 1);
3282
3348
  var import_isPlainObject4 = __toESM(require("lodash/isPlainObject"), 1);
3283
- var import_get19 = __toESM(require("lodash/get"), 1);
3349
+ var import_get20 = __toESM(require("lodash/get"), 1);
3284
3350
  var import_difference = __toESM(require("lodash/difference"), 1);
3285
3351
  function getChangedFields(a, b) {
3286
3352
  const aIsPlainObject = (0, import_isPlainObject4.default)(a);
@@ -3293,7 +3359,7 @@ function getChangedFields(a, b) {
3293
3359
  } else if (!aIsPlainObject && bIsPlainObject) {
3294
3360
  return (0, import_keys.default)(b);
3295
3361
  } else {
3296
- const unequalFields = (0, import_keys.default)((0, import_pickBy.default)(a, (value, key) => !deepEquals(value, (0, import_get19.default)(b, key))));
3362
+ const unequalFields = (0, import_keys.default)((0, import_pickBy.default)(a, (value, key) => !deepEquals(value, (0, import_get20.default)(b, key))));
3297
3363
  const diffFields = (0, import_difference.default)((0, import_keys.default)(b), (0, import_keys.default)(a));
3298
3364
  return [...unequalFields, ...diffFields];
3299
3365
  }
@@ -3338,7 +3404,7 @@ var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
3338
3404
  var import_forEach = __toESM(require("lodash/forEach"), 1);
3339
3405
 
3340
3406
  // src/parser/ParserValidator.ts
3341
- var import_get20 = __toESM(require("lodash/get"), 1);
3407
+ var import_get21 = __toESM(require("lodash/get"), 1);
3342
3408
  var ParserValidator = class {
3343
3409
  /** Construct the ParserValidator for the given `rootSchema`. This `rootSchema` will be stashed in the `schemaMap`
3344
3410
  * first.
@@ -3364,7 +3430,7 @@ var ParserValidator = class {
3364
3430
  * @param hash - The hash value at which to map the schema
3365
3431
  */
3366
3432
  addSchema(schema, hash) {
3367
- const key = (0, import_get20.default)(schema, ID_KEY, hash);
3433
+ const key = (0, import_get21.default)(schema, ID_KEY, hash);
3368
3434
  const identifiedSchema = { ...schema, [ID_KEY]: key };
3369
3435
  const existing = this.schemaMap[key];
3370
3436
  if (!existing) {