@rjsf/utils 6.0.0-beta.20 → 6.0.0-beta.22

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.
Files changed (63) hide show
  1. package/dist/index.cjs +202 -68
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/utils.esm.js +202 -68
  4. package/dist/utils.esm.js.map +4 -4
  5. package/dist/utils.umd.js +175 -57
  6. package/lib/ErrorSchemaBuilder.d.ts +2 -2
  7. package/lib/createSchemaUtils.js +6 -4
  8. package/lib/createSchemaUtils.js.map +1 -1
  9. package/lib/enums.d.ts +6 -0
  10. package/lib/enums.js +6 -0
  11. package/lib/enums.js.map +1 -1
  12. package/lib/guessType.d.ts +1 -1
  13. package/lib/idGenerators.d.ts +8 -1
  14. package/lib/idGenerators.js +10 -1
  15. package/lib/idGenerators.js.map +1 -1
  16. package/lib/index.d.ts +9 -4
  17. package/lib/index.js +9 -4
  18. package/lib/index.js.map +1 -1
  19. package/lib/isFormDataAvailable.d.ts +7 -0
  20. package/lib/isFormDataAvailable.js +13 -0
  21. package/lib/isFormDataAvailable.js.map +1 -0
  22. package/lib/isRootSchema.d.ts +13 -0
  23. package/lib/isRootSchema.js +25 -0
  24. package/lib/isRootSchema.js.map +1 -0
  25. package/lib/nameGenerators.d.ts +13 -0
  26. package/lib/nameGenerators.js +30 -0
  27. package/lib/nameGenerators.js.map +1 -0
  28. package/lib/schema/getDefaultFormState.d.ts +8 -3
  29. package/lib/schema/getDefaultFormState.js +15 -6
  30. package/lib/schema/getDefaultFormState.js.map +1 -1
  31. package/lib/schema/retrieveSchema.d.ts +10 -5
  32. package/lib/schema/retrieveSchema.js +37 -14
  33. package/lib/schema/retrieveSchema.js.map +1 -1
  34. package/lib/shouldRenderOptionalField.d.ts +18 -0
  35. package/lib/shouldRenderOptionalField.js +47 -0
  36. package/lib/shouldRenderOptionalField.js.map +1 -0
  37. package/lib/toFieldPathId.d.ts +4 -2
  38. package/lib/toFieldPathId.js +10 -3
  39. package/lib/toFieldPathId.js.map +1 -1
  40. package/lib/tsconfig.tsbuildinfo +1 -1
  41. package/lib/types.d.ts +87 -43
  42. package/lib/useDeepCompareMemo.d.ts +8 -0
  43. package/lib/useDeepCompareMemo.js +17 -0
  44. package/lib/useDeepCompareMemo.js.map +1 -0
  45. package/lib/validationDataMerge.d.ts +2 -1
  46. package/lib/validationDataMerge.js +3 -2
  47. package/lib/validationDataMerge.js.map +1 -1
  48. package/package.json +1 -1
  49. package/src/ErrorSchemaBuilder.ts +2 -2
  50. package/src/createSchemaUtils.ts +6 -1
  51. package/src/enums.ts +6 -0
  52. package/src/idGenerators.ts +11 -1
  53. package/src/index.ts +15 -2
  54. package/src/isFormDataAvailable.ts +13 -0
  55. package/src/isRootSchema.ts +30 -0
  56. package/src/nameGenerators.ts +43 -0
  57. package/src/schema/getDefaultFormState.ts +20 -2
  58. package/src/schema/retrieveSchema.ts +39 -5
  59. package/src/shouldRenderOptionalField.ts +56 -0
  60. package/src/toFieldPathId.ts +12 -2
  61. package/src/types.ts +100 -47
  62. package/src/useDeepCompareMemo.ts +17 -0
  63. package/src/validationDataMerge.ts +7 -1
