@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 +177 -111
- package/dist/index.js.map +3 -3
- package/dist/utils.esm.js +177 -111
- package/dist/utils.esm.js.map +3 -3
- package/dist/utils.umd.js +151 -89
- package/lib/canExpand.d.ts +1 -1
- package/lib/constants.d.ts +4 -0
- package/lib/constants.js +4 -0
- package/lib/constants.js.map +1 -1
- package/lib/findSchemaDefinition.d.ts +4 -2
- package/lib/findSchemaDefinition.js +53 -10
- package/lib/findSchemaDefinition.js.map +1 -1
- package/lib/mergeDefaultsWithFormData.js +13 -1
- package/lib/mergeDefaultsWithFormData.js.map +1 -1
- package/lib/schema/findFieldInSchema.d.ts +1 -1
- package/lib/schema/findFieldInSchema.js +1 -1
- package/lib/schema/getDefaultFormState.js +21 -4
- package/lib/schema/getDefaultFormState.js.map +1 -1
- package/lib/schema/retrieveSchema.d.ts +2 -1
- package/lib/schema/retrieveSchema.js +14 -7
- package/lib/schema/retrieveSchema.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types.d.ts +22 -12
- package/package.json +2 -1
- package/src/constants.ts +5 -0
- package/src/findSchemaDefinition.ts +53 -8
- package/src/mergeDefaultsWithFormData.ts +15 -1
- package/src/schema/findFieldInSchema.ts +1 -1
- package/src/schema/getDefaultFormState.ts +24 -5
- package/src/schema/retrieveSchema.ts +14 -5
- package/src/types.ts +27 -11
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
|
|
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
|
|
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
|
|
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
|
|
347
|
+
let current = void 0;
|
|
326
348
|
if (ref.startsWith("#")) {
|
|
327
|
-
decodedRef = decodeURIComponent(ref.substring(1));
|
|
328
|
-
|
|
329
|
-
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
480
|
-
const discriminator = (0,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
800
|
+
additionalProperties = { type: guessType((0, import_get5.default)(formData, [key])) };
|
|
761
801
|
}
|
|
762
802
|
} else {
|
|
763
|
-
additionalProperties = { type: guessType((0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
1099
|
+
var import_get7 = __toESM(require("lodash/get"), 1);
|
|
1057
1100
|
var import_has2 = __toESM(require("lodash/has"), 1);
|
|
1058
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
1177
|
-
var
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
1466
|
-
value = (0,
|
|
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,
|
|
1560
|
+
if (!(0, import_isEmpty4.default)(computedDefault)) {
|
|
1507
1561
|
obj[key] = computedDefault;
|
|
1508
1562
|
}
|
|
1509
|
-
} else if ((!(0,
|
|
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
|
-
|
|
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,
|
|
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,
|
|
1703
|
-
rawFormData: (0,
|
|
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,
|
|
1740
|
-
rawFormData: (0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
1948
|
-
let oldKeyedSchema = (0,
|
|
1949
|
-
let newKeyedSchema = (0,
|
|
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,
|
|
1969
|
-
const newSchemaTypeForKey = (0,
|
|
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,
|
|
1988
|
-
const oldOptionDefault = (0,
|
|
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,
|
|
2058
|
+
} else if ((0, import_get13.default)(newKeyedSchema, "readOnly") === true) {
|
|
1993
2059
|
removeOldSchemaData[key] = void 0;
|
|
1994
2060
|
}
|
|
1995
2061
|
}
|
|
1996
|
-
const newOptionConst = (0,
|
|
1997
|
-
const oldOptionConst = (0,
|
|
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,
|
|
2010
|
-
let oldSchemaItems = (0,
|
|
2011
|
-
let newSchemaItems = (0,
|
|
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,
|
|
2032
|
-
const newSchemaType = (0,
|
|
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,
|
|
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
|
|
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,
|
|
2150
|
+
if (ITEMS_KEY in schema && !(0, import_get14.default)(schema, [ITEMS_KEY, REF_KEY])) {
|
|
2085
2151
|
return toIdSchemaInternal(
|
|
2086
2152
|
validator,
|
|
2087
|
-
(0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
2923
|
+
var import_get17 = __toESM(require("lodash/get"), 1);
|
|
2858
2924
|
function getTestIds() {
|
|
2859
|
-
if (typeof process === "undefined" || (0,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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) {
|