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

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,11 @@ 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;
1339
1382
  acc2[key] = mergeDefaultsWithFormData(
1340
- defaults ? (0, import_get9.default)(defaults, key) : {},
1383
+ defaults ? (0, import_get10.default)(defaults, key) : {},
1341
1384
  keyValue,
1342
1385
  mergeExtraArrayDefaults,
1343
1386
  defaultSupercedesUndefined,
@@ -1416,7 +1459,7 @@ function constIsAjvDataReference(schema) {
1416
1459
  }
1417
1460
 
1418
1461
  // src/optionsList.ts
1419
- var import_get10 = __toESM(require("lodash/get"), 1);
1462
+ var import_get11 = __toESM(require("lodash/get"), 1);
1420
1463
 
1421
1464
  // src/toConstant.ts
1422
1465
  function toConstant(schema) {
@@ -1462,8 +1505,8 @@ function optionsList(schema, uiSchema) {
1462
1505
  let value;
1463
1506
  let label = title;
1464
1507
  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));
1508
+ const innerSchema = (0, import_get11.default)(aSchema, [PROPERTIES_KEY, selectorField], {});
1509
+ value = (0, import_get11.default)(innerSchema, DEFAULT_KEY, (0, import_get11.default)(innerSchema, CONST_KEY));
1467
1510
  label = label || innerSchema?.title || aSchema.title || String(value);
1468
1511
  } else {
1469
1512
  value = toConstant(aSchema);
@@ -1503,10 +1546,10 @@ function maybeAddDefaultToObject(obj, key, computedDefault, includeUndefinedValu
1503
1546
  const isSelfOrParentRequired = isParentRequired === void 0 ? requiredFields.includes(key) : isParentRequired;
1504
1547
  if (isObject(computedDefault)) {
1505
1548
  if (emptyObjectFields === "skipEmptyDefaults") {
1506
- if (!(0, import_isEmpty3.default)(computedDefault)) {
1549
+ if (!(0, import_isEmpty4.default)(computedDefault)) {
1507
1550
  obj[key] = computedDefault;
1508
1551
  }
1509
- } else if ((!(0, import_isEmpty3.default)(computedDefault) || requiredFields.includes(key)) && (isSelfOrParentRequired || emptyObjectFields !== "populateRequiredDefaults")) {
1552
+ } else if ((!(0, import_isEmpty4.default)(computedDefault) || requiredFields.includes(key)) && (isSelfOrParentRequired || emptyObjectFields !== "populateRequiredDefaults")) {
1510
1553
  obj[key] = computedDefault;
1511
1554
  }
1512
1555
  } else if (
@@ -1532,7 +1575,7 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
1532
1575
  required,
1533
1576
  shouldMergeDefaultsIntoFormData = false
1534
1577
  } = computeDefaultsProps;
1535
- const formData = isObject(rawFormData) ? rawFormData : {};
1578
+ let formData = isObject(rawFormData) ? rawFormData : {};
1536
1579
  const schema = isObject(rawSchema) ? rawSchema : {};
1537
1580
  let defaults = parentDefaults;
1538
1581
  let schemaToCompute = null;
@@ -1542,7 +1585,7 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
1542
1585
  defaults = schema[CONST_KEY];
1543
1586
  } else if (isObject(defaults) && isObject(schema.default)) {
1544
1587
  defaults = mergeObjects(defaults, schema.default);
1545
- } else if (DEFAULT_KEY in schema && !schema[ANY_OF_KEY] && !schema[ONE_OF_KEY]) {
1588
+ } else if (DEFAULT_KEY in schema && !schema[ANY_OF_KEY] && !schema[ONE_OF_KEY] && !schema[REF_KEY]) {
1546
1589
  defaults = schema.default;
1547
1590
  } else if (REF_KEY in schema) {
1548
1591
  const refName = schema[REF_KEY];
@@ -1550,6 +1593,12 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
1550
1593
  updatedRecurseList = _recurseList.concat(refName);
1551
1594
  schemaToCompute = findSchemaDefinition(refName, rootSchema);
1552
1595
  }
1596
+ if (schemaToCompute && !defaults) {
1597
+ defaults = schema.default;
1598
+ }
1599
+ if (shouldMergeDefaultsIntoFormData && schemaToCompute && !isObject(rawFormData)) {
1600
+ formData = rawFormData;
1601
+ }
1553
1602
  } else if (DEPENDENCIES_KEY in schema) {
1554
1603
  const defaultFormData = {
1555
1604
  ...getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults),
@@ -1690,7 +1739,7 @@ function getObjectDefaults(validator, rawSchema, {
1690
1739
  const parentConst = retrievedSchema[CONST_KEY];
1691
1740
  const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce(
1692
1741
  (acc, key) => {
1693
- const propertySchema = (0, import_get11.default)(retrievedSchema, [PROPERTIES_KEY, key], {});
1742
+ const propertySchema = (0, import_get12.default)(retrievedSchema, [PROPERTIES_KEY, key], {});
1694
1743
  const hasParentConst = isObject(parentConst) && parentConst[key] !== void 0;
1695
1744
  const hasConst = (isObject(propertySchema) && CONST_KEY in propertySchema || hasParentConst) && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(propertySchema);
1696
1745
  const computedDefault = computeDefaults(validator, propertySchema, {
@@ -1699,8 +1748,8 @@ function getObjectDefaults(validator, rawSchema, {
1699
1748
  experimental_defaultFormStateBehavior,
1700
1749
  experimental_customMergeAllOf,
1701
1750
  includeUndefinedValues: includeUndefinedValues === true,
1702
- parentDefaults: (0, import_get11.default)(defaults, [key]),
1703
- rawFormData: (0, import_get11.default)(formData, [key]),
1751
+ parentDefaults: (0, import_get12.default)(defaults, [key]),
1752
+ rawFormData: (0, import_get12.default)(formData, [key]),
1704
1753
  required: retrievedSchema.required?.includes(key),
1705
1754
  shouldMergeDefaultsIntoFormData
1706
1755
  });
@@ -1736,8 +1785,8 @@ function getObjectDefaults(validator, rawSchema, {
1736
1785
  experimental_defaultFormStateBehavior,
1737
1786
  experimental_customMergeAllOf,
1738
1787
  includeUndefinedValues: includeUndefinedValues === true,
1739
- parentDefaults: (0, import_get11.default)(defaults, [key]),
1740
- rawFormData: (0, import_get11.default)(formData, [key]),
1788
+ parentDefaults: (0, import_get12.default)(defaults, [key]),
1789
+ rawFormData: (0, import_get12.default)(formData, [key]),
1741
1790
  required: retrievedSchema.required?.includes(key),
1742
1791
  shouldMergeDefaultsIntoFormData
1743
1792
  });
@@ -1798,7 +1847,7 @@ function getArrayDefaults(validator, rawSchema, {
1798
1847
  experimental_defaultFormStateBehavior,
1799
1848
  experimental_customMergeAllOf,
1800
1849
  rawFormData: item,
1801
- parentDefaults: (0, import_get11.default)(defaults, [idx]),
1850
+ parentDefaults: (0, import_get12.default)(defaults, [idx]),
1802
1851
  required,
1803
1852
  shouldMergeDefaultsIntoFormData
1804
1853
  });
@@ -1926,7 +1975,7 @@ function getDisplayLabel(validator, schema, uiSchema = {}, rootSchema, globalOpt
1926
1975
  }
1927
1976
 
1928
1977
  // src/schema/sanitizeDataForNewSchema.ts
1929
- var import_get12 = __toESM(require("lodash/get"), 1);
1978
+ var import_get13 = __toESM(require("lodash/get"), 1);
1930
1979
  var import_has5 = __toESM(require("lodash/has"), 1);
1931
1980
  var NO_VALUE = Symbol("no Value");
1932
1981
  function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, data = {}, experimental_customMergeAllOf) {
@@ -1934,19 +1983,19 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
1934
1983
  if ((0, import_has5.default)(newSchema, PROPERTIES_KEY)) {
1935
1984
  const removeOldSchemaData = {};
1936
1985
  if ((0, import_has5.default)(oldSchema, PROPERTIES_KEY)) {
1937
- const properties = (0, import_get12.default)(oldSchema, PROPERTIES_KEY, {});
1986
+ const properties = (0, import_get13.default)(oldSchema, PROPERTIES_KEY, {});
1938
1987
  Object.keys(properties).forEach((key) => {
1939
1988
  if ((0, import_has5.default)(data, key)) {
1940
1989
  removeOldSchemaData[key] = void 0;
1941
1990
  }
1942
1991
  });
1943
1992
  }
1944
- const keys2 = Object.keys((0, import_get12.default)(newSchema, PROPERTIES_KEY, {}));
1993
+ const keys2 = Object.keys((0, import_get13.default)(newSchema, PROPERTIES_KEY, {}));
1945
1994
  const nestedData = {};
1946
1995
  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], {});
1996
+ const formValue = (0, import_get13.default)(data, key);
1997
+ let oldKeyedSchema = (0, import_get13.default)(oldSchema, [PROPERTIES_KEY, key], {});
1998
+ let newKeyedSchema = (0, import_get13.default)(newSchema, [PROPERTIES_KEY, key], {});
1950
1999
  if ((0, import_has5.default)(oldKeyedSchema, REF_KEY)) {
1951
2000
  oldKeyedSchema = retrieveSchema(
1952
2001
  validator,
@@ -1965,8 +2014,8 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
1965
2014
  experimental_customMergeAllOf
1966
2015
  );
1967
2016
  }
1968
- const oldSchemaTypeForKey = (0, import_get12.default)(oldKeyedSchema, "type");
1969
- const newSchemaTypeForKey = (0, import_get12.default)(newKeyedSchema, "type");
2017
+ const oldSchemaTypeForKey = (0, import_get13.default)(oldKeyedSchema, "type");
2018
+ const newSchemaTypeForKey = (0, import_get13.default)(newKeyedSchema, "type");
1970
2019
  if (!oldSchemaTypeForKey || oldSchemaTypeForKey === newSchemaTypeForKey) {
1971
2020
  if ((0, import_has5.default)(removeOldSchemaData, key)) {
1972
2021
  delete removeOldSchemaData[key];
@@ -1984,17 +2033,17 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
1984
2033
  nestedData[key] = itemData;
1985
2034
  }
1986
2035
  } else {
1987
- const newOptionDefault = (0, import_get12.default)(newKeyedSchema, "default", NO_VALUE);
1988
- const oldOptionDefault = (0, import_get12.default)(oldKeyedSchema, "default", NO_VALUE);
2036
+ const newOptionDefault = (0, import_get13.default)(newKeyedSchema, "default", NO_VALUE);
2037
+ const oldOptionDefault = (0, import_get13.default)(oldKeyedSchema, "default", NO_VALUE);
1989
2038
  if (newOptionDefault !== NO_VALUE && newOptionDefault !== formValue) {
1990
2039
  if (oldOptionDefault === formValue) {
1991
2040
  removeOldSchemaData[key] = newOptionDefault;
1992
- } else if ((0, import_get12.default)(newKeyedSchema, "readOnly") === true) {
2041
+ } else if ((0, import_get13.default)(newKeyedSchema, "readOnly") === true) {
1993
2042
  removeOldSchemaData[key] = void 0;
1994
2043
  }
1995
2044
  }
1996
- const newOptionConst = (0, import_get12.default)(newKeyedSchema, "const", NO_VALUE);
1997
- const oldOptionConst = (0, import_get12.default)(oldKeyedSchema, "const", NO_VALUE);
2045
+ const newOptionConst = (0, import_get13.default)(newKeyedSchema, "const", NO_VALUE);
2046
+ const oldOptionConst = (0, import_get13.default)(oldKeyedSchema, "const", NO_VALUE);
1998
2047
  if (newOptionConst !== NO_VALUE && newOptionConst !== formValue) {
1999
2048
  removeOldSchemaData[key] = oldOptionConst === formValue ? newOptionConst : void 0;
2000
2049
  }
@@ -2006,9 +2055,9 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
2006
2055
  ...removeOldSchemaData,
2007
2056
  ...nestedData
2008
2057
  };
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");
2058
+ } else if ((0, import_get13.default)(oldSchema, "type") === "array" && (0, import_get13.default)(newSchema, "type") === "array" && Array.isArray(data)) {
2059
+ let oldSchemaItems = (0, import_get13.default)(oldSchema, "items");
2060
+ let newSchemaItems = (0, import_get13.default)(newSchema, "items");
2012
2061
  if (typeof oldSchemaItems === "object" && typeof newSchemaItems === "object" && !Array.isArray(oldSchemaItems) && !Array.isArray(newSchemaItems)) {
2013
2062
  if ((0, import_has5.default)(oldSchemaItems, REF_KEY)) {
2014
2063
  oldSchemaItems = retrieveSchema(
@@ -2028,10 +2077,10 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
2028
2077
  experimental_customMergeAllOf
2029
2078
  );
2030
2079
  }
2031
- const oldSchemaType = (0, import_get12.default)(oldSchemaItems, "type");
2032
- const newSchemaType = (0, import_get12.default)(newSchemaItems, "type");
2080
+ const oldSchemaType = (0, import_get13.default)(oldSchemaItems, "type");
2081
+ const newSchemaType = (0, import_get13.default)(newSchemaItems, "type");
2033
2082
  if (!oldSchemaType || oldSchemaType === newSchemaType) {
2034
- const maxItems = (0, import_get12.default)(newSchema, "maxItems", -1);
2083
+ const maxItems = (0, import_get13.default)(newSchema, "maxItems", -1);
2035
2084
  if (newSchemaType === "object") {
2036
2085
  newFormData = data.reduce((newValue, aValue) => {
2037
2086
  const itemValue = sanitizeDataForNewSchema(
@@ -2059,7 +2108,7 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
2059
2108
  }
2060
2109
 
2061
2110
  // src/schema/toIdSchema.ts
2062
- var import_get13 = __toESM(require("lodash/get"), 1);
2111
+ var import_get14 = __toESM(require("lodash/get"), 1);
2063
2112
  function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
2064
2113
  const $id = id || idPrefix;
2065
2114
  const idSchema = { $id };
@@ -2081,10 +2130,10 @@ function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSc
2081
2130
  );
2082
2131
  }
2083
2132
  }
2084
- if (ITEMS_KEY in schema && !(0, import_get13.default)(schema, [ITEMS_KEY, REF_KEY])) {
2133
+ if (ITEMS_KEY in schema && !(0, import_get14.default)(schema, [ITEMS_KEY, REF_KEY])) {
2085
2134
  return toIdSchemaInternal(
2086
2135
  validator,
2087
- (0, import_get13.default)(schema, ITEMS_KEY),
2136
+ (0, import_get14.default)(schema, ITEMS_KEY),
2088
2137
  idPrefix,
2089
2138
  idSeparator,
2090
2139
  id,
@@ -2107,7 +2156,7 @@ function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSc
2107
2156
  rootSchema,
2108
2157
  // It's possible that formData is not an object -- this can happen if an
2109
2158
  // array item has just been added, but not populated with data yet
2110
- (0, import_get13.default)(formData, [name]),
2159
+ (0, import_get14.default)(formData, [name]),
2111
2160
  _recurseList,
2112
2161
  experimental_customMergeAllOf
2113
2162
  );
@@ -2131,7 +2180,7 @@ function toIdSchema(validator, schema, id, rootSchema, formData, idPrefix = "roo
2131
2180
  }
2132
2181
 
2133
2182
  // src/schema/toPathSchema.ts
2134
- var import_get14 = __toESM(require("lodash/get"), 1);
2183
+ var import_get15 = __toESM(require("lodash/get"), 1);
2135
2184
  var import_set2 = __toESM(require("lodash/set"), 1);
2136
2185
  function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
2137
2186
  if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {
@@ -2224,7 +2273,7 @@ function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _re
2224
2273
  }
2225
2274
  } else if (PROPERTIES_KEY in schema) {
2226
2275
  for (const property in schema.properties) {
2227
- const field = (0, import_get14.default)(schema, [PROPERTIES_KEY, property], {});
2276
+ const field = (0, import_get15.default)(schema, [PROPERTIES_KEY, property], {});
2228
2277
  pathSchema[property] = toPathSchemaInternal(
2229
2278
  validator,
2230
2279
  field,
@@ -2232,7 +2281,7 @@ function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _re
2232
2281
  rootSchema,
2233
2282
  // It's possible that formData is not an object -- this can happen if an
2234
2283
  // array item has just been added, but not populated with data yet
2235
- (0, import_get14.default)(formData, [property]),
2284
+ (0, import_get15.default)(formData, [property]),
2236
2285
  _recurseList,
2237
2286
  experimental_customMergeAllOf
2238
2287
  );
@@ -2650,7 +2699,7 @@ function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {
2650
2699
 
2651
2700
  // src/ErrorSchemaBuilder.ts
2652
2701
  var import_cloneDeep = __toESM(require("lodash/cloneDeep"), 1);
2653
- var import_get15 = __toESM(require("lodash/get"), 1);
2702
+ var import_get16 = __toESM(require("lodash/get"), 1);
2654
2703
  var import_set3 = __toESM(require("lodash/set"), 1);
2655
2704
  var import_setWith = __toESM(require("lodash/setWith"), 1);
2656
2705
  var ErrorSchemaBuilder = class {
@@ -2679,7 +2728,7 @@ var ErrorSchemaBuilder = class {
2679
2728
  */
2680
2729
  getOrCreateErrorBlock(pathOfError) {
2681
2730
  const hasPath = Array.isArray(pathOfError) && pathOfError.length > 0 || typeof pathOfError === "string";
2682
- let errorBlock = hasPath ? (0, import_get15.default)(this.errorSchema, pathOfError) : this.errorSchema;
2731
+ let errorBlock = hasPath ? (0, import_get16.default)(this.errorSchema, pathOfError) : this.errorSchema;
2683
2732
  if (!errorBlock && pathOfError) {
2684
2733
  errorBlock = {};
2685
2734
  (0, import_setWith.default)(this.errorSchema, pathOfError, errorBlock, Object);
@@ -2705,7 +2754,7 @@ var ErrorSchemaBuilder = class {
2705
2754
  */
2706
2755
  addErrors(errorOrList, pathOfError) {
2707
2756
  const errorBlock = this.getOrCreateErrorBlock(pathOfError);
2708
- let errorsList = (0, import_get15.default)(errorBlock, ERRORS_KEY);
2757
+ let errorsList = (0, import_get16.default)(errorBlock, ERRORS_KEY);
2709
2758
  if (!Array.isArray(errorsList)) {
2710
2759
  errorsList = [];
2711
2760
  errorBlock[ERRORS_KEY] = errorsList;
@@ -2854,9 +2903,9 @@ function getTemplate(name, registry, uiOptions = {}) {
2854
2903
 
2855
2904
  // src/getTestIds.ts
2856
2905
  var import_nanoid = require("nanoid");
2857
- var import_get16 = __toESM(require("lodash/get"), 1);
2906
+ var import_get17 = __toESM(require("lodash/get"), 1);
2858
2907
  function getTestIds() {
2859
- if (typeof process === "undefined" || (0, import_get16.default)(process, "env.NODE_ENV") !== "test") {
2908
+ if (typeof process === "undefined" || (0, import_get17.default)(process, "env.NODE_ENV") !== "test") {
2860
2909
  return {};
2861
2910
  }
2862
2911
  const ids = /* @__PURE__ */ new Map();
@@ -2876,7 +2925,7 @@ function getTestIds() {
2876
2925
  // src/getWidget.tsx
2877
2926
  var import_react = require("react");
2878
2927
  var import_react_is = __toESM(require("react-is"), 1);
2879
- var import_get17 = __toESM(require("lodash/get"), 1);
2928
+ var import_get18 = __toESM(require("lodash/get"), 1);
2880
2929
  var import_set4 = __toESM(require("lodash/set"), 1);
2881
2930
  var import_jsx_runtime = require("react/jsx-runtime");
2882
2931
  var widgetMap = {
@@ -2932,7 +2981,7 @@ var widgetMap = {
2932
2981
  }
2933
2982
  };
2934
2983
  function mergeWidgetOptions(AWidget) {
2935
- let MergedWidget = (0, import_get17.default)(AWidget, "MergedWidget");
2984
+ let MergedWidget = (0, import_get18.default)(AWidget, "MergedWidget");
2936
2985
  if (!MergedWidget) {
2937
2986
  const defaultOptions = AWidget.defaultProps && AWidget.defaultProps.options || {};
2938
2987
  MergedWidget = ({ options, ...props }) => {
@@ -3045,14 +3094,14 @@ function localToUTC(dateString) {
3045
3094
  }
3046
3095
 
3047
3096
  // src/lookupFromFormContext.ts
3048
- var import_get18 = __toESM(require("lodash/get"), 1);
3097
+ var import_get19 = __toESM(require("lodash/get"), 1);
3049
3098
  var import_has6 = __toESM(require("lodash/has"), 1);
3050
3099
  function lookupFromFormContext(regOrFc, toLookup, fallback) {
3051
3100
  const lookupPath = [LOOKUP_MAP_NAME];
3052
3101
  if ((0, import_has6.default)(regOrFc, FORM_CONTEXT_NAME)) {
3053
3102
  lookupPath.unshift(FORM_CONTEXT_NAME);
3054
3103
  }
3055
- return (0, import_get18.default)(regOrFc, [...lookupPath, toLookup], fallback);
3104
+ return (0, import_get19.default)(regOrFc, [...lookupPath, toLookup], fallback);
3056
3105
  }
3057
3106
 
3058
3107
  // src/orderProperties.ts
@@ -3231,7 +3280,7 @@ function utcToLocal(jsonDate) {
3231
3280
  }
3232
3281
 
3233
3282
  // src/validationDataMerge.ts
3234
- var import_isEmpty4 = __toESM(require("lodash/isEmpty"), 1);
3283
+ var import_isEmpty5 = __toESM(require("lodash/isEmpty"), 1);
3235
3284
  function validationDataMerge(validationData, additionalErrorSchema) {
3236
3285
  if (!additionalErrorSchema) {
3237
3286
  return validationData;
@@ -3239,7 +3288,7 @@ function validationDataMerge(validationData, additionalErrorSchema) {
3239
3288
  const { errors: oldErrors, errorSchema: oldErrorSchema } = validationData;
3240
3289
  let errors = toErrorList(additionalErrorSchema);
3241
3290
  let errorSchema = additionalErrorSchema;
3242
- if (!(0, import_isEmpty4.default)(oldErrorSchema)) {
3291
+ if (!(0, import_isEmpty5.default)(oldErrorSchema)) {
3243
3292
  errorSchema = mergeObjects(oldErrorSchema, additionalErrorSchema, true);
3244
3293
  errors = [...oldErrors].concat(errors);
3245
3294
  }
@@ -3247,7 +3296,7 @@ function validationDataMerge(validationData, additionalErrorSchema) {
3247
3296
  }
3248
3297
 
3249
3298
  // src/withIdRefPrefix.ts
3250
- var import_isObject10 = __toESM(require("lodash/isObject"), 1);
3299
+ var import_isObject11 = __toESM(require("lodash/isObject"), 1);
3251
3300
  function withIdRefPrefixObject(node) {
3252
3301
  for (const key in node) {
3253
3302
  const realObj = node;
@@ -3270,7 +3319,7 @@ function withIdRefPrefix(schemaNode) {
3270
3319
  if (Array.isArray(schemaNode)) {
3271
3320
  return withIdRefPrefixArray([...schemaNode]);
3272
3321
  }
3273
- if ((0, import_isObject10.default)(schemaNode)) {
3322
+ if ((0, import_isObject11.default)(schemaNode)) {
3274
3323
  return withIdRefPrefixObject({ ...schemaNode });
3275
3324
  }
3276
3325
  return schemaNode;
@@ -3280,7 +3329,7 @@ function withIdRefPrefix(schemaNode) {
3280
3329
  var import_keys = __toESM(require("lodash/keys"), 1);
3281
3330
  var import_pickBy = __toESM(require("lodash/pickBy"), 1);
3282
3331
  var import_isPlainObject4 = __toESM(require("lodash/isPlainObject"), 1);
3283
- var import_get19 = __toESM(require("lodash/get"), 1);
3332
+ var import_get20 = __toESM(require("lodash/get"), 1);
3284
3333
  var import_difference = __toESM(require("lodash/difference"), 1);
3285
3334
  function getChangedFields(a, b) {
3286
3335
  const aIsPlainObject = (0, import_isPlainObject4.default)(a);
@@ -3293,7 +3342,7 @@ function getChangedFields(a, b) {
3293
3342
  } else if (!aIsPlainObject && bIsPlainObject) {
3294
3343
  return (0, import_keys.default)(b);
3295
3344
  } else {
3296
- const unequalFields = (0, import_keys.default)((0, import_pickBy.default)(a, (value, key) => !deepEquals(value, (0, import_get19.default)(b, key))));
3345
+ const unequalFields = (0, import_keys.default)((0, import_pickBy.default)(a, (value, key) => !deepEquals(value, (0, import_get20.default)(b, key))));
3297
3346
  const diffFields = (0, import_difference.default)((0, import_keys.default)(b), (0, import_keys.default)(a));
3298
3347
  return [...unequalFields, ...diffFields];
3299
3348
  }
@@ -3338,7 +3387,7 @@ var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
3338
3387
  var import_forEach = __toESM(require("lodash/forEach"), 1);
3339
3388
 
3340
3389
  // src/parser/ParserValidator.ts
3341
- var import_get20 = __toESM(require("lodash/get"), 1);
3390
+ var import_get21 = __toESM(require("lodash/get"), 1);
3342
3391
  var ParserValidator = class {
3343
3392
  /** Construct the ParserValidator for the given `rootSchema`. This `rootSchema` will be stashed in the `schemaMap`
3344
3393
  * first.
@@ -3364,7 +3413,7 @@ var ParserValidator = class {
3364
3413
  * @param hash - The hash value at which to map the schema
3365
3414
  */
3366
3415
  addSchema(schema, hash) {
3367
- const key = (0, import_get20.default)(schema, ID_KEY, hash);
3416
+ const key = (0, import_get21.default)(schema, ID_KEY, hash);
3368
3417
  const identifiedSchema = { ...schema, [ID_KEY]: key };
3369
3418
  const existing = this.schemaMap[key];
3370
3419
  if (!existing) {