@rjsf/utils 6.0.0-alpha.0 → 6.0.0-beta.1

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 (279) hide show
  1. package/dist/index.js +1281 -625
  2. package/dist/index.js.map +4 -4
  3. package/dist/utils.esm.js +1254 -598
  4. package/dist/utils.esm.js.map +4 -4
  5. package/dist/utils.umd.js +1201 -570
  6. package/lib/ErrorSchemaBuilder.d.ts +8 -4
  7. package/lib/ErrorSchemaBuilder.js +10 -8
  8. package/lib/ErrorSchemaBuilder.js.map +1 -1
  9. package/lib/allowAdditionalItems.d.ts +1 -1
  10. package/lib/allowAdditionalItems.js +1 -1
  11. package/lib/allowAdditionalItems.js.map +1 -1
  12. package/lib/asNumber.js.map +1 -1
  13. package/lib/canExpand.d.ts +1 -1
  14. package/lib/canExpand.js +2 -2
  15. package/lib/canExpand.js.map +1 -1
  16. package/lib/constIsAjvDataReference.d.ts +9 -0
  17. package/lib/constIsAjvDataReference.js +15 -0
  18. package/lib/constIsAjvDataReference.js.map +1 -0
  19. package/lib/constants.d.ts +11 -3
  20. package/lib/constants.js +11 -3
  21. package/lib/constants.js.map +1 -1
  22. package/lib/createErrorHandler.d.ts +1 -1
  23. package/lib/createErrorHandler.js +2 -2
  24. package/lib/createErrorHandler.js.map +1 -1
  25. package/lib/createSchemaUtils.d.ts +3 -2
  26. package/lib/createSchemaUtils.js +56 -46
  27. package/lib/createSchemaUtils.js.map +1 -1
  28. package/lib/dataURItoBlob.js.map +1 -1
  29. package/lib/dateRangeOptions.d.ts +1 -1
  30. package/lib/dateRangeOptions.js +1 -1
  31. package/lib/dateRangeOptions.js.map +1 -1
  32. package/lib/deepEquals.js +1 -1
  33. package/lib/deepEquals.js.map +1 -1
  34. package/lib/englishStringTranslator.d.ts +1 -1
  35. package/lib/englishStringTranslator.js +1 -1
  36. package/lib/enumOptionsDeselectValue.d.ts +1 -1
  37. package/lib/enumOptionsDeselectValue.js +4 -4
  38. package/lib/enumOptionsDeselectValue.js.map +1 -1
  39. package/lib/enumOptionsIndexForValue.d.ts +1 -1
  40. package/lib/enumOptionsIndexForValue.js +1 -1
  41. package/lib/enumOptionsIndexForValue.js.map +1 -1
  42. package/lib/enumOptionsIsSelected.d.ts +1 -1
  43. package/lib/enumOptionsIsSelected.js +3 -3
  44. package/lib/enumOptionsIsSelected.js.map +1 -1
  45. package/lib/enumOptionsSelectValue.d.ts +1 -1
  46. package/lib/enumOptionsSelectValue.js +2 -2
  47. package/lib/enumOptionsSelectValue.js.map +1 -1
  48. package/lib/enumOptionsValueForIndex.d.ts +1 -1
  49. package/lib/enumOptionsValueForIndex.js.map +1 -1
  50. package/lib/enums.d.ts +2 -0
  51. package/lib/enums.js +2 -0
  52. package/lib/enums.js.map +1 -1
  53. package/lib/findSchemaDefinition.d.ts +1 -1
  54. package/lib/findSchemaDefinition.js +2 -2
  55. package/lib/findSchemaDefinition.js.map +1 -1
  56. package/lib/getChangedFields.d.ts +17 -0
  57. package/lib/getChangedFields.js +42 -0
  58. package/lib/getChangedFields.js.map +1 -0
  59. package/lib/getDateElementProps.d.ts +1 -1
  60. package/lib/getDateElementProps.js.map +1 -1
  61. package/lib/getDiscriminatorFieldFromSchema.d.ts +1 -1
  62. package/lib/getDiscriminatorFieldFromSchema.js +4 -3
  63. package/lib/getDiscriminatorFieldFromSchema.js.map +1 -1
  64. package/lib/getInputProps.d.ts +1 -1
  65. package/lib/getInputProps.js +4 -1
  66. package/lib/getInputProps.js.map +1 -1
  67. package/lib/getOptionMatchingSimpleDiscriminator.d.ts +1 -1
  68. package/lib/getOptionMatchingSimpleDiscriminator.js +2 -2
  69. package/lib/getOptionMatchingSimpleDiscriminator.js.map +1 -1
  70. package/lib/getSchemaType.d.ts +2 -1
  71. package/lib/getSchemaType.js +3 -2
  72. package/lib/getSchemaType.js.map +1 -1
  73. package/lib/getSubmitButtonOptions.d.ts +1 -1
  74. package/lib/getSubmitButtonOptions.js +2 -2
  75. package/lib/getSubmitButtonOptions.js.map +1 -1
  76. package/lib/getTemplate.d.ts +1 -1
  77. package/lib/getTemplate.js +9 -0
  78. package/lib/getTemplate.js.map +1 -1
  79. package/lib/getTestIds.d.ts +17 -0
  80. package/lib/getTestIds.js +34 -0
  81. package/lib/getTestIds.js.map +1 -0
  82. package/lib/getUiOptions.d.ts +1 -1
  83. package/lib/getUiOptions.js +2 -2
  84. package/lib/getUiOptions.js.map +1 -1
  85. package/lib/getWidget.d.ts +1 -1
  86. package/lib/getWidget.js +3 -3
  87. package/lib/getWidget.js.map +1 -1
  88. package/lib/guessType.d.ts +1 -1
  89. package/lib/guessType.js.map +1 -1
  90. package/lib/hasWidget.d.ts +1 -1
  91. package/lib/hasWidget.js +1 -1
  92. package/lib/hasWidget.js.map +1 -1
  93. package/lib/hashForSchema.d.ts +23 -1
  94. package/lib/hashForSchema.js +24 -6
  95. package/lib/hashForSchema.js.map +1 -1
  96. package/lib/idGenerators.d.ts +8 -1
  97. package/lib/idGenerators.js +11 -2
  98. package/lib/idGenerators.js.map +1 -1
  99. package/lib/index.d.ts +63 -60
  100. package/lib/index.js +63 -60
  101. package/lib/index.js.map +1 -1
  102. package/lib/isConstant.d.ts +1 -1
  103. package/lib/isConstant.js +1 -1
  104. package/lib/isCustomWidget.d.ts +1 -1
  105. package/lib/isCustomWidget.js +1 -1
  106. package/lib/isFixedItems.d.ts +1 -1
  107. package/lib/isFixedItems.js +1 -1
  108. package/lib/isObject.d.ts +2 -2
  109. package/lib/isObject.js +11 -4
  110. package/lib/isObject.js.map +1 -1
  111. package/lib/lookupFromFormContext.d.ts +11 -0
  112. package/lib/lookupFromFormContext.js +20 -0
  113. package/lib/lookupFromFormContext.js.map +1 -0
  114. package/lib/mergeDefaultsWithFormData.d.ts +8 -2
  115. package/lib/mergeDefaultsWithFormData.js +39 -10
  116. package/lib/mergeDefaultsWithFormData.js.map +1 -1
  117. package/lib/mergeObjects.d.ts +1 -1
  118. package/lib/mergeObjects.js +1 -1
  119. package/lib/mergeObjects.js.map +1 -1
  120. package/lib/mergeSchemas.d.ts +1 -1
  121. package/lib/mergeSchemas.js +4 -4
  122. package/lib/mergeSchemas.js.map +1 -1
  123. package/lib/optionsList.d.ts +9 -7
  124. package/lib/optionsList.js +30 -19
  125. package/lib/optionsList.js.map +1 -1
  126. package/lib/orderProperties.js.map +1 -1
  127. package/lib/pad.js.map +1 -1
  128. package/lib/parseDateString.d.ts +1 -1
  129. package/lib/parseDateString.js +1 -1
  130. package/lib/parseDateString.js.map +1 -1
  131. package/lib/parser/ParserValidator.d.ts +1 -1
  132. package/lib/parser/ParserValidator.js +6 -6
  133. package/lib/parser/ParserValidator.js.map +1 -1
  134. package/lib/parser/index.d.ts +2 -2
  135. package/lib/parser/index.js +1 -1
  136. package/lib/parser/schemaParser.d.ts +2 -2
  137. package/lib/parser/schemaParser.js +6 -6
  138. package/lib/parser/schemaParser.js.map +1 -1
  139. package/lib/rangeSpec.d.ts +2 -2
  140. package/lib/rangeSpec.js.map +1 -1
  141. package/lib/replaceStringParameters.js.map +1 -1
  142. package/lib/schema/findFieldInSchema.d.ts +19 -0
  143. package/lib/schema/findFieldInSchema.js +61 -0
  144. package/lib/schema/findFieldInSchema.js.map +1 -0
  145. package/lib/schema/findSelectedOptionInXxxOf.d.ts +16 -0
  146. package/lib/schema/findSelectedOptionInXxxOf.js +34 -0
  147. package/lib/schema/findSelectedOptionInXxxOf.js.map +1 -0
  148. package/lib/schema/getClosestMatchingOption.d.ts +5 -3
  149. package/lib/schema/getClosestMatchingOption.js +28 -20
  150. package/lib/schema/getClosestMatchingOption.js.map +1 -1
  151. package/lib/schema/getDefaultFormState.d.ts +60 -13
  152. package/lib/schema/getDefaultFormState.js +304 -166
  153. package/lib/schema/getDefaultFormState.js.map +1 -1
  154. package/lib/schema/getDisplayLabel.d.ts +3 -2
  155. package/lib/schema/getDisplayLabel.js +10 -9
  156. package/lib/schema/getDisplayLabel.js.map +1 -1
  157. package/lib/schema/getFirstMatchingOption.d.ts +1 -1
  158. package/lib/schema/getFirstMatchingOption.js +70 -2
  159. package/lib/schema/getFirstMatchingOption.js.map +1 -1
  160. package/lib/schema/getFromSchema.d.ts +14 -0
  161. package/lib/schema/getFromSchema.js +39 -0
  162. package/lib/schema/getFromSchema.js.map +1 -0
  163. package/lib/schema/index.d.ts +15 -14
  164. package/lib/schema/index.js +15 -14
  165. package/lib/schema/index.js.map +1 -1
  166. package/lib/schema/isFilesArray.d.ts +3 -2
  167. package/lib/schema/isFilesArray.js +5 -4
  168. package/lib/schema/isFilesArray.js.map +1 -1
  169. package/lib/schema/isMultiSelect.d.ts +3 -2
  170. package/lib/schema/isMultiSelect.js +4 -3
  171. package/lib/schema/isMultiSelect.js.map +1 -1
  172. package/lib/schema/isSelect.d.ts +3 -2
  173. package/lib/schema/isSelect.js +5 -4
  174. package/lib/schema/isSelect.js.map +1 -1
  175. package/lib/schema/retrieveSchema.d.ts +28 -11
  176. package/lib/schema/retrieveSchema.js +142 -66
  177. package/lib/schema/retrieveSchema.js.map +1 -1
  178. package/lib/schema/sanitizeDataForNewSchema.d.ts +3 -2
  179. package/lib/schema/sanitizeDataForNewSchema.js +12 -11
  180. package/lib/schema/sanitizeDataForNewSchema.js.map +1 -1
  181. package/lib/schema/toIdSchema.d.ts +3 -2
  182. package/lib/schema/toIdSchema.js +30 -27
  183. package/lib/schema/toIdSchema.js.map +1 -1
  184. package/lib/schema/toPathSchema.d.ts +3 -2
  185. package/lib/schema/toPathSchema.js +22 -20
  186. package/lib/schema/toPathSchema.js.map +1 -1
  187. package/lib/schemaRequiresTrueValue.d.ts +1 -1
  188. package/lib/schemaRequiresTrueValue.js.map +1 -1
  189. package/lib/shouldRender.js +1 -1
  190. package/lib/toConstant.d.ts +1 -1
  191. package/lib/toConstant.js +1 -1
  192. package/lib/toConstant.js.map +1 -1
  193. package/lib/toDateString.d.ts +1 -1
  194. package/lib/toErrorList.d.ts +1 -1
  195. package/lib/toErrorList.js +2 -2
  196. package/lib/toErrorList.js.map +1 -1
  197. package/lib/toErrorSchema.d.ts +1 -1
  198. package/lib/toErrorSchema.js +2 -2
  199. package/lib/toErrorSchema.js.map +1 -1
  200. package/lib/tsconfig.tsbuildinfo +1 -1
  201. package/lib/types.d.ts +160 -131
  202. package/lib/unwrapErrorHandler.d.ts +1 -1
  203. package/lib/unwrapErrorHandler.js +1 -1
  204. package/lib/unwrapErrorHandler.js.map +1 -1
  205. package/lib/utcToLocal.js +1 -1
  206. package/lib/utcToLocal.js.map +1 -1
  207. package/lib/validationDataMerge.d.ts +1 -1
  208. package/lib/validationDataMerge.js +3 -3
  209. package/lib/validationDataMerge.js.map +1 -1
  210. package/lib/withIdRefPrefix.d.ts +1 -1
  211. package/lib/withIdRefPrefix.js +2 -2
  212. package/lib/withIdRefPrefix.js.map +1 -1
  213. package/package.json +36 -26
  214. package/src/ErrorSchemaBuilder.ts +15 -8
  215. package/src/canExpand.ts +2 -2
  216. package/src/constIsAjvDataReference.ts +17 -0
  217. package/src/constants.ts +12 -3
  218. package/src/createSchemaUtils.ts +140 -50
  219. package/src/dataURItoBlob.ts +1 -1
  220. package/src/dateRangeOptions.ts +1 -1
  221. package/src/enumOptionsDeselectValue.ts +4 -5
  222. package/src/enumOptionsIndexForValue.ts +1 -1
  223. package/src/enumOptionsIsSelected.ts +4 -5
  224. package/src/enumOptionsSelectValue.ts +1 -1
  225. package/src/enumOptionsValueForIndex.ts +1 -1
  226. package/src/enums.ts +2 -0
  227. package/src/findSchemaDefinition.ts +2 -2
  228. package/src/getChangedFields.ts +40 -0
  229. package/src/getDateElementProps.ts +2 -2
  230. package/src/getDiscriminatorFieldFromSchema.ts +2 -1
  231. package/src/getInputProps.ts +6 -2
  232. package/src/getOptionMatchingSimpleDiscriminator.ts +2 -2
  233. package/src/getSchemaType.ts +3 -2
  234. package/src/getSubmitButtonOptions.ts +1 -1
  235. package/src/getTemplate.ts +12 -1
  236. package/src/getTestIds.ts +40 -0
  237. package/src/getUiOptions.ts +2 -2
  238. package/src/getWidget.tsx +2 -2
  239. package/src/hasWidget.ts +1 -1
  240. package/src/hashForSchema.ts +26 -6
  241. package/src/idGenerators.ts +10 -0
  242. package/src/index.ts +21 -2
  243. package/src/isCustomWidget.ts +1 -1
  244. package/src/isObject.ts +12 -5
  245. package/src/labelValue.ts +2 -2
  246. package/src/lookupFromFormContext.ts +26 -0
  247. package/src/mergeDefaultsWithFormData.ts +54 -9
  248. package/src/mergeObjects.ts +24 -21
  249. package/src/optionsList.ts +31 -22
  250. package/src/parser/ParserValidator.ts +5 -5
  251. package/src/parser/schemaParser.ts +6 -6
  252. package/src/schema/findFieldInSchema.ts +138 -0
  253. package/src/schema/findSelectedOptionInXxxOf.ts +53 -0
  254. package/src/schema/getClosestMatchingOption.ts +38 -11
  255. package/src/schema/getDefaultFormState.ts +447 -191
  256. package/src/schema/getDisplayLabel.ts +7 -4
  257. package/src/schema/getFirstMatchingOption.ts +79 -4
  258. package/src/schema/getFromSchema.ts +100 -0
  259. package/src/schema/index.ts +6 -4
  260. package/src/schema/isFilesArray.ts +18 -3
  261. package/src/schema/isMultiSelect.ts +10 -4
  262. package/src/schema/isSelect.ts +5 -3
  263. package/src/schema/retrieveSchema.ts +256 -75
  264. package/src/schema/sanitizeDataForNewSchema.ts +52 -11
  265. package/src/schema/toIdSchema.ts +69 -43
  266. package/src/schema/toPathSchema.ts +49 -16
  267. package/src/toErrorList.ts +2 -2
  268. package/src/types.ts +266 -174
  269. package/src/validationDataMerge.ts +1 -1
  270. package/src/withIdRefPrefix.ts +1 -1
  271. package/LICENSE.md +0 -201
  272. package/lib/schema/getMatchingOption.d.ts +0 -14
  273. package/lib/schema/getMatchingOption.js +0 -85
  274. package/lib/schema/getMatchingOption.js.map +0 -1
  275. package/lib/schema/mergeValidationData.d.ts +0 -14
  276. package/lib/schema/mergeValidationData.js +0 -28
  277. package/lib/schema/mergeValidationData.js.map +0 -1
  278. package/src/schema/getMatchingOption.ts +0 -103
  279. package/src/schema/mergeValidationData.ts +0 -38
