@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 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
- toIdSchema: () => toIdSchema,
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 import_get15 = __toESM(require("lodash/get"), 1);
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, import_get15.default)(schema, [PROPERTIES_KEY, property], {});
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, import_get15.default)(formData, [property]),
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 import_get16 = __toESM(require("lodash/get"), 1);
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, import_get16.default)(rootSchema, ID_KEY, "#"));
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 import_get17 = __toESM(require("lodash/get"), 1);
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, import_get17.default)(this.errorSchema, pathOfError) : this.errorSchema;
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, import_get17.default)(errorBlock, ERRORS_KEY);
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 import_get18 = __toESM(require("lodash/get"), 1);
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, import_get18.default)(process, "env.NODE_ENV") !== "test") {
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 import_get19 = __toESM(require("lodash/get"), 1);
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, import_get19.default)(AWidget, "MergedWidget");
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 import_get20 = __toESM(require("lodash/get"), 1);
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, import_get20.default)(regOrFc, [...lookupPath, toLookup], fallback);
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 import_get21 = __toESM(require("lodash/get"), 1);
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, import_get21.default)(b, key))));
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 import_get22 = __toESM(require("lodash/get"), 1);
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, import_get22.default)(schema, ID_KEY, hash);
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) {