package/dist/utils.umd.js CHANGED
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lodash/isPlainObject'), require('lodash/isEqualWith'), require('lodash/get'), require('lodash/has'), require('lodash/isEqual'), require('lodash/set'), require('lodash/times'), require('lodash/transform'), require('lodash/merge'), require('lodash/flattenDeep'), require('lodash/uniq'), require('json-schema-merge-allof'), require('jsonpointer'), require('lodash/omit'), require('lodash/isObject'), require('lodash/isEmpty'), require('fast-uri'), require('lodash/isString'), require('lodash/union'), require('lodash/isNumber'), require('lodash/reduce'), require('lodash/isNil'), require('lodash/cloneDeep'), require('lodash/setWith'), require('lodash/uniqueId'), require('react'), require('react-is'), require('react/jsx-runtime'), require('lodash/toPath'), require('lodash/keys'), require('lodash/pickBy'), require('lodash/difference'), require('lodash/forEach')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'lodash/isPlainObject', 'lodash/isEqualWith', 'lodash/get', 'lodash/has', 'lodash/isEqual', 'lodash/set', 'lodash/times', 'lodash/transform', 'lodash/merge', 'lodash/flattenDeep', 'lodash/uniq', 'json-schema-merge-allof', 'jsonpointer', 'lodash/omit', 'lodash/isObject', 'lodash/isEmpty', 'fast-uri', 'lodash/isString', 'lodash/union', 'lodash/isNumber', 'lodash/reduce', 'lodash/isNil', 'lodash/cloneDeep', 'lodash/setWith', 'lodash/uniqueId', 'react', 'react-is', 'react/jsx-runtime', 'lodash/toPath', 'lodash/keys', 'lodash/pickBy', 'lodash/difference', 'lodash/forEach'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@rjsf/utils"] = {}, global.isPlainObject4, global.isEqualWith, global.get13, global.has5, global.isEqual, global.set, global.times, global.transform, global.merge, global.flattenDeep, global.uniq, global.mergeAllOf, global.jsonpointer, global.omit, global.isObject2, global.isEmpty4, global.UriResolver, global.isString, global.union, global.isNumber, global.reduce, global.isNil, global.cloneDeep, global.setWith, global.uniqueId, global.react, global.ReactIs, global.jsxRuntime, global.toPath, global.keys, global.pickBy, global.difference, global.forEach));
5
- })(this, (function (exports, isPlainObject4, isEqualWith, get13, has5, isEqual, set, times, transform, merge, flattenDeep, uniq, mergeAllOf, jsonpointer, omit, isObject2, isEmpty4, UriResolver, isString, union, isNumber, reduce, isNil, cloneDeep, setWith, uniqueId, react, ReactIs, jsxRuntime, toPath, keys, pickBy, difference, forEach) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lodash/isPlainObject'), require('lodash/isEqualWith'), require('lodash/get'), require('lodash/has'), require('lodash/isEqual'), require('lodash/set'), require('lodash/times'), require('lodash/transform'), require('lodash/merge'), require('lodash/flattenDeep'), require('lodash/uniq'), require('json-schema-merge-allof'), require('jsonpointer'), require('lodash/omit'), require('lodash/isObject'), require('lodash/isEmpty'), require('fast-uri'), require('lodash/isString'), require('lodash/union'), require('lodash/isNumber'), require('lodash/reduce'), require('lodash/isNil'), require('lodash/cloneDeep'), require('lodash/setWith'), require('lodash/keys'), require('lodash/pickBy'), require('lodash/difference'), require('lodash/uniqueId'), require('react'), require('react-is'), require('react/jsx-runtime'), require('lodash/toPath'), require('lodash/forEach')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'lodash/isPlainObject', 'lodash/isEqualWith', 'lodash/get', 'lodash/has', 'lodash/isEqual', 'lodash/set', 'lodash/times', 'lodash/transform', 'lodash/merge', 'lodash/flattenDeep', 'lodash/uniq', 'json-schema-merge-allof', 'jsonpointer', 'lodash/omit', 'lodash/isObject', 'lodash/isEmpty', 'fast-uri', 'lodash/isString', 'lodash/union', 'lodash/isNumber', 'lodash/reduce', 'lodash/isNil', 'lodash/cloneDeep', 'lodash/setWith', 'lodash/keys', 'lodash/pickBy', 'lodash/difference', 'lodash/uniqueId', 'react', 'react-is', 'react/jsx-runtime', 'lodash/toPath', 'lodash/forEach'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@rjsf/utils"] = {}, global.isPlainObject2, global.isEqualWith, global.get13, global.has5, global.isEqual2, global.set, global.times, global.transform, global.merge, global.flattenDeep, global.uniq, global.mergeAllOf, global.jsonpointer, global.omit, global.isObject2, global.isEmpty4, global.UriResolver, global.isString, global.union, global.isNumber, global.reduce, global.isNil, global.cloneDeep, global.setWith, global.keys, global.pickBy, global.difference, global.uniqueId, global.react, global.ReactIs, global.jsxRuntime, global.toPath, global.forEach));
5
+ })(this, (function (exports, isPlainObject2, isEqualWith, get13, has5, isEqual2, set, times, transform, merge, flattenDeep, uniq, mergeAllOf, jsonpointer, omit, isObject2, isEmpty4, UriResolver, isString, union, isNumber, reduce, isNil, cloneDeep, setWith, keys, pickBy, difference, uniqueId, react, ReactIs, jsxRuntime, toPath, forEach) { 'use strict';
6
6
 
7
7
  // src/isObject.ts
8
8
  function isObject(thing) {
@@ -136,7 +136,7 @@
136
136
  return { ...acc, [key]: createErrorHandler(value) };
137
137
  }, handler);
138
138
  }
139
- if (isPlainObject4(formData)) {
139
+ if (isPlainObject2(formData)) {
140
140
  const formObject = formData;
141
141
  return Object.keys(formObject).reduce((acc, key) => {
142
142
  return { ...acc, [key]: createErrorHandler(formObject[key]) };
@@ -391,7 +391,7 @@
391
391
  }
392
392
  return 0;
393
393
  }
394
- function retrieveSchema(validator, schema, rootSchema = {}, rawFormData, experimental_customMergeAllOf) {
394
+ function retrieveSchema(validator, schema, rootSchema = {}, rawFormData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs = false) {
395
395
  return retrieveSchemaInternal(
396
396
  validator,
397
397
  schema,
@@ -399,7 +399,8 @@
399
399
  rawFormData,
400
400
  void 0,
401
401
  void 0,
402
- experimental_customMergeAllOf
402
+ experimental_customMergeAllOf,
403
+ resolveAnyOfOrOneOfRefs
403
404
  )[0];
404
405
  }
405
406
  function resolveCondition(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
@@ -488,7 +489,7 @@
488
489
  {}
489
490
  );
490
491
  }
491
- function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
492
+ function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {
492
493
  const updatedSchemas = resolveReference(
493
494
  validator,
494
495
  schema,
@@ -496,7 +497,8 @@
496
497
  expandAllBranches,
497
498
  recurseList,
498
499
  formData,
499
- experimental_customMergeAllOf
500
+ experimental_customMergeAllOf,
501
+ resolveAnyOfOrOneOfRefs
500
502
  );
501
503
  if (updatedSchemas.length > 1 || updatedSchemas[0] !== schema) {
502
504
  return updatedSchemas;
@@ -523,7 +525,7 @@
523
525
  );
524
526
  });
525
527
  }
526
- if (ALL_OF_KEY in schema && Array.isArray(schema.allOf)) {
528
+ if (ALL_OF_KEY in schema && Array.isArray(schema[ALL_OF_KEY])) {
527
529
  const allOfSchemaElements = schema.allOf.map(
528
530
  (allOfSubschema) => retrieveSchemaInternal(
529
531
  validator,
@@ -543,8 +545,8 @@
543
545
  }
544
546
  return [schema];
545
547
  }
546
- function resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
547
- const updatedSchema = resolveAllReferences(schema, rootSchema, recurseList);
548
+ function resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {
549
+ const updatedSchema = resolveAllReferences(schema, rootSchema, recurseList, void 0, resolveAnyOfOrOneOfRefs);
548
550
  if (updatedSchema !== schema) {
549
551
  return retrieveSchemaInternal(
550
552
  validator,
@@ -553,12 +555,13 @@
553
555
  formData,
554
556
  expandAllBranches,
555
557
  recurseList,
556
- experimental_customMergeAllOf
558
+ experimental_customMergeAllOf,
559
+ resolveAnyOfOrOneOfRefs
557
560
  );
558
561
  }
559
562
  return [schema];
560
563
  }
561
- function resolveAllReferences(schema, rootSchema, recurseList, baseURI) {
564
+ function resolveAllReferences(schema, rootSchema, recurseList, baseURI, resolveAnyOfOrOneOfRefs) {
562
565
  if (!isObject(schema)) {
563
566
  return schema;
564
567
  }
@@ -581,7 +584,7 @@
581
584
  resolvedSchema[PROPERTIES_KEY],
582
585
  (result, value, key) => {
583
586
  const childList = [...recurseList];
584
- result[key] = resolveAllReferences(value, rootSchema, childList, baseURI);
587
+ result[key] = resolveAllReferences(value, rootSchema, childList, baseURI, resolveAnyOfOrOneOfRefs);
585
588
  childrenLists.push(childList);
586
589
  },
587
590
  {}
@@ -592,9 +595,28 @@
592
595
  if (ITEMS_KEY in resolvedSchema && !Array.isArray(resolvedSchema.items) && typeof resolvedSchema.items !== "boolean") {
593
596
  resolvedSchema = {
594
597
  ...resolvedSchema,
595
- items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList, baseURI)
598
+ items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList, baseURI, resolveAnyOfOrOneOfRefs)
596
599
  };
597
600
  }
601
+ if (resolveAnyOfOrOneOfRefs) {
602
+ let key;
603
+ let schemas;
604
+ if (ANY_OF_KEY in schema && Array.isArray(schema[ANY_OF_KEY])) {
605
+ key = ANY_OF_KEY;
606
+ schemas = resolvedSchema[ANY_OF_KEY];
607
+ } else if (ONE_OF_KEY in schema && Array.isArray(schema[ONE_OF_KEY])) {
608
+ key = ONE_OF_KEY;
609
+ schemas = resolvedSchema[ONE_OF_KEY];
610
+ }
611
+ if (key && schemas) {
612
+ resolvedSchema = {
613
+ ...resolvedSchema,
614
+ [key]: schemas.map(
615
+ (s) => resolveAllReferences(s, rootSchema, recurseList, baseURI, resolveAnyOfOrOneOfRefs)
616
+ )
617
+ };
618
+ }
619
+ }
598
620
  return deepEquals(schema, resolvedSchema) ? schema : resolvedSchema;
599
621
  }
600
622
  function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFormData, experimental_customMergeAllOf) {
@@ -622,7 +644,7 @@
622
644
  }
623
645
  }
