@rjsf/utils 6.0.0-beta.2 → 6.0.0-beta.20
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 → index.cjs} +241 -205
- package/dist/index.cjs.map +7 -0
- package/dist/utils.esm.js +240 -204
- package/dist/utils.esm.js.map +4 -4
- package/dist/utils.umd.js +235 -200
- package/lib/canExpand.d.ts +1 -1
- package/lib/constants.d.ts +3 -0
- package/lib/constants.js +3 -0
- package/lib/constants.js.map +1 -1
- package/lib/createSchemaUtils.js +19 -14
- package/lib/createSchemaUtils.js.map +1 -1
- package/lib/enums.d.ts +3 -3
- package/lib/enums.js +3 -3
- package/lib/findSchemaDefinition.d.ts +7 -1
- package/lib/findSchemaDefinition.js +48 -6
- package/lib/findSchemaDefinition.js.map +1 -1
- package/lib/getTestIds.js +2 -2
- package/lib/getTestIds.js.map +1 -1
- package/lib/getUiOptions.js +4 -0
- package/lib/getUiOptions.js.map +1 -1
- package/lib/getWidget.js +3 -3
- package/lib/getWidget.js.map +1 -1
- package/lib/idGenerators.d.ts +15 -15
- package/lib/idGenerators.js +8 -8
- package/lib/idGenerators.js.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/mergeDefaultsWithFormData.js +14 -2
- 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.d.ts +11 -2
- package/lib/schema/getDefaultFormState.js +59 -22
- package/lib/schema/getDefaultFormState.js.map +1 -1
- package/lib/schema/getDisplayLabel.js +2 -2
- package/lib/schema/getDisplayLabel.js.map +1 -1
- package/lib/schema/index.d.ts +1 -2
- package/lib/schema/index.js +1 -2
- package/lib/schema/index.js.map +1 -1
- package/lib/schema/retrieveSchema.d.ts +1 -1
- package/lib/schema/retrieveSchema.js +6 -6
- package/lib/schema/retrieveSchema.js.map +1 -1
- package/lib/shallowEquals.d.ts +8 -0
- package/lib/shallowEquals.js +36 -0
- package/lib/shallowEquals.js.map +1 -0
- package/lib/shouldRender.d.ts +8 -2
- package/lib/shouldRender.js +17 -2
- package/lib/shouldRender.js.map +1 -1
- package/lib/toFieldPathId.d.ts +12 -0
- package/lib/toFieldPathId.js +19 -0
- package/lib/toFieldPathId.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types.d.ts +97 -66
- package/package.json +13 -14
- package/src/constants.ts +3 -0
- package/src/createSchemaUtils.ts +19 -25
- package/src/enums.ts +3 -3
- package/src/findSchemaDefinition.ts +55 -6
- package/src/getTestIds.ts +2 -2
- package/src/getUiOptions.ts +4 -0
- package/src/getWidget.tsx +3 -3
- package/src/idGenerators.ts +25 -25
- package/src/index.ts +6 -0
- package/src/mergeDefaultsWithFormData.ts +16 -2
- package/src/schema/findFieldInSchema.ts +1 -1
- package/src/schema/getDefaultFormState.ts +76 -32
- package/src/schema/getDisplayLabel.ts +2 -2
- package/src/schema/index.ts +0 -2
- package/src/schema/retrieveSchema.ts +7 -5
- package/src/shallowEquals.ts +41 -0
- package/src/shouldRender.ts +27 -2
- package/src/toFieldPathId.ts +24 -0
- package/src/types.ts +107 -70
- package/dist/index.js.map +0 -7
- package/lib/schema/toIdSchema.d.ts +0 -14
- package/lib/schema/toIdSchema.js +0 -62
- package/lib/schema/toIdSchema.js.map +0 -1
- package/src/schema/toIdSchema.ts +0 -131
|
@@ -35,6 +35,8 @@ __export(index_exports, {
|
|
|
35
35
|
ALL_OF_KEY: () => ALL_OF_KEY,
|
|
36
36
|
ANY_OF_KEY: () => ANY_OF_KEY,
|
|
37
37
|
CONST_KEY: () => CONST_KEY,
|
|
38
|
+
DEFAULT_ID_PREFIX: () => DEFAULT_ID_PREFIX,
|
|
39
|
+
DEFAULT_ID_SEPARATOR: () => DEFAULT_ID_SEPARATOR,
|
|
38
40
|
DEFAULT_KEY: () => DEFAULT_KEY,
|
|
39
41
|
DEFINITIONS_KEY: () => DEFINITIONS_KEY,
|
|
40
42
|
DEPENDENCIES_KEY: () => DEPENDENCIES_KEY,
|
|
@@ -46,6 +48,7 @@ __export(index_exports, {
|
|
|
46
48
|
ID_KEY: () => ID_KEY,
|
|
47
49
|
IF_KEY: () => IF_KEY,
|
|
48
50
|
ITEMS_KEY: () => ITEMS_KEY,
|
|
51
|
+
JSON_SCHEMA_DRAFT_2019_09: () => JSON_SCHEMA_DRAFT_2019_09,
|
|
49
52
|
JSON_SCHEMA_DRAFT_2020_12: () => JSON_SCHEMA_DRAFT_2020_12,
|
|
50
53
|
JUNK_OPTION_ID: () => JUNK_OPTION_ID,
|
|
51
54
|
LOOKUP_MAP_NAME: () => LOOKUP_MAP_NAME,
|
|
@@ -133,6 +136,7 @@ __export(index_exports, {
|
|
|
133
136
|
sanitizeDataForNewSchema: () => sanitizeDataForNewSchema,
|
|
134
137
|
schemaParser: () => schemaParser,
|
|
135
138
|
schemaRequiresTrueValue: () => schemaRequiresTrueValue,
|
|
139
|
+
shallowEquals: () => shallowEquals,
|
|
136
140
|
shouldRender: () => shouldRender,
|
|
137
141
|
sortedJSONStringify: () => sortedJSONStringify,
|
|
138
142
|
titleId: () => titleId,
|
|
@@ -140,7 +144,7 @@ __export(index_exports, {
|
|
|
140
144
|
toDateString: () => toDateString,
|
|
141
145
|
toErrorList: () => toErrorList,
|
|
142
146
|
toErrorSchema: () => toErrorSchema,
|
|
143
|
-
|
|
147
|
+
toFieldPathId: () => toFieldPathId,
|
|
144
148
|
toPathSchema: () => toPathSchema,
|
|
145
149
|
unwrapErrorHandler: () => unwrapErrorHandler,
|
|
146
150
|
utcToLocal: () => utcToLocal,
|
|
@@ -217,6 +221,8 @@ var REQUIRED_KEY = "required";
|
|
|
217
221
|
var SUBMIT_BTN_OPTIONS_KEY = "submitButtonOptions";
|
|
218
222
|
var REF_KEY = "$ref";
|
|
219
223
|
var SCHEMA_KEY = "$schema";
|
|
224
|
+
var DEFAULT_ID_PREFIX = "root";
|
|
225
|
+
var DEFAULT_ID_SEPARATOR = "_";
|
|
220
226
|
var DISCRIMINATOR_PATH = ["discriminator", "propertyName"];
|
|
221
227
|
var FORM_CONTEXT_NAME = "formContext";
|
|
222
228
|
var LOOKUP_MAP_NAME = "layoutGridLookupMap";
|
|
@@ -226,10 +232,14 @@ var UI_FIELD_KEY = "ui:field";
|
|
|
226
232
|
var UI_WIDGET_KEY = "ui:widget";
|
|
227
233
|
var UI_OPTIONS_KEY = "ui:options";
|
|
228
234
|
var UI_GLOBAL_OPTIONS_KEY = "ui:globalOptions";
|
|
235
|
+
var JSON_SCHEMA_DRAFT_2019_09 = "https://json-schema.org/draft/2019-09/schema";
|
|
229
236
|
var JSON_SCHEMA_DRAFT_2020_12 = "https://json-schema.org/draft/2020-12/schema";
|
|
230
237
|
|
|
231
238
|
// src/getUiOptions.ts
|
|
232
239
|
function getUiOptions(uiSchema = {}, globalOptions = {}) {
|
|
240
|
+
if (!uiSchema) {
|
|
241
|
+
return { ...globalOptions };
|
|
242
|
+
}
|
|
233
243
|
return Object.keys(uiSchema).filter((key) => key.indexOf("ui:") === 0).reduce(
|
|
234
244
|
(options, key) => {
|
|
235
245
|
const value = uiSchema[key];
|
|
@@ -299,15 +309,15 @@ function deepEquals(a, b) {
|
|
|
299
309
|
}
|
|
300
310
|
|
|
301
311
|
// src/schema/findFieldInSchema.ts
|
|
302
|
-
var
|
|
312
|
+
var import_get8 = __toESM(require("lodash/get"), 1);
|
|
303
313
|
var import_has3 = __toESM(require("lodash/has"), 1);
|
|
304
314
|
|
|
305
315
|
// src/schema/findSelectedOptionInXxxOf.ts
|
|
306
|
-
var
|
|
316
|
+
var import_get6 = __toESM(require("lodash/get"), 1);
|
|
307
317
|
var import_isEqual = __toESM(require("lodash/isEqual"), 1);
|
|
308
318
|
|
|
309
319
|
// src/schema/retrieveSchema.ts
|
|
310
|
-
var
|
|
320
|
+
var import_get5 = __toESM(require("lodash/get"), 1);
|
|
311
321
|
var import_set = __toESM(require("lodash/set"), 1);
|
|
312
322
|
var import_times = __toESM(require("lodash/times"), 1);
|
|
313
323
|
var import_transform = __toESM(require("lodash/transform"), 1);
|
|
@@ -322,12 +332,22 @@ var import_omit = __toESM(require("lodash/omit"), 1);
|
|
|
322
332
|
var import_isObject3 = __toESM(require("lodash/isObject"), 1);
|
|
323
333
|
var import_isEmpty = __toESM(require("lodash/isEmpty"), 1);
|
|
324
334
|
var import_fast_uri = __toESM(require("fast-uri"), 1);
|
|
335
|
+
var import_get = __toESM(require("lodash/get"), 1);
|
|
325
336
|
function findEmbeddedSchemaRecursive(schema, ref) {
|
|
326
337
|
if (ID_KEY in schema && import_fast_uri.default.equal(schema[ID_KEY], ref)) {
|
|
327
338
|
return schema;
|
|
328
339
|
}
|
|
329
340
|
for (const subSchema of Object.values(schema)) {
|
|
330
|
-
if (
|
|
341
|
+
if (Array.isArray(subSchema)) {
|
|
342
|
+
for (const item of subSchema) {
|
|
343
|
+
if ((0, import_isObject3.default)(item)) {
|
|
344
|
+
const result = findEmbeddedSchemaRecursive(item, ref);
|
|
345
|
+
if (result !== void 0) {
|
|
346
|
+
return result;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
} else if ((0, import_isObject3.default)(subSchema)) {
|
|
331
351
|
const result = findEmbeddedSchemaRecursive(subSchema, ref);
|
|
332
352
|
if (result !== void 0) {
|
|
333
353
|
return result;
|
|
@@ -336,12 +356,29 @@ function findEmbeddedSchemaRecursive(schema, ref) {
|
|
|
336
356
|
}
|
|
337
357
|
return void 0;
|
|
338
358
|
}
|
|
359
|
+
function makeAllReferencesAbsolute(schema, baseURI) {
|
|
360
|
+
const currentURI = (0, import_get.default)(schema, ID_KEY, baseURI);
|
|
361
|
+
if (REF_KEY in schema) {
|
|
362
|
+
schema = { ...schema, [REF_KEY]: import_fast_uri.default.resolve(currentURI, schema[REF_KEY]) };
|
|
363
|
+
}
|
|
364
|
+
for (const [key, subSchema] of Object.entries(schema)) {
|
|
365
|
+
if (Array.isArray(subSchema)) {
|
|
366
|
+
schema = {
|
|
367
|
+
...schema,
|
|
368
|
+
[key]: subSchema.map((item) => (0, import_isObject3.default)(item) ? makeAllReferencesAbsolute(item, currentURI) : item)
|
|
369
|
+
};
|
|
370
|
+
} else if ((0, import_isObject3.default)(subSchema)) {
|
|
371
|
+
schema = { ...schema, [key]: makeAllReferencesAbsolute(subSchema, currentURI) };
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
return schema;
|
|
375
|
+
}
|
|
339
376
|
function splitKeyElementFromObject(key, object) {
|
|
340
377
|
const value = object[key];
|
|
341
378
|
const remaining = (0, import_omit.default)(object, [key]);
|
|
342
379
|
return [remaining, value];
|
|
343
380
|
}
|
|
344
|
-
function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = [], baseURI =
|
|
381
|
+
function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = [], baseURI = (0, import_get.default)(rootSchema, [ID_KEY])) {
|
|
345
382
|
const ref = $ref || "";
|
|
346
383
|
let current = void 0;
|
|
347
384
|
if (ref.startsWith("#")) {
|
|
@@ -381,23 +418,27 @@ function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = [],
|
|
|
381
418
|
const [remaining, theRef] = splitKeyElementFromObject(REF_KEY, current);
|
|
382
419
|
const subSchema = findSchemaDefinitionRecursive(theRef, rootSchema, [...recurseList, ref], baseURI);
|
|
383
420
|
if (Object.keys(remaining).length > 0) {
|
|
384
|
-
|
|
421
|
+
if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2019_09 || rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {
|
|
422
|
+
return { [ALL_OF_KEY]: [remaining, subSchema] };
|
|
423
|
+
} else {
|
|
424
|
+
return { ...remaining, ...subSchema };
|
|
425
|
+
}
|
|
385
426
|
}
|
|
386
427
|
return subSchema;
|
|
387
428
|
}
|
|
388
429
|
return current;
|
|
389
430
|
}
|
|
390
|
-
function findSchemaDefinition($ref, rootSchema = {}, baseURI =
|
|
431
|
+
function findSchemaDefinition($ref, rootSchema = {}, baseURI = (0, import_get.default)(rootSchema, [ID_KEY])) {
|
|
391
432
|
const recurseList = [];
|
|
392
433
|
return findSchemaDefinitionRecursive($ref, rootSchema, recurseList, baseURI);
|
|
393
434
|
}
|
|
394
435
|
|
|
395
436
|
// src/getDiscriminatorFieldFromSchema.ts
|
|
396
|
-
var
|
|
437
|
+
var import_get2 = __toESM(require("lodash/get"), 1);
|
|
397
438
|
var import_isString = __toESM(require("lodash/isString"), 1);
|
|
398
439
|
function getDiscriminatorFieldFromSchema(schema) {
|
|
399
440
|
let discriminator;
|
|
400
|
-
const maybeString = (0,
|
|
441
|
+
const maybeString = (0, import_get2.default)(schema, DISCRIMINATOR_PATH);
|
|
401
442
|
if ((0, import_isString.default)(maybeString)) {
|
|
402
443
|
discriminator = maybeString;
|
|
403
444
|
} else if (maybeString !== void 0) {
|
|
@@ -471,21 +512,21 @@ function mergeSchemas(obj1, obj2) {
|
|
|
471
512
|
}
|
|
472
513
|
|
|
473
514
|
// src/schema/getFirstMatchingOption.ts
|
|
474
|
-
var
|
|
515
|
+
var import_get4 = __toESM(require("lodash/get"), 1);
|
|
475
516
|
var import_has = __toESM(require("lodash/has"), 1);
|
|
476
517
|
var import_isNumber = __toESM(require("lodash/isNumber"), 1);
|
|
477
518
|
|
|
478
519
|
// src/getOptionMatchingSimpleDiscriminator.ts
|
|
479
|
-
var
|
|
520
|
+
var import_get3 = __toESM(require("lodash/get"), 1);
|
|
480
521
|
function getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField) {
|
|
481
522
|
if (formData && discriminatorField) {
|
|
482
|
-
const value = (0,
|
|
523
|
+
const value = (0, import_get3.default)(formData, discriminatorField);
|
|
483
524
|
if (value === void 0) {
|
|
484
525
|
return;
|
|
485
526
|
}
|
|
486
527
|
for (let i = 0; i < options.length; i++) {
|
|
487
528
|
const option = options[i];
|
|
488
|
-
const discriminator = (0,
|
|
529
|
+
const discriminator = (0, import_get3.default)(option, [PROPERTIES_KEY, discriminatorField], {});
|
|
489
530
|
if (discriminator.type === "object" || discriminator.type === "array") {
|
|
490
531
|
continue;
|
|
491
532
|
}
|
|
@@ -512,8 +553,8 @@ function getFirstMatchingOption(validator, formData, options, rootSchema, discri
|
|
|
512
553
|
for (let i = 0; i < options.length; i++) {
|
|
513
554
|
const option = options[i];
|
|
514
555
|
if (discriminatorField && (0, import_has.default)(option, [PROPERTIES_KEY, discriminatorField])) {
|
|
515
|
-
const value = (0,
|
|
516
|
-
const discriminator = (0,
|
|
556
|
+
const value = (0, import_get4.default)(formData, discriminatorField);
|
|
557
|
+
const discriminator = (0, import_get4.default)(option, [PROPERTIES_KEY, discriminatorField], {});
|
|
517
558
|
if (validator.isValid(discriminator, value, rootSchema)) {
|
|
518
559
|
return i;
|
|
519
560
|
}
|
|
@@ -653,7 +694,8 @@ function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurse
|
|
|
653
694
|
rootSchema,
|
|
654
695
|
expandAllBranches,
|
|
655
696
|
recurseList,
|
|
656
|
-
formData
|
|
697
|
+
formData,
|
|
698
|
+
experimental_customMergeAllOf
|
|
657
699
|
);
|
|
658
700
|
if (updatedSchemas.length > 1 || updatedSchemas[0] !== schema) {
|
|
659
701
|
return updatedSchemas;
|
|
@@ -665,7 +707,8 @@ function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurse
|
|
|
665
707
|
rootSchema,
|
|
666
708
|
expandAllBranches,
|
|
667
709
|
recurseList,
|
|
668
|
-
formData
|
|
710
|
+
formData,
|
|
711
|
+
experimental_customMergeAllOf
|
|
669
712
|
);
|
|
670
713
|
return resolvedSchemas.flatMap((s) => {
|
|
671
714
|
return retrieveSchemaInternal(
|
|
@@ -768,9 +811,9 @@ function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFor
|
|
|
768
811
|
if (!(0, import_isEmpty2.default)(matchingProperties)) {
|
|
769
812
|
schema.properties[key] = retrieveSchema(
|
|
770
813
|
validator,
|
|
771
|
-
{
|
|
814
|
+
{ [ALL_OF_KEY]: Object.values(matchingProperties) },
|
|
772
815
|
rootSchema,
|
|
773
|
-
formData,
|
|
816
|
+
(0, import_get5.default)(formData, [key]),
|
|
774
817
|
experimental_customMergeAllOf
|
|
775
818
|
);
|
|
776
819
|
(0, import_set.default)(schema.properties, [key, ADDITIONAL_PROPERTY_FLAG], true);
|
|
@@ -783,7 +826,7 @@ function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFor
|
|
|
783
826
|
if (REF_KEY in schema.additionalProperties) {
|
|
784
827
|
additionalProperties = retrieveSchema(
|
|
785
828
|
validator,
|
|
786
|
-
{
|
|
829
|
+
{ [REF_KEY]: (0, import_get5.default)(schema.additionalProperties, [REF_KEY]) },
|
|
787
830
|
rootSchema,
|
|
788
831
|
formData,
|
|
789
832
|
experimental_customMergeAllOf
|
|
@@ -796,10 +839,10 @@ function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFor
|
|
|
796
839
|
...schema.additionalProperties
|
|
797
840
|
};
|
|
798
841
|
} else {
|
|
799
|
-
additionalProperties = { type: guessType((0,
|
|
842
|
+
additionalProperties = { type: guessType((0, import_get5.default)(formData, [key])) };
|
|
800
843
|
}
|
|
801
844
|
} else {
|
|
802
|
-
additionalProperties = { type: guessType((0,
|
|
845
|
+
additionalProperties = { type: guessType((0, import_get5.default)(formData, [key])) };
|
|
803
846
|
}
|
|
804
847
|
schema.properties[key] = additionalProperties;
|
|
805
848
|
(0, import_set.default)(schema.properties, [key, ADDITIONAL_PROPERTY_FLAG], true);
|
|
@@ -878,7 +921,7 @@ function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expa
|
|
|
878
921
|
validator,
|
|
879
922
|
{ allOf: [schema2.properties[key], ...Object.values(matchingProperties)] },
|
|
880
923
|
rootSchema,
|
|
881
|
-
rawFormData,
|
|
924
|
+
(0, import_get5.default)(rawFormData, [key]),
|
|
882
925
|
experimental_customMergeAllOf
|
|
883
926
|
);
|
|
884
927
|
}
|
|
@@ -950,7 +993,7 @@ function resolveDependencies(validator, schema, rootSchema, expandAllBranches, r
|
|
|
950
993
|
function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
951
994
|
let schemas = [resolvedSchema];
|
|
952
995
|
for (const dependencyKey in dependencies) {
|
|
953
|
-
if (!expandAllBranches && (0,
|
|
996
|
+
if (!expandAllBranches && (0, import_get5.default)(formData, [dependencyKey]) === void 0) {
|
|
954
997
|
continue;
|
|
955
998
|
}
|
|
956
999
|
if (resolvedSchema.properties && !(dependencyKey in resolvedSchema.properties)) {
|
|
@@ -1081,11 +1124,11 @@ function findSelectedOptionInXxxOf(validator, rootSchema, schema, fallbackField,
|
|
|
1081
1124
|
const xxxOfs = schema[xxx].map(
|
|
1082
1125
|
(xxxOf) => retrieveSchema(validator, xxxOf, rootSchema, formData, experimental_customMergeAllOf)
|
|
1083
1126
|
);
|
|
1084
|
-
const data = (0,
|
|
1127
|
+
const data = (0, import_get6.default)(formData, selectorField);
|
|
1085
1128
|
if (data !== void 0) {
|
|
1086
1129
|
return xxxOfs.find((xxx2) => {
|
|
1087
1130
|
return (0, import_isEqual.default)(
|
|
1088
|
-
(0,
|
|
1131
|
+
(0, import_get6.default)(xxx2, [PROPERTIES_KEY, selectorField, DEFAULT_KEY], (0, import_get6.default)(xxx2, [PROPERTIES_KEY, selectorField, CONST_KEY])),
|
|
1089
1132
|
data
|
|
1090
1133
|
);
|
|
1091
1134
|
});
|
|
@@ -1095,7 +1138,7 @@ function findSelectedOptionInXxxOf(validator, rootSchema, schema, fallbackField,
|
|
|
1095
1138
|
}
|
|
1096
1139
|
|
|
1097
1140
|
// src/schema/getFromSchema.ts
|
|
1098
|
-
var
|
|
1141
|
+
var import_get7 = __toESM(require("lodash/get"), 1);
|
|
1099
1142
|
var import_has2 = __toESM(require("lodash/has"), 1);
|
|
1100
1143
|
var import_isEmpty3 = __toESM(require("lodash/isEmpty"), 1);
|
|
1101
1144
|
function getFromSchemaInternal(validator, rootSchema, schema, path, experimental_customMergeAllOf) {
|
|
@@ -1109,7 +1152,7 @@ function getFromSchemaInternal(validator, rootSchema, schema, path, experimental
|
|
|
1109
1152
|
const pathList = Array.isArray(path) ? path : path.split(".");
|
|
1110
1153
|
const [part, ...nestedPath] = pathList;
|
|
1111
1154
|
if (part && (0, import_has2.default)(fieldSchema, part)) {
|
|
1112
|
-
fieldSchema = (0,
|
|
1155
|
+
fieldSchema = (0, import_get7.default)(fieldSchema, part);
|
|
1113
1156
|
return getFromSchemaInternal(
|
|
1114
1157
|
validator,
|
|
1115
1158
|
rootSchema,
|
|
@@ -1151,7 +1194,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1151
1194
|
parentField,
|
|
1152
1195
|
fieldName,
|
|
1153
1196
|
ONE_OF_KEY,
|
|
1154
|
-
(0,
|
|
1197
|
+
(0, import_get8.default)(formData, subPath),
|
|
1155
1198
|
experimental_customMergeAllOf
|
|
1156
1199
|
);
|
|
1157
1200
|
} else if ((0, import_has3.default)(parentField, ANY_OF_KEY)) {
|
|
@@ -1161,7 +1204,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1161
1204
|
parentField,
|
|
1162
1205
|
fieldName,
|
|
1163
1206
|
ANY_OF_KEY,
|
|
1164
|
-
(0,
|
|
1207
|
+
(0, import_get8.default)(formData, subPath),
|
|
1165
1208
|
experimental_customMergeAllOf
|
|
1166
1209
|
);
|
|
1167
1210
|
}
|
|
@@ -1215,11 +1258,11 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1215
1258
|
}
|
|
1216
1259
|
|
|
1217
1260
|
// src/schema/getDefaultFormState.ts
|
|
1218
|
-
var
|
|
1261
|
+
var import_get12 = __toESM(require("lodash/get"), 1);
|
|
1219
1262
|
var import_isEmpty4 = __toESM(require("lodash/isEmpty"), 1);
|
|
1220
1263
|
|
|
1221
1264
|
// src/schema/getClosestMatchingOption.ts
|
|
1222
|
-
var
|
|
1265
|
+
var import_get9 = __toESM(require("lodash/get"), 1);
|
|
1223
1266
|
var import_has4 = __toESM(require("lodash/has"), 1);
|
|
1224
1267
|
var import_isNumber2 = __toESM(require("lodash/isNumber"), 1);
|
|
1225
1268
|
var import_isObject6 = __toESM(require("lodash/isObject"), 1);
|
|
@@ -1242,7 +1285,7 @@ function calculateIndexScore(validator, rootSchema, schema, formData, experiment
|
|
|
1242
1285
|
totalScore += (0, import_reduce.default)(
|
|
1243
1286
|
schema.properties,
|
|
1244
1287
|
(score, value, key) => {
|
|
1245
|
-
const formValue = (0,
|
|
1288
|
+
const formValue = (0, import_get9.default)(formData, key);
|
|
1246
1289
|
if (typeof value === "boolean") {
|
|
1247
1290
|
return score;
|
|
1248
1291
|
}
|
|
@@ -1269,7 +1312,7 @@ function calculateIndexScore(validator, rootSchema, schema, formData, experiment
|
|
|
1269
1312
|
validator,
|
|
1270
1313
|
rootSchema,
|
|
1271
1314
|
formValue,
|
|
1272
|
-
(0,
|
|
1315
|
+
(0, import_get9.default)(value, key2),
|
|
1273
1316
|
-1,
|
|
1274
1317
|
discriminator,
|
|
1275
1318
|
experimental_customMergeAllOf
|
|
@@ -1348,7 +1391,7 @@ function isFixedItems(schema) {
|
|
|
1348
1391
|
}
|
|
1349
1392
|
|
|
1350
1393
|
// src/mergeDefaultsWithFormData.ts
|
|
1351
|
-
var
|
|
1394
|
+
var import_get10 = __toESM(require("lodash/get"), 1);
|
|
1352
1395
|
var import_isNil = __toESM(require("lodash/isNil"), 1);
|
|
1353
1396
|
function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults = false, defaultSupercedesUndefined = false, overrideFormDataWithDefaults = false) {
|
|
1354
1397
|
if (Array.isArray(formData)) {
|
|
@@ -1375,11 +1418,22 @@ function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults =
|
|
|
1375
1418
|
if (isObject(formData)) {
|
|
1376
1419
|
const acc = Object.assign({}, defaults);
|
|
1377
1420
|
return Object.keys(formData).reduce((acc2, key) => {
|
|
1378
|
-
const keyValue = (0,
|
|
1421
|
+
const keyValue = (0, import_get10.default)(formData, key);
|
|
1379
1422
|
const keyExistsInDefaults = isObject(defaults) && key in defaults;
|
|
1380
1423
|
const keyExistsInFormData = key in formData;
|
|
1424
|
+
const keyDefault = (0, import_get10.default)(defaults, key) ?? {};
|
|
1425
|
+
const defaultValueIsNestedObject = keyExistsInDefaults && Object.entries(keyDefault).some(([, v]) => isObject(v));
|
|
1426
|
+
const keyDefaultIsObject = keyExistsInDefaults && isObject((0, import_get10.default)(defaults, key));
|
|
1427
|
+
const keyHasFormDataObject = keyExistsInFormData && isObject(keyValue);
|
|
1428
|
+
if (keyDefaultIsObject && keyHasFormDataObject && !defaultValueIsNestedObject) {
|
|
1429
|
+
acc2[key] = {
|
|
1430
|
+
...(0, import_get10.default)(defaults, key),
|
|
1431
|
+
...keyValue
|
|
1432
|
+
};
|
|
1433
|
+
return acc2;
|
|
1434
|
+
}
|
|
1381
1435
|
acc2[key] = mergeDefaultsWithFormData(
|
|
1382
|
-
|
|
1436
|
+
(0, import_get10.default)(defaults, key),
|
|
1383
1437
|
keyValue,
|
|
1384
1438
|
mergeExtraArrayDefaults,
|
|
1385
1439
|
defaultSupercedesUndefined,
|
|
@@ -1390,7 +1444,7 @@ function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults =
|
|
|
1390
1444
|
return acc2;
|
|
1391
1445
|
}, acc);
|
|
1392
1446
|
}
|
|
1393
|
-
if (defaultSupercedesUndefined && (!(0
|
|
1447
|
+
if (defaultSupercedesUndefined && (!(defaults === void 0) && (0, import_isNil.default)(formData) || typeof formData === "number" && isNaN(formData)) || overrideFormDataWithDefaults && !(0, import_isNil.default)(formData)) {
|
|
1394
1448
|
return defaults;
|
|
1395
1449
|
}
|
|
1396
1450
|
return formData;
|
|
@@ -1458,7 +1512,7 @@ function constIsAjvDataReference(schema) {
|
|
|
1458
1512
|
}
|
|
1459
1513
|
|
|
1460
1514
|
// src/optionsList.ts
|
|
1461
|
-
var
|
|
1515
|
+
var import_get11 = __toESM(require("lodash/get"), 1);
|
|
1462
1516
|
|
|
1463
1517
|
// src/toConstant.ts
|
|
1464
1518
|
function toConstant(schema) {
|
|
@@ -1504,8 +1558,8 @@ function optionsList(schema, uiSchema) {
|
|
|
1504
1558
|
let value;
|
|
1505
1559
|
let label = title;
|
|
1506
1560
|
if (selectorField) {
|
|
1507
|
-
const innerSchema = (0,
|
|
1508
|
-
value = (0,
|
|
1561
|
+
const innerSchema = (0, import_get11.default)(aSchema, [PROPERTIES_KEY, selectorField], {});
|
|
1562
|
+
value = (0, import_get11.default)(innerSchema, DEFAULT_KEY, (0, import_get11.default)(innerSchema, CONST_KEY));
|
|
1509
1563
|
label = label || innerSchema?.title || aSchema.title || String(value);
|
|
1510
1564
|
} else {
|
|
1511
1565
|
value = toConstant(aSchema);
|
|
@@ -1537,10 +1591,19 @@ function getInnerSchemaForArrayItem(schema, additionalItems = 0 /* Ignore */, id
|
|
|
1537
1591
|
}
|
|
1538
1592
|
return {};
|
|
1539
1593
|
}
|
|
1594
|
+
function computeDefaultBasedOnSchemaTypeAndDefaults(schema, computedDefault) {
|
|
1595
|
+
const { default: schemaDefault, type } = schema;
|
|
1596
|
+
const shouldReturnNullAsDefault = Array.isArray(type) && type.includes("null") && (0, import_isEmpty4.default)(computedDefault) && schemaDefault === null;
|
|
1597
|
+
return shouldReturnNullAsDefault ? null : computedDefault;
|
|
1598
|
+
}
|
|
1540
1599
|
function maybeAddDefaultToObject(obj, key, computedDefault, includeUndefinedValues, isParentRequired, requiredFields = [], experimental_defaultFormStateBehavior = {}, isConst = false) {
|
|
1541
1600
|
const { emptyObjectFields = "populateAllDefaults" } = experimental_defaultFormStateBehavior;
|
|
1542
|
-
if (includeUndefinedValues || isConst) {
|
|
1601
|
+
if (includeUndefinedValues === true || isConst) {
|
|
1543
1602
|
obj[key] = computedDefault;
|
|
1603
|
+
} else if (includeUndefinedValues === "excludeObjectChildren") {
|
|
1604
|
+
if (!isObject(computedDefault) || !(0, import_isEmpty4.default)(computedDefault)) {
|
|
1605
|
+
obj[key] = computedDefault;
|
|
1606
|
+
}
|
|
1544
1607
|
} else if (emptyObjectFields !== "skipDefaults") {
|
|
1545
1608
|
const isSelfOrParentRequired = isParentRequired === void 0 ? requiredFields.includes(key) : isParentRequired;
|
|
1546
1609
|
if (isObject(computedDefault)) {
|
|
@@ -1574,13 +1637,13 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
|
|
|
1574
1637
|
required,
|
|
1575
1638
|
shouldMergeDefaultsIntoFormData = false
|
|
1576
1639
|
} = computeDefaultsProps;
|
|
1577
|
-
|
|
1640
|
+
let formData = isObject(rawFormData) ? rawFormData : {};
|
|
1578
1641
|
const schema = isObject(rawSchema) ? rawSchema : {};
|
|
1579
1642
|
let defaults = parentDefaults;
|
|
1580
1643
|
let schemaToCompute = null;
|
|
1581
1644
|
let experimental_dfsb_to_compute = experimental_defaultFormStateBehavior;
|
|
1582
1645
|
let updatedRecurseList = _recurseList;
|
|
1583
|
-
if (schema[CONST_KEY] && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(schema)) {
|
|
1646
|
+
if (schema[CONST_KEY] !== void 0 && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(schema)) {
|
|
1584
1647
|
defaults = schema[CONST_KEY];
|
|
1585
1648
|
} else if (isObject(defaults) && isObject(schema.default)) {
|
|
1586
1649
|
defaults = mergeObjects(defaults, schema.default);
|
|
@@ -1595,6 +1658,9 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
|
|
|
1595
1658
|
if (schemaToCompute && !defaults) {
|
|
1596
1659
|
defaults = schema.default;
|
|
1597
1660
|
}
|
|
1661
|
+
if (shouldMergeDefaultsIntoFormData && schemaToCompute && !isObject(rawFormData)) {
|
|
1662
|
+
formData = rawFormData;
|
|
1663
|
+
}
|
|
1598
1664
|
} else if (DEPENDENCIES_KEY in schema) {
|
|
1599
1665
|
const defaultFormData = {
|
|
1600
1666
|
...getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults),
|
|
@@ -1672,7 +1738,7 @@ function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {
|
|
|
1672
1738
|
experimental_defaultFormStateBehavior: experimental_dfsb_to_compute,
|
|
1673
1739
|
experimental_customMergeAllOf,
|
|
1674
1740
|
parentDefaults: defaults,
|
|
1675
|
-
rawFormData: formData,
|
|
1741
|
+
rawFormData: rawFormData ?? formData,
|
|
1676
1742
|
required,
|
|
1677
1743
|
shouldMergeDefaultsIntoFormData
|
|
1678
1744
|
});
|
|
@@ -1735,7 +1801,7 @@ function getObjectDefaults(validator, rawSchema, {
|
|
|
1735
1801
|
const parentConst = retrievedSchema[CONST_KEY];
|
|
1736
1802
|
const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce(
|
|
1737
1803
|
(acc, key) => {
|
|
1738
|
-
const propertySchema = (0,
|
|
1804
|
+
const propertySchema = (0, import_get12.default)(retrievedSchema, [PROPERTIES_KEY, key], {});
|
|
1739
1805
|
const hasParentConst = isObject(parentConst) && parentConst[key] !== void 0;
|
|
1740
1806
|
const hasConst = (isObject(propertySchema) && CONST_KEY in propertySchema || hasParentConst) && experimental_defaultFormStateBehavior?.constAsDefaults !== "never" && !constIsAjvDataReference(propertySchema);
|
|
1741
1807
|
const computedDefault = computeDefaults(validator, propertySchema, {
|
|
@@ -1744,8 +1810,8 @@ function getObjectDefaults(validator, rawSchema, {
|
|
|
1744
1810
|
experimental_defaultFormStateBehavior,
|
|
1745
1811
|
experimental_customMergeAllOf,
|
|
1746
1812
|
includeUndefinedValues: includeUndefinedValues === true,
|
|
1747
|
-
parentDefaults: (0,
|
|
1748
|
-
rawFormData: (0,
|
|
1813
|
+
parentDefaults: (0, import_get12.default)(defaults, [key]),
|
|
1814
|
+
rawFormData: (0, import_get12.default)(formData, [key]),
|
|
1749
1815
|
required: retrievedSchema.required?.includes(key),
|
|
1750
1816
|
shouldMergeDefaultsIntoFormData
|
|
1751
1817
|
});
|
|
@@ -1781,8 +1847,8 @@ function getObjectDefaults(validator, rawSchema, {
|
|
|
1781
1847
|
experimental_defaultFormStateBehavior,
|
|
1782
1848
|
experimental_customMergeAllOf,
|
|
1783
1849
|
includeUndefinedValues: includeUndefinedValues === true,
|
|
1784
|
-
parentDefaults: (0,
|
|
1785
|
-
rawFormData: (0,
|
|
1850
|
+
parentDefaults: (0, import_get12.default)(defaults, [key]),
|
|
1851
|
+
rawFormData: (0, import_get12.default)(formData, [key]),
|
|
1786
1852
|
required: retrievedSchema.required?.includes(key),
|
|
1787
1853
|
shouldMergeDefaultsIntoFormData
|
|
1788
1854
|
});
|
|
@@ -1796,7 +1862,7 @@ function getObjectDefaults(validator, rawSchema, {
|
|
|
1796
1862
|
);
|
|
1797
1863
|
});
|
|
1798
1864
|
}
|
|
1799
|
-
return objectDefaults;
|
|
1865
|
+
return computeDefaultBasedOnSchemaTypeAndDefaults(rawSchema, objectDefaults);
|
|
1800
1866
|
}
|
|
1801
1867
|
}
|
|
1802
1868
|
function getArrayDefaults(validator, rawSchema, {
|
|
@@ -1843,7 +1909,7 @@ function getArrayDefaults(validator, rawSchema, {
|
|
|
1843
1909
|
experimental_defaultFormStateBehavior,
|
|
1844
1910
|
experimental_customMergeAllOf,
|
|
1845
1911
|
rawFormData: item,
|
|
1846
|
-
parentDefaults: (0,
|
|
1912
|
+
parentDefaults: (0, import_get12.default)(defaults, [idx]),
|
|
1847
1913
|
required,
|
|
1848
1914
|
shouldMergeDefaultsIntoFormData
|
|
1849
1915
|
});
|
|
@@ -1861,25 +1927,29 @@ function getArrayDefaults(validator, rawSchema, {
|
|
|
1861
1927
|
return defaults ? defaults : void 0;
|
|
1862
1928
|
}
|
|
1863
1929
|
}
|
|
1930
|
+
let arrayDefault;
|
|
1864
1931
|
const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;
|
|
1865
1932
|
if (!schema.minItems || isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) || computeSkipPopulate(validator, schema, rootSchema) || schema.minItems <= defaultsLength) {
|
|
1866
|
-
|
|
1867
|
-
}
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1933
|
+
arrayDefault = defaults ? defaults : emptyDefault;
|
|
1934
|
+
} else {
|
|
1935
|
+
const defaultEntries = defaults || [];
|
|
1936
|
+
const fillerSchema = getInnerSchemaForArrayItem(schema, 1 /* Invert */);
|
|
1937
|
+
const fillerDefault = fillerSchema.default;
|
|
1938
|
+
const fillerEntries = Array.from(
|
|
1939
|
+
{ length: schema.minItems - defaultsLength },
|
|
1940
|
+
() => computeDefaults(validator, fillerSchema, {
|
|
1941
|
+
parentDefaults: fillerDefault,
|
|
1942
|
+
rootSchema,
|
|
1943
|
+
_recurseList,
|
|
1944
|
+
experimental_defaultFormStateBehavior,
|
|
1945
|
+
experimental_customMergeAllOf,
|
|
1946
|
+
required,
|
|
1947
|
+
shouldMergeDefaultsIntoFormData
|
|
1948
|
+
})
|
|
1949
|
+
);
|
|
1950
|
+
arrayDefault = defaultEntries.concat(fillerEntries);
|
|
1951
|
+
}
|
|
1952
|
+
return computeDefaultBasedOnSchemaTypeAndDefaults(rawSchema, arrayDefault);
|
|
1883
1953
|
}
|
|
1884
1954
|
function getDefaultBasedOnSchemaType(validator, rawSchema, computeDefaultsProps = {}, defaults) {
|
|
1885
1955
|
switch (getSchemaType(rawSchema)) {
|
|
@@ -1905,6 +1975,12 @@ function getDefaultFormState(validator, theSchema, formData, rootSchema, include
|
|
|
1905
1975
|
rawFormData: formData,
|
|
1906
1976
|
shouldMergeDefaultsIntoFormData: true
|
|
1907
1977
|
});
|
|
1978
|
+
if (schema.type !== "object" && isObject(schema.default)) {
|
|
1979
|
+
return {
|
|
1980
|
+
...defaults,
|
|
1981
|
+
...formData
|
|
1982
|
+
};
|
|
1983
|
+
}
|
|
1908
1984
|
if (isObject(formData) || Array.isArray(formData)) {
|
|
1909
1985
|
const { mergeDefaultsIntoFormData } = experimental_defaultFormStateBehavior || {};
|
|
1910
1986
|
const defaultSupercedesUndefined = mergeDefaultsIntoFormData === "useDefaultIfFormDataUndefined";
|
|
@@ -1961,17 +2037,17 @@ function getDisplayLabel(validator, schema, uiSchema = {}, rootSchema, globalOpt
|
|
|
1961
2037
|
if (schemaType === "object") {
|
|
1962
2038
|
displayLabel = false;
|
|
1963
2039
|
}
|
|
1964
|
-
if (schemaType === "boolean" && !uiSchema[UI_WIDGET_KEY]) {
|
|
2040
|
+
if (schemaType === "boolean" && uiSchema && !uiSchema[UI_WIDGET_KEY]) {
|
|
1965
2041
|
displayLabel = false;
|
|
1966
2042
|
}
|
|
1967
|
-
if (uiSchema[UI_FIELD_KEY]) {
|
|
2043
|
+
if (uiSchema && uiSchema[UI_FIELD_KEY]) {
|
|
1968
2044
|
displayLabel = false;
|
|
1969
2045
|
}
|
|
1970
2046
|
return displayLabel;
|
|
1971
2047
|
}
|
|
1972
2048
|
|
|
1973
2049
|
// src/schema/sanitizeDataForNewSchema.ts
|
|
1974
|
-
var
|
|
2050
|
+
var import_get13 = __toESM(require("lodash/get"), 1);
|
|
1975
2051
|
var import_has5 = __toESM(require("lodash/has"), 1);
|
|
1976
2052
|
var NO_VALUE = Symbol("no Value");
|
|
1977
2053
|
function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, data = {}, experimental_customMergeAllOf) {
|
|
@@ -1979,19 +2055,19 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
1979
2055
|
if ((0, import_has5.default)(newSchema, PROPERTIES_KEY)) {
|
|
1980
2056
|
const removeOldSchemaData = {};
|
|
1981
2057
|
if ((0, import_has5.default)(oldSchema, PROPERTIES_KEY)) {
|
|
1982
|
-
const properties = (0,
|
|
2058
|
+
const properties = (0, import_get13.default)(oldSchema, PROPERTIES_KEY, {});
|
|
1983
2059
|
Object.keys(properties).forEach((key) => {
|
|
1984
2060
|
if ((0, import_has5.default)(data, key)) {
|
|
1985
2061
|
removeOldSchemaData[key] = void 0;
|
|
1986
2062
|
}
|
|
1987
2063
|
});
|
|
1988
2064
|
}
|
|
1989
|
-
const keys2 = Object.keys((0,
|
|
2065
|
+
const keys2 = Object.keys((0, import_get13.default)(newSchema, PROPERTIES_KEY, {}));
|
|
1990
2066
|
const nestedData = {};
|
|
1991
2067
|
keys2.forEach((key) => {
|
|
1992
|
-
const formValue = (0,
|
|
1993
|
-
let oldKeyedSchema = (0,
|
|
1994
|
-
let newKeyedSchema = (0,
|
|
2068
|
+
const formValue = (0, import_get13.default)(data, key);
|
|
2069
|
+
let oldKeyedSchema = (0, import_get13.default)(oldSchema, [PROPERTIES_KEY, key], {});
|
|
2070
|
+
let newKeyedSchema = (0, import_get13.default)(newSchema, [PROPERTIES_KEY, key], {});
|
|
1995
2071
|
if ((0, import_has5.default)(oldKeyedSchema, REF_KEY)) {
|
|
1996
2072
|
oldKeyedSchema = retrieveSchema(
|
|
1997
2073
|
validator,
|
|
@@ -2010,8 +2086,8 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2010
2086
|
experimental_customMergeAllOf
|
|
2011
2087
|
);
|
|
2012
2088
|
}
|
|
2013
|
-
const oldSchemaTypeForKey = (0,
|
|
2014
|
-
const newSchemaTypeForKey = (0,
|
|
2089
|
+
const oldSchemaTypeForKey = (0, import_get13.default)(oldKeyedSchema, "type");
|
|
2090
|
+
const newSchemaTypeForKey = (0, import_get13.default)(newKeyedSchema, "type");
|
|
2015
2091
|
if (!oldSchemaTypeForKey || oldSchemaTypeForKey === newSchemaTypeForKey) {
|
|
2016
2092
|
if ((0, import_has5.default)(removeOldSchemaData, key)) {
|
|
2017
2093
|
delete removeOldSchemaData[key];
|
|
@@ -2029,17 +2105,17 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2029
2105
|
nestedData[key] = itemData;
|
|
2030
2106
|
}
|
|
2031
2107
|
} else {
|
|
2032
|
-
const newOptionDefault = (0,
|
|
2033
|
-
const oldOptionDefault = (0,
|
|
2108
|
+
const newOptionDefault = (0, import_get13.default)(newKeyedSchema, "default", NO_VALUE);
|
|
2109
|
+
const oldOptionDefault = (0, import_get13.default)(oldKeyedSchema, "default", NO_VALUE);
|
|
2034
2110
|
if (newOptionDefault !== NO_VALUE && newOptionDefault !== formValue) {
|
|
2035
2111
|
if (oldOptionDefault === formValue) {
|
|
2036
2112
|
removeOldSchemaData[key] = newOptionDefault;
|
|
2037
|
-
} else if ((0,
|
|
2113
|
+
} else if ((0, import_get13.default)(newKeyedSchema, "readOnly") === true) {
|
|
2038
2114
|
removeOldSchemaData[key] = void 0;
|
|
2039
2115
|
}
|
|
2040
2116
|
}
|
|
2041
|
-
const newOptionConst = (0,
|
|
2042
|
-
const oldOptionConst = (0,
|
|
2117
|
+
const newOptionConst = (0, import_get13.default)(newKeyedSchema, "const", NO_VALUE);
|
|
2118
|
+
const oldOptionConst = (0, import_get13.default)(oldKeyedSchema, "const", NO_VALUE);
|
|
2043
2119
|
if (newOptionConst !== NO_VALUE && newOptionConst !== formValue) {
|
|
2044
2120
|
removeOldSchemaData[key] = oldOptionConst === formValue ? newOptionConst : void 0;
|
|
2045
2121
|
}
|
|
@@ -2051,9 +2127,9 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2051
2127
|
...removeOldSchemaData,
|
|
2052
2128
|
...nestedData
|
|
2053
2129
|
};
|
|
2054
|
-
} else if ((0,
|
|
2055
|
-
let oldSchemaItems = (0,
|
|
2056
|
-
let newSchemaItems = (0,
|
|
2130
|
+
} else if ((0, import_get13.default)(oldSchema, "type") === "array" && (0, import_get13.default)(newSchema, "type") === "array" && Array.isArray(data)) {
|
|
2131
|
+
let oldSchemaItems = (0, import_get13.default)(oldSchema, "items");
|
|
2132
|
+
let newSchemaItems = (0, import_get13.default)(newSchema, "items");
|
|
2057
2133
|
if (typeof oldSchemaItems === "object" && typeof newSchemaItems === "object" && !Array.isArray(oldSchemaItems) && !Array.isArray(newSchemaItems)) {
|
|
2058
2134
|
if ((0, import_has5.default)(oldSchemaItems, REF_KEY)) {
|
|
2059
2135
|
oldSchemaItems = retrieveSchema(
|
|
@@ -2073,10 +2149,10 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2073
2149
|
experimental_customMergeAllOf
|
|
2074
2150
|
);
|
|
2075
2151
|
}
|
|
2076
|
-
const oldSchemaType = (0,
|
|
2077
|
-
const newSchemaType = (0,
|
|
2152
|
+
const oldSchemaType = (0, import_get13.default)(oldSchemaItems, "type");
|
|
2153
|
+
const newSchemaType = (0, import_get13.default)(newSchemaItems, "type");
|
|
2078
2154
|
if (!oldSchemaType || oldSchemaType === newSchemaType) {
|
|
2079
|
-
const maxItems = (0,
|
|
2155
|
+
const maxItems = (0, import_get13.default)(newSchema, "maxItems", -1);
|
|
2080
2156
|
if (newSchemaType === "object") {
|
|
2081
2157
|
newFormData = data.reduce((newValue, aValue) => {
|
|
2082
2158
|
const itemValue = sanitizeDataForNewSchema(
|
|
@@ -2103,78 +2179,6 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2103
2179
|
return newFormData;
|
|
2104
2180
|
}
|
|
2105
2181
|
|
|
2106
|
-
// src/schema/toIdSchema.ts
|
|
2107
|
-
var import_get13 = __toESM(require("lodash/get"), 1);
|
|
2108
|
-
function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
|
|
2109
|
-
const $id = id || idPrefix;
|
|
2110
|
-
const idSchema = { $id };
|
|
2111
|
-
if (typeof schema === "object") {
|
|
2112
|
-
if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {
|
|
2113
|
-
const _schema = retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf);
|
|
2114
|
-
const sameSchemaIndex = _recurseList.findIndex((item) => deepEquals(item, _schema));
|
|
2115
|
-
if (sameSchemaIndex === -1) {
|
|
2116
|
-
return toIdSchemaInternal(
|
|
2117
|
-
validator,
|
|
2118
|
-
_schema,
|
|
2119
|
-
idPrefix,
|
|
2120
|
-
idSeparator,
|
|
2121
|
-
id,
|
|
2122
|
-
rootSchema,
|
|
2123
|
-
formData,
|
|
2124
|
-
_recurseList.concat(_schema),
|
|
2125
|
-
experimental_customMergeAllOf
|
|
2126
|
-
);
|
|
2127
|
-
}
|
|
2128
|
-
}
|
|
2129
|
-
if (ITEMS_KEY in schema && !(0, import_get13.default)(schema, [ITEMS_KEY, REF_KEY])) {
|
|
2130
|
-
return toIdSchemaInternal(
|
|
2131
|
-
validator,
|
|
2132
|
-
(0, import_get13.default)(schema, ITEMS_KEY),
|
|
2133
|
-
idPrefix,
|
|
2134
|
-
idSeparator,
|
|
2135
|
-
id,
|
|
2136
|
-
rootSchema,
|
|
2137
|
-
formData,
|
|
2138
|
-
_recurseList,
|
|
2139
|
-
experimental_customMergeAllOf
|
|
2140
|
-
);
|
|
2141
|
-
}
|
|
2142
|
-
if (getSchemaType(schema) === "object" && PROPERTIES_KEY in schema) {
|
|
2143
|
-
for (const name in schema.properties) {
|
|
2144
|
-
const field = schema[PROPERTIES_KEY][name];
|
|
2145
|
-
const fieldId = idSchema[ID_KEY] + idSeparator + name;
|
|
2146
|
-
idSchema[name] = toIdSchemaInternal(
|
|
2147
|
-
validator,
|
|
2148
|
-
field,
|
|
2149
|
-
idPrefix,
|
|
2150
|
-
idSeparator,
|
|
2151
|
-
fieldId,
|
|
2152
|
-
rootSchema,
|
|
2153
|
-
// It's possible that formData is not an object -- this can happen if an
|
|
2154
|
-
// array item has just been added, but not populated with data yet
|
|
2155
|
-
(0, import_get13.default)(formData, [name]),
|
|
2156
|
-
_recurseList,
|
|
2157
|
-
experimental_customMergeAllOf
|
|
2158
|
-
);
|
|
2159
|
-
}
|
|
2160
|
-
}
|
|
2161
|
-
}
|
|
2162
|
-
return idSchema;
|
|
2163
|
-
}
|
|
2164
|
-
function toIdSchema(validator, schema, id, rootSchema, formData, idPrefix = "root", idSeparator = "_", experimental_customMergeAllOf) {
|
|
2165
|
-
return toIdSchemaInternal(
|
|
2166
|
-
validator,
|
|
2167
|
-
schema,
|
|
2168
|
-
idPrefix,
|
|
2169
|
-
idSeparator,
|
|
2170
|
-
id,
|
|
2171
|
-
rootSchema,
|
|
2172
|
-
formData,
|
|
2173
|
-
void 0,
|
|
2174
|
-
experimental_customMergeAllOf
|
|
2175
|
-
);
|
|
2176
|
-
}
|
|
2177
|
-
|
|
2178
2182
|
// src/schema/toPathSchema.ts
|
|
2179
2183
|
var import_get14 = __toESM(require("lodash/get"), 1);
|
|
2180
2184
|
var import_set2 = __toESM(require("lodash/set"), 1);
|
|
@@ -2290,6 +2294,7 @@ function toPathSchema(validator, schema, name = "", rootSchema, formData, experi
|
|
|
2290
2294
|
}
|
|
2291
2295
|
|
|
2292
2296
|
// src/createSchemaUtils.ts
|
|
2297
|
+
var import_get15 = __toESM(require("lodash/get"), 1);
|
|
2293
2298
|
var SchemaUtils = class {
|
|
2294
2299
|
/** Constructs the `SchemaUtils` instance with the given `validator` and `rootSchema` stored as instance variables
|
|
2295
2300
|
*
|
|
@@ -2299,11 +2304,22 @@ var SchemaUtils = class {
|
|
|
2299
2304
|
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
2300
2305
|
*/
|
|
2301
2306
|
constructor(validator, rootSchema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf) {
|
|
2302
|
-
|
|
2307
|
+
if (rootSchema && rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {
|
|
2308
|
+
this.rootSchema = makeAllReferencesAbsolute(rootSchema, (0, import_get15.default)(rootSchema, ID_KEY, "#"));
|
|
2309
|
+
} else {
|
|
2310
|
+
this.rootSchema = rootSchema;
|
|
2311
|
+
}
|
|
2303
2312
|
this.validator = validator;
|
|
2304
2313
|
this.experimental_defaultFormStateBehavior = experimental_defaultFormStateBehavior;
|
|
2305
2314
|
this.experimental_customMergeAllOf = experimental_customMergeAllOf;
|
|
2306
2315
|
}
|
|
2316
|
+
/** Returns the `rootSchema` in the `SchemaUtilsType`
|
|
2317
|
+
*
|
|
2318
|
+
* @returns - The `rootSchema`
|
|
2319
|
+
*/
|
|
2320
|
+
getRootSchema() {
|
|
2321
|
+
return this.rootSchema;
|
|
2322
|
+
}
|
|
2307
2323
|
/** Returns the `ValidatorType` in the `SchemaUtilsType`
|
|
2308
2324
|
*
|
|
2309
2325
|
* @returns - The `ValidatorType`
|
|
@@ -2517,27 +2533,6 @@ var SchemaUtils = class {
|
|
|
2517
2533
|
this.experimental_customMergeAllOf
|
|
2518
2534
|
);
|
|
2519
2535
|
}
|
|
2520
|
-
/** Generates an `IdSchema` object for the `schema`, recursively
|
|
2521
|
-
*
|
|
2522
|
-
* @param schema - The schema for which the display label flag is desired
|
|
2523
|
-
* @param [id] - The base id for the schema
|
|
2524
|
-
* @param [formData] - The current formData, if any, onto which to provide any missing defaults
|
|
2525
|
-
* @param [idPrefix='root'] - The prefix to use for the id
|
|
2526
|
-
* @param [idSeparator='_'] - The separator to use for the path segments in the id
|
|
2527
|
-
* @returns - The `IdSchema` object for the `schema`
|
|
2528
|
-
*/
|
|
2529
|
-
toIdSchema(schema, id, formData, idPrefix = "root", idSeparator = "_") {
|
|
2530
|
-
return toIdSchema(
|
|
2531
|
-
this.validator,
|
|
2532
|
-
schema,
|
|
2533
|
-
id,
|
|
2534
|
-
this.rootSchema,
|
|
2535
|
-
formData,
|
|
2536
|
-
idPrefix,
|
|
2537
|
-
idSeparator,
|
|
2538
|
-
this.experimental_customMergeAllOf
|
|
2539
|
-
);
|
|
2540
|
-
}
|
|
2541
2536
|
/** Generates an `PathSchema` object for the `schema`, recursively
|
|
2542
2537
|
*
|
|
2543
2538
|
* @param schema - The schema for which the display label flag is desired
|
|
@@ -2623,6 +2618,31 @@ function dateRangeOptions(start, stop) {
|
|
|
2623
2618
|
return options;
|
|
2624
2619
|
}
|
|
2625
2620
|
|
|
2621
|
+
// src/shallowEquals.ts
|
|
2622
|
+
function shallowEquals(a, b) {
|
|
2623
|
+
if (Object.is(a, b)) {
|
|
2624
|
+
return true;
|
|
2625
|
+
}
|
|
2626
|
+
if (a == null || b == null) {
|
|
2627
|
+
return false;
|
|
2628
|
+
}
|
|
2629
|
+
if (typeof a !== "object" || typeof b !== "object") {
|
|
2630
|
+
return false;
|
|
2631
|
+
}
|
|
2632
|
+
const keysA = Object.keys(a);
|
|
2633
|
+
const keysB = Object.keys(b);
|
|
2634
|
+
if (keysA.length !== keysB.length) {
|
|
2635
|
+
return false;
|
|
2636
|
+
}
|
|
2637
|
+
for (let i = 0; i < keysA.length; i++) {
|
|
2638
|
+
const key = keysA[i];
|
|
2639
|
+
if (!Object.prototype.hasOwnProperty.call(b, key) || !Object.is(a[key], b[key])) {
|
|
2640
|
+
return false;
|
|
2641
|
+
}
|
|
2642
|
+
}
|
|
2643
|
+
return true;
|
|
2644
|
+
}
|
|
2645
|
+
|
|
2626
2646
|
// src/replaceStringParameters.ts
|
|
2627
2647
|
function replaceStringParameters(inputString, params) {
|
|
2628
2648
|
let output = inputString;
|
|
@@ -2695,7 +2715,7 @@ function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {
|
|
|
2695
2715
|
|
|
2696
2716
|
// src/ErrorSchemaBuilder.ts
|
|
2697
2717
|
var import_cloneDeep = __toESM(require("lodash/cloneDeep"), 1);
|
|
2698
|
-
var
|
|
2718
|
+
var import_get16 = __toESM(require("lodash/get"), 1);
|
|
2699
2719
|
var import_set3 = __toESM(require("lodash/set"), 1);
|
|
2700
2720
|
var import_setWith = __toESM(require("lodash/setWith"), 1);
|
|
2701
2721
|
var ErrorSchemaBuilder = class {
|
|
@@ -2724,7 +2744,7 @@ var ErrorSchemaBuilder = class {
|
|
|
2724
2744
|
*/
|
|
2725
2745
|
getOrCreateErrorBlock(pathOfError) {
|
|
2726
2746
|
const hasPath = Array.isArray(pathOfError) && pathOfError.length > 0 || typeof pathOfError === "string";
|
|
2727
|
-
let errorBlock = hasPath ? (0,
|
|
2747
|
+
let errorBlock = hasPath ? (0, import_get16.default)(this.errorSchema, pathOfError) : this.errorSchema;
|
|
2728
2748
|
if (!errorBlock && pathOfError) {
|
|
2729
2749
|
errorBlock = {};
|
|
2730
2750
|
(0, import_setWith.default)(this.errorSchema, pathOfError, errorBlock, Object);
|
|
@@ -2750,7 +2770,7 @@ var ErrorSchemaBuilder = class {
|
|
|
2750
2770
|
*/
|
|
2751
2771
|
addErrors(errorOrList, pathOfError) {
|
|
2752
2772
|
const errorBlock = this.getOrCreateErrorBlock(pathOfError);
|
|
2753
|
-
let errorsList = (0,
|
|
2773
|
+
let errorsList = (0, import_get16.default)(errorBlock, ERRORS_KEY);
|
|
2754
2774
|
if (!Array.isArray(errorsList)) {
|
|
2755
2775
|
errorsList = [];
|
|
2756
2776
|
errorBlock[ERRORS_KEY] = errorsList;
|
|
@@ -2898,10 +2918,10 @@ function getTemplate(name, registry, uiOptions = {}) {
|
|
|
2898
2918
|
}
|
|
2899
2919
|
|
|
2900
2920
|
// src/getTestIds.ts
|
|
2901
|
-
var
|
|
2902
|
-
var
|
|
2921
|
+
var import_get17 = __toESM(require("lodash/get"), 1);
|
|
2922
|
+
var import_uniqueId = __toESM(require("lodash/uniqueId"), 1);
|
|
2903
2923
|
function getTestIds() {
|
|
2904
|
-
if (typeof process === "undefined" || (0,
|
|
2924
|
+
if (typeof process === "undefined" || (0, import_get17.default)(process, "env.NODE_ENV") !== "test") {
|
|
2905
2925
|
return {};
|
|
2906
2926
|
}
|
|
2907
2927
|
const ids = /* @__PURE__ */ new Map();
|
|
@@ -2910,7 +2930,7 @@ function getTestIds() {
|
|
|
2910
2930
|
{
|
|
2911
2931
|
get(_obj, prop) {
|
|
2912
2932
|
if (!ids.has(prop)) {
|
|
2913
|
-
ids.set(prop, (0,
|
|
2933
|
+
ids.set(prop, (0, import_uniqueId.default)("test-id-"));
|
|
2914
2934
|
}
|
|
2915
2935
|
return ids.get(prop);
|
|
2916
2936
|
}
|
|
@@ -2921,7 +2941,7 @@ function getTestIds() {
|
|
|
2921
2941
|
// src/getWidget.tsx
|
|
2922
2942
|
var import_react = require("react");
|
|
2923
2943
|
var import_react_is = __toESM(require("react-is"), 1);
|
|
2924
|
-
var
|
|
2944
|
+
var import_get18 = __toESM(require("lodash/get"), 1);
|
|
2925
2945
|
var import_set4 = __toESM(require("lodash/set"), 1);
|
|
2926
2946
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
2927
2947
|
var widgetMap = {
|
|
@@ -2977,7 +2997,7 @@ var widgetMap = {
|
|
|
2977
2997
|
}
|
|
2978
2998
|
};
|
|
2979
2999
|
function mergeWidgetOptions(AWidget) {
|
|
2980
|
-
let MergedWidget = (0,
|
|
3000
|
+
let MergedWidget = (0, import_get18.default)(AWidget, "MergedWidget");
|
|
2981
3001
|
if (!MergedWidget) {
|
|
2982
3002
|
const defaultOptions = AWidget.defaultProps && AWidget.defaultProps.options || {};
|
|
2983
3003
|
MergedWidget = ({ options, ...props }) => {
|
|
@@ -2993,7 +3013,7 @@ function getWidget(schema, widget, registeredWidgets = {}) {
|
|
|
2993
3013
|
return mergeWidgetOptions(widget);
|
|
2994
3014
|
}
|
|
2995
3015
|
if (typeof widget !== "string") {
|
|
2996
|
-
throw new Error(`Unsupported widget definition: ${typeof widget}`);
|
|
3016
|
+
throw new Error(`Unsupported widget definition: ${typeof widget} in schema: ${JSON.stringify(schema)}`);
|
|
2997
3017
|
}
|
|
2998
3018
|
if (widget in registeredWidgets) {
|
|
2999
3019
|
const registeredWidget = registeredWidgets[widget];
|
|
@@ -3001,14 +3021,14 @@ function getWidget(schema, widget, registeredWidgets = {}) {
|
|
|
3001
3021
|
}
|
|
3002
3022
|
if (typeof type === "string") {
|
|
3003
3023
|
if (!(type in widgetMap)) {
|
|
3004
|
-
throw new Error(`No widget for type '${type}'`);
|
|
3024
|
+
throw new Error(`No widget for type '${type}' in schema: ${JSON.stringify(schema)}`);
|
|
3005
3025
|
}
|
|
3006
3026
|
if (widget in widgetMap[type]) {
|
|
3007
3027
|
const registeredWidget = registeredWidgets[widgetMap[type][widget]];
|
|
3008
3028
|
return getWidget(schema, registeredWidget, registeredWidgets);
|
|
3009
3029
|
}
|
|
3010
3030
|
}
|
|
3011
|
-
throw new Error(`No widget '${widget}' for type '${type}'`);
|
|
3031
|
+
throw new Error(`No widget '${widget}' for type '${type}' in schema: ${JSON.stringify(schema)}`);
|
|
3012
3032
|
}
|
|
3013
3033
|
|
|
3014
3034
|
// src/hashForSchema.ts
|
|
@@ -3090,14 +3110,14 @@ function localToUTC(dateString) {
|
|
|
3090
3110
|
}
|
|
3091
3111
|
|
|
3092
3112
|
// src/lookupFromFormContext.ts
|
|
3093
|
-
var
|
|
3113
|
+
var import_get19 = __toESM(require("lodash/get"), 1);
|
|
3094
3114
|
var import_has6 = __toESM(require("lodash/has"), 1);
|
|
3095
3115
|
function lookupFromFormContext(regOrFc, toLookup, fallback) {
|
|
3096
3116
|
const lookupPath = [LOOKUP_MAP_NAME];
|
|
3097
3117
|
if ((0, import_has6.default)(regOrFc, FORM_CONTEXT_NAME)) {
|
|
3098
3118
|
lookupPath.unshift(FORM_CONTEXT_NAME);
|
|
3099
3119
|
}
|
|
3100
|
-
return (0,
|
|
3120
|
+
return (0, import_get19.default)(regOrFc, [...lookupPath, toLookup], fallback);
|
|
3101
3121
|
}
|
|
3102
3122
|
|
|
3103
3123
|
// src/orderProperties.ts
|
|
@@ -3178,7 +3198,14 @@ function schemaRequiresTrueValue(schema) {
|
|
|
3178
3198
|
}
|
|
3179
3199
|
|
|
3180
3200
|
// src/shouldRender.ts
|
|
3181
|
-
function shouldRender(component, nextProps, nextState) {
|
|
3201
|
+
function shouldRender(component, nextProps, nextState, updateStrategy = "customDeep") {
|
|
3202
|
+
if (updateStrategy === "always") {
|
|
3203
|
+
return true;
|
|
3204
|
+
}
|
|
3205
|
+
if (updateStrategy === "shallow") {
|
|
3206
|
+
const { props: props2, state: state2 } = component;
|
|
3207
|
+
return !shallowEquals(props2, nextProps) || !shallowEquals(state2, nextState);
|
|
3208
|
+
}
|
|
3182
3209
|
const { props, state } = component;
|
|
3183
3210
|
return !deepEquals(props, nextProps) || !deepEquals(state, nextState);
|
|
3184
3211
|
}
|
|
@@ -3240,6 +3267,15 @@ function toErrorSchema(errors) {
|
|
|
3240
3267
|
return builder.ErrorSchema;
|
|
3241
3268
|
}
|
|
3242
3269
|
|
|
3270
|
+
// src/toFieldPathId.ts
|
|
3271
|
+
function toFieldPathId(fieldPath, globalFormOptions, parentPath) {
|
|
3272
|
+
const basePath = Array.isArray(parentPath) ? parentPath : parentPath?.path;
|
|
3273
|
+
const childPath = fieldPath === "" ? [] : [fieldPath];
|
|
3274
|
+
const path = basePath ? basePath.concat(...childPath) : childPath;
|
|
3275
|
+
const id = [globalFormOptions.idPrefix, ...path].join(globalFormOptions.idSeparator);
|
|
3276
|
+
return { path, [ID_KEY]: id };
|
|
3277
|
+
}
|
|
3278
|
+
|
|
3243
3279
|
// src/unwrapErrorHandler.ts
|
|
3244
3280
|
var import_isPlainObject3 = __toESM(require("lodash/isPlainObject"), 1);
|
|
3245
3281
|
function unwrapErrorHandler(errorHandler) {
|
|
@@ -3325,7 +3361,7 @@ function withIdRefPrefix(schemaNode) {
|
|
|
3325
3361
|
var import_keys = __toESM(require("lodash/keys"), 1);
|
|
3326
3362
|
var import_pickBy = __toESM(require("lodash/pickBy"), 1);
|
|
3327
3363
|
var import_isPlainObject4 = __toESM(require("lodash/isPlainObject"), 1);
|
|
3328
|
-
var
|
|
3364
|
+
var import_get20 = __toESM(require("lodash/get"), 1);
|
|
3329
3365
|
var import_difference = __toESM(require("lodash/difference"), 1);
|
|
3330
3366
|
function getChangedFields(a, b) {
|
|
3331
3367
|
const aIsPlainObject = (0, import_isPlainObject4.default)(a);
|
|
@@ -3338,7 +3374,7 @@ function getChangedFields(a, b) {
|
|
|
3338
3374
|
} else if (!aIsPlainObject && bIsPlainObject) {
|
|
3339
3375
|
return (0, import_keys.default)(b);
|
|
3340
3376
|
} else {
|
|
3341
|
-
const unequalFields = (0, import_keys.default)((0, import_pickBy.default)(a, (value, key) => !deepEquals(value, (0,
|
|
3377
|
+
const unequalFields = (0, import_keys.default)((0, import_pickBy.default)(a, (value, key) => !deepEquals(value, (0, import_get20.default)(b, key))));
|
|
3342
3378
|
const diffFields = (0, import_difference.default)((0, import_keys.default)(b), (0, import_keys.default)(a));
|
|
3343
3379
|
return [...unequalFields, ...diffFields];
|
|
3344
3380
|
}
|
|
@@ -3383,7 +3419,7 @@ var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
|
|
|
3383
3419
|
var import_forEach = __toESM(require("lodash/forEach"), 1);
|
|
3384
3420
|
|
|
3385
3421
|
// src/parser/ParserValidator.ts
|
|
3386
|
-
var
|
|
3422
|
+
var import_get21 = __toESM(require("lodash/get"), 1);
|
|
3387
3423
|
var ParserValidator = class {
|
|
3388
3424
|
/** Construct the ParserValidator for the given `rootSchema`. This `rootSchema` will be stashed in the `schemaMap`
|
|
3389
3425
|
* first.
|
|
@@ -3409,7 +3445,7 @@ var ParserValidator = class {
|
|
|
3409
3445
|
* @param hash - The hash value at which to map the schema
|
|
3410
3446
|
*/
|
|
3411
3447
|
addSchema(schema, hash) {
|
|
3412
|
-
const key = (0,
|
|
3448
|
+
const key = (0, import_get21.default)(schema, ID_KEY, hash);
|
|
3413
3449
|
const identifiedSchema = { ...schema, [ID_KEY]: key };
|
|
3414
3450
|
const existing = this.schemaMap[key];
|
|
3415
3451
|
if (!existing) {
|
|
@@ -3499,4 +3535,4 @@ function schemaParser(rootSchema) {
|
|
|
3499
3535
|
parseSchema(validator, recurseList, rootSchema, rootSchema);
|
|
3500
3536
|
return validator.getSchemaMap();
|
|
3501
3537
|
}
|
|
3502
|
-
//# sourceMappingURL=index.
|
|
3538
|
+
//# sourceMappingURL=index.cjs.map
|