@rjsf/utils 6.5.2 → 6.6.0
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.cjs +628 -441
- package/dist/index.cjs.map +4 -4
- package/dist/utils.esm.js +624 -437
- package/dist/utils.esm.js.map +4 -4
- package/dist/utils.umd.js +632 -445
- package/lib/ErrorSchemaBuilder.js.map +1 -1
- package/lib/canExpand.js.map +1 -1
- package/lib/constIsAjvDataReference.js +1 -1
- package/lib/constIsAjvDataReference.js.map +1 -1
- package/lib/createSchemaUtils.js +3 -3
- package/lib/createSchemaUtils.js.map +1 -1
- package/lib/enumOptionSelectedValue.js.map +1 -1
- package/lib/enumOptionValueDecoder.js.map +1 -1
- package/lib/enumOptionsDeselectValue.js +1 -1
- package/lib/enumOptionsDeselectValue.js.map +1 -1
- package/lib/enumOptionsIndexForValue.js.map +1 -1
- package/lib/enumOptionsIsSelected.js.map +1 -1
- package/lib/enumOptionsSelectValue.js +1 -1
- package/lib/enumOptionsSelectValue.js.map +1 -1
- package/lib/enumOptionsValueForIndex.js +2 -2
- package/lib/enumOptionsValueForIndex.js.map +1 -1
- package/lib/enums.d.ts +2 -0
- package/lib/enums.js +2 -0
- package/lib/enums.js.map +1 -1
- package/lib/findSchemaDefinition.js +4 -4
- package/lib/findSchemaDefinition.js.map +1 -1
- package/lib/getChangedFields.js +3 -3
- package/lib/getChangedFields.js.map +1 -1
- package/lib/getDiscriminatorFieldFromSchema.js.map +1 -1
- package/lib/getOptionMatchingSimpleDiscriminator.js.map +1 -1
- package/lib/getTestIds.d.ts +1 -1
- package/lib/getTestIds.js +4 -3
- package/lib/getTestIds.js.map +1 -1
- package/lib/getWidget.js +1 -1
- package/lib/getWidget.js.map +1 -1
- package/lib/idGenerators.js.map +1 -1
- package/lib/index.d.ts +6 -6
- package/lib/index.js +6 -6
- package/lib/index.js.map +1 -1
- package/lib/isFormDataAvailable.js +1 -1
- package/lib/isFormDataAvailable.js.map +1 -1
- package/lib/isRootSchema.js +1 -1
- package/lib/isRootSchema.js.map +1 -1
- package/lib/jsonSchemaAugmentation.d.ts +19 -0
- package/lib/jsonSchemaAugmentation.js +2 -0
- package/lib/jsonSchemaAugmentation.js.map +1 -0
- package/lib/mergeDefaultsWithFormData.js +2 -2
- package/lib/mergeDefaultsWithFormData.js.map +1 -1
- package/lib/parser/ParserValidator.js +1 -1
- package/lib/parser/ParserValidator.js.map +1 -1
- package/lib/parser/index.d.ts +1 -1
- package/lib/parser/index.js.map +1 -1
- package/lib/parser/schemaParser.js +2 -2
- package/lib/parser/schemaParser.js.map +1 -1
- package/lib/removeOptionalEmptyObjects.d.ts +2 -0
- package/lib/removeOptionalEmptyObjects.js +8 -29
- package/lib/removeOptionalEmptyObjects.js.map +1 -1
- package/lib/schema/findFieldInSchema.d.ts +2 -2
- package/lib/schema/findFieldInSchema.js +7 -6
- package/lib/schema/findFieldInSchema.js.map +1 -1
- package/lib/schema/findSelectedOptionInXxxOf.js +1 -1
- package/lib/schema/findSelectedOptionInXxxOf.js.map +1 -1
- package/lib/schema/getClosestMatchingOption.js +3 -3
- package/lib/schema/getClosestMatchingOption.js.map +1 -1
- package/lib/schema/getDefaultFormState.d.ts +4 -4
- package/lib/schema/getDefaultFormState.js +17 -22
- package/lib/schema/getDefaultFormState.js.map +1 -1
- package/lib/schema/getFromSchema.d.ts +3 -3
- package/lib/schema/getFromSchema.js +3 -3
- package/lib/schema/getFromSchema.js.map +1 -1
- package/lib/schema/index.d.ts +4 -4
- package/lib/schema/index.js +4 -4
- package/lib/schema/index.js.map +1 -1
- package/lib/schema/isMultiSelect.js.map +1 -1
- package/lib/schema/omitExtraData.d.ts +18 -8
- package/lib/schema/omitExtraData.js +352 -16
- package/lib/schema/omitExtraData.js.map +1 -1
- package/lib/schema/retrieveSchema.d.ts +15 -0
- package/lib/schema/retrieveSchema.js +36 -13
- package/lib/schema/retrieveSchema.js.map +1 -1
- package/lib/schema/sanitizeDataForNewSchema.js.map +1 -1
- package/lib/schema/shallowAllOfMerge.d.ts +11 -0
- package/lib/schema/shallowAllOfMerge.js +18 -0
- package/lib/schema/shallowAllOfMerge.js.map +1 -0
- package/lib/schema/toPathSchema.d.ts +1 -0
- package/lib/schema/toPathSchema.js +2 -1
- package/lib/schema/toPathSchema.js.map +1 -1
- package/lib/shouldRenderOptionalField.js +1 -1
- package/lib/shouldRenderOptionalField.js.map +1 -1
- package/lib/toErrorSchema.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types.d.ts +17 -5
- package/lib/types.js +1 -1
- package/lib/types.js.map +1 -1
- package/lib/useFileWidgetProps.d.ts +1 -1
- package/lib/useFileWidgetProps.js +9 -10
- package/lib/useFileWidgetProps.js.map +1 -1
- package/lib/withIdRefPrefix.js +1 -1
- package/lib/withIdRefPrefix.js.map +1 -1
- package/package.json +11 -11
- package/src/ErrorSchemaBuilder.ts +1 -1
- package/src/canExpand.ts +1 -1
- package/src/constIsAjvDataReference.ts +3 -2
- package/src/createSchemaUtils.ts +22 -20
- package/src/enumOptionSelectedValue.ts +1 -1
- package/src/enumOptionValueDecoder.ts +1 -1
- package/src/enumOptionsDeselectValue.ts +2 -2
- package/src/enumOptionsIndexForValue.ts +1 -1
- package/src/enumOptionsIsSelected.ts +1 -1
- package/src/enumOptionsSelectValue.ts +3 -2
- package/src/enumOptionsValueForIndex.ts +2 -2
- package/src/enums.ts +2 -0
- package/src/findSchemaDefinition.ts +4 -4
- package/src/getChangedFields.ts +4 -3
- package/src/getDiscriminatorFieldFromSchema.ts +1 -1
- package/src/getOptionMatchingSimpleDiscriminator.ts +1 -0
- package/src/getTestIds.ts +4 -3
- package/src/getWidget.tsx +2 -2
- package/src/idGenerators.ts +1 -1
- package/src/index.ts +6 -6
- package/src/isFormDataAvailable.ts +1 -1
- package/src/isRootSchema.ts +1 -1
- package/src/jsonSchemaAugmentation.ts +21 -0
- package/src/mergeDefaultsWithFormData.ts +4 -3
- package/src/parser/ParserValidator.ts +1 -1
- package/src/parser/index.ts +1 -1
- package/src/parser/schemaParser.ts +3 -3
- package/src/removeOptionalEmptyObjects.ts +8 -30
- package/src/schema/findFieldInSchema.ts +10 -8
- package/src/schema/findSelectedOptionInXxxOf.ts +1 -1
- package/src/schema/getClosestMatchingOption.ts +4 -4
- package/src/schema/getDefaultFormState.ts +18 -24
- package/src/schema/getFromSchema.ts +15 -8
- package/src/schema/index.ts +5 -3
- package/src/schema/isMultiSelect.ts +0 -1
- package/src/schema/omitExtraData.ts +398 -19
- package/src/schema/retrieveSchema.ts +41 -15
- package/src/schema/sanitizeDataForNewSchema.ts +1 -1
- package/src/schema/shallowAllOfMerge.ts +19 -0
- package/src/schema/toPathSchema.ts +2 -1
- package/src/shouldRenderOptionalField.ts +2 -2
- package/src/toErrorSchema.ts +1 -1
- package/src/tsconfig.json +0 -1
- package/src/types.ts +18 -5
- package/src/useFileWidgetProps.ts +9 -10
- package/src/withIdRefPrefix.ts +2 -1
package/dist/index.cjs
CHANGED
|
@@ -132,6 +132,7 @@ __export(index_exports, {
|
|
|
132
132
|
isObject: () => isObject,
|
|
133
133
|
isRootSchema: () => isRootSchema,
|
|
134
134
|
isSelect: () => isSelect,
|
|
135
|
+
isValueEmpty: () => isValueEmpty,
|
|
135
136
|
labelValue: () => labelValue,
|
|
136
137
|
localToUTC: () => localToUTC,
|
|
137
138
|
lookupFromFormContext: () => lookupFromFormContext,
|
|
@@ -146,6 +147,7 @@ __export(index_exports, {
|
|
|
146
147
|
pad: () => pad,
|
|
147
148
|
parseDateString: () => parseDateString,
|
|
148
149
|
rangeSpec: () => rangeSpec,
|
|
150
|
+
relaxOptionsForScoring: () => relaxOptionsForScoring,
|
|
149
151
|
removeOptionalEmptyObjects: () => removeOptionalEmptyObjects,
|
|
150
152
|
replaceStringParameters: () => replaceStringParameters,
|
|
151
153
|
resolveUiSchema: () => resolveUiSchema,
|
|
@@ -320,6 +322,9 @@ function createErrorHandler(formData) {
|
|
|
320
322
|
return handler;
|
|
321
323
|
}
|
|
322
324
|
|
|
325
|
+
// src/createSchemaUtils.ts
|
|
326
|
+
var import_get17 = __toESM(require("lodash/get"), 1);
|
|
327
|
+
|
|
323
328
|
// src/deepEquals.ts
|
|
324
329
|
var import_fast_equals = require("fast-equals");
|
|
325
330
|
var deepEquals = (0, import_fast_equals.createCustomEqual)({
|
|
@@ -332,32 +337,13 @@ var deepEquals = (0, import_fast_equals.createCustomEqual)({
|
|
|
332
337
|
});
|
|
333
338
|
var deepEquals_default = deepEquals;
|
|
334
339
|
|
|
335
|
-
// src/schema/findFieldInSchema.ts
|
|
336
|
-
var import_get8 = __toESM(require("lodash/get"), 1);
|
|
337
|
-
var import_has3 = __toESM(require("lodash/has"), 1);
|
|
338
|
-
|
|
339
|
-
// src/schema/findSelectedOptionInXxxOf.ts
|
|
340
|
-
var import_get6 = __toESM(require("lodash/get"), 1);
|
|
341
|
-
|
|
342
|
-
// src/schema/retrieveSchema.ts
|
|
343
|
-
var import_get5 = __toESM(require("lodash/get"), 1);
|
|
344
|
-
var import_set = __toESM(require("lodash/set"), 1);
|
|
345
|
-
var import_times = __toESM(require("lodash/times"), 1);
|
|
346
|
-
var import_transform = __toESM(require("lodash/transform"), 1);
|
|
347
|
-
var import_merge = __toESM(require("lodash/merge"), 1);
|
|
348
|
-
var import_flattenDeep = __toESM(require("lodash/flattenDeep"), 1);
|
|
349
|
-
var import_uniq = __toESM(require("lodash/uniq"), 1);
|
|
350
|
-
var import_isEmpty2 = __toESM(require("lodash/isEmpty"), 1);
|
|
351
|
-
var import_json_schema_merge = require("@x0k/json-schema-merge");
|
|
352
|
-
var import_array = require("@x0k/json-schema-merge/lib/array");
|
|
353
|
-
|
|
354
340
|
// src/findSchemaDefinition.ts
|
|
355
|
-
var import_jsonpointer = __toESM(require("jsonpointer"), 1);
|
|
356
|
-
var import_omit = __toESM(require("lodash/omit"), 1);
|
|
357
|
-
var import_isObject3 = __toESM(require("lodash/isObject"), 1);
|
|
358
|
-
var import_isEmpty = __toESM(require("lodash/isEmpty"), 1);
|
|
359
341
|
var import_fast_uri = __toESM(require("fast-uri"), 1);
|
|
342
|
+
var import_jsonpointer = __toESM(require("jsonpointer"), 1);
|
|
360
343
|
var import_get = __toESM(require("lodash/get"), 1);
|
|
344
|
+
var import_isEmpty = __toESM(require("lodash/isEmpty"), 1);
|
|
345
|
+
var import_isObject3 = __toESM(require("lodash/isObject"), 1);
|
|
346
|
+
var import_omit = __toESM(require("lodash/omit"), 1);
|
|
361
347
|
function findEmbeddedSchemaRecursive(schema, ref) {
|
|
362
348
|
if (ID_KEY in schema && import_fast_uri.default.equal(schema[ID_KEY], ref)) {
|
|
363
349
|
return schema;
|
|
@@ -458,6 +444,13 @@ function findSchemaDefinition($ref, rootSchema = {}, baseURI = (0, import_get.de
|
|
|
458
444
|
return findSchemaDefinitionRecursive($ref, rootSchema, recurseList, baseURI);
|
|
459
445
|
}
|
|
460
446
|
|
|
447
|
+
// src/schema/findFieldInSchema.ts
|
|
448
|
+
var import_get8 = __toESM(require("lodash/get"), 1);
|
|
449
|
+
var import_has3 = __toESM(require("lodash/has"), 1);
|
|
450
|
+
|
|
451
|
+
// src/schema/findSelectedOptionInXxxOf.ts
|
|
452
|
+
var import_get6 = __toESM(require("lodash/get"), 1);
|
|
453
|
+
|
|
461
454
|
// src/getDiscriminatorFieldFromSchema.ts
|
|
462
455
|
var import_get2 = __toESM(require("lodash/get"), 1);
|
|
463
456
|
var import_isString = __toESM(require("lodash/isString"), 1);
|
|
@@ -472,6 +465,16 @@ function getDiscriminatorFieldFromSchema(schema) {
|
|
|
472
465
|
return discriminator;
|
|
473
466
|
}
|
|
474
467
|
|
|
468
|
+
// src/schema/retrieveSchema.ts
|
|
469
|
+
var import_flattenDeep = __toESM(require("lodash/flattenDeep"), 1);
|
|
470
|
+
var import_get5 = __toESM(require("lodash/get"), 1);
|
|
471
|
+
var import_isEmpty2 = __toESM(require("lodash/isEmpty"), 1);
|
|
472
|
+
var import_merge = __toESM(require("lodash/merge"), 1);
|
|
473
|
+
var import_set = __toESM(require("lodash/set"), 1);
|
|
474
|
+
var import_times = __toESM(require("lodash/times"), 1);
|
|
475
|
+
var import_transform = __toESM(require("lodash/transform"), 1);
|
|
476
|
+
var import_uniq = __toESM(require("lodash/uniq"), 1);
|
|
477
|
+
|
|
475
478
|
// src/guessType.ts
|
|
476
479
|
function guessType(value) {
|
|
477
480
|
if (Array.isArray(value)) {
|
|
@@ -613,6 +616,16 @@ function getFirstMatchingOption(validator, formData, options, rootSchema, discri
|
|
|
613
616
|
return 0;
|
|
614
617
|
}
|
|
615
618
|
|
|
619
|
+
// src/schema/shallowAllOfMerge.ts
|
|
620
|
+
var import_json_schema_merge = require("@x0k/json-schema-merge");
|
|
621
|
+
var import_array = require("@x0k/json-schema-merge/lib/array");
|
|
622
|
+
var { compareSchemaDefinitions, compareSchemaValues } = (0, import_json_schema_merge.createComparator)();
|
|
623
|
+
var { mergeArrayOfSchemaDefinitions } = (0, import_json_schema_merge.createMerger)({
|
|
624
|
+
intersectJson: (0, import_array.createIntersector)(compareSchemaValues),
|
|
625
|
+
deduplicateJsonSchemaDef: (0, import_array.createDeduplicator)(compareSchemaDefinitions)
|
|
626
|
+
});
|
|
627
|
+
var shallowAllOfMerge_default = (0, import_json_schema_merge.createShallowAllOfMerge)(mergeArrayOfSchemaDefinitions);
|
|
628
|
+
|
|
616
629
|
// src/schema/retrieveSchema.ts
|
|
617
630
|
function retrieveSchema(validator, schema, rootSchema = {}, rawFormData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs = false) {
|
|
618
631
|
return retrieveSchemaInternal(
|
|
@@ -899,14 +912,8 @@ function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFor
|
|
|
899
912
|
});
|
|
900
913
|
return schema;
|
|
901
914
|
}
|
|
902
|
-
var { compareSchemaDefinitions, compareSchemaValues } = (0, import_json_schema_merge.createComparator)();
|
|
903
|
-
var { mergeArrayOfSchemaDefinitions } = (0, import_json_schema_merge.createMerger)({
|
|
904
|
-
intersectJson: (0, import_array.createIntersector)(compareSchemaValues),
|
|
905
|
-
deduplicateJsonSchemaDef: (0, import_array.createDeduplicator)(compareSchemaDefinitions)
|
|
906
|
-
});
|
|
907
|
-
var shallowAllOfMerge = (0, import_json_schema_merge.createShallowAllOfMerge)(mergeArrayOfSchemaDefinitions);
|
|
908
915
|
function mergeAllOf(schema) {
|
|
909
|
-
return
|
|
916
|
+
return shallowAllOfMerge_default(schema);
|
|
910
917
|
}
|
|
911
918
|
function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = [], experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {
|
|
912
919
|
if (!isObject(schema)) {
|
|
@@ -1013,12 +1020,23 @@ function resolveAnyOrOneOfSchemas(validator, schema, rootSchema, expandAllBranch
|
|
|
1013
1020
|
});
|
|
1014
1021
|
const option = getFirstMatchingOption(validator, formData, anyOrOneOf, rootSchema, discriminator);
|
|
1015
1022
|
if (expandAllBranches) {
|
|
1023
|
+
const relaxed = relaxOptionsForScoring(anyOrOneOf, false, rootSchema);
|
|
1024
|
+
getFirstMatchingOption(validator, formData, relaxed, rootSchema, discriminator);
|
|
1016
1025
|
return anyOrOneOf.map((item) => mergeSchemas(remaining, item));
|
|
1017
1026
|
}
|
|
1018
1027
|
schema = mergeSchemas(remaining, anyOrOneOf[option]);
|
|
1019
1028
|
}
|
|
1020
1029
|
return [schema];
|
|
1021
1030
|
}
|
|
1031
|
+
function relaxOptionsForScoring(options, resolveRefs = false, rootSchema) {
|
|
1032
|
+
return options.map((d) => {
|
|
1033
|
+
if (!isObject(d)) {
|
|
1034
|
+
return d ? {} : { not: {} };
|
|
1035
|
+
}
|
|
1036
|
+
const schema = resolveRefs && rootSchema ? resolveAllReferences(d, rootSchema, []) : d;
|
|
1037
|
+
return schema.additionalProperties === false ? { ...schema, additionalProperties: true } : schema;
|
|
1038
|
+
});
|
|
1039
|
+
}
|
|
1022
1040
|
function resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
1023
1041
|
const { dependencies, ...remainingSchema } = schema;
|
|
1024
1042
|
const resolvedSchemas = resolveAnyOrOneOfSchemas(
|
|
@@ -1200,9 +1218,9 @@ function getFromSchemaInternal(validator, rootSchema, schema, path, experimental
|
|
|
1200
1218
|
if ((0, import_isEmpty3.default)(path)) {
|
|
1201
1219
|
return fieldSchema;
|
|
1202
1220
|
}
|
|
1203
|
-
const pathList = Array.isArray(path) ? path : path.split(".");
|
|
1221
|
+
const pathList = Array.isArray(path) ? [...path] : path.split(".");
|
|
1204
1222
|
const [part, ...nestedPath] = pathList;
|
|
1205
|
-
if (part && (0, import_has2.default)(fieldSchema, part)) {
|
|
1223
|
+
if (part !== void 0 && part !== "" && (0, import_has2.default)(fieldSchema, part)) {
|
|
1206
1224
|
fieldSchema = (0, import_get7.default)(fieldSchema, part);
|
|
1207
1225
|
return getFromSchemaInternal(
|
|
1208
1226
|
validator,
|
|
@@ -1228,6 +1246,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1228
1246
|
const pathList = Array.isArray(path) ? [...path] : path.split(".");
|
|
1229
1247
|
let parentField = schema;
|
|
1230
1248
|
const fieldName = pathList.pop();
|
|
1249
|
+
const fieldNameKey = String(fieldName);
|
|
1231
1250
|
if (pathList.length) {
|
|
1232
1251
|
pathList.forEach((subPath) => {
|
|
1233
1252
|
parentField = getFromSchema(
|
|
@@ -1243,7 +1262,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1243
1262
|
validator,
|
|
1244
1263
|
rootSchema,
|
|
1245
1264
|
parentField,
|
|
1246
|
-
|
|
1265
|
+
fieldNameKey,
|
|
1247
1266
|
ONE_OF_KEY,
|
|
1248
1267
|
(0, import_get8.default)(formData, subPath),
|
|
1249
1268
|
experimental_customMergeAllOf
|
|
@@ -1253,7 +1272,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1253
1272
|
validator,
|
|
1254
1273
|
rootSchema,
|
|
1255
1274
|
parentField,
|
|
1256
|
-
|
|
1275
|
+
fieldNameKey,
|
|
1257
1276
|
ANY_OF_KEY,
|
|
1258
1277
|
(0, import_get8.default)(formData, subPath),
|
|
1259
1278
|
experimental_customMergeAllOf
|
|
@@ -1266,7 +1285,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1266
1285
|
validator,
|
|
1267
1286
|
rootSchema,
|
|
1268
1287
|
parentField,
|
|
1269
|
-
|
|
1288
|
+
fieldNameKey,
|
|
1270
1289
|
ONE_OF_KEY,
|
|
1271
1290
|
formData,
|
|
1272
1291
|
experimental_customMergeAllOf
|
|
@@ -1276,7 +1295,7 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1276
1295
|
validator,
|
|
1277
1296
|
rootSchema,
|
|
1278
1297
|
parentField,
|
|
1279
|
-
|
|
1298
|
+
fieldNameKey,
|
|
1280
1299
|
ANY_OF_KEY,
|
|
1281
1300
|
formData,
|
|
1282
1301
|
experimental_customMergeAllOf
|
|
@@ -1303,15 +1322,11 @@ function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, e
|
|
|
1303
1322
|
);
|
|
1304
1323
|
let isRequired;
|
|
1305
1324
|
if (field && Array.isArray(requiredArray)) {
|
|
1306
|
-
isRequired = requiredArray.includes(
|
|
1325
|
+
isRequired = requiredArray.includes(fieldNameKey);
|
|
1307
1326
|
}
|
|
1308
1327
|
return { field, isRequired };
|
|
1309
1328
|
}
|
|
1310
1329
|
|
|
1311
|
-
// src/schema/getDefaultFormState.ts
|
|
1312
|
-
var import_get12 = __toESM(require("lodash/get"), 1);
|
|
1313
|
-
var import_isEmpty4 = __toESM(require("lodash/isEmpty"), 1);
|
|
1314
|
-
|
|
1315
1330
|
// src/schema/getClosestMatchingOption.ts
|
|
1316
1331
|
var import_get9 = __toESM(require("lodash/get"), 1);
|
|
1317
1332
|
var import_has4 = __toESM(require("lodash/has"), 1);
|
|
@@ -1436,6 +1451,23 @@ function getClosestMatchingOption(validator, rootSchema, formData, options, sele
|
|
|
1436
1451
|
return bestIndex;
|
|
1437
1452
|
}
|
|
1438
1453
|
|
|
1454
|
+
// src/schema/getDefaultFormState.ts
|
|
1455
|
+
var import_get12 = __toESM(require("lodash/get"), 1);
|
|
1456
|
+
var import_isEmpty4 = __toESM(require("lodash/isEmpty"), 1);
|
|
1457
|
+
|
|
1458
|
+
// src/constIsAjvDataReference.ts
|
|
1459
|
+
var import_isString3 = __toESM(require("lodash/isString"), 1);
|
|
1460
|
+
function constIsAjvDataReference(schema) {
|
|
1461
|
+
const schemaConst = schema[CONST_KEY];
|
|
1462
|
+
const schemaType = getSchemaType(schema);
|
|
1463
|
+
return isObject(schemaConst) && (0, import_isString3.default)(schemaConst?.$data) && schemaType !== "object" && schemaType !== "array";
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1466
|
+
// src/isConstant.ts
|
|
1467
|
+
function isConstant(schema) {
|
|
1468
|
+
return Array.isArray(schema.enum) && schema.enum.length === 1 || CONST_KEY in schema;
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1439
1471
|
// src/isFixedItems.ts
|
|
1440
1472
|
function isFixedItems(schema) {
|
|
1441
1473
|
return Array.isArray(schema.items) && schema.items.length > 0 && schema.items.every((item) => isObject(item));
|
|
@@ -1473,7 +1505,7 @@ function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults =
|
|
|
1473
1505
|
const keyExistsInDefaults = isObject(defaults) && key in defaults;
|
|
1474
1506
|
const keyExistsInFormData = key in formData;
|
|
1475
1507
|
const keyDefault = (0, import_get10.default)(defaults, key) ?? {};
|
|
1476
|
-
const defaultValueIsNestedObject = keyExistsInDefaults && Object.
|
|
1508
|
+
const defaultValueIsNestedObject = keyExistsInDefaults && isObject(keyDefault) && Object.values(keyDefault).some((v) => isObject(v));
|
|
1477
1509
|
const keyDefaultIsObject = keyExistsInDefaults && isObject((0, import_get10.default)(defaults, key));
|
|
1478
1510
|
const keyHasFormDataObject = keyExistsInFormData && isObject(keyValue);
|
|
1479
1511
|
if (keyDefaultIsObject && keyHasFormDataObject && !defaultValueIsNestedObject) {
|
|
@@ -1528,40 +1560,6 @@ function mergeObjects(obj1, obj2, concatArrays = false) {
|
|
|
1528
1560
|
);
|
|
1529
1561
|
}
|
|
1530
1562
|
|
|
1531
|
-
// src/isConstant.ts
|
|
1532
|
-
function isConstant(schema) {
|
|
1533
|
-
return Array.isArray(schema.enum) && schema.enum.length === 1 || CONST_KEY in schema;
|
|
1534
|
-
}
|
|
1535
|
-
|
|
1536
|
-
// src/schema/isSelect.ts
|
|
1537
|
-
function isSelect(validator, theSchema, rootSchema = {}, experimental_customMergeAllOf) {
|
|
1538
|
-
const schema = retrieveSchema(validator, theSchema, rootSchema, void 0, experimental_customMergeAllOf);
|
|
1539
|
-
const altSchemas = schema.oneOf || schema.anyOf;
|
|
1540
|
-
if (Array.isArray(schema.enum)) {
|
|
1541
|
-
return true;
|
|
1542
|
-
}
|
|
1543
|
-
if (Array.isArray(altSchemas)) {
|
|
1544
|
-
return altSchemas.every((altSchemas2) => typeof altSchemas2 !== "boolean" && isConstant(altSchemas2));
|
|
1545
|
-
}
|
|
1546
|
-
return false;
|
|
1547
|
-
}
|
|
1548
|
-
|
|
1549
|
-
// src/schema/isMultiSelect.ts
|
|
1550
|
-
function isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) {
|
|
1551
|
-
if (!schema.uniqueItems || !schema.items || typeof schema.items === "boolean") {
|
|
1552
|
-
return false;
|
|
1553
|
-
}
|
|
1554
|
-
return isSelect(validator, schema.items, rootSchema, experimental_customMergeAllOf);
|
|
1555
|
-
}
|
|
1556
|
-
|
|
1557
|
-
// src/constIsAjvDataReference.ts
|
|
1558
|
-
var import_isString3 = __toESM(require("lodash/isString"), 1);
|
|
1559
|
-
function constIsAjvDataReference(schema) {
|
|
1560
|
-
const schemaConst = schema[CONST_KEY];
|
|
1561
|
-
const schemaType = getSchemaType(schema);
|
|
1562
|
-
return isObject(schemaConst) && (0, import_isString3.default)(schemaConst?.$data) && schemaType !== "object" && schemaType !== "array";
|
|
1563
|
-
}
|
|
1564
|
-
|
|
1565
1563
|
// src/optionsList.ts
|
|
1566
1564
|
var import_get11 = __toESM(require("lodash/get"), 1);
|
|
1567
1565
|
|
|
@@ -1642,6 +1640,27 @@ function optionsList(schema, uiSchema) {
|
|
|
1642
1640
|
});
|
|
1643
1641
|
}
|
|
1644
1642
|
|
|
1643
|
+
// src/schema/isSelect.ts
|
|
1644
|
+
function isSelect(validator, theSchema, rootSchema = {}, experimental_customMergeAllOf) {
|
|
1645
|
+
const schema = retrieveSchema(validator, theSchema, rootSchema, void 0, experimental_customMergeAllOf);
|
|
1646
|
+
const altSchemas = schema.oneOf || schema.anyOf;
|
|
1647
|
+
if (Array.isArray(schema.enum)) {
|
|
1648
|
+
return true;
|
|
1649
|
+
}
|
|
1650
|
+
if (Array.isArray(altSchemas)) {
|
|
1651
|
+
return altSchemas.every((altSchemas2) => typeof altSchemas2 !== "boolean" && isConstant(altSchemas2));
|
|
1652
|
+
}
|
|
1653
|
+
return false;
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
// src/schema/isMultiSelect.ts
|
|
1657
|
+
function isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) {
|
|
1658
|
+
if (!schema.uniqueItems || !schema.items || typeof schema.items === "boolean") {
|
|
1659
|
+
return false;
|
|
1660
|
+
}
|
|
1661
|
+
return isSelect(validator, schema.items, rootSchema, experimental_customMergeAllOf);
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1645
1664
|
// src/schema/getDefaultFormState.ts
|
|
1646
1665
|
var PRIMITIVE_TYPES = ["string", "number", "integer", "boolean", "null"];
|
|
1647
1666
|
function getInnerSchemaForArrayItem(schema, additionalItems = 0 /* Ignore */, idx = -1) {
|
|
@@ -2001,14 +2020,11 @@ function getArrayDefaults(validator, rawSchema, {
|
|
|
2001
2020
|
defaults = mergeDefaultsWithFormData(defaults, itemDefaults, mergeExtraDefaults);
|
|
2002
2021
|
}
|
|
2003
2022
|
}
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
if (ignoreMinItemsFlagSet && !required) {
|
|
2010
|
-
return defaults ? defaults : void 0;
|
|
2011
|
-
}
|
|
2023
|
+
if (neverPopulate) {
|
|
2024
|
+
return defaults ?? emptyDefault;
|
|
2025
|
+
}
|
|
2026
|
+
if (ignoreMinItemsFlagSet && !required) {
|
|
2027
|
+
return defaults ? defaults : void 0;
|
|
2012
2028
|
}
|
|
2013
2029
|
let arrayDefault;
|
|
2014
2030
|
const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;
|
|
@@ -2138,210 +2154,269 @@ function getDisplayLabel(validator, schema, uiSchema = {}, rootSchema, globalOpt
|
|
|
2138
2154
|
}
|
|
2139
2155
|
|
|
2140
2156
|
// src/schema/omitExtraData.ts
|
|
2141
|
-
var import_pick = __toESM(require("lodash/pick"), 1);
|
|
2142
|
-
var import_isEmpty5 = __toESM(require("lodash/isEmpty"), 1);
|
|
2143
|
-
var import_get15 = __toESM(require("lodash/get"), 1);
|
|
2144
|
-
|
|
2145
|
-
// src/schema/toPathSchema.ts
|
|
2146
2157
|
var import_get14 = __toESM(require("lodash/get"), 1);
|
|
2147
|
-
var
|
|
2148
|
-
var
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
if (sameSchemaIndex === -1) {
|
|
2154
|
-
return toPathSchemaInternal(
|
|
2155
|
-
validator,
|
|
2156
|
-
_schema,
|
|
2157
|
-
name,
|
|
2158
|
-
rootSchema,
|
|
2159
|
-
formData,
|
|
2160
|
-
_recurseList.concat(_schema),
|
|
2161
|
-
experimental_customMergeAllOf
|
|
2162
|
-
);
|
|
2163
|
-
}
|
|
2158
|
+
var import_isEmpty5 = __toESM(require("lodash/isEmpty"), 1);
|
|
2159
|
+
var import_isNil2 = __toESM(require("lodash/isNil"), 1);
|
|
2160
|
+
var import_pick = __toESM(require("lodash/pick"), 1);
|
|
2161
|
+
function getUsedFormData(formData, fields) {
|
|
2162
|
+
if (fields.length === 0 && typeof formData !== "object") {
|
|
2163
|
+
return formData;
|
|
2164
2164
|
}
|
|
2165
|
-
|
|
2166
|
-
|
|
2165
|
+
const data = (0, import_pick.default)(formData, fields);
|
|
2166
|
+
if (Array.isArray(formData)) {
|
|
2167
|
+
return Object.keys(data).map((key) => data[key]);
|
|
2168
|
+
}
|
|
2169
|
+
return data;
|
|
2170
|
+
}
|
|
2171
|
+
function getFieldNames(pathSchema, formData) {
|
|
2172
|
+
const formValueHasData = (value, isLeaf) => typeof value !== "object" || (0, import_isEmpty5.default)(value) || isLeaf && !(0, import_isEmpty5.default)(value);
|
|
2173
|
+
const getAllPaths = (_obj, acc = [], paths = [[]]) => {
|
|
2174
|
+
const objKeys = Object.keys(_obj);
|
|
2175
|
+
objKeys.forEach((key) => {
|
|
2176
|
+
const data = _obj[key];
|
|
2177
|
+
if (typeof data === "object") {
|
|
2178
|
+
const newPaths = paths.map((path) => [...path, key]);
|
|
2179
|
+
if (data[RJSF_ADDITIONAL_PROPERTIES_FLAG] && data[NAME_KEY] !== "") {
|
|
2180
|
+
acc.push(data[NAME_KEY]);
|
|
2181
|
+
} else {
|
|
2182
|
+
getAllPaths(data, acc, newPaths);
|
|
2183
|
+
}
|
|
2184
|
+
} else if (key === NAME_KEY && data !== "") {
|
|
2185
|
+
paths.forEach((path) => {
|
|
2186
|
+
const formValue = (0, import_get14.default)(formData, path);
|
|
2187
|
+
const isLeaf = objKeys.length === 1;
|
|
2188
|
+
if (formValueHasData(formValue, isLeaf) || Array.isArray(formValue) && formValue.every((val) => formValueHasData(val, isLeaf))) {
|
|
2189
|
+
acc.push(path);
|
|
2190
|
+
}
|
|
2191
|
+
});
|
|
2192
|
+
}
|
|
2193
|
+
});
|
|
2194
|
+
return acc;
|
|
2167
2195
|
};
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2196
|
+
return getAllPaths(pathSchema);
|
|
2197
|
+
}
|
|
2198
|
+
function isValueEmpty(value) {
|
|
2199
|
+
if ((0, import_isNil2.default)(value) || value === "") {
|
|
2200
|
+
return true;
|
|
2201
|
+
}
|
|
2202
|
+
if (Array.isArray(value)) {
|
|
2203
|
+
return value.length === 0;
|
|
2204
|
+
}
|
|
2205
|
+
if (isObject(value)) {
|
|
2206
|
+
return Object.values(value).every(isValueEmpty);
|
|
2207
|
+
}
|
|
2208
|
+
return false;
|
|
2209
|
+
}
|
|
2210
|
+
function doMergeAllOf(schema, experimental_customMergeAllOf) {
|
|
2211
|
+
return experimental_customMergeAllOf ? experimental_customMergeAllOf(schema) : shallowAllOfMerge_default(schema);
|
|
2212
|
+
}
|
|
2213
|
+
function omitExtraData(validator, schema, rootSchema = {}, formData, experimental_customMergeAllOf) {
|
|
2214
|
+
function isObjectValue(value) {
|
|
2215
|
+
return isObject(value);
|
|
2216
|
+
}
|
|
2217
|
+
function isSchemaObj(schemaDef) {
|
|
2218
|
+
return isObject(schemaDef);
|
|
2219
|
+
}
|
|
2220
|
+
function handleObject(schema2, source, target) {
|
|
2221
|
+
const { properties, additionalProperties, patternProperties, propertyNames } = schema2;
|
|
2222
|
+
const requiredSet = new Set(schema2.required ?? []);
|
|
2223
|
+
function setProperty(key, schemaDef, value, required = false) {
|
|
2224
|
+
const v = omit3(schemaDef, value, target[key]);
|
|
2225
|
+
if (!required && isObject(v)) {
|
|
2226
|
+
let sd = isSchemaObj(schemaDef) ? schemaDef : {};
|
|
2227
|
+
if (sd.$ref !== void 0) {
|
|
2228
|
+
sd = findSchemaDefinition(sd.$ref, rootSchema);
|
|
2229
|
+
}
|
|
2230
|
+
const innerRequired = new Set(sd.required ?? []);
|
|
2231
|
+
const shouldDrop = Object.entries(v).every(
|
|
2232
|
+
([k, val]) => !innerRequired.has(k) && isValueEmpty(val)
|
|
2233
|
+
);
|
|
2234
|
+
if (shouldDrop) {
|
|
2235
|
+
return;
|
|
2236
|
+
}
|
|
2237
|
+
}
|
|
2238
|
+
if (v !== void 0) {
|
|
2239
|
+
target[key] = v;
|
|
2240
|
+
}
|
|
2241
|
+
}
|
|
2242
|
+
if (properties !== void 0) {
|
|
2243
|
+
for (const [key, schemaDef] of Object.entries(properties)) {
|
|
2244
|
+
setProperty(key, schemaDef, source[key], requiredSet.has(key));
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
let patternPropertiesRest;
|
|
2248
|
+
if (patternProperties !== void 0) {
|
|
2249
|
+
patternPropertiesRest = [];
|
|
2250
|
+
const patterns = Object.entries(patternProperties).map(([pattern, schemaDef]) => [
|
|
2251
|
+
new RegExp(pattern),
|
|
2252
|
+
schemaDef
|
|
2253
|
+
]);
|
|
2254
|
+
const knownProperties = new Set(Object.keys(properties ?? {}));
|
|
2255
|
+
for (const [key, value] of Object.entries(source)) {
|
|
2256
|
+
if (knownProperties.has(key)) {
|
|
2257
|
+
continue;
|
|
2258
|
+
}
|
|
2259
|
+
const matched = patterns.find(([re]) => re.test(key));
|
|
2260
|
+
if (matched === void 0) {
|
|
2261
|
+
patternPropertiesRest.push(key);
|
|
2262
|
+
continue;
|
|
2263
|
+
}
|
|
2264
|
+
setProperty(key, matched[1], value);
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
if (additionalProperties !== void 0 && additionalProperties !== false) {
|
|
2268
|
+
const addlSchema = additionalProperties;
|
|
2269
|
+
if (patternPropertiesRest !== void 0) {
|
|
2270
|
+
for (const key of patternPropertiesRest) {
|
|
2271
|
+
setProperty(key, addlSchema, source[key]);
|
|
2272
|
+
}
|
|
2273
|
+
} else {
|
|
2274
|
+
const knownProperties = new Set(Object.keys(properties ?? {}));
|
|
2275
|
+
for (const [key, value] of Object.entries(source)) {
|
|
2276
|
+
if (knownProperties.has(key)) {
|
|
2277
|
+
continue;
|
|
2278
|
+
}
|
|
2279
|
+
setProperty(key, addlSchema, value);
|
|
2280
|
+
}
|
|
2281
|
+
}
|
|
2282
|
+
}
|
|
2283
|
+
if (propertyNames !== void 0) {
|
|
2284
|
+
for (const [key, value] of Object.entries(source)) {
|
|
2285
|
+
target[key] = value;
|
|
2286
|
+
}
|
|
2287
|
+
}
|
|
2288
|
+
return target;
|
|
2289
|
+
}
|
|
2290
|
+
function handleArray(schema2, source, target) {
|
|
2291
|
+
const { items, additionalItems } = schema2;
|
|
2292
|
+
if (items !== void 0) {
|
|
2293
|
+
if (Array.isArray(items)) {
|
|
2294
|
+
for (let i = 0; i < items.length; i++) {
|
|
2295
|
+
target.push(omit3(items[i], source[i]));
|
|
2296
|
+
}
|
|
2297
|
+
} else {
|
|
2298
|
+
for (let i = 0; i < source.length; i++) {
|
|
2299
|
+
target.push(omit3(items, source[i]));
|
|
2300
|
+
}
|
|
2301
|
+
}
|
|
2302
|
+
}
|
|
2303
|
+
if (additionalItems) {
|
|
2304
|
+
for (let i = target.length; i < source.length; i++) {
|
|
2305
|
+
target.push(omit3(additionalItems, source[i]));
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2308
|
+
return target;
|
|
2309
|
+
}
|
|
2310
|
+
function handleConditions(schema2, source, target) {
|
|
2311
|
+
const { if: condition, then, else: otherwise } = schema2;
|
|
2312
|
+
if (condition === void 0) {
|
|
2313
|
+
return target;
|
|
2314
|
+
}
|
|
2315
|
+
const isThenBranch = isSchemaObj(condition) ? validator.isValid(condition, source, rootSchema) : condition;
|
|
2316
|
+
const branch = isThenBranch ? then : otherwise;
|
|
2317
|
+
return branch === void 0 ? target : omit3(branch, source, target);
|
|
2318
|
+
}
|
|
2319
|
+
function handleOneOf(oneOf, schema2, source, target) {
|
|
2320
|
+
if (!Array.isArray(oneOf) || isSelect(validator, schema2, rootSchema, experimental_customMergeAllOf)) {
|
|
2321
|
+
return target;
|
|
2322
|
+
}
|
|
2323
|
+
const scoringOptions = relaxOptionsForScoring(oneOf, true, rootSchema);
|
|
2324
|
+
const bestIndex = getClosestMatchingOption(
|
|
2172
2325
|
validator,
|
|
2173
2326
|
rootSchema,
|
|
2174
|
-
|
|
2175
|
-
|
|
2327
|
+
source,
|
|
2328
|
+
scoringOptions,
|
|
2176
2329
|
0,
|
|
2177
|
-
|
|
2330
|
+
getDiscriminatorFieldFromSchema(schema2),
|
|
2178
2331
|
experimental_customMergeAllOf
|
|
2179
2332
|
);
|
|
2180
|
-
const
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
};
|
|
2193
|
-
}
|
|
2194
|
-
if (ADDITIONAL_PROPERTIES_KEY in schema && schema[ADDITIONAL_PROPERTIES_KEY] !== false) {
|
|
2195
|
-
(0, import_set2.default)(pathSchema, RJSF_ADDITIONAL_PROPERTIES_FLAG, true);
|
|
2196
|
-
const additionalSchema = (0, import_isObject11.default)(schema[ADDITIONAL_PROPERTIES_KEY]) ? schema[ADDITIONAL_PROPERTIES_KEY] : {};
|
|
2197
|
-
const definedProperties = (0, import_get14.default)(schema, PROPERTIES_KEY, {});
|
|
2198
|
-
for (const key of Object.keys(formData ?? {})) {
|
|
2199
|
-
if (!(key in definedProperties)) {
|
|
2200
|
-
pathSchema[key] = toPathSchemaInternal(
|
|
2201
|
-
validator,
|
|
2202
|
-
additionalSchema,
|
|
2203
|
-
`${name}.${key}`,
|
|
2204
|
-
rootSchema,
|
|
2205
|
-
(0, import_get14.default)(formData, [key]),
|
|
2206
|
-
_recurseList,
|
|
2207
|
-
experimental_customMergeAllOf
|
|
2208
|
-
);
|
|
2333
|
+
const winning = oneOf[bestIndex];
|
|
2334
|
+
const resolved = isObject(winning) ? resolveAllReferences(winning, rootSchema, []) : scoringOptions[bestIndex];
|
|
2335
|
+
return omit3(resolved, source, target);
|
|
2336
|
+
}
|
|
2337
|
+
function handleAnyOf(schema2, source, target) {
|
|
2338
|
+
const { anyOf } = schema2;
|
|
2339
|
+
if (!Array.isArray(anyOf)) {
|
|
2340
|
+
return target;
|
|
2341
|
+
}
|
|
2342
|
+
if (source === void 0 || Array.isArray(source) && source.length === 0 || isObject(source) && Object.keys(source).length === 0) {
|
|
2343
|
+
for (const branch of anyOf) {
|
|
2344
|
+
target = omit3(branch, source, target);
|
|
2209
2345
|
}
|
|
2346
|
+
return target;
|
|
2210
2347
|
}
|
|
2348
|
+
return handleOneOf(anyOf, schema2, source, target);
|
|
2211
2349
|
}
|
|
2212
|
-
|
|
2213
|
-
const {
|
|
2214
|
-
if (
|
|
2215
|
-
|
|
2216
|
-
if (schemaItems[i]) {
|
|
2217
|
-
pathSchema[i] = toPathSchemaInternal(
|
|
2218
|
-
validator,
|
|
2219
|
-
schemaItems[i],
|
|
2220
|
-
`${name}.${i}`,
|
|
2221
|
-
rootSchema,
|
|
2222
|
-
element,
|
|
2223
|
-
_recurseList,
|
|
2224
|
-
experimental_customMergeAllOf
|
|
2225
|
-
);
|
|
2226
|
-
} else if (schemaAdditionalItems) {
|
|
2227
|
-
pathSchema[i] = toPathSchemaInternal(
|
|
2228
|
-
validator,
|
|
2229
|
-
schemaAdditionalItems,
|
|
2230
|
-
`${name}.${i}`,
|
|
2231
|
-
rootSchema,
|
|
2232
|
-
element,
|
|
2233
|
-
_recurseList,
|
|
2234
|
-
experimental_customMergeAllOf
|
|
2235
|
-
);
|
|
2236
|
-
} else {
|
|
2237
|
-
console.warn(`Unable to generate path schema for "${name}.${i}". No schema defined for it`);
|
|
2238
|
-
}
|
|
2239
|
-
});
|
|
2240
|
-
} else {
|
|
2241
|
-
formData.forEach((element, i) => {
|
|
2242
|
-
pathSchema[i] = toPathSchemaInternal(
|
|
2243
|
-
validator,
|
|
2244
|
-
schemaItems,
|
|
2245
|
-
`${name}.${i}`,
|
|
2246
|
-
rootSchema,
|
|
2247
|
-
element,
|
|
2248
|
-
_recurseList,
|
|
2249
|
-
experimental_customMergeAllOf
|
|
2250
|
-
);
|
|
2251
|
-
});
|
|
2350
|
+
function handleDependencies(schema2, source, target) {
|
|
2351
|
+
const { dependencies } = schema2;
|
|
2352
|
+
if (dependencies === void 0 || !isObjectValue(source)) {
|
|
2353
|
+
return target;
|
|
2252
2354
|
}
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
field,
|
|
2259
|
-
`${name}.${property}`,
|
|
2260
|
-
rootSchema,
|
|
2261
|
-
// It's possible that formData is not an object -- this can happen if an
|
|
2262
|
-
// array item has just been added, but not populated with data yet
|
|
2263
|
-
(0, import_get14.default)(formData, [property]),
|
|
2264
|
-
_recurseList,
|
|
2265
|
-
experimental_customMergeAllOf
|
|
2266
|
-
);
|
|
2355
|
+
for (const [key, deps] of Object.entries(dependencies)) {
|
|
2356
|
+
if (!(key in source) || Array.isArray(deps)) {
|
|
2357
|
+
continue;
|
|
2358
|
+
}
|
|
2359
|
+
target = omit3(deps, source, target);
|
|
2267
2360
|
}
|
|
2361
|
+
return target;
|
|
2268
2362
|
}
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
const objKeys = Object.keys(_obj);
|
|
2290
|
-
objKeys.forEach((key) => {
|
|
2291
|
-
const data = _obj[key];
|
|
2292
|
-
if (typeof data === "object") {
|
|
2293
|
-
const newPaths = paths.map((path) => [...path, key]);
|
|
2294
|
-
if (data[RJSF_ADDITIONAL_PROPERTIES_FLAG] && data[NAME_KEY] !== "") {
|
|
2295
|
-
acc.push(data[NAME_KEY]);
|
|
2296
|
-
} else {
|
|
2297
|
-
getAllPaths(data, acc, newPaths);
|
|
2298
|
-
}
|
|
2299
|
-
} else if (key === NAME_KEY && data !== "") {
|
|
2300
|
-
paths.forEach((path) => {
|
|
2301
|
-
const formValue = (0, import_get15.default)(formData, path);
|
|
2302
|
-
const isLeaf = objKeys.length === 1;
|
|
2303
|
-
if (formValueHasData(formValue, isLeaf) || Array.isArray(formValue) && formValue.every((val) => formValueHasData(val, isLeaf))) {
|
|
2304
|
-
acc.push(path);
|
|
2305
|
-
}
|
|
2306
|
-
});
|
|
2363
|
+
function omit3(schemaDef, source, target) {
|
|
2364
|
+
if (source === void 0 || schemaDef === false) {
|
|
2365
|
+
return void 0;
|
|
2366
|
+
}
|
|
2367
|
+
if (schemaDef === true || (0, import_isEmpty5.default)(schemaDef)) {
|
|
2368
|
+
return source;
|
|
2369
|
+
}
|
|
2370
|
+
let schema2 = schemaDef;
|
|
2371
|
+
const { $ref: ref, allOf } = schema2;
|
|
2372
|
+
if (ref !== void 0) {
|
|
2373
|
+
return omit3(findSchemaDefinition(ref, rootSchema), source, target);
|
|
2374
|
+
}
|
|
2375
|
+
if (allOf) {
|
|
2376
|
+
schema2 = doMergeAllOf(schema2, experimental_customMergeAllOf);
|
|
2377
|
+
}
|
|
2378
|
+
target = handleAnyOf(schema2, source, handleOneOf(schema2.oneOf, schema2, source, target));
|
|
2379
|
+
const type = getSchemaType(schema2);
|
|
2380
|
+
if (type === "object") {
|
|
2381
|
+
if (!isObjectValue(source)) {
|
|
2382
|
+
return void 0;
|
|
2307
2383
|
}
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
}
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
);
|
|
2320
|
-
return getUsedFormData(formData, lodashFieldNames);
|
|
2384
|
+
target = handleObject(schema2, source, isObjectValue(target) ? target : {});
|
|
2385
|
+
} else if (type === "array") {
|
|
2386
|
+
if (!Array.isArray(source)) {
|
|
2387
|
+
return void 0;
|
|
2388
|
+
}
|
|
2389
|
+
target = handleArray(schema2, source, Array.isArray(target) ? target : []);
|
|
2390
|
+
} else if (target === void 0) {
|
|
2391
|
+
target = source;
|
|
2392
|
+
}
|
|
2393
|
+
return handleDependencies(schema2, source, handleConditions(schema2, source, target));
|
|
2394
|
+
}
|
|
2395
|
+
return omit3(schema, formData);
|
|
2321
2396
|
}
|
|
2322
2397
|
|
|
2323
2398
|
// src/schema/sanitizeDataForNewSchema.ts
|
|
2324
|
-
var
|
|
2399
|
+
var import_get15 = __toESM(require("lodash/get"), 1);
|
|
2325
2400
|
var import_has5 = __toESM(require("lodash/has"), 1);
|
|
2326
|
-
var NO_VALUE = Symbol("no Value");
|
|
2401
|
+
var NO_VALUE = /* @__PURE__ */ Symbol("no Value");
|
|
2327
2402
|
function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, data = {}, experimental_customMergeAllOf) {
|
|
2328
2403
|
let newFormData;
|
|
2329
2404
|
if ((0, import_has5.default)(newSchema, PROPERTIES_KEY)) {
|
|
2330
2405
|
const removeOldSchemaData = {};
|
|
2331
2406
|
if ((0, import_has5.default)(oldSchema, PROPERTIES_KEY)) {
|
|
2332
|
-
const properties = (0,
|
|
2407
|
+
const properties = (0, import_get15.default)(oldSchema, PROPERTIES_KEY, {});
|
|
2333
2408
|
Object.keys(properties).forEach((key) => {
|
|
2334
2409
|
if ((0, import_has5.default)(data, key)) {
|
|
2335
2410
|
removeOldSchemaData[key] = void 0;
|
|
2336
2411
|
}
|
|
2337
2412
|
});
|
|
2338
2413
|
}
|
|
2339
|
-
const keys2 = Object.keys((0,
|
|
2414
|
+
const keys2 = Object.keys((0, import_get15.default)(newSchema, PROPERTIES_KEY, {}));
|
|
2340
2415
|
const nestedData = {};
|
|
2341
2416
|
keys2.forEach((key) => {
|
|
2342
|
-
const formValue = (0,
|
|
2343
|
-
let oldKeyedSchema = (0,
|
|
2344
|
-
let newKeyedSchema = (0,
|
|
2417
|
+
const formValue = (0, import_get15.default)(data, key);
|
|
2418
|
+
let oldKeyedSchema = (0, import_get15.default)(oldSchema, [PROPERTIES_KEY, key], {});
|
|
2419
|
+
let newKeyedSchema = (0, import_get15.default)(newSchema, [PROPERTIES_KEY, key], {});
|
|
2345
2420
|
if ((0, import_has5.default)(oldKeyedSchema, REF_KEY)) {
|
|
2346
2421
|
oldKeyedSchema = retrieveSchema(
|
|
2347
2422
|
validator,
|
|
@@ -2360,8 +2435,8 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2360
2435
|
experimental_customMergeAllOf
|
|
2361
2436
|
);
|
|
2362
2437
|
}
|
|
2363
|
-
const oldSchemaTypeForKey = (0,
|
|
2364
|
-
const newSchemaTypeForKey = (0,
|
|
2438
|
+
const oldSchemaTypeForKey = (0, import_get15.default)(oldKeyedSchema, "type");
|
|
2439
|
+
const newSchemaTypeForKey = (0, import_get15.default)(newKeyedSchema, "type");
|
|
2365
2440
|
if (!oldSchemaTypeForKey || oldSchemaTypeForKey === newSchemaTypeForKey) {
|
|
2366
2441
|
if ((0, import_has5.default)(removeOldSchemaData, key)) {
|
|
2367
2442
|
delete removeOldSchemaData[key];
|
|
@@ -2379,17 +2454,17 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2379
2454
|
nestedData[key] = itemData;
|
|
2380
2455
|
}
|
|
2381
2456
|
} else {
|
|
2382
|
-
const newOptionDefault = (0,
|
|
2383
|
-
const oldOptionDefault = (0,
|
|
2457
|
+
const newOptionDefault = (0, import_get15.default)(newKeyedSchema, "default", NO_VALUE);
|
|
2458
|
+
const oldOptionDefault = (0, import_get15.default)(oldKeyedSchema, "default", NO_VALUE);
|
|
2384
2459
|
if (newOptionDefault !== NO_VALUE && newOptionDefault !== formValue) {
|
|
2385
2460
|
if (oldOptionDefault === formValue) {
|
|
2386
2461
|
removeOldSchemaData[key] = newOptionDefault;
|
|
2387
|
-
} else if ((0,
|
|
2462
|
+
} else if ((0, import_get15.default)(newKeyedSchema, "readOnly") === true) {
|
|
2388
2463
|
removeOldSchemaData[key] = void 0;
|
|
2389
2464
|
}
|
|
2390
2465
|
}
|
|
2391
|
-
const newOptionConst = (0,
|
|
2392
|
-
const oldOptionConst = (0,
|
|
2466
|
+
const newOptionConst = (0, import_get15.default)(newKeyedSchema, "const", NO_VALUE);
|
|
2467
|
+
const oldOptionConst = (0, import_get15.default)(oldKeyedSchema, "const", NO_VALUE);
|
|
2393
2468
|
if (newOptionConst !== NO_VALUE && newOptionConst !== formValue) {
|
|
2394
2469
|
removeOldSchemaData[key] = oldOptionConst === formValue ? newOptionConst : void 0;
|
|
2395
2470
|
}
|
|
@@ -2401,9 +2476,9 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2401
2476
|
...removeOldSchemaData,
|
|
2402
2477
|
...nestedData
|
|
2403
2478
|
};
|
|
2404
|
-
} else if ((0,
|
|
2405
|
-
let oldSchemaItems = (0,
|
|
2406
|
-
let newSchemaItems = (0,
|
|
2479
|
+
} else if ((0, import_get15.default)(oldSchema, "type") === "array" && (0, import_get15.default)(newSchema, "type") === "array" && Array.isArray(data)) {
|
|
2480
|
+
let oldSchemaItems = (0, import_get15.default)(oldSchema, "items");
|
|
2481
|
+
let newSchemaItems = (0, import_get15.default)(newSchema, "items");
|
|
2407
2482
|
if (typeof oldSchemaItems === "object" && typeof newSchemaItems === "object" && !Array.isArray(oldSchemaItems) && !Array.isArray(newSchemaItems)) {
|
|
2408
2483
|
if ((0, import_has5.default)(oldSchemaItems, REF_KEY)) {
|
|
2409
2484
|
oldSchemaItems = retrieveSchema(
|
|
@@ -2423,10 +2498,10 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2423
2498
|
experimental_customMergeAllOf
|
|
2424
2499
|
);
|
|
2425
2500
|
}
|
|
2426
|
-
const oldSchemaType = (0,
|
|
2427
|
-
const newSchemaType = (0,
|
|
2501
|
+
const oldSchemaType = (0, import_get15.default)(oldSchemaItems, "type");
|
|
2502
|
+
const newSchemaType = (0, import_get15.default)(newSchemaItems, "type");
|
|
2428
2503
|
if (!oldSchemaType || oldSchemaType === newSchemaType) {
|
|
2429
|
-
const maxItems = (0,
|
|
2504
|
+
const maxItems = (0, import_get15.default)(newSchema, "maxItems", -1);
|
|
2430
2505
|
if (newSchemaType === "object") {
|
|
2431
2506
|
newFormData = data.reduce((newValue, aValue) => {
|
|
2432
2507
|
const itemValue = sanitizeDataForNewSchema(
|
|
@@ -2453,8 +2528,137 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2453
2528
|
return newFormData;
|
|
2454
2529
|
}
|
|
2455
2530
|
|
|
2531
|
+
// src/schema/toPathSchema.ts
|
|
2532
|
+
var import_get16 = __toESM(require("lodash/get"), 1);
|
|
2533
|
+
var import_isObject12 = __toESM(require("lodash/isObject"), 1);
|
|
2534
|
+
var import_set2 = __toESM(require("lodash/set"), 1);
|
|
2535
|
+
function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
|
|
2536
|
+
if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema || IF_KEY in schema) {
|
|
2537
|
+
const _schema = retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf);
|
|
2538
|
+
const sameSchemaIndex = _recurseList.findIndex((item) => deepEquals_default(item, _schema));
|
|
2539
|
+
if (sameSchemaIndex === -1) {
|
|
2540
|
+
return toPathSchemaInternal(
|
|
2541
|
+
validator,
|
|
2542
|
+
_schema,
|
|
2543
|
+
name,
|
|
2544
|
+
rootSchema,
|
|
2545
|
+
formData,
|
|
2546
|
+
_recurseList.concat(_schema),
|
|
2547
|
+
experimental_customMergeAllOf
|
|
2548
|
+
);
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2551
|
+
let pathSchema = {
|
|
2552
|
+
[NAME_KEY]: name.replace(/^\./, "")
|
|
2553
|
+
};
|
|
2554
|
+
if (ONE_OF_KEY in schema || ANY_OF_KEY in schema) {
|
|
2555
|
+
const xxxOf = ONE_OF_KEY in schema ? schema.oneOf : schema.anyOf;
|
|
2556
|
+
const discriminator = getDiscriminatorFieldFromSchema(schema);
|
|
2557
|
+
const index = getClosestMatchingOption(
|
|
2558
|
+
validator,
|
|
2559
|
+
rootSchema,
|
|
2560
|
+
formData,
|
|
2561
|
+
xxxOf,
|
|
2562
|
+
0,
|
|
2563
|
+
discriminator,
|
|
2564
|
+
experimental_customMergeAllOf
|
|
2565
|
+
);
|
|
2566
|
+
const _schema = xxxOf[index];
|
|
2567
|
+
pathSchema = {
|
|
2568
|
+
...pathSchema,
|
|
2569
|
+
...toPathSchemaInternal(
|
|
2570
|
+
validator,
|
|
2571
|
+
_schema,
|
|
2572
|
+
name,
|
|
2573
|
+
rootSchema,
|
|
2574
|
+
formData,
|
|
2575
|
+
_recurseList,
|
|
2576
|
+
experimental_customMergeAllOf
|
|
2577
|
+
)
|
|
2578
|
+
};
|
|
2579
|
+
}
|
|
2580
|
+
if (ADDITIONAL_PROPERTIES_KEY in schema && schema[ADDITIONAL_PROPERTIES_KEY] !== false) {
|
|
2581
|
+
(0, import_set2.default)(pathSchema, RJSF_ADDITIONAL_PROPERTIES_FLAG, true);
|
|
2582
|
+
const additionalSchema = (0, import_isObject12.default)(schema[ADDITIONAL_PROPERTIES_KEY]) ? schema[ADDITIONAL_PROPERTIES_KEY] : {};
|
|
2583
|
+
const definedProperties = (0, import_get16.default)(schema, PROPERTIES_KEY, {});
|
|
2584
|
+
for (const key of Object.keys(formData ?? {})) {
|
|
2585
|
+
if (!(key in definedProperties)) {
|
|
2586
|
+
pathSchema[key] = toPathSchemaInternal(
|
|
2587
|
+
validator,
|
|
2588
|
+
additionalSchema,
|
|
2589
|
+
`${name}.${key}`,
|
|
2590
|
+
rootSchema,
|
|
2591
|
+
(0, import_get16.default)(formData, [key]),
|
|
2592
|
+
_recurseList,
|
|
2593
|
+
experimental_customMergeAllOf
|
|
2594
|
+
);
|
|
2595
|
+
}
|
|
2596
|
+
}
|
|
2597
|
+
}
|
|
2598
|
+
if (ITEMS_KEY in schema && Array.isArray(formData)) {
|
|
2599
|
+
const { items: schemaItems, additionalItems: schemaAdditionalItems } = schema;
|
|
2600
|
+
if (Array.isArray(schemaItems)) {
|
|
2601
|
+
formData.forEach((element, i) => {
|
|
2602
|
+
if (schemaItems[i]) {
|
|
2603
|
+
pathSchema[i] = toPathSchemaInternal(
|
|
2604
|
+
validator,
|
|
2605
|
+
schemaItems[i],
|
|
2606
|
+
`${name}.${i}`,
|
|
2607
|
+
rootSchema,
|
|
2608
|
+
element,
|
|
2609
|
+
_recurseList,
|
|
2610
|
+
experimental_customMergeAllOf
|
|
2611
|
+
);
|
|
2612
|
+
} else if (schemaAdditionalItems) {
|
|
2613
|
+
pathSchema[i] = toPathSchemaInternal(
|
|
2614
|
+
validator,
|
|
2615
|
+
schemaAdditionalItems,
|
|
2616
|
+
`${name}.${i}`,
|
|
2617
|
+
rootSchema,
|
|
2618
|
+
element,
|
|
2619
|
+
_recurseList,
|
|
2620
|
+
experimental_customMergeAllOf
|
|
2621
|
+
);
|
|
2622
|
+
} else {
|
|
2623
|
+
console.warn(`Unable to generate path schema for "${name}.${i}". No schema defined for it`);
|
|
2624
|
+
}
|
|
2625
|
+
});
|
|
2626
|
+
} else {
|
|
2627
|
+
formData.forEach((element, i) => {
|
|
2628
|
+
pathSchema[i] = toPathSchemaInternal(
|
|
2629
|
+
validator,
|
|
2630
|
+
schemaItems,
|
|
2631
|
+
`${name}.${i}`,
|
|
2632
|
+
rootSchema,
|
|
2633
|
+
element,
|
|
2634
|
+
_recurseList,
|
|
2635
|
+
experimental_customMergeAllOf
|
|
2636
|
+
);
|
|
2637
|
+
});
|
|
2638
|
+
}
|
|
2639
|
+
} else if (PROPERTIES_KEY in schema) {
|
|
2640
|
+
for (const property in schema.properties) {
|
|
2641
|
+
const field = (0, import_get16.default)(schema, [PROPERTIES_KEY, property], {});
|
|
2642
|
+
pathSchema[property] = toPathSchemaInternal(
|
|
2643
|
+
validator,
|
|
2644
|
+
field,
|
|
2645
|
+
`${name}.${property}`,
|
|
2646
|
+
rootSchema,
|
|
2647
|
+
// It's possible that formData is not an object -- this can happen if an
|
|
2648
|
+
// array item has just been added, but not populated with data yet
|
|
2649
|
+
(0, import_get16.default)(formData, [property]),
|
|
2650
|
+
_recurseList,
|
|
2651
|
+
experimental_customMergeAllOf
|
|
2652
|
+
);
|
|
2653
|
+
}
|
|
2654
|
+
}
|
|
2655
|
+
return pathSchema;
|
|
2656
|
+
}
|
|
2657
|
+
function toPathSchema(validator, schema, name = "", rootSchema, formData, experimental_customMergeAllOf) {
|
|
2658
|
+
return toPathSchemaInternal(validator, schema, name, rootSchema, formData, void 0, experimental_customMergeAllOf);
|
|
2659
|
+
}
|
|
2660
|
+
|
|
2456
2661
|
// src/createSchemaUtils.ts
|
|
2457
|
-
var import_get17 = __toESM(require("lodash/get"), 1);
|
|
2458
2662
|
var SchemaUtils = class {
|
|
2459
2663
|
/** Constructs the `SchemaUtils` instance with the given `validator` and `rootSchema` stored as instance variables
|
|
2460
2664
|
*
|
|
@@ -2794,31 +2998,6 @@ function dateRangeOptions(start, stop) {
|
|
|
2794
2998
|
return options;
|
|
2795
2999
|
}
|
|
2796
3000
|
|
|
2797
|
-
// src/shallowEquals.ts
|
|
2798
|
-
function shallowEquals(a, b) {
|
|
2799
|
-
if (Object.is(a, b)) {
|
|
2800
|
-
return true;
|
|
2801
|
-
}
|
|
2802
|
-
if (a == null || b == null) {
|
|
2803
|
-
return false;
|
|
2804
|
-
}
|
|
2805
|
-
if (typeof a !== "object" || typeof b !== "object") {
|
|
2806
|
-
return false;
|
|
2807
|
-
}
|
|
2808
|
-
const keysA = Object.keys(a);
|
|
2809
|
-
const keysB = Object.keys(b);
|
|
2810
|
-
if (keysA.length !== keysB.length) {
|
|
2811
|
-
return false;
|
|
2812
|
-
}
|
|
2813
|
-
for (let i = 0; i < keysA.length; i++) {
|
|
2814
|
-
const key = keysA[i];
|
|
2815
|
-
if (!Object.prototype.hasOwnProperty.call(b, key) || !Object.is(a[key], b[key])) {
|
|
2816
|
-
return false;
|
|
2817
|
-
}
|
|
2818
|
-
}
|
|
2819
|
-
return true;
|
|
2820
|
-
}
|
|
2821
|
-
|
|
2822
3001
|
// src/replaceStringParameters.ts
|
|
2823
3002
|
function replaceStringParameters(inputString, params) {
|
|
2824
3003
|
let output = inputString;
|
|
@@ -2835,9 +3014,28 @@ function replaceStringParameters(inputString, params) {
|
|
|
2835
3014
|
return output;
|
|
2836
3015
|
}
|
|
2837
3016
|
|
|
2838
|
-
// src/englishStringTranslator.ts
|
|
2839
|
-
function englishStringTranslator(stringToTranslate, params) {
|
|
2840
|
-
return replaceStringParameters(stringToTranslate, params);
|
|
3017
|
+
// src/englishStringTranslator.ts
|
|
3018
|
+
function englishStringTranslator(stringToTranslate, params) {
|
|
3019
|
+
return replaceStringParameters(stringToTranslate, params);
|
|
3020
|
+
}
|
|
3021
|
+
|
|
3022
|
+
// src/enumOptionsValueForIndex.ts
|
|
3023
|
+
function enumOptionsValueForIndex(valueIndex, allEnumOptions = [], emptyValue) {
|
|
3024
|
+
if (Array.isArray(valueIndex)) {
|
|
3025
|
+
return valueIndex.map((index2) => enumOptionsValueForIndex(index2, allEnumOptions)).filter((val) => val !== void 0);
|
|
3026
|
+
}
|
|
3027
|
+
const index = valueIndex === "" || valueIndex === null ? -1 : Number(valueIndex);
|
|
3028
|
+
const option = allEnumOptions[index];
|
|
3029
|
+
return option ? option.value : emptyValue;
|
|
3030
|
+
}
|
|
3031
|
+
|
|
3032
|
+
// src/enumOptionsDeselectValue.ts
|
|
3033
|
+
function enumOptionsDeselectValue(valueIndex, selected, allEnumOptions = []) {
|
|
3034
|
+
const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);
|
|
3035
|
+
if (Array.isArray(selected)) {
|
|
3036
|
+
return selected.filter((v) => !deepEquals_default(v, value));
|
|
3037
|
+
}
|
|
3038
|
+
return deepEquals_default(value, selected) ? void 0 : selected;
|
|
2841
3039
|
}
|
|
2842
3040
|
|
|
2843
3041
|
// src/enumOptionsIsSelected.ts
|
|
@@ -2870,14 +3068,17 @@ function enumOptionSelectedValue(value, enumOptions, multiple, format = "indexed
|
|
|
2870
3068
|
return typeof indexes === "undefined" ? emptyValue : indexes;
|
|
2871
3069
|
}
|
|
2872
3070
|
|
|
2873
|
-
// src/
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
3071
|
+
// src/enumOptionsSelectValue.ts
|
|
3072
|
+
var import_isNil3 = __toESM(require("lodash/isNil"), 1);
|
|
3073
|
+
function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {
|
|
3074
|
+
const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);
|
|
3075
|
+
if (!(0, import_isNil3.default)(value)) {
|
|
3076
|
+
const index = allEnumOptions.findIndex((opt) => value === opt.value);
|
|
3077
|
+
const all = allEnumOptions.map(({ value: val }) => val);
|
|
3078
|
+
const updated = selected.slice(0, index).concat(value, selected.slice(index));
|
|
3079
|
+
return updated.sort((a, b) => Number(all.indexOf(a) > all.indexOf(b)));
|
|
2877
3080
|
}
|
|
2878
|
-
|
|
2879
|
-
const option = allEnumOptions[index];
|
|
2880
|
-
return option ? option.value : emptyValue;
|
|
3081
|
+
return selected;
|
|
2881
3082
|
}
|
|
2882
3083
|
|
|
2883
3084
|
// src/enumOptionValueDecoder.ts
|
|
@@ -2906,12 +3107,12 @@ function enumOptionValueDecoder(value, enumOptions, format = "indexed", emptyVal
|
|
|
2906
3107
|
}
|
|
2907
3108
|
|
|
2908
3109
|
// src/enumOptionValueEncoder.ts
|
|
2909
|
-
var
|
|
3110
|
+
var import_isNil4 = __toESM(require("lodash/isNil"), 1);
|
|
2910
3111
|
function enumOptionValueEncoder(value, index, format = "indexed") {
|
|
2911
3112
|
if (format !== "realValue") {
|
|
2912
3113
|
return String(index);
|
|
2913
3114
|
}
|
|
2914
|
-
if ((0,
|
|
3115
|
+
if ((0, import_isNil4.default)(value)) {
|
|
2915
3116
|
return "";
|
|
2916
3117
|
}
|
|
2917
3118
|
if (typeof value === "object") {
|
|
@@ -2920,28 +3121,6 @@ function enumOptionValueEncoder(value, index, format = "indexed") {
|
|
|
2920
3121
|
return String(value);
|
|
2921
3122
|
}
|
|
2922
3123
|
|
|
2923
|
-
// src/enumOptionsDeselectValue.ts
|
|
2924
|
-
function enumOptionsDeselectValue(valueIndex, selected, allEnumOptions = []) {
|
|
2925
|
-
const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);
|
|
2926
|
-
if (Array.isArray(selected)) {
|
|
2927
|
-
return selected.filter((v) => !deepEquals_default(v, value));
|
|
2928
|
-
}
|
|
2929
|
-
return deepEquals_default(value, selected) ? void 0 : selected;
|
|
2930
|
-
}
|
|
2931
|
-
|
|
2932
|
-
// src/enumOptionsSelectValue.ts
|
|
2933
|
-
var import_isNil3 = __toESM(require("lodash/isNil"), 1);
|
|
2934
|
-
function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {
|
|
2935
|
-
const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);
|
|
2936
|
-
if (!(0, import_isNil3.default)(value)) {
|
|
2937
|
-
const index = allEnumOptions.findIndex((opt) => value === opt.value);
|
|
2938
|
-
const all = allEnumOptions.map(({ value: val }) => val);
|
|
2939
|
-
const updated = selected.slice(0, index).concat(value, selected.slice(index));
|
|
2940
|
-
return updated.sort((a, b) => Number(all.indexOf(a) > all.indexOf(b)));
|
|
2941
|
-
}
|
|
2942
|
-
return selected;
|
|
2943
|
-
}
|
|
2944
|
-
|
|
2945
3124
|
// src/ErrorSchemaBuilder.ts
|
|
2946
3125
|
var import_cloneDeep = __toESM(require("lodash/cloneDeep"), 1);
|
|
2947
3126
|
var import_get18 = __toESM(require("lodash/get"), 1);
|
|
@@ -3040,11 +3219,11 @@ var ErrorSchemaBuilder = class {
|
|
|
3040
3219
|
};
|
|
3041
3220
|
|
|
3042
3221
|
// src/getChangedFields.ts
|
|
3222
|
+
var import_difference = __toESM(require("lodash/difference"), 1);
|
|
3223
|
+
var import_get19 = __toESM(require("lodash/get"), 1);
|
|
3224
|
+
var import_isPlainObject2 = __toESM(require("lodash/isPlainObject"), 1);
|
|
3043
3225
|
var import_keys = __toESM(require("lodash/keys"), 1);
|
|
3044
3226
|
var import_pickBy = __toESM(require("lodash/pickBy"), 1);
|
|
3045
|
-
var import_isPlainObject2 = __toESM(require("lodash/isPlainObject"), 1);
|
|
3046
|
-
var import_get19 = __toESM(require("lodash/get"), 1);
|
|
3047
|
-
var import_difference = __toESM(require("lodash/difference"), 1);
|
|
3048
3227
|
function getChangedFields(a, b) {
|
|
3049
3228
|
const aIsPlainObject = (0, import_isPlainObject2.default)(a);
|
|
3050
3229
|
const bIsPlainObject = (0, import_isPlainObject2.default)(b);
|
|
@@ -3186,7 +3365,7 @@ function getTemplate(name, registry, uiOptions = {}) {
|
|
|
3186
3365
|
var import_get20 = __toESM(require("lodash/get"), 1);
|
|
3187
3366
|
var import_uniqueId = __toESM(require("lodash/uniqueId"), 1);
|
|
3188
3367
|
function getTestIds() {
|
|
3189
|
-
if (
|
|
3368
|
+
if ((0, import_get20.default)(globalThis, "process.env.NODE_ENV") !== "test") {
|
|
3190
3369
|
return {};
|
|
3191
3370
|
}
|
|
3192
3371
|
const ids = /* @__PURE__ */ new Map();
|
|
@@ -3205,9 +3384,9 @@ function getTestIds() {
|
|
|
3205
3384
|
|
|
3206
3385
|
// src/getWidget.tsx
|
|
3207
3386
|
var import_react = require("react");
|
|
3208
|
-
var import_react_is = __toESM(require("react-is"), 1);
|
|
3209
3387
|
var import_get21 = __toESM(require("lodash/get"), 1);
|
|
3210
3388
|
var import_set4 = __toESM(require("lodash/set"), 1);
|
|
3389
|
+
var import_react_is = __toESM(require("react-is"), 1);
|
|
3211
3390
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
3212
3391
|
var widgetMap = {
|
|
3213
3392
|
boolean: {
|
|
@@ -3368,11 +3547,11 @@ function optionalControlsId(id, element) {
|
|
|
3368
3547
|
}
|
|
3369
3548
|
|
|
3370
3549
|
// src/isFormDataAvailable.ts
|
|
3371
|
-
var import_isNil4 = __toESM(require("lodash/isNil"), 1);
|
|
3372
3550
|
var import_isEmpty6 = __toESM(require("lodash/isEmpty"), 1);
|
|
3373
|
-
var
|
|
3551
|
+
var import_isNil5 = __toESM(require("lodash/isNil"), 1);
|
|
3552
|
+
var import_isObject13 = __toESM(require("lodash/isObject"), 1);
|
|
3374
3553
|
function isFormDataAvailable(formData) {
|
|
3375
|
-
return !(0,
|
|
3554
|
+
return !(0, import_isNil5.default)(formData) && (!(0, import_isObject13.default)(formData) || Array.isArray(formData) || !(0, import_isEmpty6.default)(formData));
|
|
3376
3555
|
}
|
|
3377
3556
|
|
|
3378
3557
|
// src/isRootSchema.ts
|
|
@@ -3410,80 +3589,25 @@ function lookupFromFormContext(regOrFc, toLookup, fallback) {
|
|
|
3410
3589
|
return (0, import_get22.default)(regOrFc, [...lookupPath, toLookup], fallback);
|
|
3411
3590
|
}
|
|
3412
3591
|
|
|
3413
|
-
// src/
|
|
3414
|
-
var
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
return true;
|
|
3418
|
-
}
|
|
3419
|
-
if (Array.isArray(value)) {
|
|
3420
|
-
return value.length === 0;
|
|
3421
|
-
}
|
|
3422
|
-
if (isObject(value)) {
|
|
3423
|
-
const obj = value;
|
|
3424
|
-
const keys2 = Object.keys(obj);
|
|
3425
|
-
return keys2.every((key) => isValueEmpty(obj[key]));
|
|
3426
|
-
}
|
|
3427
|
-
return false;
|
|
3428
|
-
}
|
|
3429
|
-
function removeOptionalEmptyObjects(validator, schema, rootSchema, formData) {
|
|
3430
|
-
if (!isObject(schema)) {
|
|
3431
|
-
return formData;
|
|
3432
|
-
}
|
|
3433
|
-
const resolvedSchema = retrieveSchema(validator, schema, rootSchema, formData);
|
|
3434
|
-
if (Array.isArray(formData)) {
|
|
3435
|
-
const itemsSchema = resolvedSchema.items;
|
|
3436
|
-
if (!itemsSchema) {
|
|
3437
|
-
return formData;
|
|
3438
|
-
}
|
|
3439
|
-
let hasChanges = false;
|
|
3440
|
-
const mapped = formData.map((item, index) => {
|
|
3441
|
-
let itemSchema = itemsSchema;
|
|
3442
|
-
if (Array.isArray(itemsSchema)) {
|
|
3443
|
-
itemSchema = itemsSchema[index] || resolvedSchema.additionalItems || {};
|
|
3444
|
-
}
|
|
3445
|
-
const cleaned = removeOptionalEmptyObjects(validator, itemSchema, rootSchema, item);
|
|
3446
|
-
if (cleaned !== item) {
|
|
3447
|
-
hasChanges = true;
|
|
3448
|
-
}
|
|
3449
|
-
return cleaned === void 0 ? {} : cleaned;
|
|
3450
|
-
});
|
|
3451
|
-
return hasChanges ? mapped : formData;
|
|
3452
|
-
}
|
|
3453
|
-
const { properties, required: requiredFields = [] } = resolvedSchema;
|
|
3454
|
-
if (!isObject(formData) || !properties) {
|
|
3455
|
-
return formData;
|
|
3592
|
+
// src/nameGenerators.ts
|
|
3593
|
+
var bracketNameGenerator = (path, idPrefix, isMultiValue) => {
|
|
3594
|
+
if (!path || path.length === 0) {
|
|
3595
|
+
return idPrefix;
|
|
3456
3596
|
}
|
|
3457
|
-
const
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
for (const key of Object.keys(data)) {
|
|
3461
|
-
const value = data[key];
|
|
3462
|
-
const propertySchema = properties[key] || {};
|
|
3463
|
-
const isRequired = requiredFields.includes(key);
|
|
3464
|
-
const isObj = isObject(value);
|
|
3465
|
-
const isArr = Array.isArray(value);
|
|
3466
|
-
if ((isObj || isArr) && properties[key]) {
|
|
3467
|
-
const cleaned = removeOptionalEmptyObjects(validator, propertySchema, rootSchema, value);
|
|
3468
|
-
if (!isRequired && isValueEmpty(cleaned)) {
|
|
3469
|
-
continue;
|
|
3470
|
-
}
|
|
3471
|
-
result[key] = cleaned;
|
|
3472
|
-
hasAnyValue = true;
|
|
3473
|
-
} else if (!isRequired && isValueEmpty(value) && properties[key]) {
|
|
3474
|
-
continue;
|
|
3475
|
-
} else {
|
|
3476
|
-
result[key] = value;
|
|
3477
|
-
if (!isValueEmpty(value)) {
|
|
3478
|
-
hasAnyValue = true;
|
|
3479
|
-
}
|
|
3597
|
+
const baseName = path.reduce((acc, pathUnit, index) => {
|
|
3598
|
+
if (index === 0) {
|
|
3599
|
+
return `${idPrefix}[${String(pathUnit)}]`;
|
|
3480
3600
|
}
|
|
3601
|
+
return `${acc}[${String(pathUnit)}]`;
|
|
3602
|
+
}, "");
|
|
3603
|
+
return isMultiValue ? `${baseName}[]` : baseName;
|
|
3604
|
+
};
|
|
3605
|
+
var dotNotationNameGenerator = (path, idPrefix, _isMultiValue) => {
|
|
3606
|
+
if (!path || path.length === 0) {
|
|
3607
|
+
return idPrefix;
|
|
3481
3608
|
}
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
}
|
|
3485
|
-
return result;
|
|
3486
|
-
}
|
|
3609
|
+
return `${idPrefix}.${path.map(String).join(".")}`;
|
|
3610
|
+
};
|
|
3487
3611
|
|
|
3488
3612
|
// src/orderProperties.ts
|
|
3489
3613
|
function orderProperties(properties, order) {
|
|
@@ -3541,6 +3665,64 @@ function parseDateString(dateString, includeTime = true) {
|
|
|
3541
3665
|
};
|
|
3542
3666
|
}
|
|
3543
3667
|
|
|
3668
|
+
// src/removeOptionalEmptyObjects.ts
|
|
3669
|
+
function removeOptionalEmptyObjects(validator, schema, rootSchema, formData) {
|
|
3670
|
+
if (!isObject(schema)) {
|
|
3671
|
+
return formData;
|
|
3672
|
+
}
|
|
3673
|
+
const resolvedSchema = retrieveSchema(validator, schema, rootSchema, formData);
|
|
3674
|
+
if (Array.isArray(formData)) {
|
|
3675
|
+
const itemsSchema = resolvedSchema.items;
|
|
3676
|
+
if (!itemsSchema) {
|
|
3677
|
+
return formData;
|
|
3678
|
+
}
|
|
3679
|
+
let hasChanges = false;
|
|
3680
|
+
const mapped = formData.map((item, index) => {
|
|
3681
|
+
let itemSchema = itemsSchema;
|
|
3682
|
+
if (Array.isArray(itemsSchema)) {
|
|
3683
|
+
itemSchema = itemsSchema[index] || resolvedSchema.additionalItems || {};
|
|
3684
|
+
}
|
|
3685
|
+
const cleaned = removeOptionalEmptyObjects(validator, itemSchema, rootSchema, item);
|
|
3686
|
+
if (cleaned !== item) {
|
|
3687
|
+
hasChanges = true;
|
|
3688
|
+
}
|
|
3689
|
+
return cleaned === void 0 ? {} : cleaned;
|
|
3690
|
+
});
|
|
3691
|
+
return hasChanges ? mapped : formData;
|
|
3692
|
+
}
|
|
3693
|
+
const { properties, required: requiredFields = [] } = resolvedSchema;
|
|
3694
|
+
if (!isObject(formData) || !properties) {
|
|
3695
|
+
return formData;
|
|
3696
|
+
}
|
|
3697
|
+
const result = {};
|
|
3698
|
+
const data = formData;
|
|
3699
|
+
let hasAnyValue = false;
|
|
3700
|
+
for (const key of Object.keys(data)) {
|
|
3701
|
+
const value = data[key];
|
|
3702
|
+
const propertySchema = properties[key] || {};
|
|
3703
|
+
const isRequired = requiredFields.includes(key);
|
|
3704
|
+
const isObj = isObject(value);
|
|
3705
|
+
const isArr = Array.isArray(value);
|
|
3706
|
+
if ((isObj || isArr) && properties[key]) {
|
|
3707
|
+
const cleaned = removeOptionalEmptyObjects(validator, propertySchema, rootSchema, value);
|
|
3708
|
+
if (!isRequired && isValueEmpty(cleaned)) {
|
|
3709
|
+
continue;
|
|
3710
|
+
}
|
|
3711
|
+
result[key] = cleaned;
|
|
3712
|
+
hasAnyValue = true;
|
|
3713
|
+
} else if (isRequired || !isValueEmpty(value) || !properties[key]) {
|
|
3714
|
+
result[key] = value;
|
|
3715
|
+
if (!isValueEmpty(value)) {
|
|
3716
|
+
hasAnyValue = true;
|
|
3717
|
+
}
|
|
3718
|
+
}
|
|
3719
|
+
}
|
|
3720
|
+
if (!hasAnyValue && Object.keys(result).length === 0) {
|
|
3721
|
+
return void 0;
|
|
3722
|
+
}
|
|
3723
|
+
return result;
|
|
3724
|
+
}
|
|
3725
|
+
|
|
3544
3726
|
// src/resolveUiSchema.ts
|
|
3545
3727
|
var import_isEmpty7 = __toESM(require("lodash/isEmpty"), 1);
|
|
3546
3728
|
function resolveUiSchema(schema, localUiSchema, registry) {
|
|
@@ -3611,6 +3793,31 @@ function schemaRequiresTrueValue(schema) {
|
|
|
3611
3793
|
return false;
|
|
3612
3794
|
}
|
|
3613
3795
|
|
|
3796
|
+
// src/shallowEquals.ts
|
|
3797
|
+
function shallowEquals(a, b) {
|
|
3798
|
+
if (Object.is(a, b)) {
|
|
3799
|
+
return true;
|
|
3800
|
+
}
|
|
3801
|
+
if (a == null || b == null) {
|
|
3802
|
+
return false;
|
|
3803
|
+
}
|
|
3804
|
+
if (typeof a !== "object" || typeof b !== "object") {
|
|
3805
|
+
return false;
|
|
3806
|
+
}
|
|
3807
|
+
const keysA = Object.keys(a);
|
|
3808
|
+
const keysB = Object.keys(b);
|
|
3809
|
+
if (keysA.length !== keysB.length) {
|
|
3810
|
+
return false;
|
|
3811
|
+
}
|
|
3812
|
+
for (let i = 0; i < keysA.length; i++) {
|
|
3813
|
+
const key = keysA[i];
|
|
3814
|
+
if (!Object.prototype.hasOwnProperty.call(b, key) || !Object.is(a[key], b[key])) {
|
|
3815
|
+
return false;
|
|
3816
|
+
}
|
|
3817
|
+
}
|
|
3818
|
+
return true;
|
|
3819
|
+
}
|
|
3820
|
+
|
|
3614
3821
|
// src/shouldRender.ts
|
|
3615
3822
|
function shouldRender(component, nextProps, nextState, updateStrategy = "customDeep") {
|
|
3616
3823
|
if (updateStrategy === "always") {
|
|
@@ -3625,11 +3832,11 @@ function shouldRender(component, nextProps, nextState, updateStrategy = "customD
|
|
|
3625
3832
|
}
|
|
3626
3833
|
|
|
3627
3834
|
// src/shouldRenderOptionalField.ts
|
|
3628
|
-
var
|
|
3835
|
+
var import_isObject15 = __toESM(require("lodash/isObject"), 1);
|
|
3629
3836
|
var import_uniq2 = __toESM(require("lodash/uniq"), 1);
|
|
3630
3837
|
function getSchemaTypesForXxxOf(schemas) {
|
|
3631
3838
|
const allTypes = (0, import_uniq2.default)(
|
|
3632
|
-
schemas.map((s) => (0,
|
|
3839
|
+
schemas.map((s) => (0, import_isObject15.default)(s) ? getSchemaType(s) : void 0).flat().filter((t) => t !== void 0)
|
|
3633
3840
|
);
|
|
3634
3841
|
return allTypes.length === 1 ? allTypes[0] : allTypes;
|
|
3635
3842
|
}
|
|
@@ -3911,15 +4118,14 @@ function useFileWidgetProps(value, onChange, multiple = false) {
|
|
|
3911
4118
|
[value]
|
|
3912
4119
|
);
|
|
3913
4120
|
const handleChange = (0, import_react4.useCallback)(
|
|
3914
|
-
(files) => {
|
|
3915
|
-
processFiles(files)
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
});
|
|
4121
|
+
async (files) => {
|
|
4122
|
+
const filesInfoEvent = await processFiles(files);
|
|
4123
|
+
const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL || null);
|
|
4124
|
+
if (multiple) {
|
|
4125
|
+
onChange(values.concat(...newValue));
|
|
4126
|
+
} else {
|
|
4127
|
+
onChange(newValue[0]);
|
|
4128
|
+
}
|
|
3923
4129
|
},
|
|
3924
4130
|
[values, multiple, onChange]
|
|
3925
4131
|
);
|
|
@@ -3974,7 +4180,7 @@ function validationDataMerge(validationData, additionalErrorSchema, preventDupli
|
|
|
3974
4180
|
}
|
|
3975
4181
|
|
|
3976
4182
|
// src/withIdRefPrefix.ts
|
|
3977
|
-
var
|
|
4183
|
+
var import_isObject16 = __toESM(require("lodash/isObject"), 1);
|
|
3978
4184
|
function withIdRefPrefixObject(node) {
|
|
3979
4185
|
for (const key in node) {
|
|
3980
4186
|
const realObj = node;
|
|
@@ -3997,32 +4203,12 @@ function withIdRefPrefix(schemaNode) {
|
|
|
3997
4203
|
if (Array.isArray(schemaNode)) {
|
|
3998
4204
|
return withIdRefPrefixArray([...schemaNode]);
|
|
3999
4205
|
}
|
|
4000
|
-
if ((0,
|
|
4206
|
+
if ((0, import_isObject16.default)(schemaNode)) {
|
|
4001
4207
|
return withIdRefPrefixObject({ ...schemaNode });
|
|
4002
4208
|
}
|
|
4003
4209
|
return schemaNode;
|
|
4004
4210
|
}
|
|
4005
4211
|
|
|
4006
|
-
// src/nameGenerators.ts
|
|
4007
|
-
var bracketNameGenerator = (path, idPrefix, isMultiValue) => {
|
|
4008
|
-
if (!path || path.length === 0) {
|
|
4009
|
-
return idPrefix;
|
|
4010
|
-
}
|
|
4011
|
-
const baseName = path.reduce((acc, pathUnit, index) => {
|
|
4012
|
-
if (index === 0) {
|
|
4013
|
-
return `${idPrefix}[${String(pathUnit)}]`;
|
|
4014
|
-
}
|
|
4015
|
-
return `${acc}[${String(pathUnit)}]`;
|
|
4016
|
-
}, "");
|
|
4017
|
-
return isMultiValue ? `${baseName}[]` : baseName;
|
|
4018
|
-
};
|
|
4019
|
-
var dotNotationNameGenerator = (path, idPrefix, _isMultiValue) => {
|
|
4020
|
-
if (!path || path.length === 0) {
|
|
4021
|
-
return idPrefix;
|
|
4022
|
-
}
|
|
4023
|
-
return `${idPrefix}.${path.map(String).join(".")}`;
|
|
4024
|
-
};
|
|
4025
|
-
|
|
4026
4212
|
// src/enums.ts
|
|
4027
4213
|
var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
|
|
4028
4214
|
TranslatableString2["ArrayItemTitle"] = "Item";
|
|
@@ -4055,6 +4241,7 @@ var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
|
|
|
4055
4241
|
TranslatableString2["OptionPrefix"] = "Option %1";
|
|
4056
4242
|
TranslatableString2["TitleOptionPrefix"] = "%1 option %2";
|
|
4057
4243
|
TranslatableString2["KeyLabel"] = "%1 Key";
|
|
4244
|
+
TranslatableString2["DeprecatedLabel"] = "%1 (deprecated)";
|
|
4058
4245
|
TranslatableString2["InvalidObjectField"] = 'Invalid "%1" object field configuration: _%2_.';
|
|
4059
4246
|
TranslatableString2["UnsupportedField"] = "Unsupported field schema.";
|
|
4060
4247
|
TranslatableString2["UnsupportedFieldWithId"] = "Unsupported field schema for field `%1`.";
|