624
646
  if (ADDITIONAL_PROPERTIES_KEY in schema && schema.additionalProperties !== false) {
625
- let additionalProperties = {};
647
+ let additionalProperties;
626
648
  if (typeof schema.additionalProperties !== "boolean") {
627
649
  if (REF_KEY in schema.additionalProperties) {
628
650
  additionalProperties = retrieveSchema(
@@ -654,7 +676,7 @@
654
676
  });
655
677
  return schema;
656
678
  }
657
- function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = [], experimental_customMergeAllOf) {
679
+ function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = [], experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {
658
680
  if (!isObject(schema)) {
659
681
  return [{}];
660
682
  }
@@ -665,7 +687,8 @@
665
687
  expandAllBranches,
666
688
  recurseList,
667
689
  rawFormData,
668
- experimental_customMergeAllOf
690
+ experimental_customMergeAllOf,
691
+ resolveAnyOfOrOneOfRefs
669
692
  );
670
693
  return resolvedSchemas.flatMap((s) => {
671
694
  let resolvedSchema = s;
@@ -928,7 +951,7 @@
928
951
  const data = get13(formData, selectorField);
929
952
  if (data !== void 0) {
930
953
  return xxxOfs.find((xxx2) => {
931
- return isEqual(
954
+ return isEqual2(
932
955
  get13(xxx2, [PROPERTIES_KEY, selectorField, DEFAULT_KEY], get13(xxx2, [PROPERTIES_KEY, selectorField, CONST_KEY])),
933
956
  data
934
957
  );
@@ -1408,7 +1431,8 @@
1408
1431
  experimental_defaultFormStateBehavior = void 0,
1409
1432
  experimental_customMergeAllOf = void 0,
1410
1433
  required,
1411
- shouldMergeDefaultsIntoFormData = false
1434
+ shouldMergeDefaultsIntoFormData = false,
1435
+ initialDefaultsGenerated
1412
1436
  } = computeDefaultsProps;
1413
1437
  let formData = isObject(rawFormData) ? rawFormData : {};
1414
1438
  const schema = isObject(rawSchema) ? rawSchema : {};
@@ -1513,7 +1537,8 @@
1513
1537
  parentDefaults: defaults,
1514
1538
  rawFormData: rawFormData ?? formData,
1515
1539
  required,
1516
- shouldMergeDefaultsIntoFormData
1540
+ shouldMergeDefaultsIntoFormData,
1541
+ initialDefaultsGenerated
1517
1542
  });
1518
1543
  }
1519
1544
  if (defaults === void 0) {
@@ -1565,7 +1590,8 @@
1565
1590
  experimental_defaultFormStateBehavior = void 0,
1566
1591
  experimental_customMergeAllOf = void 0,
1567
1592
  required,
1568
- shouldMergeDefaultsIntoFormData
1593
+ shouldMergeDefaultsIntoFormData,
1594
+ initialDefaultsGenerated
1569
1595
  } = {}, defaults) {
1570
1596
  {
1571
1597
  const formData = isObject(rawFormData) ? rawFormData : {};
@@ -1586,7 +1612,8 @@
1586
1612
  parentDefaults: get13(defaults, [key]),
1587
1613
  rawFormData: get13(formData, [key]),
1588
1614
  required: retrievedSchema.required?.includes(key),
1589
- shouldMergeDefaultsIntoFormData
1615
+ shouldMergeDefaultsIntoFormData,
1616
+ initialDefaultsGenerated
1590
1617
  });
1591
1618
  maybeAddDefaultToObject(
1592
1619
  acc,
@@ -1602,7 +1629,7 @@
1602
1629
  },
1603
1630
  {}
1604
1631
  );
1605
- if (retrievedSchema.additionalProperties) {
1632
+ if (retrievedSchema.additionalProperties && !initialDefaultsGenerated) {
1606
1633
  const additionalPropertiesSchema = isObject(retrievedSchema.additionalProperties) ? retrievedSchema.additionalProperties : {};
1607
1634
  const keys2 = /* @__PURE__ */ new Set();
1608
1635
  if (isObject(defaults)) {
@@ -1623,7 +1650,8 @@
1623
1650
  parentDefaults: get13(defaults, [key]),
1624
1651
  rawFormData: get13(formData, [key]),
1625
1652
  required: retrievedSchema.required?.includes(key),
1626
- shouldMergeDefaultsIntoFormData
1653
+ shouldMergeDefaultsIntoFormData,
1654
+ initialDefaultsGenerated
1627
1655
  });
1628
1656
  maybeAddDefaultToObject(
1629
1657
  objectDefaults,
@@ -1645,7 +1673,9 @@
1645
1673
  experimental_defaultFormStateBehavior = void 0,
1646
1674
  experimental_customMergeAllOf = void 0,
1647
1675
  required,
1648
- shouldMergeDefaultsIntoFormData
1676
+ requiredAsRoot = false,
1677
+ shouldMergeDefaultsIntoFormData,
1678
+ initialDefaultsGenerated
1649
1679
  } = {}, defaults) {
1650
1680
  const schema = rawSchema;
1651
1681
  const arrayMinItemsStateBehavior = experimental_defaultFormStateBehavior?.arrayMinItems ?? {};
@@ -1666,7 +1696,8 @@
1666
1696
  experimental_customMergeAllOf,
1667
1697
  parentDefaults: item,
1668
1698
  required,
1669
- shouldMergeDefaultsIntoFormData
1699
+ shouldMergeDefaultsIntoFormData,
1700
+ initialDefaultsGenerated
1670
1701
  });