@@ -1,4 +1,4 @@
1
- import { FormContextType, RegistryWidgetsType, RJSFSchema, StrictRJSFSchema, Widget } from './types';
1
+ import { FormContextType, RegistryWidgetsType, RJSFSchema, StrictRJSFSchema, Widget } from './types.js';
2
2
  /** Detects whether the `widget` exists for the `schema` with the associated `registryWidgets` and returns true if it
3
3
  * does, or false if it doesn't.
4
4
  *
package/lib/hasWidget.js CHANGED
@@ -1,4 +1,4 @@
1
- import getWidget from './getWidget';
1
+ import getWidget from './getWidget.js';
2
2
  /** Detects whether the `widget` exists for the `schema` with the associated `registryWidgets` and returns true if it
3
3
  * does, or false if it doesn't.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"hasWidget.js","sourceRoot":"","sources":["../src/hasWidget.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAkB,EAClB,MAAgC,EAChC,oBAAkD,EAAE;IAEpD,IAAI;QACF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,GAAG,GAAU,CAAU,CAAC;QAC9B,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE;YACxG,OAAO,KAAK,CAAC;SACd;QACD,MAAM,CAAC,CAAC;KACT;AACH,CAAC"}
1
+ {"version":3,"file":"hasWidget.js","sourceRoot":"","sources":["../src/hasWidget.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAkB,EAClB,MAAgC,EAChC,oBAAkD,EAAE;IAEpD,IAAI,CAAC;QACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAU,CAAU,CAAC;QAC9B,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;YACzG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
@@ -1,4 +1,26 @@
1
- import { RJSFSchema, StrictRJSFSchema } from './types';
1
+ import { RJSFSchema, StrictRJSFSchema } from './types.js';
2
+ /** Hashes a string using the algorithm based on Java's hashing function.
3
+ * JS has no built-in hashing function, so rolling our own
4
+ * based on Java's hashing fn:
5
+ * http://www.java2s.com/example/nodejs-utility-method/string-hash/hashcode-4dc2b.html
6
+ *
7
+ * @param string - The string for which to get the hash
8
+ * @returns - The resulting hash of the string in hex format
9
+ */
10
+ export declare function hashString(string: string): string;
11
+ /** Stringifies an `object`, sorts object fields in consistent order before stringifying it.
12
+ *
13
+ * @param object - The object for which the sorted stringify is desired
14
+ * @returns - The stringified object with keys sorted in a consistent order
15
+ */
16
+ export declare function sortedJSONStringify(object: unknown): string;
17
+ /** Stringifies an `object` and returns the hash of the resulting string. Sorts object fields
18
+ * in consistent order before stringify to prevent different hash ids for the same object.
19
+ *
20
+ * @param object - The object for which the hash is desired
21
+ * @returns - The string obtained from the hash of the stringified object
22
+ */
23
+ export declare function hashObject(object: unknown): string;
2
24
  /** Stringifies the schema and returns the hash of the resulting string. Sorts schema fields
3
25
  * in consistent order before stringify to prevent different hash ids for the same schema.
4
26
  *
@@ -1,11 +1,12 @@
1
- /** JS has no built-in hashing function, so rolling our own
1
+ /** Hashes a string using the algorithm based on Java's hashing function.
2
+ * JS has no built-in hashing function, so rolling our own
2
3
  * based on Java's hashing fn:
3
4
  * http://www.java2s.com/example/nodejs-utility-method/string-hash/hashcode-4dc2b.html
4
5
  *
5
6
  * @param string - The string for which to get the hash
6
7
  * @returns - The resulting hash of the string in hex format
7
8
  */
