@rjsf/utils 6.0.0-beta.19 → 6.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +32 -112
- package/dist/index.cjs.map +4 -4
- package/dist/utils.esm.js +32 -112
- package/dist/utils.esm.js.map +4 -4
- package/dist/utils.umd.js +14 -91
- package/lib/constants.d.ts +2 -0
- package/lib/constants.js +2 -0
- package/lib/constants.js.map +1 -1
- package/lib/createSchemaUtils.js +1 -13
- package/lib/createSchemaUtils.js.map +1 -1
- package/lib/enums.d.ts +3 -3
- package/lib/enums.js +3 -3
- package/lib/idGenerators.d.ts +15 -15
- package/lib/idGenerators.js +8 -8
- package/lib/idGenerators.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/schema/index.d.ts +1 -2
- package/lib/schema/index.js +1 -2
- package/lib/schema/index.js.map +1 -1
- package/lib/toFieldPathId.d.ts +12 -0
- package/lib/toFieldPathId.js +19 -0
- package/lib/toFieldPathId.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types.d.ts +42 -41
- package/package.json +1 -1
- package/src/constants.ts +2 -0
- package/src/createSchemaUtils.ts +0 -24
- package/src/enums.ts +3 -3
- package/src/idGenerators.ts +25 -25
- package/src/index.ts +2 -0
- package/src/schema/index.ts +0 -2
- package/src/toFieldPathId.ts +24 -0
- package/src/types.ts +43 -45
- package/lib/schema/toIdSchema.d.ts +0 -14
- package/lib/schema/toIdSchema.js +0 -62
- package/lib/schema/toIdSchema.js.map +0 -1
- package/src/schema/toIdSchema.ts +0 -131
package/dist/index.cjs
CHANGED
|
@@ -35,6 +35,8 @@ __export(index_exports, {
|
|
|
35
35
|
ALL_OF_KEY: () => ALL_OF_KEY,
|
|
36
36
|
ANY_OF_KEY: () => ANY_OF_KEY,
|
|
37
37
|
CONST_KEY: () => CONST_KEY,
|
|
38
|
+
DEFAULT_ID_PREFIX: () => DEFAULT_ID_PREFIX,
|
|
39
|
+
DEFAULT_ID_SEPARATOR: () => DEFAULT_ID_SEPARATOR,
|
|
38
40
|
DEFAULT_KEY: () => DEFAULT_KEY,
|
|
39
41
|
DEFINITIONS_KEY: () => DEFINITIONS_KEY,
|
|
40
42
|
DEPENDENCIES_KEY: () => DEPENDENCIES_KEY,
|
|
@@ -142,7 +144,7 @@ __export(index_exports, {
|
|
|
142
144
|
toDateString: () => toDateString,
|
|
143
145
|
toErrorList: () => toErrorList,
|
|
144
146
|
toErrorSchema: () => toErrorSchema,
|
|
145
|
-
|
|
147
|
+
toFieldPathId: () => toFieldPathId,
|
|
146
148
|
toPathSchema: () => toPathSchema,
|
|
147
149
|
unwrapErrorHandler: () => unwrapErrorHandler,
|
|
148
150
|
utcToLocal: () => utcToLocal,
|
|
@@ -219,6 +221,8 @@ var REQUIRED_KEY = "required";
|
|
|
219
221
|
var SUBMIT_BTN_OPTIONS_KEY = "submitButtonOptions";
|
|
220
222
|
var REF_KEY = "$ref";
|
|
221
223
|
var SCHEMA_KEY = "$schema";
|
|
224
|
+
var DEFAULT_ID_PREFIX = "root";
|
|
225
|
+
var DEFAULT_ID_SEPARATOR = "_";
|
|
222
226
|
var DISCRIMINATOR_PATH = ["discriminator", "propertyName"];
|
|
223
227
|
var FORM_CONTEXT_NAME = "formContext";
|
|
224
228
|
var LOOKUP_MAP_NAME = "layoutGridLookupMap";
|
|
@@ -2175,80 +2179,8 @@ function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, d
|
|
|
2175
2179
|
return newFormData;
|
|
2176
2180
|
}
|
|
2177
2181
|
|
|
2178
|
-
// src/schema/toIdSchema.ts
|
|
2179
|
-
var import_get14 = __toESM(require("lodash/get"), 1);
|
|
2180
|
-
function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
|
|
2181
|
-
const $id = id || idPrefix;
|
|
2182
|
-
const idSchema = { $id };
|
|
2183
|
-
if (typeof schema === "object") {
|
|
2184
|
-
if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {
|
|
2185
|
-
const _schema = retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf);
|
|
2186
|
-
const sameSchemaIndex = _recurseList.findIndex((item) => deepEquals(item, _schema));
|
|
2187
|
-
if (sameSchemaIndex === -1) {
|
|
2188
|
-
return toIdSchemaInternal(
|
|
2189
|
-
validator,
|
|
2190
|
-
_schema,
|
|
2191
|
-
idPrefix,
|
|
2192
|
-
idSeparator,
|
|
2193
|
-
id,
|
|
2194
|
-
rootSchema,
|
|
2195
|
-
formData,
|
|
2196
|
-
_recurseList.concat(_schema),
|
|
2197
|
-
experimental_customMergeAllOf
|
|
2198
|
-
);
|
|
2199
|
-
}
|
|
2200
|
-
}
|
|
2201
|
-
if (ITEMS_KEY in schema && !(0, import_get14.default)(schema, [ITEMS_KEY, REF_KEY])) {
|
|
2202
|
-
return toIdSchemaInternal(
|
|
2203
|
-
validator,
|
|
2204
|
-
(0, import_get14.default)(schema, ITEMS_KEY),
|
|
2205
|
-
idPrefix,
|
|
2206
|
-
idSeparator,
|
|
2207
|
-
id,
|
|
2208
|
-
rootSchema,
|
|
2209
|
-
formData,
|
|
2210
|
-
_recurseList,
|
|
2211
|
-
experimental_customMergeAllOf
|
|
2212
|
-
);
|
|
2213
|
-
}
|
|
2214
|
-
if (getSchemaType(schema) === "object" && PROPERTIES_KEY in schema) {
|
|
2215
|
-
for (const name in schema.properties) {
|
|
2216
|
-
const field = schema[PROPERTIES_KEY][name];
|
|
2217
|
-
const fieldId = idSchema[ID_KEY] + idSeparator + name;
|
|
2218
|
-
idSchema[name] = toIdSchemaInternal(
|
|
2219
|
-
validator,
|
|
2220
|
-
field,
|
|
2221
|
-
idPrefix,
|
|
2222
|
-
idSeparator,
|
|
2223
|
-
fieldId,
|
|
2224
|
-
rootSchema,
|
|
2225
|
-
// It's possible that formData is not an object -- this can happen if an
|
|
2226
|
-
// array item has just been added, but not populated with data yet
|
|
2227
|
-
(0, import_get14.default)(formData, [name]),
|
|
2228
|
-
_recurseList,
|
|
2229
|
-
experimental_customMergeAllOf
|
|
2230
|
-
);
|
|
2231
|
-
}
|
|
2232
|
-
}
|
|
2233
|
-
}
|
|
2234
|
-
return idSchema;
|
|
2235
|
-
}
|
|
2236
|
-
function toIdSchema(validator, schema, id, rootSchema, formData, idPrefix = "root", idSeparator = "_", experimental_customMergeAllOf) {
|
|
2237
|
-
return toIdSchemaInternal(
|
|
2238
|
-
validator,
|
|
2239
|
-
schema,
|
|
2240
|
-
idPrefix,
|
|
2241
|
-
idSeparator,
|
|
2242
|
-
id,
|
|
2243
|
-
rootSchema,
|
|
2244
|
-
formData,
|
|
2245
|
-
void 0,
|
|
2246
|
-
experimental_customMergeAllOf
|
|
2247
|
-
);
|
|
2248
|
-
}
|
|
2249
|
-
|
|
2250
2182
|
// src/schema/toPathSchema.ts
|
|
2251
|
-
var
|
|
2183
|
+
var import_get14 = __toESM(require("lodash/get"), 1);
|
|
2252
2184
|
var import_set2 = __toESM(require("lodash/set"), 1);
|
|
2253
2185
|
function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
|
|
2254
2186
|
if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {
|
|
@@ -2341,7 +2273,7 @@ function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _re
|
|
|
2341
2273
|
}
|
|
2342
2274
|
} else if (PROPERTIES_KEY in schema) {
|
|
2343
2275
|
for (const property in schema.properties) {
|
|
2344
|
-
const field = (0,
|
|
2276
|
+
const field = (0, import_get14.default)(schema, [PROPERTIES_KEY, property], {});
|
|
2345
2277
|
pathSchema[property] = toPathSchemaInternal(
|
|
2346
2278
|
validator,
|
|
2347
2279
|
field,
|
|
@@ -2349,7 +2281,7 @@ function toPathSchemaInternal(validator, schema, name, rootSchema, formData, _re
|
|
|
2349
2281
|
rootSchema,
|
|
2350
2282
|
// It's possible that formData is not an object -- this can happen if an
|
|
2351
2283
|
// array item has just been added, but not populated with data yet
|
|
2352
|
-
(0,
|
|
2284
|
+
(0, import_get14.default)(formData, [property]),
|
|
2353
2285
|
_recurseList,
|
|
2354
2286
|
experimental_customMergeAllOf
|
|
2355
2287
|
);
|
|
@@ -2362,7 +2294,7 @@ function toPathSchema(validator, schema, name = "", rootSchema, formData, experi
|
|
|
2362
2294
|
}
|
|
2363
2295
|
|
|
2364
2296
|
// src/createSchemaUtils.ts
|
|
2365
|
-
var
|
|
2297
|
+
var import_get15 = __toESM(require("lodash/get"), 1);
|
|
2366
2298
|
var SchemaUtils = class {
|
|
2367
2299
|
/** Constructs the `SchemaUtils` instance with the given `validator` and `rootSchema` stored as instance variables
|
|
2368
2300
|
*
|
|
@@ -2373,7 +2305,7 @@ var SchemaUtils = class {
|
|
|
2373
2305
|
*/
|
|
2374
2306
|
constructor(validator, rootSchema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf) {
|
|
2375
2307
|
if (rootSchema && rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {
|
|
2376
|
-
this.rootSchema = makeAllReferencesAbsolute(rootSchema, (0,
|
|
2308
|
+
this.rootSchema = makeAllReferencesAbsolute(rootSchema, (0, import_get15.default)(rootSchema, ID_KEY, "#"));
|
|
2377
2309
|
} else {
|
|
2378
2310
|
this.rootSchema = rootSchema;
|
|
2379
2311
|
}
|
|
@@ -2601,27 +2533,6 @@ var SchemaUtils = class {
|
|
|
2601
2533
|
this.experimental_customMergeAllOf
|
|
2602
2534
|
);
|
|
2603
2535
|
}
|
|
2604
|
-
/** Generates an `IdSchema` object for the `schema`, recursively
|
|
2605
|
-
*
|
|
2606
|
-
* @param schema - The schema for which the display label flag is desired
|
|
2607
|
-
* @param [id] - The base id for the schema
|
|
2608
|
-
* @param [formData] - The current formData, if any, onto which to provide any missing defaults
|
|
2609
|
-
* @param [idPrefix='root'] - The prefix to use for the id
|
|
2610
|
-
* @param [idSeparator='_'] - The separator to use for the path segments in the id
|
|
2611
|
-
* @returns - The `IdSchema` object for the `schema`
|
|
2612
|
-
*/
|
|
2613
|
-
toIdSchema(schema, id, formData, idPrefix = "root", idSeparator = "_") {
|
|
2614
|
-
return toIdSchema(
|
|
2615
|
-
this.validator,
|
|
2616
|
-
schema,
|
|
2617
|
-
id,
|
|
2618
|
-
this.rootSchema,
|
|
2619
|
-
formData,
|
|
2620
|
-
idPrefix,
|
|
2621
|
-
idSeparator,
|
|
2622
|
-
this.experimental_customMergeAllOf
|
|
2623
|
-
);
|
|
2624
|
-
}
|
|
2625
2536
|
/** Generates an `PathSchema` object for the `schema`, recursively
|
|
2626
2537
|
*
|
|
2627
2538
|
* @param schema - The schema for which the display label flag is desired
|
|
@@ -2804,7 +2715,7 @@ function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {
|
|
|
2804
2715
|
|
|
2805
2716
|
// src/ErrorSchemaBuilder.ts
|
|
2806
2717
|
var import_cloneDeep = __toESM(require("lodash/cloneDeep"), 1);
|
|
2807
|
-
var
|
|
2718
|
+
var import_get16 = __toESM(require("lodash/get"), 1);
|
|
2808
2719
|
var import_set3 = __toESM(require("lodash/set"), 1);
|
|
2809
2720
|
var import_setWith = __toESM(require("lodash/setWith"), 1);
|
|
2810
2721
|
var ErrorSchemaBuilder = class {
|
|
@@ -2833,7 +2744,7 @@ var ErrorSchemaBuilder = class {
|
|
|
2833
2744
|
*/
|
|
2834
2745
|
getOrCreateErrorBlock(pathOfError) {
|
|
2835
2746
|
const hasPath = Array.isArray(pathOfError) && pathOfError.length > 0 || typeof pathOfError === "string";
|
|
2836
|
-
let errorBlock = hasPath ? (0,
|
|
2747
|
+
let errorBlock = hasPath ? (0, import_get16.default)(this.errorSchema, pathOfError) : this.errorSchema;
|
|
2837
2748
|
if (!errorBlock && pathOfError) {
|
|
2838
2749
|
errorBlock = {};
|
|
2839
2750
|
(0, import_setWith.default)(this.errorSchema, pathOfError, errorBlock, Object);
|
|
@@ -2859,7 +2770,7 @@ var ErrorSchemaBuilder = class {
|
|
|
2859
2770
|
*/
|
|
2860
2771
|
addErrors(errorOrList, pathOfError) {
|
|
2861
2772
|
const errorBlock = this.getOrCreateErrorBlock(pathOfError);
|
|
2862
|
-
let errorsList = (0,
|
|
2773
|
+
let errorsList = (0, import_get16.default)(errorBlock, ERRORS_KEY);
|
|
2863
2774
|
if (!Array.isArray(errorsList)) {
|
|
2864
2775
|
errorsList = [];
|
|
2865
2776
|
errorBlock[ERRORS_KEY] = errorsList;
|
|
@@ -3007,10 +2918,10 @@ function getTemplate(name, registry, uiOptions = {}) {
|
|
|
3007
2918
|
}
|
|
3008
2919
|
|
|
3009
2920
|
// src/getTestIds.ts
|
|
3010
|
-
var
|
|
2921
|
+
var import_get17 = __toESM(require("lodash/get"), 1);
|
|
3011
2922
|
var import_uniqueId = __toESM(require("lodash/uniqueId"), 1);
|
|
3012
2923
|
function getTestIds() {
|
|
3013
|
-
if (typeof process === "undefined" || (0,
|
|
2924
|
+
if (typeof process === "undefined" || (0, import_get17.default)(process, "env.NODE_ENV") !== "test") {
|
|
3014
2925
|
return {};
|
|
3015
2926
|
}
|
|
3016
2927
|
const ids = /* @__PURE__ */ new Map();
|
|
@@ -3030,7 +2941,7 @@ function getTestIds() {
|
|
|
3030
2941
|
// src/getWidget.tsx
|
|
3031
2942
|
var import_react = require("react");
|
|
3032
2943
|
var import_react_is = __toESM(require("react-is"), 1);
|
|
3033
|
-
var
|
|
2944
|
+
var import_get18 = __toESM(require("lodash/get"), 1);
|
|
3034
2945
|
var import_set4 = __toESM(require("lodash/set"), 1);
|
|
3035
2946
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
3036
2947
|
var widgetMap = {
|
|
@@ -3086,7 +2997,7 @@ var widgetMap = {
|
|
|
3086
2997
|
}
|
|
3087
2998
|
};
|
|
3088
2999
|
function mergeWidgetOptions(AWidget) {
|
|
3089
|
-
let MergedWidget = (0,
|
|
3000
|
+
let MergedWidget = (0, import_get18.default)(AWidget, "MergedWidget");
|
|
3090
3001
|
if (!MergedWidget) {
|
|
3091
3002
|
const defaultOptions = AWidget.defaultProps && AWidget.defaultProps.options || {};
|
|
3092
3003
|
MergedWidget = ({ options, ...props }) => {
|
|
@@ -3199,14 +3110,14 @@ function localToUTC(dateString) {
|
|
|
3199
3110
|
}
|
|
3200
3111
|
|
|
3201
3112
|
// src/lookupFromFormContext.ts
|
|
3202
|
-
var
|
|
3113
|
+
var import_get19 = __toESM(require("lodash/get"), 1);
|
|
3203
3114
|
var import_has6 = __toESM(require("lodash/has"), 1);
|
|
3204
3115
|
function lookupFromFormContext(regOrFc, toLookup, fallback) {
|
|
3205
3116
|
const lookupPath = [LOOKUP_MAP_NAME];
|
|
3206
3117
|
if ((0, import_has6.default)(regOrFc, FORM_CONTEXT_NAME)) {
|
|
3207
3118
|
lookupPath.unshift(FORM_CONTEXT_NAME);
|
|
3208
3119
|
}
|
|
3209
|
-
return (0,
|
|
3120
|
+
return (0, import_get19.default)(regOrFc, [...lookupPath, toLookup], fallback);
|
|
3210
3121
|
}
|
|
3211
3122
|
|
|
3212
3123
|
// src/orderProperties.ts
|
|
@@ -3356,6 +3267,15 @@ function toErrorSchema(errors) {
|
|
|
3356
3267
|
return builder.ErrorSchema;
|
|
3357
3268
|
}
|
|
3358
3269
|
|
|
3270
|
+
// src/toFieldPathId.ts
|
|
3271
|
+
function toFieldPathId(fieldPath, globalFormOptions, parentPath) {
|
|
3272
|
+
const basePath = Array.isArray(parentPath) ? parentPath : parentPath?.path;
|
|
3273
|
+
const childPath = fieldPath === "" ? [] : [fieldPath];
|
|
3274
|
+
const path = basePath ? basePath.concat(...childPath) : childPath;
|
|
3275
|
+
const id = [globalFormOptions.idPrefix, ...path].join(globalFormOptions.idSeparator);
|
|
3276
|
+
return { path, [ID_KEY]: id };
|
|
3277
|
+
}
|
|
3278
|
+
|
|
3359
3279
|
// src/unwrapErrorHandler.ts
|
|
3360
3280
|
var import_isPlainObject3 = __toESM(require("lodash/isPlainObject"), 1);
|
|
3361
3281
|
function unwrapErrorHandler(errorHandler) {
|
|
@@ -3441,7 +3361,7 @@ function withIdRefPrefix(schemaNode) {
|
|
|
3441
3361
|
var import_keys = __toESM(require("lodash/keys"), 1);
|
|
3442
3362
|
var import_pickBy = __toESM(require("lodash/pickBy"), 1);
|
|
3443
3363
|
var import_isPlainObject4 = __toESM(require("lodash/isPlainObject"), 1);
|
|
3444
|
-
var
|
|
3364
|
+
var import_get20 = __toESM(require("lodash/get"), 1);
|
|
3445
3365
|
var import_difference = __toESM(require("lodash/difference"), 1);
|
|
3446
3366
|
function getChangedFields(a, b) {
|
|
3447
3367
|
const aIsPlainObject = (0, import_isPlainObject4.default)(a);
|
|
@@ -3454,7 +3374,7 @@ function getChangedFields(a, b) {
|
|
|
3454
3374
|
} else if (!aIsPlainObject && bIsPlainObject) {
|
|
3455
3375
|
return (0, import_keys.default)(b);
|
|
3456
3376
|
} else {
|
|
3457
|
-
const unequalFields = (0, import_keys.default)((0, import_pickBy.default)(a, (value, key) => !deepEquals(value, (0,
|
|
3377
|
+
const unequalFields = (0, import_keys.default)((0, import_pickBy.default)(a, (value, key) => !deepEquals(value, (0, import_get20.default)(b, key))));
|
|
3458
3378
|
const diffFields = (0, import_difference.default)((0, import_keys.default)(b), (0, import_keys.default)(a));
|
|
3459
3379
|
return [...unequalFields, ...diffFields];
|
|
3460
3380
|
}
|
|
@@ -3499,7 +3419,7 @@ var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
|
|
|
3499
3419
|
var import_forEach = __toESM(require("lodash/forEach"), 1);
|
|
3500
3420
|
|
|
3501
3421
|
// src/parser/ParserValidator.ts
|
|
3502
|
-
var
|
|
3422
|
+
var import_get21 = __toESM(require("lodash/get"), 1);
|
|
3503
3423
|
var ParserValidator = class {
|
|
3504
3424
|
/** Construct the ParserValidator for the given `rootSchema`. This `rootSchema` will be stashed in the `schemaMap`
|
|
3505
3425
|
* first.
|
|
@@ -3525,7 +3445,7 @@ var ParserValidator = class {
|
|
|
3525
3445
|
* @param hash - The hash value at which to map the schema
|
|
3526
3446
|
*/
|
|
3527
3447
|
addSchema(schema, hash) {
|
|
3528
|
-
const key = (0,
|
|
3448
|
+
const key = (0, import_get21.default)(schema, ID_KEY, hash);
|
|
3529
3449
|
const identifiedSchema = { ...schema, [ID_KEY]: key };
|
|
3530
3450
|
const existing = this.schemaMap[key];
|
|
3531
3451
|
if (!existing) {
|