@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 +158 -109
- package/dist/index.js.map +3 -3
- package/dist/utils.esm.js +158 -109
- package/dist/utils.esm.js.map +3 -3
- package/dist/utils.umd.js +132 -87
- 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/schema/findFieldInSchema.d.ts +1 -1
- package/lib/schema/findFieldInSchema.js +1 -1
- package/lib/schema/getDefaultFormState.js +13 -2
- 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 +13 -12
- package/package.json +2 -1
- package/src/constants.ts +5 -0
- package/src/findSchemaDefinition.ts +53 -8
- package/src/schema/findFieldInSchema.ts +1 -1
- package/src/schema/getDefaultFormState.ts +15 -3
- package/src/schema/retrieveSchema.ts +14 -5
- package/src/types.ts +13 -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,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,
|
|
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,
|
|
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
|
|
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,
|
|
1466
|
-
value = (0,
|
|
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,
|
|
1549
|
+
if (!(0, import_isEmpty4.default)(computedDefault)) {
|
|
1507
1550
|
obj[key] = computedDefault;
|
|
1508
1551
|
}
|
|
1509
|
-
} else if ((!(0,
|
|
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
|
-
|
|
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,
|
|
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,
|
|
1703
|
-
rawFormData: (0,
|
|
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,
|
|
1740
|
-
rawFormData: (0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
1948
|
-
let oldKeyedSchema = (0,
|
|
1949
|
-
let newKeyedSchema = (0,
|
|
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,
|
|
1969
|
-
const newSchemaTypeForKey = (0,
|
|
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,
|
|
1988
|
-
const oldOptionDefault = (0,
|
|
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,
|
|
2041
|
+
} else if ((0, import_get13.default)(newKeyedSchema, "readOnly") === true) {
|
|
1993
2042
|
removeOldSchemaData[key] = void 0;
|
|
1994
2043
|
}
|
|
1995
2044
|
}
|
|
1996
|
-
const newOptionConst = (0,
|
|
1997
|
-
const oldOptionConst = (0,
|
|
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,
|
|
2010
|
-
let oldSchemaItems = (0,
|
|
2011
|
-
let newSchemaItems = (0,
|
|
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,
|
|
2032
|
-
const newSchemaType = (0,
|
|
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,
|
|
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
|
|
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,
|
|
2133
|
+
if (ITEMS_KEY in schema && !(0, import_get14.default)(schema, [ITEMS_KEY, REF_KEY])) {
|
|
2085
2134
|
return toIdSchemaInternal(
|
|
2086
2135
|
validator,
|
|
2087
|
-
(0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
2906
|
+
var import_get17 = __toESM(require("lodash/get"), 1);
|
|
2858
2907
|
function getTestIds() {
|
|
2859
|
-
if (typeof process === "undefined" || (0,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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) {
|