8
- function hashString(string) {
9
+ export function hashString(string) {
9
10
  let hash = 0;
10
11
  for (let i = 0; i < string.length; i += 1) {
11
12
  const chr = string.charCodeAt(i);
@@ -14,6 +15,26 @@ function hashString(string) {
14
15
  }
15
16
  return hash.toString(16);
16
17
  }
18
+ /** Stringifies an `object`, sorts object fields in consistent order before stringifying it.
19
+ *
20
+ * @param object - The object for which the sorted stringify is desired
21
+ * @returns - The stringified object with keys sorted in a consistent order
22
+ */
23
+ export function sortedJSONStringify(object) {
24
+ const allKeys = new Set();
25
+ // solution source: https://stackoverflow.com/questions/16167581/sort-object-properties-and-json-stringify/53593328#53593328
26
+ JSON.stringify(object, (key, value) => (allKeys.add(key), value));
27
+ return JSON.stringify(object, Array.from(allKeys).sort());
28
+ }
29
+ /** Stringifies an `object` and returns the hash of the resulting string. Sorts object fields
30
+ * in consistent order before stringify to prevent different hash ids for the same object.
31
+ *
32
+ * @param object - The object for which the hash is desired
33
+ * @returns - The string obtained from the hash of the stringified object
34
+ */
35
+ export function hashObject(object) {
36
+ return hashString(sortedJSONStringify(object));
37
+ }
17
38
  /** Stringifies the schema and returns the hash of the resulting string. Sorts schema fields
18
39
  * in consistent order before stringify to prevent different hash ids for the same schema.
19
40
  *
@@ -21,9 +42,6 @@ function hashString(string) {
21
42
  * @returns - The string obtained from the hash of the stringified schema
22
43
  */
23
44
  export default function hashForSchema(schema) {
24
- const allKeys = new Set();
25
- // solution source: https://stackoverflow.com/questions/16167581/sort-object-properties-and-json-stringify/53593328#53593328
26
- JSON.stringify(schema, (key, value) => (allKeys.add(key), value));
27
- return hashString(JSON.stringify(schema, Array.from(allKeys).sort()));
45
+ return hashObject(schema);
28
46
  }
29
47
  //# sourceMappingURL=hashForSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hashForSchema.js","sourceRoot":"","sources":["../src/hashForSchema.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,MAAc;IAChC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;QAChC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;KAChD;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAA0C,MAAS;IACtF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,4HAA4H;IAC5H,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"hashForSchema.js","sourceRoot":"","sources":["../src/hashForSchema.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;QAChC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe;IACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,4HAA4H;IAC5H,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,MAAe;IACxC,OAAO,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAA0C,MAAS;IACtF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { IdSchema } from './types';
1
+ import { IdSchema } from './types.js';
2
2
  /** Return a consistent `id` for the field description element
3
3
  *
4
4
  * @param id - Either simple string id or an IdSchema from which to extract it
@@ -45,3 +45,10 @@ export declare function ariaDescribedByIds<T = any>(id: IdSchema<T> | string, in
45
45
  * @returns - An id for the option index based on the parent `id`
46
46
  */
47
47
  export declare function optionId(id: string, optionIndex: number): string;
48
+ /** Return a consistent `id` for the `btn` button element
49
+ *
50
+ * @param id - Either simple string id or an IdSchema from which to extract it
51
+ * @param btn - The button type for which to generate the id
52
+ * @returns - The consistent id for the button from the given `id` and `btn` type
53
+ */
54
+ export declare function buttonId<T = any>(id: IdSchema<T> | string, btn: 'add' | 'copy' | 'moveDown' | 'moveUp' | 'remove'): string;
@@ -1,5 +1,5 @@
1
- import isString from 'lodash/isString';
2
- import { ID_KEY } from './constants';
1
+ import isString from 'lodash-es/isString.js';
2
+ import { ID_KEY } from './constants.js';
3
3
  /** Generates a consistent `id` pattern for a given `id` and a `suffix`
4
4
  *
5
5
  * @param id - Either simple string id or an IdSchema from which to extract it
@@ -70,4 +70,13 @@ export function ariaDescribedByIds(id, includeExamples = false) {
70
70
  export function optionId(id, optionIndex) {
71
71
  return `${id}-${optionIndex}`;
72
72
  }
73
+ /** Return a consistent `id` for the `btn` button element
74
+ *
75
+ * @param id - Either simple string id or an IdSchema from which to extract it
76
+ * @param btn - The button type for which to generate the id
77
+ * @returns - The consistent id for the button from the given `id` and `btn` type
78
+ */
79
+ export function buttonId(id, btn) {
80
+ return idGenerator(id, btn);
81
+ }
73
82
  //# sourceMappingURL=idGenerators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"idGenerators.js","sourceRoot":"","sources":["../src/idGenerators.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAGvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;GAIG;AACH,SAAS,WAAW,CAAU,EAAwB,EAAE,MAAc;IACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,GAAG,KAAK,KAAK,MAAM,EAAE,CAAC;AAC/B,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAU,EAAwB;IAC7D,OAAO,WAAW,CAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAU,EAAwB;IACvD,OAAO,WAAW,CAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAU,EAAwB;IAC1D,OAAO,WAAW,CAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAU,EAAwB;IACtD,OAAO,WAAW,CAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAU,EAAwB;IACvD,OAAO,WAAW,CAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAU,EAAwB,EAAE,eAAe,GAAG,KAAK;IAC3F,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,UAAU,CAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,GAAG,OAAO,CAAI,EAAE,CAAC,IAAI,aAAa,CAAI,EAAE,CAAC,IAAI,MAAM,CAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;AACjF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,WAAmB;IACtD,OAAO,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"idGenerators.js","sourceRoot":"","sources":["../src/idGenerators.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAGvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;GAIG;AACH,SAAS,WAAW,CAAU,EAAwB,EAAE,MAAc;IACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,GAAG,KAAK,KAAK,MAAM,EAAE,CAAC;AAC/B,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAU,EAAwB;IAC7D,OAAO,WAAW,CAAI,EAAE,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAU,EAAwB;IACvD,OAAO,WAAW,CAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAU,EAAwB;IAC1D,OAAO,WAAW,CAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAU,EAAwB;IACtD,OAAO,WAAW,CAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAU,EAAwB;IACvD,OAAO,WAAW,CAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAU,EAAwB,EAAE,eAAe,GAAG,KAAK;IAC3F,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,UAAU,CAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,GAAG,OAAO,CAAI,EAAE,CAAC,IAAI,aAAa,CAAI,EAAE,CAAC,IAAI,MAAM,CAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;AACjF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,WAAmB;IACtD,OAAO,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAU,EAAwB,EAAE,GAAsD;IAChH,OAAO,WAAW,CAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC"}
package/lib/index.d.ts CHANGED
@@ -1,60 +1,63 @@
1
- import allowAdditionalItems from './allowAdditionalItems';
2
- import asNumber from './asNumber';
3
- import canExpand from './canExpand';
4
- import createErrorHandler from './createErrorHandler';
5
- import createSchemaUtils from './createSchemaUtils';
6
- import dataURItoBlob from './dataURItoBlob';
7
- import dateRangeOptions from './dateRangeOptions';
8
- import deepEquals from './deepEquals';
9
- import englishStringTranslator from './englishStringTranslator';
10
- import enumOptionsDeselectValue from './enumOptionsDeselectValue';
11
- import enumOptionsIndexForValue from './enumOptionsIndexForValue';
12
- import enumOptionsIsSelected from './enumOptionsIsSelected';
13
- import enumOptionsSelectValue from './enumOptionsSelectValue';
14
- import enumOptionsValueForIndex from './enumOptionsValueForIndex';
15
- import ErrorSchemaBuilder from './ErrorSchemaBuilder';
16
- import findSchemaDefinition from './findSchemaDefinition';
17
- import getDateElementProps, { type DateElementFormat } from './getDateElementProps';
18
- import getDiscriminatorFieldFromSchema from './getDiscriminatorFieldFromSchema';
19
- import getInputProps from './getInputProps';
20
- import getSchemaType from './getSchemaType';
21
- import getSubmitButtonOptions from './getSubmitButtonOptions';
22
- import getTemplate from './getTemplate';
23
- import getUiOptions from './getUiOptions';
24
- import getWidget from './getWidget';
25
- import guessType from './guessType';
26
- import hashForSchema from './hashForSchema';
27
- import hasWidget from './hasWidget';
28
- import { ariaDescribedByIds, descriptionId, errorId, examplesId, helpId, optionId, titleId } from './idGenerators';
29
- import isConstant from './isConstant';
30
- import isCustomWidget from './isCustomWidget';
31
- import isFixedItems from './isFixedItems';
32
- import isObject from './isObject';
33
- import labelValue from './labelValue';
34
- import localToUTC from './localToUTC';
35
- import mergeDefaultsWithFormData from './mergeDefaultsWithFormData';
36
- import mergeObjects from './mergeObjects';
37
- import mergeSchemas from './mergeSchemas';
38
- import optionsList from './optionsList';
39
- import orderProperties from './orderProperties';
40
- import pad from './pad';
41
- import parseDateString from './parseDateString';
42
- import rangeSpec from './rangeSpec';
43
- import replaceStringParameters from './replaceStringParameters';
44
- import schemaRequiresTrueValue from './schemaRequiresTrueValue';
45
- import shouldRender from './shouldRender';
46
- import toConstant from './toConstant';
47
- import toDateString from './toDateString';
48
- import toErrorList from './toErrorList';
49
- import toErrorSchema from './toErrorSchema';
50
- import unwrapErrorHandler from './unwrapErrorHandler';
51
- import utcToLocal from './utcToLocal';
52
- import validationDataMerge from './validationDataMerge';
53
- import withIdRefPrefix from './withIdRefPrefix';
54
- import getOptionMatchingSimpleDiscriminator from './getOptionMatchingSimpleDiscriminator';
55
- export * from './types';
56
- export * from './enums';
57
- export * from './constants';
58
- export * from './parser';
59
- export * from './schema';
60
- export { allowAdditionalItems, ariaDescribedByIds, asNumber, canExpand, createErrorHandler, createSchemaUtils, DateElementFormat, dataURItoBlob, dateRangeOptions, deepEquals, descriptionId, englishStringTranslator, enumOptionsDeselectValue, enumOptionsIndexForValue, enumOptionsIsSelected, enumOptionsSelectValue, enumOptionsValueForIndex, errorId, examplesId, ErrorSchemaBuilder, findSchemaDefinition, getDateElementProps, getDiscriminatorFieldFromSchema, getInputProps, getOptionMatchingSimpleDiscriminator, getSchemaType, getSubmitButtonOptions, getTemplate, getUiOptions, getWidget, guessType, hasWidget, hashForSchema, helpId, isConstant, isCustomWidget, isFixedItems, isObject, labelValue, localToUTC, mergeDefaultsWithFormData, mergeObjects, mergeSchemas, optionId, optionsList, orderProperties, pad, parseDateString, rangeSpec, replaceStringParameters, schemaRequiresTrueValue, shouldRender, titleId, toConstant, toDateString, toErrorList, toErrorSchema, unwrapErrorHandler, utcToLocal, validationDataMerge, withIdRefPrefix, };
1
+ import allowAdditionalItems from './allowAdditionalItems.js';
2
+ import asNumber from './asNumber.js';
3
+ import canExpand from './canExpand.js';
4
+ import createErrorHandler from './createErrorHandler.js';
5
+ import createSchemaUtils from './createSchemaUtils.js';
6
+ import dataURItoBlob from './dataURItoBlob.js';
7
+ import dateRangeOptions from './dateRangeOptions.js';
8
+ import deepEquals from './deepEquals.js';
9
+ import englishStringTranslator from './englishStringTranslator.js';
10
+ import enumOptionsDeselectValue from './enumOptionsDeselectValue.js';
11
+ import enumOptionsIndexForValue from './enumOptionsIndexForValue.js';
12
+ import enumOptionsIsSelected from './enumOptionsIsSelected.js';
13
+ import enumOptionsSelectValue from './enumOptionsSelectValue.js';
14
+ import enumOptionsValueForIndex from './enumOptionsValueForIndex.js';
15
+ import ErrorSchemaBuilder from './ErrorSchemaBuilder.js';
16
+ import findSchemaDefinition from './findSchemaDefinition.js';
17
+ import getDateElementProps, { type DateElementFormat } from './getDateElementProps.js';
18
+ import getDiscriminatorFieldFromSchema from './getDiscriminatorFieldFromSchema.js';
19
+ import getInputProps from './getInputProps.js';
20
+ import getSchemaType from './getSchemaType.js';
21
+ import getSubmitButtonOptions from './getSubmitButtonOptions.js';
22
+ import getTemplate from './getTemplate.js';
23
+ import getTestIds from './getTestIds.js';
24
+ import getUiOptions from './getUiOptions.js';
25
+ import getWidget from './getWidget.js';
26
+ import guessType from './guessType.js';
27
+ import hashForSchema, { hashObject, hashString, sortedJSONStringify } from './hashForSchema.js';
28
+ import hasWidget from './hasWidget.js';
29
+ import { ariaDescribedByIds, buttonId, descriptionId, errorId, examplesId, helpId, optionId, titleId } from './idGenerators.js';
30
+ import isConstant from './isConstant.js';
31
+ import isCustomWidget from './isCustomWidget.js';
32
+ import isFixedItems from './isFixedItems.js';
33
+ import isObject from './isObject.js';
34
+ import labelValue from './labelValue.js';
35
+ import localToUTC from './localToUTC.js';
36
+ import lookupFromFormContext from './lookupFromFormContext.js';
37
+ import mergeDefaultsWithFormData from './mergeDefaultsWithFormData.js';
38
+ import mergeObjects from './mergeObjects.js';
39
+ import mergeSchemas from './mergeSchemas.js';
40
+ import optionsList from './optionsList.js';
41
+ import orderProperties from './orderProperties.js';
42
+ import pad from './pad.js';
43
+ import parseDateString from './parseDateString.js';
44
+ import rangeSpec from './rangeSpec.js';
45
+ import replaceStringParameters from './replaceStringParameters.js';
46
+ import schemaRequiresTrueValue from './schemaRequiresTrueValue.js';
47
+ import shouldRender from './shouldRender.js';
48
+ import toConstant from './toConstant.js';
49
+ import toDateString from './toDateString.js';
50
+ import toErrorList from './toErrorList.js';
51
+ import toErrorSchema from './toErrorSchema.js';
52
+ import unwrapErrorHandler from './unwrapErrorHandler.js';
53
+ import utcToLocal from './utcToLocal.js';
54
+ import validationDataMerge from './validationDataMerge.js';
55
+ import withIdRefPrefix from './withIdRefPrefix.js';
56
+ import getOptionMatchingSimpleDiscriminator from './getOptionMatchingSimpleDiscriminator.js';
57
+ import getChangedFields from './getChangedFields.js';
58
+ export * from './types.js';
59
+ export * from './enums.js';
60
+ export * from './constants.js';
61
+ export * from './parser/index.js';
62
+ export * from './schema/index.js';
63
+ export { allowAdditionalItems, ariaDescribedByIds, asNumber, buttonId, canExpand, createErrorHandler, createSchemaUtils, DateElementFormat, dataURItoBlob, dateRangeOptions, deepEquals, descriptionId, englishStringTranslator, enumOptionsDeselectValue, enumOptionsIndexForValue, enumOptionsIsSelected, enumOptionsSelectValue, enumOptionsValueForIndex, errorId, examplesId, ErrorSchemaBuilder, findSchemaDefinition, getChangedFields, getDateElementProps, getDiscriminatorFieldFromSchema, getInputProps, getOptionMatchingSimpleDiscriminator, getSchemaType, getSubmitButtonOptions, getTemplate, getTestIds, getUiOptions, getWidget, guessType, hasWidget, hashForSchema, hashObject, hashString, helpId, isConstant, isCustomWidget, isFixedItems, isObject, labelValue, localToUTC, lookupFromFormContext, mergeDefaultsWithFormData, mergeObjects, mergeSchemas, optionId, optionsList, orderProperties, pad, parseDateString, rangeSpec, replaceStringParameters, schemaRequiresTrueValue, shouldRender, sortedJSONStringify, titleId, toConstant, toDateString, toErrorList, toErrorSchema, unwrapErrorHandler, utcToLocal, validationDataMerge, withIdRefPrefix, };
package/lib/index.js CHANGED
@@ -1,61 +1,64 @@
1
- import allowAdditionalItems from './allowAdditionalItems';
2
- import asNumber from './asNumber';
3
- import canExpand from './canExpand';
4
- import createErrorHandler from './createErrorHandler';
5
- import createSchemaUtils from './createSchemaUtils';
6
- import dataURItoBlob from './dataURItoBlob';
7
- import dateRangeOptions from './dateRangeOptions';
8
- import deepEquals from './deepEquals';
9
- import englishStringTranslator from './englishStringTranslator';
10
- import enumOptionsDeselectValue from './enumOptionsDeselectValue';
11
- import enumOptionsIndexForValue from './enumOptionsIndexForValue';
12
- import enumOptionsIsSelected from './enumOptionsIsSelected';
13
- import enumOptionsSelectValue from './enumOptionsSelectValue';
14
- import enumOptionsValueForIndex from './enumOptionsValueForIndex';
15
- import ErrorSchemaBuilder from './ErrorSchemaBuilder';
16
- import findSchemaDefinition from './findSchemaDefinition';
17
- import getDateElementProps from './getDateElementProps';
18
- import getDiscriminatorFieldFromSchema from './getDiscriminatorFieldFromSchema';
19
- import getInputProps from './getInputProps';
20
- import getSchemaType from './getSchemaType';
21
- import getSubmitButtonOptions from './getSubmitButtonOptions';
22
- import getTemplate from './getTemplate';
23
- import getUiOptions from './getUiOptions';
24
- import getWidget from './getWidget';
25
- import guessType from './guessType';
26
- import hashForSchema from './hashForSchema';
27
- import hasWidget from './hasWidget';
28
- import { ariaDescribedByIds, descriptionId, errorId, examplesId, helpId, optionId, titleId } from './idGenerators';
29
- import isConstant from './isConstant';
30
- import isCustomWidget from './isCustomWidget';
31
- import isFixedItems from './isFixedItems';
32
- import isObject from './isObject';
33
- import labelValue from './labelValue';
34
- import localToUTC from './localToUTC';
35
- import mergeDefaultsWithFormData from './mergeDefaultsWithFormData';
36
- import mergeObjects from './mergeObjects';
37
- import mergeSchemas from './mergeSchemas';
38
- import optionsList from './optionsList';
39
- import orderProperties from './orderProperties';
40
- import pad from './pad';
41
- import parseDateString from './parseDateString';
42
- import rangeSpec from './rangeSpec';
43
- import replaceStringParameters from './replaceStringParameters';
44
- import schemaRequiresTrueValue from './schemaRequiresTrueValue';
45
- import shouldRender from './shouldRender';
46
- import toConstant from './toConstant';
47
- import toDateString from './toDateString';
48
- import toErrorList from './toErrorList';
49
- import toErrorSchema from './toErrorSchema';
50
- import unwrapErrorHandler from './unwrapErrorHandler';
51
- import utcToLocal from './utcToLocal';
52
- import validationDataMerge from './validationDataMerge';
53
- import withIdRefPrefix from './withIdRefPrefix';
54
- import getOptionMatchingSimpleDiscriminator from './getOptionMatchingSimpleDiscriminator';
55
- export * from './types';
56
- export * from './enums';
57
- export * from './constants';
58
- export * from './parser';
59
- export * from './schema';
60
- export { allowAdditionalItems, ariaDescribedByIds, asNumber, canExpand, createErrorHandler, createSchemaUtils, dataURItoBlob, dateRangeOptions, deepEquals, descriptionId, englishStringTranslator, enumOptionsDeselectValue, enumOptionsIndexForValue, enumOptionsIsSelected, enumOptionsSelectValue, enumOptionsValueForIndex, errorId, examplesId, ErrorSchemaBuilder, findSchemaDefinition, getDateElementProps, getDiscriminatorFieldFromSchema, getInputProps, getOptionMatchingSimpleDiscriminator, getSchemaType, getSubmitButtonOptions, getTemplate, getUiOptions, getWidget, guessType, hasWidget, hashForSchema, helpId, isConstant, isCustomWidget, isFixedItems, isObject, labelValue, localToUTC, mergeDefaultsWithFormData, mergeObjects, mergeSchemas, optionId, optionsList, orderProperties, pad, parseDateString, rangeSpec, replaceStringParameters, schemaRequiresTrueValue, shouldRender, titleId, toConstant, toDateString, toErrorList, toErrorSchema, unwrapErrorHandler, utcToLocal, validationDataMerge, withIdRefPrefix, };
1
+ import allowAdditionalItems from './allowAdditionalItems.js';
2
+ import asNumber from './asNumber.js';
3
+ import canExpand from './canExpand.js';
4
+ import createErrorHandler from './createErrorHandler.js';
5
+ import createSchemaUtils from './createSchemaUtils.js';
6
+ import dataURItoBlob from './dataURItoBlob.js';
7
+ import dateRangeOptions from './dateRangeOptions.js';
8
+ import deepEquals from './deepEquals.js';
9
+ import englishStringTranslator from './englishStringTranslator.js';
10
+ import enumOptionsDeselectValue from './enumOptionsDeselectValue.js';
11
+ import enumOptionsIndexForValue from './enumOptionsIndexForValue.js';
12
+ import enumOptionsIsSelected from './enumOptionsIsSelected.js';
13
+ import enumOptionsSelectValue from './enumOptionsSelectValue.js';
14
+ import enumOptionsValueForIndex from './enumOptionsValueForIndex.js';
15
+ import ErrorSchemaBuilder from './ErrorSchemaBuilder.js';
16
+ import findSchemaDefinition from './findSchemaDefinition.js';
17
+ import getDateElementProps from './getDateElementProps.js';
18
+ import getDiscriminatorFieldFromSchema from './getDiscriminatorFieldFromSchema.js';
19
+ import getInputProps from './getInputProps.js';
20
+ import getSchemaType from './getSchemaType.js';
21
+ import getSubmitButtonOptions from './getSubmitButtonOptions.js';
22
+ import getTemplate from './getTemplate.js';
23
+ import getTestIds from './getTestIds.js';
24
+ import getUiOptions from './getUiOptions.js';
25
+ import getWidget from './getWidget.js';
26
+ import guessType from './guessType.js';
27
+ import hashForSchema, { hashObject, hashString, sortedJSONStringify } from './hashForSchema.js';
28
+ import hasWidget from './hasWidget.js';
29
+ import { ariaDescribedByIds, buttonId, descriptionId, errorId, examplesId, helpId, optionId, titleId, } from './idGenerators.js';
30
+ import isConstant from './isConstant.js';
31
+ import isCustomWidget from './isCustomWidget.js';
32
+ import isFixedItems from './isFixedItems.js';
33
+ import isObject from './isObject.js';
34
+ import labelValue from './labelValue.js';
35
+ import localToUTC from './localToUTC.js';
36
+ import lookupFromFormContext from './lookupFromFormContext.js';
37
+ import mergeDefaultsWithFormData from './mergeDefaultsWithFormData.js';
38
+ import mergeObjects from './mergeObjects.js';
39
+ import mergeSchemas from './mergeSchemas.js';
40
+ import optionsList from './optionsList.js';
41
+ import orderProperties from './orderProperties.js';
42
+ import pad from './pad.js';
43
+ import parseDateString from './parseDateString.js';
44
+ import rangeSpec from './rangeSpec.js';
45
+ import replaceStringParameters from './replaceStringParameters.js';
46
+ import schemaRequiresTrueValue from './schemaRequiresTrueValue.js';
47
+ import shouldRender from './shouldRender.js';
48
+ import toConstant from './toConstant.js';
49
+ import toDateString from './toDateString.js';
50
+ import toErrorList from './toErrorList.js';
51
+ import toErrorSchema from './toErrorSchema.js';
52
+ import unwrapErrorHandler from './unwrapErrorHandler.js';
53
+ import utcToLocal from './utcToLocal.js';
54
+ import validationDataMerge from './validationDataMerge.js';
55
+ import withIdRefPrefix from './withIdRefPrefix.js';
56
+ import getOptionMatchingSimpleDiscriminator from './getOptionMatchingSimpleDiscriminator.js';
57
+ import getChangedFields from './getChangedFields.js';
58
+ export * from './types.js';
59
+ export * from './enums.js';
60
+ export * from './constants.js';
61
+ export * from './parser/index.js';
62
+ export * from './schema/index.js';
63
+ export { allowAdditionalItems, ariaDescribedByIds, asNumber, buttonId, canExpand, createErrorHandler, createSchemaUtils, dataURItoBlob, dateRangeOptions, deepEquals, descriptionId, englishStringTranslator, enumOptionsDeselectValue, enumOptionsIndexForValue, enumOptionsIsSelected, enumOptionsSelectValue, enumOptionsValueForIndex, errorId, examplesId, ErrorSchemaBuilder, findSchemaDefinition, getChangedFields, getDateElementProps, getDiscriminatorFieldFromSchema, getInputProps, getOptionMatchingSimpleDiscriminator, getSchemaType, getSubmitButtonOptions, getTemplate, getTestIds, getUiOptions, getWidget, guessType, hasWidget, hashForSchema, hashObject, hashString, helpId, isConstant, isCustomWidget, isFixedItems, isObject, labelValue, localToUTC, lookupFromFormContext, mergeDefaultsWithFormData, mergeObjects, mergeSchemas, optionId, optionsList, orderProperties, pad, parseDateString, rangeSpec, replaceStringParameters, schemaRequiresTrueValue, shouldRender, sortedJSONStringify, titleId, toConstant, toDateString, toErrorList, toErrorSchema, unwrapErrorHandler, utcToLocal, validationDataMerge, withIdRefPrefix, };
61
64
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,mBAA+C,MAAM,uBAAuB,CAAC;AACpF,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAE1F,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAExB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AAEzB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EAEjB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,+BAA+B,EAC/B,aAAa,EACb,oCAAoC,EACpC,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,MAAM,EACN,UAAU,EACV,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,eAAe,EACf,GAAG,EACH,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { RJSFSchema, StrictRJSFSchema } from './types';
1
+ import { RJSFSchema, StrictRJSFSchema } from './types.js';
2
2
  /** This function checks if the given `schema` matches a single constant value. This happens when either the schema has
3
3
  * an `enum` array with a single value or there is a `const` defined.
4
4
  *
package/lib/isConstant.js CHANGED
@@ -1,4 +1,4 @@
1
- import { CONST_KEY } from './constants';
1
+ import { CONST_KEY } from './constants.js';
2
2
  /** This function checks if the given `schema` matches a single constant value. This happens when either the schema has
3
3
  * an `enum` array with a single value or there is a `const` defined.
4
4
  *
@@ -1,4 +1,4 @@
1
- import { FormContextType, RJSFSchema, StrictRJSFSchema, UiSchema } from './types';
1
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, UiSchema } from './types.js';
2
2
  /** Checks to see if the `uiSchema` contains the `widget` field and that the widget is not `hidden`
3
3
  *
4
4
  * @param uiSchema - The UI Schema from which to detect if it is customized
@@ -1,4 +1,4 @@
1
- import getUiOptions from './getUiOptions';
1
+ import getUiOptions from './getUiOptions.js';
2
2
  /** Checks to see if the `uiSchema` contains the `widget` field and that the widget is not `hidden`
3
3
  *
4
4
  * @param uiSchema - The UI Schema from which to detect if it is customized
@@ -1,4 +1,4 @@
1
- import { RJSFSchema, StrictRJSFSchema } from './types';
1
+ import { RJSFSchema, StrictRJSFSchema } from './types.js';
2
2
  /** Detects whether the given `schema` contains fixed items. This is the case when `schema.items` is a non-empty array
3
3
  * that only contains objects.
4
4
  *
@@ -1,4 +1,4 @@
1
- import isObject from './isObject';
1
+ import isObject from './isObject.js';
2
2
  /** Detects whether the given `schema` contains fixed items. This is the case when `schema.items` is a non-empty array
3
3
  * that only contains objects.
4
4
  *
package/lib/isObject.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- /** Determines whether a `thing` is an object for the purposes of RSJF. In this case, `thing` is an object if it has
1
+ /** Determines whether a `thing` is an object for the purposes of RJSF. In this case, `thing` is an object if it has
2
2
  * the type `object` but is NOT null, an array or a File.
3
3
  *
4
4
  * @param thing - The thing to check to see whether it is an object
5
5
  * @returns - True if it is a non-null, non-array, non-File object
6
6
  */
7
- export default function isObject(thing: any): boolean;
7
+ export default function isObject(thing: any): thing is object;
package/lib/isObject.js CHANGED
@@ -1,16 +1,23 @@
1
- /** Determines whether a `thing` is an object for the purposes of RSJF. In this case, `thing` is an object if it has
1
+ /** Determines whether a `thing` is an object for the purposes of RJSF. In this case, `thing` is an object if it has
2
2
  * the type `object` but is NOT null, an array or a File.
3
3
  *
4
4
  * @param thing - The thing to check to see whether it is an object
5
5
  * @returns - True if it is a non-null, non-array, non-File object
6
6
  */
7
7
  export default function isObject(thing) {
8
- if (typeof File !== 'undefined' && thing instanceof File) {
8
+ if (typeof thing !== 'object' || thing === null) {
9
9
  return false;
10
10
  }
11
- if (typeof Date !== 'undefined' && thing instanceof Date) {
11
+ // lastModified is guaranteed to be a number on a File instance
12
+ // as per https://w3c.github.io/FileAPI/#dfn-lastModified
13
+ if (typeof thing.lastModified === 'number' && typeof File !== 'undefined' && thing instanceof File) {
12
14
  return false;
13
15
  }
14
- return typeof thing === 'object' && thing !== null && !Array.isArray(thing);
16
+ // getMonth is guaranteed to be a method on a Date instance
17
+ // as per https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date.prototype.getmonth
18
+ if (typeof thing.getMonth === 'function' && typeof Date !== 'undefined' && thing instanceof Date) {
19
+ return false;
20
+ }
21
+ return !Array.isArray(thing);
15
22
  }
16
23
  //# sourceMappingURL=isObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isObject.js","sourceRoot":"","sources":["../src/isObject.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAU;IACzC,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,KAAK,YAAY,IAAI,EAAE;QACxD,OAAO,KAAK,CAAC;KACd;IACD,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,KAAK,YAAY,IAAI,EAAE;QACxD,OAAO,KAAK,CAAC;KACd;IACD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"isObject.js","sourceRoot":"","sources":["../src/isObject.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAU;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,+DAA+D;IAC/D,yDAAyD;IACzD,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACnG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,2DAA2D;IAC3D,8FAA8F;IAC9F,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACjG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FormContextType, RJSFSchema, Registry, StrictRJSFSchema } from './types.js';
2
+ /** Given a React JSON Schema Form registry or formContext object, return the value associated with `toLookup`. This
3
+ * might be contained within the lookup map in the formContext. If no such value exists, return the `fallback`
4
+ * value.
5
+ *
6
+ * @param regOrFc - The @rjsf registry or form context in which the lookup will occur
7
+ * @param toLookup - The name of the field in the lookup map in the form context to get the value for
8
+ * @param [fallback] - The fallback value to use if the form context does not contain a value for `toLookup`
9
+ * @returns - The value associated with `toLookup` in the form context or `fallback`
10
+ */
11
+ export default function lookupFromFormContext<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(regOrFc: Registry<T, S, F> | Registry<T, S, F>['formContext'], toLookup: string, fallback?: unknown): any;
@@ -0,0 +1,20 @@
1
+ import get from 'lodash-es/get.js';
2
+ import has from 'lodash-es/has.js';
3
+ import { FORM_CONTEXT_NAME, LOOKUP_MAP_NAME } from './constants.js';
4
+ /** Given a React JSON Schema Form registry or formContext object, return the value associated with `toLookup`. This
5
+ * might be contained within the lookup map in the formContext. If no such value exists, return the `fallback`
6
+ * value.
7
+ *
8
+ * @param regOrFc - The @rjsf registry or form context in which the lookup will occur
9
+ * @param toLookup - The name of the field in the lookup map in the form context to get the value for
10
+ * @param [fallback] - The fallback value to use if the form context does not contain a value for `toLookup`
11
+ * @returns - The value associated with `toLookup` in the form context or `fallback`
12
+ */
13
+ export default function lookupFromFormContext(regOrFc, toLookup, fallback) {
14
+ const lookupPath = [LOOKUP_MAP_NAME];
15
+ if (has(regOrFc, FORM_CONTEXT_NAME)) {
16
+ lookupPath.unshift(FORM_CONTEXT_NAME);
17
+ }
18
+ return get(regOrFc, [...lookupPath, toLookup], fallback);
19
+ }
20
+ //# sourceMappingURL=lookupFromFormContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookupFromFormContext.js","sourceRoot":"","sources":["../src/lookupFromFormContext.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGjE;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAI3C,OAA6D,EAAE,QAAgB,EAAE,QAAkB;IACnG,MAAM,UAAU,GAAG,CAAC,eAAe,CAAC,CAAC;IACrC,IAAI,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACpC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC"}
@@ -7,11 +7,17 @@
7
7
  * are deeply merged; additional entries from the defaults are ignored unless `mergeExtraArrayDefaults` is true, in
8
8
  * which case the extras are appended onto the end of the form data
9
9
  * - when the array is not set in form data, the default is copied over
10
- * - scalars are overwritten/set by form data
10
+ * - scalars are overwritten/set by form data unless undefined and there is a default AND `defaultSupercedesUndefined`
11
+ * is true
11
12
  *
12
13
  * @param [defaults] - The defaults to merge
13
14
  * @param [formData] - The form data into which the defaults will be merged
14
15
  * @param [mergeExtraArrayDefaults=false] - If true, any additional default array entries are appended onto the formData
16
+ * @param [defaultSupercedesUndefined=false] - If true, an explicit undefined value will be overwritten by the default value
17
+ * @param [overrideFormDataWithDefaults=false] - If true, the default value will overwrite the form data value. If the value
18
+ * doesn't exist in the default, we take it from formData and in the case where the value is set to undefined in formData.
19
+ * This is useful when we have already merged formData with defaults and want to add an additional field from formData
20
+ * that does not exist in defaults.
15
21
  * @returns - The resulting merged form data with defaults
16
22
  */
17
- export default function mergeDefaultsWithFormData<T = any>(defaults?: T, formData?: T, mergeExtraArrayDefaults?: boolean): T | undefined;
23
+ export default function mergeDefaultsWithFormData<T = any>(defaults?: T, formData?: T, mergeExtraArrayDefaults?: boolean, defaultSupercedesUndefined?: boolean, overrideFormDataWithDefaults?: boolean): T | undefined;