1671
1702
  });
1672
1703
  }
@@ -1684,7 +1715,8 @@
1684
1715
  rawFormData: item,
1685
1716
  parentDefaults: get13(defaults, [idx]),
1686
1717
  required,
1687
- shouldMergeDefaultsIntoFormData
1718
+ shouldMergeDefaultsIntoFormData,
1719
+ initialDefaultsGenerated
1688
1720
  });
1689
1721
  });
1690
1722
  const mergeExtraDefaults = (ignoreMinItemsFlagSet && required || isPopulateAll) && arrayMergeExtraDefaults;
@@ -1703,7 +1735,7 @@
1703
1735
  let arrayDefault;
1704
1736
  const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;
1705
1737
  if (!schema.minItems || isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) || computeSkipPopulate(validator, schema, rootSchema) || schema.minItems <= defaultsLength) {
1706
- arrayDefault = defaults ? defaults : emptyDefault;
1738
+ arrayDefault = defaults || !required && !requiredAsRoot ? defaults : emptyDefault;
1707
1739
  } else {
1708
1740
  const defaultEntries = defaults || [];
1709
1741
  const fillerSchema = getInnerSchemaForArrayItem(schema, 1 /* Invert */);
@@ -1735,7 +1767,7 @@
1735
1767
  }
1736
1768
  }
1737
1769
  }
1738
- function getDefaultFormState(validator, theSchema, formData, rootSchema, includeUndefinedValues = false, experimental_defaultFormStateBehavior, experimental_customMergeAllOf) {
1770
+ function getDefaultFormState(validator, theSchema, formData, rootSchema, includeUndefinedValues = false, experimental_defaultFormStateBehavior, experimental_customMergeAllOf, initialDefaultsGenerated) {
1739
1771
  if (!isObject(theSchema)) {
1740
1772
  throw new Error("Invalid schema: " + theSchema);
1741
1773
  }
@@ -1746,7 +1778,9 @@
1746
1778
  experimental_defaultFormStateBehavior,
1747
1779
  experimental_customMergeAllOf,
1748
1780
  rawFormData: formData,
1749
- shouldMergeDefaultsIntoFormData: true
1781
+ shouldMergeDefaultsIntoFormData: true,
1782
+ initialDefaultsGenerated,
1783
+ requiredAsRoot: true
1750
1784
  });
