@rjsf/utils 5.13.0 → 5.13.2
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 +238 -122
- package/dist/index.js.map +4 -4
- package/dist/utils.esm.js +238 -122
- package/dist/utils.esm.js.map +4 -4
- package/dist/utils.umd.js +218 -108
- package/lib/getOptionMatchingSimpleDiscriminator.d.ts +12 -0
- package/lib/getOptionMatchingSimpleDiscriminator.js +36 -0
- package/lib/getOptionMatchingSimpleDiscriminator.js.map +1 -0
- package/lib/getSchemaType.js +7 -2
- package/lib/getSchemaType.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/schema/getClosestMatchingOption.js +7 -1
- package/lib/schema/getClosestMatchingOption.js.map +1 -1
- package/lib/schema/getDefaultFormState.js +9 -12
- package/lib/schema/getDefaultFormState.js.map +1 -1
- package/lib/schema/getMatchingOption.js +6 -0
- package/lib/schema/getMatchingOption.js.map +1 -1
- package/lib/schema/retrieveSchema.d.ts +23 -13
- package/lib/schema/retrieveSchema.js +65 -41
- package/lib/schema/retrieveSchema.js.map +1 -1
- package/lib/types.d.ts +1 -1
- package/package.json +16 -16
- package/src/getOptionMatchingSimpleDiscriminator.ts +46 -0
- package/src/getSchemaType.ts +6 -2
- package/src/index.ts +2 -0
- package/src/schema/getClosestMatchingOption.ts +9 -1
- package/src/schema/getDefaultFormState.ts +9 -12
- package/src/schema/getMatchingOption.ts +8 -0
- package/src/schema/retrieveSchema.ts +146 -38
- package/src/types.ts +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __rest } from "tslib";
|
|
2
2
|
import get from 'lodash/get';
|
|
3
|
+
import isEqual from 'lodash/isEqual';
|
|
3
4
|
import set from 'lodash/set';
|
|
4
5
|
import times from 'lodash/times';
|
|
5
6
|
import transform from 'lodash/transform';
|
|
@@ -33,32 +34,33 @@ export default function retrieveSchema(validator, schema, rootSchema = {}, rawFo
|
|
|
33
34
|
* @param rootSchema - The root schema that will be forwarded to all the APIs
|
|
34
35
|
* @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and
|
|
35
36
|
* dependencies as a list of schemas
|
|
37
|
+
* @param recurseList - The list of recursive references already processed
|
|
36
38
|
* @param [formData] - The current formData to assist retrieving a schema
|
|
37
39
|
* @returns - A list of schemas with the appropriate conditions resolved, possibly with all branches expanded
|
|
38
40
|
*/
|
|
39
|
-
export function resolveCondition(validator, schema, rootSchema, expandAllBranches, formData) {
|
|
41
|
+
export function resolveCondition(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
40
42
|
const { if: expression, then, else: otherwise } = schema, resolvedSchemaLessConditional = __rest(schema, ["if", "then", "else"]);
|
|
41
43
|
const conditionValue = validator.isValid(expression, formData || {}, rootSchema);
|
|
42
44
|
let resolvedSchemas = [resolvedSchemaLessConditional];
|
|
43
45
|
let schemas = [];
|
|
44
46
|
if (expandAllBranches) {
|
|
45
47
|
if (then && typeof then !== 'boolean') {
|
|
46
|
-
schemas = schemas.concat(retrieveSchemaInternal(validator, then, rootSchema, formData, expandAllBranches));
|
|
48
|
+
schemas = schemas.concat(retrieveSchemaInternal(validator, then, rootSchema, formData, expandAllBranches, recurseList));
|
|
47
49
|
}
|
|
48
50
|
if (otherwise && typeof otherwise !== 'boolean') {
|
|
49
|
-
schemas = schemas.concat(retrieveSchemaInternal(validator, otherwise, rootSchema, formData, expandAllBranches));
|
|
51
|
+
schemas = schemas.concat(retrieveSchemaInternal(validator, otherwise, rootSchema, formData, expandAllBranches, recurseList));
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
54
|
else {
|
|
53
55
|
const conditionalSchema = conditionValue ? then : otherwise;
|
|
54
56
|
if (conditionalSchema && typeof conditionalSchema !== 'boolean') {
|
|
55
|
-
schemas = schemas.concat(retrieveSchemaInternal(validator, conditionalSchema, rootSchema, formData, expandAllBranches));
|
|
57
|
+
schemas = schemas.concat(retrieveSchemaInternal(validator, conditionalSchema, rootSchema, formData, expandAllBranches, recurseList));
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
if (schemas.length) {
|
|
59
61
|
resolvedSchemas = schemas.map((s) => mergeSchemas(resolvedSchemaLessConditional, s));
|
|
60
62
|
}
|
|
61
|
-
return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches));
|
|
63
|
+
return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList));
|
|
62
64
|
}
|
|
63
65
|
/** Given a list of lists of allOf, anyOf or oneOf values, create a list of lists of all permutations of the values. The
|
|
64
66
|
* `listOfLists` is expected to be all resolved values of the 1st...nth schemas within an `allOf`, `anyOf` or `oneOf`.
|
|
@@ -96,73 +98,88 @@ export function getAllPermutationsOfXxxOf(listOfLists) {
|
|
|
96
98
|
* @param rootSchema - The root schema that will be forwarded to all the APIs
|
|
97
99
|
* @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies
|
|
98
100
|
* as a list of schemas
|
|
101
|
+
* @param recurseList - The list of recursive references already processed
|
|
99
102
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
100
103
|
* @returns - The list of schemas having its references, dependencies and allOf schemas resolved
|
|
101
104
|
*/
|
|
102
|
-
export function resolveSchema(validator, schema, rootSchema, expandAllBranches, formData) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
export function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
106
|
+
const updatedSchemas = resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData);
|
|
107
|
+
if (updatedSchemas.length > 1 || updatedSchemas[0] !== schema) {
|
|
108
|
+
// return the updatedSchemas array if it has either multiple schemas within it
|
|
109
|
+
// OR the first schema is not the same as the original schema
|
|
110
|
+
return updatedSchemas;
|
|
105
111
|
}
|
|
106
112
|
if (DEPENDENCIES_KEY in schema) {
|
|
107
|
-
const resolvedSchemas = resolveDependencies(validator, schema, rootSchema, expandAllBranches, formData);
|
|
113
|
+
const resolvedSchemas = resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData);
|
|
108
114
|
return resolvedSchemas.flatMap((s) => {
|
|
109
|
-
return retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches);
|
|
115
|
+
return retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList);
|
|
110
116
|
});
|
|
111
117
|
}
|
|
112
118
|
if (ALL_OF_KEY in schema && Array.isArray(schema.allOf)) {
|
|
113
|
-
const allOfSchemaElements = schema.allOf.map((allOfSubschema) => retrieveSchemaInternal(validator, allOfSubschema, rootSchema, formData, expandAllBranches));
|
|
119
|
+
const allOfSchemaElements = schema.allOf.map((allOfSubschema) => retrieveSchemaInternal(validator, allOfSubschema, rootSchema, formData, expandAllBranches, recurseList));
|
|
114
120
|
const allPermutations = getAllPermutationsOfXxxOf(allOfSchemaElements);
|
|
115
121
|
return allPermutations.map((permutation) => (Object.assign(Object.assign({}, schema), { allOf: permutation })));
|
|
116
122
|
}
|
|
117
123
|
// No $ref or dependencies or allOf attribute was found, returning the original schema.
|
|
118
124
|
return [schema];
|
|
119
125
|
}
|
|
120
|
-
/** Resolves references within a schema and then returns the `retrieveSchemaInternal()`
|
|
121
|
-
* the `expandAllBranches` flag down to the `retrieveSchemaInternal()`
|
|
126
|
+
/** Resolves all references within a schema and then returns the `retrieveSchemaInternal()` if the resolved schema is
|
|
127
|
+
* actually different than the original. Passes the `expandAllBranches` flag down to the `retrieveSchemaInternal()`
|
|
128
|
+
* helper call.
|
|
122
129
|
*
|
|
123
130
|
* @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs
|
|
124
131
|
* @param schema - The schema for which resolving a reference is desired
|
|
125
132
|
* @param rootSchema - The root schema that will be forwarded to all the APIs
|
|
126
133
|
* @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies
|
|
127
134
|
* as a list of schemas
|
|
135
|
+
* @param recurseList - The list of recursive references already processed
|
|
128
136
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
129
137
|
* @returns - The list schemas retrieved after having all references resolved
|
|
130
138
|
*/
|
|
131
|
-
export function resolveReference(validator, schema, rootSchema, expandAllBranches, formData) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return
|
|
139
|
+
export function resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
140
|
+
const updatedSchema = resolveAllReferences(schema, rootSchema, recurseList);
|
|
141
|
+
if (updatedSchema !== schema) {
|
|
142
|
+
// Only call this if the schema was actually changed by the `resolveAllReferences()` function
|
|
143
|
+
return retrieveSchemaInternal(validator, updatedSchema, rootSchema, formData, expandAllBranches, recurseList);
|
|
144
|
+
}
|
|
145
|
+
return [schema];
|
|
138
146
|
}
|
|
139
|
-
/** Resolves all references within
|
|
147
|
+
/** Resolves all references within the schema itself as well as any of its properties and array items.
|
|
140
148
|
*
|
|
141
149
|
* @param schema - The schema for which resolving all references is desired
|
|
142
150
|
* @param rootSchema - The root schema that will be forwarded to all the APIs
|
|
143
|
-
* @
|
|
151
|
+
* @param recurseList - List of $refs already resolved to prevent recursion
|
|
152
|
+
* @returns - given schema will all references resolved or the original schema if no internal `$refs` were resolved
|
|
144
153
|
*/
|
|
145
|
-
export function resolveAllReferences(schema, rootSchema) {
|
|
154
|
+
export function resolveAllReferences(schema, rootSchema, recurseList) {
|
|
155
|
+
if (!isObject(schema)) {
|
|
156
|
+
return schema;
|
|
157
|
+
}
|
|
146
158
|
let resolvedSchema = schema;
|
|
147
159
|
// resolve top level ref
|
|
148
160
|
if (REF_KEY in resolvedSchema) {
|
|
149
161
|
const { $ref } = resolvedSchema, localSchema = __rest(resolvedSchema, ["$ref"]);
|
|
162
|
+
// Check for a recursive reference and stop the loop
|
|
163
|
+
if (recurseList.includes($ref)) {
|
|
164
|
+
return resolvedSchema;
|
|
165
|
+
}
|
|
166
|
+
recurseList.push($ref);
|
|
150
167
|
// Retrieve the referenced schema definition.
|
|
151
168
|
const refSchema = findSchemaDefinition($ref, rootSchema);
|
|
152
169
|
resolvedSchema = Object.assign(Object.assign({}, refSchema), localSchema);
|
|
153
170
|
}
|
|
154
171
|
if (PROPERTIES_KEY in resolvedSchema) {
|
|
155
172
|
const updatedProps = transform(resolvedSchema[PROPERTIES_KEY], (result, value, key) => {
|
|
156
|
-
result[key] = resolveAllReferences(value, rootSchema);
|
|
173
|
+
result[key] = resolveAllReferences(value, rootSchema, recurseList);
|
|
157
174
|
}, {});
|
|
158
175
|
resolvedSchema = Object.assign(Object.assign({}, resolvedSchema), { [PROPERTIES_KEY]: updatedProps });
|
|
159
176
|
}
|
|
160
177
|
if (ITEMS_KEY in resolvedSchema &&
|
|
161
178
|
!Array.isArray(resolvedSchema.items) &&
|
|
162
179
|
typeof resolvedSchema.items !== 'boolean') {
|
|
163
|
-
resolvedSchema = Object.assign(Object.assign({}, resolvedSchema), { items: resolveAllReferences(resolvedSchema.items, rootSchema) });
|
|
180
|
+
resolvedSchema = Object.assign(Object.assign({}, resolvedSchema), { items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList) });
|
|
164
181
|
}
|
|
165
|
-
return resolvedSchema;
|
|
182
|
+
return isEqual(schema, resolvedSchema) ? schema : resolvedSchema;
|
|
166
183
|
}
|
|
167
184
|
/** Creates new 'properties' items for each key in the `formData`
|
|
168
185
|
*
|
|
@@ -218,18 +235,19 @@ export function stubExistingAdditionalProperties(validator, theSchema, rootSchem
|
|
|
218
235
|
* @param [rawFormData] - The current formData, if any, to assist retrieving a schema
|
|
219
236
|
* @param [expandAllBranches=false] - Flag, if true, will return all possible branches of conditions, any/oneOf and
|
|
220
237
|
* dependencies as a list of schemas
|
|
238
|
+
* @param [recurseList=[]] - The optional, list of recursive references already processed
|
|
221
239
|
* @returns - The schema(s) resulting from having its conditions, additional properties, references and dependencies
|
|
222
240
|
* resolved. Multiple schemas may be returned if `expandAllBranches` is true.
|
|
223
241
|
*/
|
|
224
|
-
export function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false) {
|
|
242
|
+
export function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = []) {
|
|
225
243
|
if (!isObject(schema)) {
|
|
226
244
|
return [{}];
|
|
227
245
|
}
|
|
228
|
-
const resolvedSchemas = resolveSchema(validator, schema, rootSchema, expandAllBranches, rawFormData);
|
|
246
|
+
const resolvedSchemas = resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, rawFormData);
|
|
229
247
|
return resolvedSchemas.flatMap((s) => {
|
|
230
248
|
let resolvedSchema = s;
|
|
231
249
|
if (IF_KEY in resolvedSchema) {
|
|
232
|
-
return resolveCondition(validator, resolvedSchema, rootSchema, expandAllBranches, rawFormData);
|
|
250
|
+
return resolveCondition(validator, resolvedSchema, rootSchema, expandAllBranches, recurseList, rawFormData);
|
|
233
251
|
}
|
|
234
252
|
if (ALL_OF_KEY in resolvedSchema) {
|
|
235
253
|
// resolve allOf schemas
|
|
@@ -281,7 +299,9 @@ export function resolveAnyOrOneOfSchemas(validator, schema, rootSchema, expandAl
|
|
|
281
299
|
const formData = rawFormData === undefined && expandAllBranches ? {} : rawFormData;
|
|
282
300
|
const discriminator = getDiscriminatorFieldFromSchema(schema);
|
|
283
301
|
anyOrOneOf = anyOrOneOf.map((s) => {
|
|
284
|
-
|
|
302
|
+
// Due to anyOf/oneOf possibly using the same $ref we always pass a fresh recurse list array so that each option
|
|
303
|
+
// can resolve recursive references independently
|
|
304
|
+
return resolveAllReferences(s, rootSchema, []);
|
|
285
305
|
});
|
|
286
306
|
// Call this to trigger the set of isValid() calls that the schema parser will need
|
|
287
307
|
const option = getFirstMatchingOption(validator, formData, anyOrOneOf, rootSchema, discriminator);
|
|
@@ -300,14 +320,15 @@ export function resolveAnyOrOneOfSchemas(validator, schema, rootSchema, expandAl
|
|
|
300
320
|
* @param rootSchema - The root schema that will be forwarded to all the APIs
|
|
301
321
|
* @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies
|
|
302
322
|
* as a list of schemas
|
|
323
|
+
* @param recurseList - The list of recursive references already processed
|
|
303
324
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
304
325
|
* @returns - The list of schemas with their dependencies resolved
|
|
305
326
|
*/
|
|
306
|
-
export function resolveDependencies(validator, schema, rootSchema, expandAllBranches, formData) {
|
|
327
|
+
export function resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
307
328
|
// Drop the dependencies from the source schema.
|
|
308
329
|
const { dependencies } = schema, remainingSchema = __rest(schema, ["dependencies"]);
|
|
309
330
|
const resolvedSchemas = resolveAnyOrOneOfSchemas(validator, remainingSchema, rootSchema, expandAllBranches, formData);
|
|
310
|
-
return resolvedSchemas.flatMap((resolvedSchema) => processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, formData));
|
|
331
|
+
return resolvedSchemas.flatMap((resolvedSchema) => processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData));
|
|
311
332
|
}
|
|
312
333
|
/** Processes all the `dependencies` recursively into the list of `resolvedSchema`s as needed. Passes the
|
|
313
334
|
* `expandAllBranches` flag down to the `withDependentSchema()` and the recursive `processDependencies()` helper calls.
|
|
@@ -318,10 +339,11 @@ export function resolveDependencies(validator, schema, rootSchema, expandAllBran
|
|
|
318
339
|
* @param rootSchema - The root schema that will be forwarded to all the APIs
|
|
319
340
|
* @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies
|
|
320
341
|
* as a list of schemas
|
|
342
|
+
* @param recurseList - The list of recursive references already processed
|
|
321
343
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
322
344
|
* @returns - The schema with the `dependencies` resolved into it
|
|
323
345
|
*/
|
|
324
|
-
export function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, formData) {
|
|
346
|
+
export function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
325
347
|
let schemas = [resolvedSchema];
|
|
326
348
|
// Process dependencies updating the local schema properties as appropriate.
|
|
327
349
|
for (const dependencyKey in dependencies) {
|
|
@@ -338,9 +360,9 @@ export function processDependencies(validator, dependencies, resolvedSchema, roo
|
|
|
338
360
|
schemas[0] = withDependentProperties(resolvedSchema, dependencyValue);
|
|
339
361
|
}
|
|
340
362
|
else if (isObject(dependencyValue)) {
|
|
341
|
-
schemas = withDependentSchema(validator, resolvedSchema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, formData);
|
|
363
|
+
schemas = withDependentSchema(validator, resolvedSchema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData);
|
|
342
364
|
}
|
|
343
|
-
return schemas.flatMap((schema) => processDependencies(validator, remainingDependencies, schema, rootSchema, expandAllBranches, formData));
|
|
365
|
+
return schemas.flatMap((schema) => processDependencies(validator, remainingDependencies, schema, rootSchema, expandAllBranches, recurseList, formData));
|
|
344
366
|
}
|
|
345
367
|
return schemas;
|
|
346
368
|
}
|
|
@@ -369,11 +391,12 @@ export function withDependentProperties(schema, additionallyRequired) {
|
|
|
369
391
|
* @param dependencyValue - The potentially dependent schema
|
|
370
392
|
* @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies
|
|
371
393
|
* as a list of schemas
|
|
394
|
+
* @param recurseList - The list of recursive references already processed
|
|
372
395
|
* @param [formData]- The current formData to assist retrieving a schema
|
|
373
396
|
* @returns - The list of schemas with the dependent schema resolved into them
|
|
374
397
|
*/
|
|
375
|
-
export function withDependentSchema(validator, schema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, formData) {
|
|
376
|
-
const dependentSchemas = retrieveSchemaInternal(validator, dependencyValue, rootSchema, formData, expandAllBranches);
|
|
398
|
+
export function withDependentSchema(validator, schema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData) {
|
|
399
|
+
const dependentSchemas = retrieveSchemaInternal(validator, dependencyValue, rootSchema, formData, expandAllBranches, recurseList);
|
|
377
400
|
return dependentSchemas.flatMap((dependent) => {
|
|
378
401
|
const { oneOf } = dependent, dependentSchema = __rest(dependent, ["oneOf"]);
|
|
379
402
|
schema = mergeSchemas(schema, dependentSchema);
|
|
@@ -386,10 +409,10 @@ export function withDependentSchema(validator, schema, rootSchema, dependencyKey
|
|
|
386
409
|
if (typeof subschema === 'boolean' || !(REF_KEY in subschema)) {
|
|
387
410
|
return [subschema];
|
|
388
411
|
}
|
|
389
|
-
return resolveReference(validator, subschema, rootSchema, expandAllBranches, formData);
|
|
412
|
+
return resolveReference(validator, subschema, rootSchema, expandAllBranches, recurseList, formData);
|
|
390
413
|
});
|
|
391
414
|
const allPermutations = getAllPermutationsOfXxxOf(resolvedOneOfs);
|
|
392
|
-
return allPermutations.flatMap((resolvedOneOf) => withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, resolvedOneOf, expandAllBranches, formData));
|
|
415
|
+
return allPermutations.flatMap((resolvedOneOf) => withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, resolvedOneOf, expandAllBranches, recurseList, formData));
|
|
393
416
|
});
|
|
394
417
|
}
|
|
395
418
|
/** Returns a list of `schema`s with the best choice from the `oneOf` options merged into it. If `expandAllBranches` is
|
|
@@ -403,10 +426,11 @@ export function withDependentSchema(validator, schema, rootSchema, dependencyKey
|
|
|
403
426
|
* @param oneOf - The list of schemas representing the oneOf options
|
|
404
427
|
* @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies
|
|
405
428
|
* as a list of schemas
|
|
429
|
+
* @param recurseList - The list of recursive references already processed
|
|
406
430
|
* @param [formData] - The current formData to assist retrieving a schema
|
|
407
431
|
* @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true
|
|
408
432
|
*/
|
|
409
|
-
export function withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, oneOf, expandAllBranches, formData) {
|
|
433
|
+
export function withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, oneOf, expandAllBranches, recurseList, formData) {
|
|
410
434
|
const validSubschemas = oneOf.filter((subschema) => {
|
|
411
435
|
if (typeof subschema === 'boolean' || !subschema || !subschema.properties) {
|
|
412
436
|
return false;
|
|
@@ -431,7 +455,7 @@ export function withExactlyOneSubschema(validator, schema, rootSchema, dependenc
|
|
|
431
455
|
const subschema = s;
|
|
432
456
|
const [dependentSubschema] = splitKeyElementFromObject(dependencyKey, subschema.properties);
|
|
433
457
|
const dependentSchema = Object.assign(Object.assign({}, subschema), { properties: dependentSubschema });
|
|
434
|
-
const schemas = retrieveSchemaInternal(validator, dependentSchema, rootSchema, formData, expandAllBranches);
|
|
458
|
+
const schemas = retrieveSchemaInternal(validator, dependentSchema, rootSchema, formData, expandAllBranches, recurseList);
|
|
435
459
|
return schemas.map((s) => mergeSchemas(schema, s));
|
|
436
460
|
});
|
|
437
461
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieveSchema.js","sourceRoot":"","sources":["../../src/schema/retrieveSchema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"retrieveSchema.js","sourceRoot":"","sources":["../../src/schema/retrieveSchema.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -393,7 +393,7 @@ export type FieldTemplateProps<T = any, S extends StrictRJSFSchema = RJSFSchema,
|
|
|
393
393
|
/** The formData for this field */
|
|
394
394
|
formData?: T;
|
|
395
395
|
/** The value change event handler; Can be called with a new value to change the value for this field */
|
|
396
|
-
onChange: FieldProps['onChange'];
|
|
396
|
+
onChange: FieldProps<T, S, F>['onChange'];
|
|
397
397
|
/** The key change event handler; Called when the key associated with a field is changed for an additionalProperty */
|
|
398
398
|
onKeyChange: (value: string) => () => void;
|
|
399
399
|
/** The property drop/removal event handler; Called when a field is removed in an additionalProperty context */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rjsf/utils",
|
|
3
|
-
"version": "5.13.
|
|
3
|
+
"version": "5.13.2",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"lint": "eslint src test",
|
|
26
26
|
"precommit": "lint-staged",
|
|
27
27
|
"test": "jest",
|
|
28
|
-
"test:debug": "node --inspect-brk node_modules/.bin/jest"
|
|
28
|
+
"test:debug": "node --inspect-brk ../../node_modules/.bin/jest"
|
|
29
29
|
},
|
|
30
30
|
"lint-staged": {
|
|
31
31
|
"{src,test}/**/*.ts?(x)": [
|
|
@@ -44,28 +44,28 @@
|
|
|
44
44
|
"react-is": "^18.2.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@babel/core": "^7.22.
|
|
47
|
+
"@babel/core": "^7.22.17",
|
|
48
48
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
49
49
|
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
|
|
50
|
-
"@babel/preset-env": "^7.22.
|
|
51
|
-
"@babel/preset-react": "^7.22.
|
|
52
|
-
"@babel/preset-typescript": "^7.22.
|
|
50
|
+
"@babel/preset-env": "^7.22.15",
|
|
51
|
+
"@babel/preset-react": "^7.22.15",
|
|
52
|
+
"@babel/preset-typescript": "^7.22.15",
|
|
53
53
|
"@types/json-schema": "^7.0.12",
|
|
54
54
|
"@types/json-schema-merge-allof": "^0.6.1",
|
|
55
|
-
"@types/lodash": "^4.14.
|
|
56
|
-
"@types/react": "^17.0.
|
|
55
|
+
"@types/lodash": "^4.14.198",
|
|
56
|
+
"@types/react": "^17.0.65",
|
|
57
57
|
"@types/react-is": "^17.0.4",
|
|
58
|
-
"@types/react-test-renderer": "^17.0.
|
|
59
|
-
"babel-jest": "^29.6.
|
|
58
|
+
"@types/react-test-renderer": "^17.0.3",
|
|
59
|
+
"babel-jest": "^29.6.4",
|
|
60
60
|
"deep-freeze-es6": "^1.4.1",
|
|
61
|
-
"esbuild": "^0.18.
|
|
62
|
-
"eslint": "^8.
|
|
63
|
-
"jest": "^29.6.
|
|
64
|
-
"jest-environment-jsdom": "^29.6.
|
|
61
|
+
"esbuild": "^0.18.20",
|
|
62
|
+
"eslint": "^8.48.0",
|
|
63
|
+
"jest": "^29.6.4",
|
|
64
|
+
"jest-environment-jsdom": "^29.6.4",
|
|
65
65
|
"react": "^17.0.2",
|
|
66
66
|
"react-test-renderer": "^17.0.2",
|
|
67
67
|
"rimraf": "^5.0.1",
|
|
68
|
-
"rollup": "^3.
|
|
68
|
+
"rollup": "^3.29.0",
|
|
69
69
|
"typescript": "^4.9.5"
|
|
70
70
|
},
|
|
71
71
|
"publishConfig": {
|
|
@@ -86,5 +86,5 @@
|
|
|
86
86
|
"url": "git+https://github.com/rjsf-team/react-jsonschema-form.git"
|
|
87
87
|
},
|
|
88
88
|
"license": "Apache-2.0",
|
|
89
|
-
"gitHead": "
|
|
89
|
+
"gitHead": "4cfaa984c3343d9cbaabd147c5c24b2c01e28726"
|
|
90
90
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import get from 'lodash/get';
|
|
2
|
+
import { PROPERTIES_KEY } from './constants';
|
|
3
|
+
import { RJSFSchema, StrictRJSFSchema } from './types';
|
|
4
|
+
|
|
5
|
+
/** Compares the value of `discriminatorField` within `formData` against the value of `discriminatorField` within schema for each `option`.
|
|
6
|
+
* Returns index of first `option` whose discriminator matches formData. Returns `undefined` if there is no match.
|
|
7
|
+
* This function does not work with discriminators of `"type": "object"` and `"type": "array"`
|
|
8
|
+
*
|
|
9
|
+
* @param formData - The current formData, if any, used to figure out a match
|
|
10
|
+
* @param options - The list of options to find a matching options from
|
|
11
|
+
* @param [discriminatorField] - The optional name of the field within the options object whose value is used to
|
|
12
|
+
* determine which option is selected
|
|
13
|
+
* @returns - The index of the matched option or undefined if there is no match
|
|
14
|
+
*/
|
|
15
|
+
export default function getOptionMatchingSimpleDiscriminator<T = any, S extends StrictRJSFSchema = RJSFSchema>(
|
|
16
|
+
formData: T | undefined,
|
|
17
|
+
options: S[],
|
|
18
|
+
discriminatorField?: string
|
|
19
|
+
): number | undefined {
|
|
20
|
+
if (formData && discriminatorField) {
|
|
21
|
+
const value = get(formData, discriminatorField);
|
|
22
|
+
|
|
23
|
+
if (value === undefined) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
for (let i = 0; i < options.length; i++) {
|
|
28
|
+
const option = options[i];
|
|
29
|
+
const discriminator = get(option, [PROPERTIES_KEY, discriminatorField], {});
|
|
30
|
+
|
|
31
|
+
if (discriminator.type === 'object' || discriminator.type === 'array') {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (discriminator.const === value) {
|
|
36
|
+
return i;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (discriminator.enum?.includes(value)) {
|
|
40
|
+
return i;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return;
|
|
46
|
+
}
|
package/src/getSchemaType.ts
CHANGED
|
@@ -29,8 +29,12 @@ export default function getSchemaType<S extends StrictRJSFSchema = RJSFSchema>(
|
|
|
29
29
|
return 'object';
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
if (Array.isArray(type)
|
|
33
|
-
|
|
32
|
+
if (Array.isArray(type)) {
|
|
33
|
+
if (type.length === 2 && type.includes('null')) {
|
|
34
|
+
type = type.find((type) => type !== 'null');
|
|
35
|
+
} else {
|
|
36
|
+
type = type[0];
|
|
37
|
+
}
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
return type;
|
package/src/index.ts
CHANGED
|
@@ -49,6 +49,7 @@ import unwrapErrorHandler from './unwrapErrorHandler';
|
|
|
49
49
|
import utcToLocal from './utcToLocal';
|
|
50
50
|
import validationDataMerge from './validationDataMerge';
|
|
51
51
|
import withIdRefPrefix from './withIdRefPrefix';
|
|
52
|
+
import getOptionMatchingSimpleDiscriminator from './getOptionMatchingSimpleDiscriminator';
|
|
52
53
|
|
|
53
54
|
export * from './types';
|
|
54
55
|
export * from './enums';
|
|
@@ -79,6 +80,7 @@ export {
|
|
|
79
80
|
findSchemaDefinition,
|
|
80
81
|
getDiscriminatorFieldFromSchema,
|
|
81
82
|
getInputProps,
|
|
83
|
+
getOptionMatchingSimpleDiscriminator,
|
|
82
84
|
getSchemaType,
|
|
83
85
|
getSubmitButtonOptions,
|
|
84
86
|
getTemplate,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
2
|
import has from 'lodash/has';
|
|
3
|
+
import isNumber from 'lodash/isNumber';
|
|
3
4
|
import isObject from 'lodash/isObject';
|
|
4
5
|
import isString from 'lodash/isString';
|
|
5
6
|
import reduce from 'lodash/reduce';
|
|
@@ -11,6 +12,7 @@ import { ONE_OF_KEY, REF_KEY, JUNK_OPTION_ID, ANY_OF_KEY } from '../constants';
|
|
|
11
12
|
import guessType from '../guessType';
|
|
12
13
|
import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '../types';
|
|
13
14
|
import getDiscriminatorFieldFromSchema from '../getDiscriminatorFieldFromSchema';
|
|
15
|
+
import getOptionMatchingSimpleDiscriminator from '../getOptionMatchingSimpleDiscriminator';
|
|
14
16
|
|
|
15
17
|
/** A junk option used to determine when the getFirstMatchingOption call really matches an option rather than returning
|
|
16
18
|
* the first item
|
|
@@ -145,8 +147,14 @@ export default function getClosestMatchingOption<
|
|
|
145
147
|
): number {
|
|
146
148
|
// First resolve any refs in the options
|
|
147
149
|
const resolvedOptions = options.map((option) => {
|
|
148
|
-
return resolveAllReferences(option, rootSchema);
|
|
150
|
+
return resolveAllReferences<S>(option, rootSchema, []);
|
|
149
151
|
});
|
|
152
|
+
|
|
153
|
+
const simpleDiscriminatorMatch = getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField);
|
|
154
|
+
if (isNumber(simpleDiscriminatorMatch)) {
|
|
155
|
+
return simpleDiscriminatorMatch;
|
|
156
|
+
}
|
|
157
|
+
|
|
150
158
|
// Reduce the array of options down to a list of the indexes that are considered matching options
|
|
151
159
|
const allValidIndexes = resolvedOptions.reduce((validList: number[], option, index: number) => {
|
|
152
160
|
const testOptions: S[] = [JUNK_OPTION as S, option];
|
|
@@ -185,7 +185,7 @@ export function computeDefaults<T = any, S extends StrictRJSFSchema = RJSFSchema
|
|
|
185
185
|
schemaToCompute = findSchemaDefinition<S>(refName, rootSchema);
|
|
186
186
|
}
|
|
187
187
|
} else if (DEPENDENCIES_KEY in schema) {
|
|
188
|
-
const resolvedSchema = resolveDependencies<T, S, F>(validator, schema, rootSchema, false, formData);
|
|
188
|
+
const resolvedSchema = resolveDependencies<T, S, F>(validator, schema, rootSchema, false, [], formData);
|
|
189
189
|
schemaToCompute = resolvedSchema[0]; // pick the first element from resolve dependencies
|
|
190
190
|
} else if (isFixedItems(schema)) {
|
|
191
191
|
defaults = (schema.items! as S[]).map((itemSchema: S, idx: number) =>
|
|
@@ -287,16 +287,13 @@ export function computeDefaults<T = any, S extends StrictRJSFSchema = RJSFSchema
|
|
|
287
287
|
.filter((key) => !schema.properties || !schema.properties[key])
|
|
288
288
|
.forEach((key) => keys.add(key));
|
|
289
289
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
.
|
|
295
|
-
.
|
|
296
|
-
|
|
297
|
-
formDataRequired.push(key);
|
|
298
|
-
});
|
|
299
|
-
}
|
|
290
|
+
const formDataRequired: string[] = [];
|
|
291
|
+
Object.keys(formData as GenericObjectType)
|
|
292
|
+
.filter((key) => !schema.properties || !schema.properties[key])
|
|
293
|
+
.forEach((key) => {
|
|
294
|
+
keys.add(key);
|
|
295
|
+
formDataRequired.push(key);
|
|
296
|
+
});
|
|
300
297
|
keys.forEach((key) => {
|
|
301
298
|
const computedDefault = computeDefaults(validator, additionalPropertiesSchema as S, {
|
|
302
299
|
rootSchema,
|
|
@@ -307,7 +304,7 @@ export function computeDefaults<T = any, S extends StrictRJSFSchema = RJSFSchema
|
|
|
307
304
|
rawFormData: get(formData, [key]),
|
|
308
305
|
required: schema.required?.includes(key),
|
|
309
306
|
});
|
|
310
|
-
// Since these are additional properties we don
|
|
307
|
+
// Since these are additional properties we don't need to add the `experimental_defaultFormStateBehavior` prop
|
|
311
308
|
maybeAddDefaultToObject<T>(
|
|
312
309
|
objectDefaults as GenericObjectType,
|
|
313
310
|
key,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
2
|
import has from 'lodash/has';
|
|
3
|
+
import isNumber from 'lodash/isNumber';
|
|
3
4
|
|
|
4
5
|
import { PROPERTIES_KEY } from '../constants';
|
|
5
6
|
import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '../types';
|
|
7
|
+
import getOptionMatchingSimpleDiscriminator from '../getOptionMatchingSimpleDiscriminator';
|
|
6
8
|
|
|
7
9
|
/** Given the `formData` and list of `options`, attempts to find the index of the option that best matches the data.
|
|
8
10
|
* Deprecated, use `getFirstMatchingOption()` instead.
|
|
@@ -32,6 +34,12 @@ export default function getMatchingOption<
|
|
|
32
34
|
if (formData === undefined) {
|
|
33
35
|
return 0;
|
|
34
36
|
}
|
|
37
|
+
|
|
38
|
+
const simpleDiscriminatorMatch = getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField);
|
|
39
|
+
if (isNumber(simpleDiscriminatorMatch)) {
|
|
40
|
+
return simpleDiscriminatorMatch;
|
|
41
|
+
}
|
|
42
|
+
|
|
35
43
|
for (let i = 0; i < options.length; i++) {
|
|
36
44
|
const option = options[i];
|
|
37
45
|
|