1751
1785
  if (schema.type !== "object" && isObject(schema.default)) {
1752
1786
  return {
@@ -2154,9 +2188,10 @@
2154
2188
  * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.
2155
2189
  * If "excludeObjectChildren", pass `includeUndefinedValues` as false when computing defaults for any nested
2156
2190
  * object properties.
2191
+ * @param initialDefaultsGenerated - Indicates whether or not initial defaults have been generated
2157
2192
  * @returns - The resulting `formData` with all the defaults provided
2158
2193
  */
2159
- getDefaultFormState(schema, formData, includeUndefinedValues = false) {
2194
+ getDefaultFormState(schema, formData, includeUndefinedValues = false, initialDefaultsGenerated) {
2160
2195
  return getDefaultFormState(
2161
2196
  this.validator,
2162
2197
  schema,
@@ -2164,7 +2199,8 @@
2164
2199
  this.rootSchema,
2165
2200
  includeUndefinedValues,
2166
2201
  this.experimental_defaultFormStateBehavior,
2167
- this.experimental_customMergeAllOf
2202
+ this.experimental_customMergeAllOf,
2203
+ initialDefaultsGenerated
2168
2204
  );
2169
2205
  }
2170
2206
  /** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`
@@ -2263,15 +2299,17 @@
2263
2299
  *
2264
2300
  * @param schema - The schema for which retrieving a schema is desired
2265
2301
  * @param [rawFormData] - The current formData, if any, to assist retrieving a schema
2302
+ * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists
2266
2303
  * @returns - The schema having its conditions, additional properties, references and dependencies resolved
2267
2304
  */
2268
- retrieveSchema(schema, rawFormData) {
2305
+ retrieveSchema(schema, rawFormData, resolveAnyOfOrOneOfRefs) {
2269
2306
  return retrieveSchema(
2270
2307
  this.validator,
2271
2308
  schema,
2272
2309
  this.rootSchema,
2273
2310
  rawFormData,
2274
- this.experimental_customMergeAllOf
2311
+ this.experimental_customMergeAllOf,
2312
+ resolveAnyOfOrOneOfRefs
2275
2313
  );
2276
2314
  }
2277
2315
  /** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the
@@ -2562,6 +2600,22 @@
2562
2600
  return this;
2563
2601
  }
2564
2602
  };
2603
+ function getChangedFields(a, b) {
2604
+ const aIsPlainObject = isPlainObject2(a);
2605
+ const bIsPlainObject = isPlainObject2(b);
2606
+ if (a === b || !aIsPlainObject && !bIsPlainObject) {
2607
+ return [];
2608
+ }
2609
+ if (aIsPlainObject && !bIsPlainObject) {
2610
+ return keys(a);
2611
+ } else if (!aIsPlainObject && bIsPlainObject) {
2612
+ return keys(b);
2613
+ } else {
2614
+ const unequalFields = keys(pickBy(a, (value, key) => !deepEquals(value, get13(b, key))));
2615
+ const diffFields = difference(keys(b), keys(a));
2616
+ return [...unequalFields, ...diffFields];
2617
+ }
2618
+ }
2565
2619
 
2566
2620
  // src/getDateElementProps.ts
2567
2621
  function getDateElementProps(date, time, yearRange = [1900, (/* @__PURE__ */ new Date()).getFullYear() + 2], format = "YMD") {
@@ -2837,6 +2891,23 @@
2837
2891
  function buttonId(id, btn) {
2838
2892
  return idGenerator(id, btn);
2839
2893
  }
2894
+ function optionalControlsId(id, element) {
2895
+ return idGenerator(id, `optional${element}`);
2896
+ }
2897
+ function isFormDataAvailable(formData) {
2898
+ return !isNil(formData) && (!isObject2(formData) || Array.isArray(formData) || !isEmpty4(formData));
2899
+ }
2900
+ function isRootSchema(registry, schemaToCompare) {
2901
+ const { rootSchema, schemaUtils } = registry;
2902
+ if (isEqual2(schemaToCompare, rootSchema)) {
2903
+ return true;
2904
+ }
2905
+ if (REF_KEY in rootSchema) {
2906
+ const resolvedSchema = schemaUtils.retrieveSchema(rootSchema);
2907
+ return isEqual2(schemaToCompare, resolvedSchema);
2908
+ }
2909
+ return false;
2910
+ }
2840
2911
 
2841
2912
  // src/labelValue.ts
2842
2913
  function labelValue(label, hideLabel, fallback) {
@@ -2944,6 +3015,24 @@
2944
3015
  const { props, state } = component;
2945
3016
  return !deepEquals(props, nextProps) || !deepEquals(state, nextState);
2946
3017
  }
3018
+ function getSchemaTypesForXxxOf(schemas) {
3019
+ const allTypes = uniq(
3020
+ schemas.map((s) => isObject2(s) ? getSchemaType(s) : void 0).flat().filter((t) => t !== void 0)
3021
+ );
3022
+ return allTypes.length === 1 ? allTypes[0] : allTypes;
3023
+ }
3024
+ function shouldRenderOptionalField(registry, schema, required, uiSchema) {
3025
+ const { enableOptionalDataFieldForType = [] } = getUiOptions(uiSchema, registry.globalUiOptions);
3026
+ let schemaType;
3027
+ if (ANY_OF_KEY in schema && Array.isArray(schema[ANY_OF_KEY])) {
3028
+ schemaType = getSchemaTypesForXxxOf(schema[ANY_OF_KEY]);
3029
+ } else if (ONE_OF_KEY in schema && Array.isArray(schema[ONE_OF_KEY])) {
3030
+ schemaType = getSchemaTypesForXxxOf(schema[ONE_OF_KEY]);
3031
+ } else {
3032
+ schemaType = getSchemaType(schema);
3033
+ }
3034
+ return !isRootSchema(registry, schema) && !required && !!schemaType && !Array.isArray(schemaType) && !!enableOptionalDataFieldForType.find((val) => val === schemaType);
3035
+ }
2947
3036
 
2948
3037
  // src/toDateString.ts
2949
3038
  function toDateString(dateObject, time = true) {
@@ -2972,7 +3061,7 @@
2972
3061
  return Object.keys(errorSchema).reduce((acc, key) => {
2973
3062
  if (key !== ERRORS_KEY) {
2974
3063
  const childSchema = errorSchema[key];
2975
- if (isPlainObject4(childSchema)) {
3064
+ if (isPlainObject2(childSchema)) {
2976
3065
  acc = acc.concat(toErrorList(childSchema, [...fieldPath, key]));
2977
3066
  }
2978
3067
  }
@@ -2997,12 +3086,16 @@
2997
3086
  }
2998
3087
 
2999
3088
  // src/toFieldPathId.ts
3000
- function toFieldPathId(fieldPath, globalFormOptions, parentPath) {
3089
+ function toFieldPathId(fieldPath, globalFormOptions, parentPath, isMultiValue) {
3001
3090
  const basePath = Array.isArray(parentPath) ? parentPath : parentPath?.path;
3002
3091
  const childPath = fieldPath === "" ? [] : [fieldPath];
3003
3092
  const path = basePath ? basePath.concat(...childPath) : childPath;
3004
3093
  const id = [globalFormOptions.idPrefix, ...path].join(globalFormOptions.idSeparator);
3005
- return { path, [ID_KEY]: id };
3094
+ let name;
3095
+ if (globalFormOptions.nameGenerator && path.length > 0) {
3096
+ name = globalFormOptions.nameGenerator(path, globalFormOptions.idPrefix, isMultiValue);
3097
+ }
3098
+ return { path, [ID_KEY]: id, ...name !== void 0 && { name } };
3006
3099
  }
3007
3100
  function unwrapErrorHandler(errorHandler) {
3008
3101
  return Object.keys(errorHandler).reduce((acc, key) => {
@@ -3010,7 +3103,7 @@
3010
3103
  return acc;
3011
3104
  } else {
3012
3105
  const childSchema = errorHandler[key];
3013
- if (isPlainObject4(childSchema)) {
3106
+ if (isPlainObject2(childSchema)) {
3014
3107
  return {
3015
3108
  ...acc,
3016
3109
  [key]: unwrapErrorHandler(childSchema)
@@ -3020,6 +3113,13 @@
3020
3113
  }
3021
3114
  }, {});
3022
3115
  }
3116
+ function useDeepCompareMemo(newValue) {
3117
+ const valueRef = react.useRef(newValue);
3118
+ if (!isEqual2(newValue, valueRef.current)) {
3119
+ valueRef.current = newValue;
3120
+ }
3121
+ return valueRef.current;
3122
+ }
3023
3123
 
3024
3124
  // src/utcToLocal.ts
3025
3125
  function utcToLocal(jsonDate) {
@@ -3036,7 +3136,7 @@
3036
3136
  const SSS = pad(date.getMilliseconds(), 3);
3037
3137
  return `${yyyy}-${MM}-${dd}T${hh}:${mm}:${ss}.${SSS}`;
3038
3138
  }
3039
- function validationDataMerge(validationData, additionalErrorSchema) {
3139
+ function validationDataMerge(validationData, additionalErrorSchema, preventDuplicates = false) {
3040
3140
  if (!additionalErrorSchema) {
3041
3141
  return validationData;
3042
3142
  }
@@ -3044,7 +3144,11 @@
3044
3144
  let errors = toErrorList(additionalErrorSchema);
3045
3145
  let errorSchema = additionalErrorSchema;
3046
3146
  if (!isEmpty4(oldErrorSchema)) {
3047
- errorSchema = mergeObjects(oldErrorSchema, additionalErrorSchema, true);
3147
+ errorSchema = mergeObjects(
3148
+ oldErrorSchema,
3149
+ additionalErrorSchema,
3150
+ preventDuplicates ? "preventDuplicates" : true
3151
+ );
3048
3152
  errors = [...oldErrors].concat(errors);
3049
3153
  }
3050
3154
  return { errorSchema, errors };
@@ -3076,22 +3180,26 @@
3076
3180
  }
3077
3181
  return schemaNode;
3078
3182
  }
3079
- function getChangedFields(a, b) {
3080
- const aIsPlainObject = isPlainObject4(a);
3081
- const bIsPlainObject = isPlainObject4(b);
3082
- if (a === b || !aIsPlainObject && !bIsPlainObject) {
3083
- return [];
3084
- }
3085
- if (aIsPlainObject && !bIsPlainObject) {
3086
- return keys(a);
3087
- } else if (!aIsPlainObject && bIsPlainObject) {
3088
- return keys(b);
3089
- } else {
3090
- const unequalFields = keys(pickBy(a, (value, key) => !deepEquals(value, get13(b, key))));
3091
- const diffFields = difference(keys(b), keys(a));
3092
- return [...unequalFields, ...diffFields];
3183
+
3184
+ // src/nameGenerators.ts
3185
+ var bracketNameGenerator = (path, idPrefix, isMultiValue) => {
3186
+ if (!path || path.length === 0) {
3187
+ return idPrefix;
3188
+ }
3189
+ const baseName = path.reduce((acc, pathUnit, index) => {
3190
+ if (index === 0) {
3191
+ return `${idPrefix}[${String(pathUnit)}]`;
3192
+ }
3193
+ return `${acc}[${String(pathUnit)}]`;
3194
+ }, "");
3195
+ return isMultiValue ? `${baseName}[]` : baseName;
3196
+ };
3197
+ var dotNotationNameGenerator = (path, idPrefix, _isMultiValue) => {
3198
+ if (!path || path.length === 0) {
3199
+ return idPrefix;
3093
3200
  }
3094
- }
3201
+ return `${idPrefix}.${path.map(String).join(".")}`;
3202
+ };
3095
3203
 
3096
3204
  // src/enums.ts
3097
3205
  var TranslatableString = /* @__PURE__ */ ((TranslatableString2) => {
@@ -3115,6 +3223,9 @@
3115
3223
  TranslatableString2["PreviewLabel"] = "Preview";
3116
3224
  TranslatableString2["DecrementAriaLabel"] = "Decrease value by 1";
3117
3225
  TranslatableString2["IncrementAriaLabel"] = "Increase value by 1";
3226
+ TranslatableString2["OptionalObjectAdd"] = "Add data for optional field";
3227
+ TranslatableString2["OptionalObjectRemove"] = "Remove data for optional field";
3228
+ TranslatableString2["OptionalObjectEmptyMsg"] = "No data for optional field";
3118
3229
  TranslatableString2["UnknownFieldType"] = "Unknown field type %1";
3119
3230
  TranslatableString2["OptionPrefix"] = "Option %1";
3120
3231
  TranslatableString2["TitleOptionPrefix"] = "%1 option %2";
@@ -3284,6 +3395,7 @@
3284
3395
  exports.allowAdditionalItems = allowAdditionalItems;
3285
3396
  exports.ariaDescribedByIds = ariaDescribedByIds;
3286
3397
  exports.asNumber = asNumber;
3398
+ exports.bracketNameGenerator = bracketNameGenerator;
3287
3399
  exports.buttonId = buttonId;
3288
3400
  exports.canExpand = canExpand;
3289
3401
  exports.createErrorHandler = createErrorHandler;
@@ -3292,6 +3404,7 @@
3292
3404
  exports.dateRangeOptions = dateRangeOptions;
3293
3405
  exports.deepEquals = deepEquals;
3294
3406
  exports.descriptionId = descriptionId;
3407
+ exports.dotNotationNameGenerator = dotNotationNameGenerator;
3295
3408
  exports.englishStringTranslator = englishStringTranslator;
3296
3409
  exports.enumOptionsDeselectValue = enumOptionsDeselectValue;
3297
3410
  exports.enumOptionsIndexForValue = enumOptionsIndexForValue;
@@ -3329,8 +3442,10 @@
3329
3442
  exports.isCustomWidget = isCustomWidget;
3330
3443
  exports.isFilesArray = isFilesArray;
3331
3444
  exports.isFixedItems = isFixedItems;
3445
+ exports.isFormDataAvailable = isFormDataAvailable;
3332
3446
  exports.isMultiSelect = isMultiSelect;
3333
3447
  exports.isObject = isObject;
3448
+ exports.isRootSchema = isRootSchema;
3334
3449
  exports.isSelect = isSelect;
3335
3450
  exports.labelValue = labelValue;
3336
3451
  exports.localToUTC = localToUTC;
@@ -3339,6 +3454,7 @@
3339
3454
  exports.mergeObjects = mergeObjects;
3340
3455
  exports.mergeSchemas = mergeSchemas;
3341
3456
  exports.optionId = optionId;
3457
+ exports.optionalControlsId = optionalControlsId;
3342
3458
  exports.optionsList = optionsList;
3343
3459
  exports.orderProperties = orderProperties;
3344
3460
  exports.pad = pad;
@@ -3351,6 +3467,7 @@
3351
3467
  exports.schemaRequiresTrueValue = schemaRequiresTrueValue;
3352
3468
  exports.shallowEquals = shallowEquals;
3353
3469
  exports.shouldRender = shouldRender;
3470
+ exports.shouldRenderOptionalField = shouldRenderOptionalField;
3354
3471
  exports.sortedJSONStringify = sortedJSONStringify;
3355
3472
  exports.titleId = titleId;
3356
3473
  exports.toConstant = toConstant;
@@ -3360,6 +3477,7 @@
3360
3477
  exports.toFieldPathId = toFieldPathId;
3361
3478
  exports.toPathSchema = toPathSchema;
3362
3479
  exports.unwrapErrorHandler = unwrapErrorHandler;
3480
+ exports.useDeepCompareMemo = useDeepCompareMemo;
3363
3481
  exports.utcToLocal = utcToLocal;
3364
3482
  exports.validationDataMerge = validationDataMerge;
3365
3483
  exports.withIdRefPrefix = withIdRefPrefix;
@@ -1,8 +1,8 @@
1
- import { ErrorSchema } from './types.js';
1
+ import { ErrorSchema, FieldPathList } from './types.js';
2
2
  /** Represents the type of the path which can be a string of dotted path values or a list of string or numbers where
3
3
  * numbers represent array indexes/
4
4
  */
5
- export type PathType = string | (string | number)[];
5
+ export type PathType = string | FieldPathList;
6
6
  /** The `ErrorSchemaBuilder<T>` is used to build an `ErrorSchema<T>` since the definition of the `ErrorSchema` type is
7
7
  * designed for reading information rather than writing it. Use this class to add, replace or clear errors in an error
8
8
  * schema by using either dotted path or an array of path names. Once you are done building the `ErrorSchema`, you can
@@ -97,10 +97,11 @@ class SchemaUtils {
97
97
  * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.
98
98
  * If "excludeObjectChildren", pass `includeUndefinedValues` as false when computing defaults for any nested
99
99
  * object properties.
100
+ * @param initialDefaultsGenerated - Indicates whether or not initial defaults have been generated
100
101
  * @returns - The resulting `formData` with all the defaults provided
101
102
  */
102
- getDefaultFormState(schema, formData, includeUndefinedValues = false) {
103
- return getDefaultFormState(this.validator, schema, formData, this.rootSchema, includeUndefinedValues, this.experimental_defaultFormStateBehavior, this.experimental_customMergeAllOf);
103
+ getDefaultFormState(schema, formData, includeUndefinedValues = false, initialDefaultsGenerated) {
104
+ return getDefaultFormState(this.validator, schema, formData, this.rootSchema, includeUndefinedValues, this.experimental_defaultFormStateBehavior, this.experimental_customMergeAllOf, initialDefaultsGenerated);
104
105
  }
105
106
  /** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`
106
107
  * should be displayed in a UI.
@@ -177,10 +178,11 @@ class SchemaUtils {
177
178
  *
178
179
  * @param schema - The schema for which retrieving a schema is desired
179
180
  * @param [rawFormData] - The current formData, if any, to assist retrieving a schema
181
+ * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists
180
182
  * @returns - The schema having its conditions, additional properties, references and dependencies resolved
181
183
  */
182
- retrieveSchema(schema, rawFormData) {
183
- return retrieveSchema(this.validator, schema, this.rootSchema, rawFormData, this.experimental_customMergeAllOf);
184
+ retrieveSchema(schema, rawFormData, resolveAnyOfOrOneOfRefs) {
185
+ return retrieveSchema(this.validator, schema, this.rootSchema, rawFormData, this.experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);
184
186
  }
185
187
  /** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the
186
188
  * new schema does not contain any properties, then `undefined` is returned to clear all the form data. Due to the
@@ -1 +1 @@
1
- {"version":3,"file":"createSchemaUtils.js","sourceRoot":"","sources":["../src/createSchemaUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSchemaUtils.js","sourceRoot":"","sources":["../src/createSchemaUtils.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AActC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,cAAc,EACd,wBAAwB,EACxB,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,WAAW;IAQf;;;;;;OAMG;IACH,YACE,SAAiC,EACjC,UAAa,EACb,qCAA4E,EAC5E,6BAAgE;QAEhE,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,yBAAyB,EAAE,CAAC;YACvE,IAAI,CAAC,UAAU,GAAG,yBAAyB,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,qCAAqC,GAAG,qCAAqC,CAAC;QACnF,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;;;OASG;IACH,qBAAqB,CACnB,SAAiC,EACjC,UAAa,EACb,qCAAqC,GAAG,EAAE,EAC1C,6BAAgE;QAEhE,oFAAoF;QACpF,uDAAuD;QACvD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,SAAS;YAC5B,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;YACxC,CAAC,UAAU,CAAC,IAAI,CAAC,qCAAqC,EAAE,qCAAqC,CAAC;YAC9F,IAAI,CAAC,6BAA6B,KAAK,6BAA6B,CACrE,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,iBAAiB,CAAC,MAAS,EAAE,IAAuB,EAAE,QAAY;QAChE,OAAO,iBAAiB,CACtB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,6BAA6B,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,yBAAyB,CAAC,MAAS,EAAE,aAAqB,EAAE,GAAsB,EAAE,QAAW;QAC7F,OAAO,yBAAyB,CAC9B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,MAAM,EACN,aAAa,EACb,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,6BAA6B,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,mBAAmB,CACjB,MAAS,EACT,QAAY,EACZ,yBAA4D,KAAK,EACjE,wBAAkC;QAElC,OAAO,mBAAmB,CACxB,IAAI,CAAC,SAAS,EACd,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,UAAU,EACf,sBAAsB,EACtB,IAAI,CAAC,qCAAqC,EAC1C,IAAI,CAAC,6BAA6B,EAClC,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,MAAS,EAAE,QAA4B,EAAE,aAAqC;QAC5F,OAAO,eAAe,CACpB,IAAI,CAAC,SAAS,EACd,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,UAAU,EACf,aAAa,EACb,IAAI,CAAC,6BAA6B,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,wBAAwB,CACtB,QAAuB,EACvB,OAAY,EACZ,cAAuB,EACvB,kBAA2B;QAE3B,OAAO,wBAAwB,CAC7B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,IAAI,CAAC,6BAA6B,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB,CAAC,QAAuB,EAAE,OAAY,EAAE,kBAA2B;QACvF,OAAO,sBAAsB,CAAU,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACjH,CAAC;IAYD,aAAa,CAAC,MAAS,EAAE,IAAuB,EAAE,YAAmB;QACnE,OAAO,aAAa,CAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,MAAM,EACN,IAAI;QACJ,yDAAyD;QACzD,YAAY,EACZ,IAAI,CAAC,6BAA6B,CACnC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,MAAS,EAAE,QAA4B;QAClD,OAAO,YAAY,CAAU,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACtH,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAS;QACrB,OAAO,aAAa,CAAU,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC7G,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAS;QAChB,OAAO,QAAQ,CAAU,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACxG,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAS,EAAE,WAAe,EAAE,uBAAiC;QAC1E,OAAO,cAAc,CACnB,IAAI,CAAC,SAAS,EACd,MAAM,EACN,IAAI,CAAC,UAAU,EACf,WAAW,EACX,IAAI,CAAC,6BAA6B,EAClC,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,SAAa,EAAE,SAAa,EAAE,IAAU;QAC/D,OAAO,wBAAwB,CAC7B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,CAAC,6BAA6B,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAS,EAAE,IAAa,EAAE,QAAY;QACjD,OAAO,YAAY,CACjB,IAAI,CAAC,SAAS,EACd,MAAM,EACN,IAAI,EACJ,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,IAAI,CAAC,6BAA6B,CACnC,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAKvC,SAAiC,EACjC,UAAa,EACb,qCAAqC,GAAG,EAAE,EAC1C,6BAAgE;IAEhE,OAAO,IAAI,WAAW,CACpB,SAAS,EACT,UAAU,EACV,qCAAqC,EACrC,6BAA6B,CAC9B,CAAC;AACJ,CAAC"}
package/lib/enums.d.ts CHANGED
@@ -45,6 +45,12 @@ export declare enum TranslatableString {
45
45
  DecrementAriaLabel = "Decrease value by 1",
46
46
  /** Increment button aria label, used by UpDownWidget */
47
47
  IncrementAriaLabel = "Increase value by 1",
48
+ /** The label for the Add button in for an optional object field */
49
+ OptionalObjectAdd = "Add data for optional field",
50
+ /** The label for the Remove button in for an optional object field */
51
+ OptionalObjectRemove = "Remove data for optional field",
52
+ /** The label for when displaying a non-editable form with missing optional field data */
53
+ OptionalObjectEmptyMsg = "No data for optional field",
48
54
  /** Unknown field type reason, where %1 will be replaced with the type as provided by SchemaField */
49
55
  UnknownFieldType = "Unknown field type %1",
50
56
  /** Option prefix, where %1 will be replaced with the option index as provided by MultiSchemaField */
package/lib/enums.js CHANGED
@@ -46,6 +46,12 @@ export var TranslatableString;
46
46
  TranslatableString["DecrementAriaLabel"] = "Decrease value by 1";
47
47
  /** Increment button aria label, used by UpDownWidget */
48
48
  TranslatableString["IncrementAriaLabel"] = "Increase value by 1";
49
+ /** The label for the Add button in for an optional object field */
50
+ TranslatableString["OptionalObjectAdd"] = "Add data for optional field";
51
+ /** The label for the Remove button in for an optional object field */
52
+ TranslatableString["OptionalObjectRemove"] = "Remove data for optional field";
53
+ /** The label for when displaying a non-editable form with missing optional field data */
54
+ TranslatableString["OptionalObjectEmptyMsg"] = "No data for optional field";
49
55
  // Strings with replaceable parameters
50
56
  /** Unknown field type reason, where %1 will be replaced with the type as provided by SchemaField */
51
57
  TranslatableString["UnknownFieldType"] = "Unknown field type %1";