envoc-form 5.0.9 → 6.0.1-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 (352) hide show
  1. package/README.md +4930 -1645
  2. package/dist/index.cjs +25531 -0
  3. package/dist/index.d.ts +624 -0
  4. package/dist/index.js +25461 -0
  5. package/package.json +73 -77
  6. package/dist/css/envoc-form-styles.css +0 -3
  7. package/dist/css/envoc-form-styles.css.map +0 -1
  8. package/es/AddressInput/AddressInput.d.ts +0 -24
  9. package/es/AddressInput/AddressInput.js +0 -20
  10. package/es/AddressInput/UsStates.d.ts +0 -3
  11. package/es/AddressInput/UsStates.js +0 -53
  12. package/es/ConfirmBaseForm/ConfirmBaseForm.d.ts +0 -26
  13. package/es/ConfirmBaseForm/ConfirmBaseForm.js +0 -42
  14. package/es/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +0 -24
  15. package/es/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -60
  16. package/es/DatePicker/DatePickerGroup.d.ts +0 -13
  17. package/es/DatePicker/DatePickerGroup.js +0 -88
  18. package/es/DatePicker/DatePickerHelper.d.ts +0 -3
  19. package/es/DatePicker/DatePickerHelper.js +0 -1
  20. package/es/DatePicker/StringDateOnlyPickerGroup.d.ts +0 -9
  21. package/es/DatePicker/StringDateOnlyPickerGroup.js +0 -29
  22. package/es/DatePicker/StringDatePickerGroup.d.ts +0 -9
  23. package/es/DatePicker/StringDatePickerGroup.js +0 -24
  24. package/es/DateTimePicker/DateTimePickerGroup.d.ts +0 -12
  25. package/es/DateTimePicker/DateTimePickerGroup.js +0 -87
  26. package/es/DateTimePicker/DateTimePickerHelper.d.ts +0 -3
  27. package/es/DateTimePicker/DateTimePickerHelper.js +0 -1
  28. package/es/DateTimePicker/StringDateTimePickerGroup.d.ts +0 -9
  29. package/es/DateTimePicker/StringDateTimePickerGroup.js +0 -53
  30. package/es/Field/CustomFieldInputProps.d.ts +0 -7
  31. package/es/Field/CustomFieldInputProps.js +0 -1
  32. package/es/Field/CustomFieldMetaProps.d.ts +0 -4
  33. package/es/Field/CustomFieldMetaProps.js +0 -1
  34. package/es/Field/Field.d.ts +0 -29
  35. package/es/Field/Field.js +0 -59
  36. package/es/Field/FieldErrorScrollTarget.d.ts +0 -2
  37. package/es/Field/FieldErrorScrollTarget.js +0 -12
  38. package/es/Field/FieldNameContext.d.ts +0 -3
  39. package/es/Field/FieldNameContext.js +0 -3
  40. package/es/Field/FieldSection.d.ts +0 -7
  41. package/es/Field/FieldSection.js +0 -9
  42. package/es/Field/InjectedFieldProps.d.ts +0 -7
  43. package/es/Field/InjectedFieldProps.js +0 -1
  44. package/es/Field/StandAloneInput.d.ts +0 -13
  45. package/es/Field/StandAloneInput.js +0 -50
  46. package/es/Field/useStandardField.d.ts +0 -21
  47. package/es/Field/useStandardField.js +0 -92
  48. package/es/FieldArray/FieldArray.d.ts +0 -24
  49. package/es/FieldArray/FieldArray.js +0 -77
  50. package/es/File/FileGroup.d.ts +0 -10
  51. package/es/File/FileGroup.js +0 -53
  52. package/es/File/FileList.d.ts +0 -5
  53. package/es/File/FileList.js +0 -10
  54. package/es/File/humanFileSize.d.ts +0 -1
  55. package/es/File/humanFileSize.js +0 -6
  56. package/es/Form/FocusError.d.ts +0 -7
  57. package/es/Form/FocusError.js +0 -42
  58. package/es/Form/Form.d.ts +0 -33
  59. package/es/Form/Form.js +0 -141
  60. package/es/Form/FormBasedPreventNavigation.d.ts +0 -6
  61. package/es/Form/FormBasedPreventNavigation.js +0 -20
  62. package/es/Form/LegacyFormBasedPreventNavigation.d.ts +0 -17
  63. package/es/Form/LegacyFormBasedPreventNavigation.js +0 -69
  64. package/es/Form/NewFormBasedPreventNavigation.d.ts +0 -14
  65. package/es/Form/NewFormBasedPreventNavigation.js +0 -39
  66. package/es/Form/ServerErrorContext.d.ts +0 -11
  67. package/es/Form/ServerErrorContext.js +0 -9
  68. package/es/FormActions.d.ts +0 -12
  69. package/es/FormActions.js +0 -16
  70. package/es/FormDefaults.d.ts +0 -4
  71. package/es/FormDefaults.js +0 -2
  72. package/es/Group.d.ts +0 -16
  73. package/es/Group.js +0 -14
  74. package/es/Input/CheckboxGroup.d.ts +0 -6
  75. package/es/Input/CheckboxGroup.js +0 -14
  76. package/es/Input/CheckboxInputGroup.d.ts +0 -13
  77. package/es/Input/CheckboxInputGroup.js +0 -41
  78. package/es/Input/IconInputGroup.d.ts +0 -12
  79. package/es/Input/IconInputGroup.js +0 -43
  80. package/es/Input/InputGroup.d.ts +0 -12
  81. package/es/Input/InputGroup.js +0 -34
  82. package/es/Input/MoneyInputGroup.d.ts +0 -9
  83. package/es/Input/MoneyInputGroup.js +0 -43
  84. package/es/Input/NumberInputGroup.d.ts +0 -9
  85. package/es/Input/NumberInputGroup.js +0 -43
  86. package/es/Input/PhoneNumberInputGroup.d.ts +0 -10
  87. package/es/Input/PhoneNumberInputGroup.js +0 -47
  88. package/es/Input/StringInputGroup.d.ts +0 -8
  89. package/es/Input/StringInputGroup.js +0 -43
  90. package/es/Normalization/NormalizationFunction.d.ts +0 -4
  91. package/es/Normalization/NormalizationFunction.js +0 -1
  92. package/es/Normalization/normalizers.d.ts +0 -4
  93. package/es/Normalization/normalizers.js +0 -32
  94. package/es/Select/BooleanSelectGroup.d.ts +0 -7
  95. package/es/Select/BooleanSelectGroup.js +0 -28
  96. package/es/Select/NumberSelectGroup.d.ts +0 -9
  97. package/es/Select/NumberSelectGroup.js +0 -21
  98. package/es/Select/SelectGroup.d.ts +0 -29
  99. package/es/Select/SelectGroup.js +0 -65
  100. package/es/Select/SelectGroupPropsHelper.d.ts +0 -3
  101. package/es/Select/SelectGroupPropsHelper.js +0 -1
  102. package/es/Select/StringSelectGroup.d.ts +0 -9
  103. package/es/Select/StringSelectGroup.js +0 -21
  104. package/es/StandardFormActions.d.ts +0 -11
  105. package/es/StandardFormActions.js +0 -14
  106. package/es/SubmitFormButton.d.ts +0 -10
  107. package/es/SubmitFormButton.js +0 -40
  108. package/es/TextArea/TextAreaGroup.d.ts +0 -9
  109. package/es/TextArea/TextAreaGroup.js +0 -35
  110. package/es/Validation/ValidatedApiResult.d.ts +0 -6
  111. package/es/Validation/ValidatedApiResult.js +0 -1
  112. package/es/Validation/ValidationError.d.ts +0 -5
  113. package/es/Validation/ValidationError.js +0 -1
  114. package/es/Validation/ValidationFunction.d.ts +0 -4
  115. package/es/Validation/ValidationFunction.js +0 -1
  116. package/es/Validation/validators.d.ts +0 -18
  117. package/es/Validation/validators.js +0 -77
  118. package/es/index.d.ts +0 -81
  119. package/es/index.js +0 -55
  120. package/es/setupTests.d.ts +0 -1
  121. package/es/setupTests.js +0 -1
  122. package/es/utils/objectContainsNonSerializableProperty.d.ts +0 -1
  123. package/es/utils/objectContainsNonSerializableProperty.js +0 -14
  124. package/es/utils/objectToFormData.d.ts +0 -10
  125. package/es/utils/objectToFormData.js +0 -77
  126. package/es/utils/typeChecks.d.ts +0 -8
  127. package/es/utils/typeChecks.js +0 -18
  128. package/lib/AddressInput/AddressInput.d.ts +0 -24
  129. package/lib/AddressInput/AddressInput.js +0 -26
  130. package/lib/AddressInput/UsStates.d.ts +0 -3
  131. package/lib/AddressInput/UsStates.js +0 -55
  132. package/lib/ConfirmBaseForm/ConfirmBaseForm.d.ts +0 -26
  133. package/lib/ConfirmBaseForm/ConfirmBaseForm.js +0 -45
  134. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +0 -24
  135. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -66
  136. package/lib/DatePicker/DatePickerGroup.d.ts +0 -13
  137. package/lib/DatePicker/DatePickerGroup.js +0 -96
  138. package/lib/DatePicker/DatePickerHelper.d.ts +0 -3
  139. package/lib/DatePicker/DatePickerHelper.js +0 -2
  140. package/lib/DatePicker/StringDateOnlyPickerGroup.d.ts +0 -9
  141. package/lib/DatePicker/StringDateOnlyPickerGroup.js +0 -35
  142. package/lib/DatePicker/StringDatePickerGroup.d.ts +0 -9
  143. package/lib/DatePicker/StringDatePickerGroup.js +0 -30
  144. package/lib/DateTimePicker/DateTimePickerGroup.d.ts +0 -12
  145. package/lib/DateTimePicker/DateTimePickerGroup.js +0 -93
  146. package/lib/DateTimePicker/DateTimePickerHelper.d.ts +0 -3
  147. package/lib/DateTimePicker/DateTimePickerHelper.js +0 -2
  148. package/lib/DateTimePicker/StringDateTimePickerGroup.d.ts +0 -9
  149. package/lib/DateTimePicker/StringDateTimePickerGroup.js +0 -59
  150. package/lib/Field/CustomFieldInputProps.d.ts +0 -7
  151. package/lib/Field/CustomFieldInputProps.js +0 -2
  152. package/lib/Field/CustomFieldMetaProps.d.ts +0 -4
  153. package/lib/Field/CustomFieldMetaProps.js +0 -2
  154. package/lib/Field/Field.d.ts +0 -29
  155. package/lib/Field/Field.js +0 -64
  156. package/lib/Field/FieldErrorScrollTarget.d.ts +0 -2
  157. package/lib/Field/FieldErrorScrollTarget.js +0 -15
  158. package/lib/Field/FieldNameContext.d.ts +0 -3
  159. package/lib/Field/FieldNameContext.js +0 -9
  160. package/lib/Field/FieldSection.d.ts +0 -7
  161. package/lib/Field/FieldSection.js +0 -12
  162. package/lib/Field/InjectedFieldProps.d.ts +0 -7
  163. package/lib/Field/InjectedFieldProps.js +0 -2
  164. package/lib/Field/StandAloneInput.d.ts +0 -13
  165. package/lib/Field/StandAloneInput.js +0 -76
  166. package/lib/Field/useStandardField.d.ts +0 -21
  167. package/lib/Field/useStandardField.js +0 -95
  168. package/lib/FieldArray/FieldArray.d.ts +0 -24
  169. package/lib/FieldArray/FieldArray.js +0 -83
  170. package/lib/File/FileGroup.d.ts +0 -10
  171. package/lib/File/FileGroup.js +0 -58
  172. package/lib/File/FileList.d.ts +0 -5
  173. package/lib/File/FileList.js +0 -13
  174. package/lib/File/humanFileSize.d.ts +0 -1
  175. package/lib/File/humanFileSize.js +0 -10
  176. package/lib/Form/FocusError.d.ts +0 -7
  177. package/lib/Form/FocusError.js +0 -48
  178. package/lib/Form/Form.d.ts +0 -33
  179. package/lib/Form/Form.js +0 -147
  180. package/lib/Form/FormBasedPreventNavigation.d.ts +0 -6
  181. package/lib/Form/FormBasedPreventNavigation.js +0 -26
  182. package/lib/Form/LegacyFormBasedPreventNavigation.d.ts +0 -17
  183. package/lib/Form/LegacyFormBasedPreventNavigation.js +0 -72
  184. package/lib/Form/NewFormBasedPreventNavigation.d.ts +0 -14
  185. package/lib/Form/NewFormBasedPreventNavigation.js +0 -42
  186. package/lib/Form/ServerErrorContext.d.ts +0 -11
  187. package/lib/Form/ServerErrorContext.js +0 -15
  188. package/lib/FormActions.d.ts +0 -12
  189. package/lib/FormActions.js +0 -22
  190. package/lib/FormDefaults.d.ts +0 -4
  191. package/lib/FormDefaults.js +0 -5
  192. package/lib/Group.d.ts +0 -16
  193. package/lib/Group.js +0 -20
  194. package/lib/Input/CheckboxGroup.d.ts +0 -6
  195. package/lib/Input/CheckboxGroup.js +0 -20
  196. package/lib/Input/CheckboxInputGroup.d.ts +0 -13
  197. package/lib/Input/CheckboxInputGroup.js +0 -46
  198. package/lib/Input/IconInputGroup.d.ts +0 -12
  199. package/lib/Input/IconInputGroup.js +0 -48
  200. package/lib/Input/InputGroup.d.ts +0 -12
  201. package/lib/Input/InputGroup.js +0 -39
  202. package/lib/Input/MoneyInputGroup.d.ts +0 -9
  203. package/lib/Input/MoneyInputGroup.js +0 -48
  204. package/lib/Input/NumberInputGroup.d.ts +0 -9
  205. package/lib/Input/NumberInputGroup.js +0 -48
  206. package/lib/Input/PhoneNumberInputGroup.d.ts +0 -10
  207. package/lib/Input/PhoneNumberInputGroup.js +0 -52
  208. package/lib/Input/StringInputGroup.d.ts +0 -8
  209. package/lib/Input/StringInputGroup.js +0 -48
  210. package/lib/Normalization/NormalizationFunction.d.ts +0 -4
  211. package/lib/Normalization/NormalizationFunction.js +0 -2
  212. package/lib/Normalization/normalizers.d.ts +0 -4
  213. package/lib/Normalization/normalizers.js +0 -37
  214. package/lib/Select/BooleanSelectGroup.d.ts +0 -7
  215. package/lib/Select/BooleanSelectGroup.js +0 -35
  216. package/lib/Select/NumberSelectGroup.d.ts +0 -9
  217. package/lib/Select/NumberSelectGroup.js +0 -29
  218. package/lib/Select/SelectGroup.d.ts +0 -29
  219. package/lib/Select/SelectGroup.js +0 -71
  220. package/lib/Select/SelectGroupPropsHelper.d.ts +0 -3
  221. package/lib/Select/SelectGroupPropsHelper.js +0 -2
  222. package/lib/Select/StringSelectGroup.d.ts +0 -9
  223. package/lib/Select/StringSelectGroup.js +0 -29
  224. package/lib/StandardFormActions.d.ts +0 -11
  225. package/lib/StandardFormActions.js +0 -20
  226. package/lib/SubmitFormButton.d.ts +0 -10
  227. package/lib/SubmitFormButton.js +0 -45
  228. package/lib/TextArea/TextAreaGroup.d.ts +0 -9
  229. package/lib/TextArea/TextAreaGroup.js +0 -40
  230. package/lib/Validation/ValidatedApiResult.d.ts +0 -6
  231. package/lib/Validation/ValidatedApiResult.js +0 -2
  232. package/lib/Validation/ValidationError.d.ts +0 -5
  233. package/lib/Validation/ValidationError.js +0 -2
  234. package/lib/Validation/ValidationFunction.d.ts +0 -4
  235. package/lib/Validation/ValidationFunction.js +0 -2
  236. package/lib/Validation/validators.d.ts +0 -18
  237. package/lib/Validation/validators.js +0 -90
  238. package/lib/index.d.ts +0 -81
  239. package/lib/index.js +0 -126
  240. package/lib/setupTests.d.ts +0 -1
  241. package/lib/setupTests.js +0 -3
  242. package/lib/utils/objectContainsNonSerializableProperty.d.ts +0 -1
  243. package/lib/utils/objectContainsNonSerializableProperty.js +0 -17
  244. package/lib/utils/objectToFormData.d.ts +0 -10
  245. package/lib/utils/objectToFormData.js +0 -79
  246. package/lib/utils/typeChecks.d.ts +0 -8
  247. package/lib/utils/typeChecks.js +0 -29
  248. package/src/AddressInput/AddressInput.test.tsx +0 -27
  249. package/src/AddressInput/AddressInput.tsx +0 -82
  250. package/src/AddressInput/UsStates.ts +0 -55
  251. package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +0 -183
  252. package/src/ConfirmBaseForm/ConfirmBaseForm.test.tsx +0 -24
  253. package/src/ConfirmBaseForm/ConfirmBaseForm.tsx +0 -74
  254. package/src/ConfirmBaseForm/__snapshots__/ConfirmBaseForm.test.tsx.snap +0 -23
  255. package/src/ConfirmDeleteForm/ConfirmDeleteForm.test.tsx +0 -24
  256. package/src/ConfirmDeleteForm/ConfirmDeleteForm.tsx +0 -87
  257. package/src/ConfirmDeleteForm/__snapshots__/ConfirmDeleteForm.test.tsx.snap +0 -25
  258. package/src/DatePicker/DatePicker.test.tsx +0 -48
  259. package/src/DatePicker/DatePickerGroup.tsx +0 -115
  260. package/src/DatePicker/DatePickerHelper.ts +0 -4
  261. package/src/DatePicker/StringDateOnlyPickerGroup.tsx +0 -28
  262. package/src/DatePicker/StringDatePickerGroup.tsx +0 -20
  263. package/src/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -152
  264. package/src/DateTimePicker/DateTimePicker.test.tsx +0 -243
  265. package/src/DateTimePicker/DateTimePickerGroup.tsx +0 -116
  266. package/src/DateTimePicker/DateTimePickerHelper.ts +0 -4
  267. package/src/DateTimePicker/StringDateTimePickerGroup.tsx +0 -61
  268. package/src/DateTimePicker/__snapshots__/DateTimePicker.test.tsx.snap +0 -217
  269. package/src/Field/CustomFieldInputProps.ts +0 -10
  270. package/src/Field/CustomFieldMetaProps.ts +0 -5
  271. package/src/Field/Field.tsx +0 -127
  272. package/src/Field/FieldErrorScrollTarget.tsx +0 -12
  273. package/src/Field/FieldNameContext.ts +0 -6
  274. package/src/Field/FieldSection.tsx +0 -18
  275. package/src/Field/InjectedFieldProps.ts +0 -8
  276. package/src/Field/StandAloneInput.tsx +0 -55
  277. package/src/Field/useStandardField.ts +0 -125
  278. package/src/FieldArray/FieldArray.tsx +0 -154
  279. package/src/File/FileGroup.test.tsx +0 -35
  280. package/src/File/FileGroup.tsx +0 -82
  281. package/src/File/FileList.tsx +0 -21
  282. package/src/File/__snapshots__/FileGroup.test.tsx.snap +0 -34
  283. package/src/File/humanFileSize.ts +0 -8
  284. package/src/Form/FocusError.tsx +0 -55
  285. package/src/Form/Form.test.tsx +0 -14
  286. package/src/Form/Form.tsx +0 -234
  287. package/src/Form/FormBasedPreventNavigation.tsx +0 -56
  288. package/src/Form/LegacyFormBasedPreventNavigation.tsx +0 -77
  289. package/src/Form/NewFormBasedPreventNavigation.tsx +0 -59
  290. package/src/Form/ServerErrorContext.ts +0 -18
  291. package/src/Form/__snapshots__/Form.test.tsx.snap +0 -10
  292. package/src/FormActions.tsx +0 -47
  293. package/src/FormDefaults.ts +0 -2
  294. package/src/Group.tsx +0 -62
  295. package/src/Input/CheckboxGroup.tsx +0 -60
  296. package/src/Input/CheckboxInputGroup.tsx +0 -78
  297. package/src/Input/IconInputGroup.tsx +0 -54
  298. package/src/Input/InputGroup.tsx +0 -69
  299. package/src/Input/MoneyInputGroup.tsx +0 -47
  300. package/src/Input/NumberInputGroup.tsx +0 -45
  301. package/src/Input/PhoneNumberInputGroup.tsx +0 -45
  302. package/src/Input/StringInputGroup.tsx +0 -50
  303. package/src/Input/__Tests__/CheckboxInputGroup.test.tsx +0 -26
  304. package/src/Input/__Tests__/IconInputGroup.test.tsx +0 -35
  305. package/src/Input/__Tests__/MoneyInputGroup.test.tsx +0 -37
  306. package/src/Input/__Tests__/NumberInputGroup.test.tsx +0 -35
  307. package/src/Input/__Tests__/PhoneNumberInputGroup.test.tsx +0 -36
  308. package/src/Input/__Tests__/StringInputGroup.test.tsx +0 -27
  309. package/src/Input/__Tests__/__snapshots__/CheckboxInputGroup.test.tsx.snap +0 -33
  310. package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +0 -32
  311. package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +0 -34
  312. package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +0 -32
  313. package/src/Input/__Tests__/__snapshots__/PhoneNumberInputGroup.test.tsx.snap +0 -33
  314. package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +0 -31
  315. package/src/Normalization/NormalizationFunction.ts +0 -4
  316. package/src/Normalization/normalizers.ts +0 -44
  317. package/src/Select/BooleanSelectGroup.tsx +0 -28
  318. package/src/Select/NumberSelectGroup.tsx +0 -16
  319. package/src/Select/SelectGroup.tsx +0 -132
  320. package/src/Select/SelectGroupPropsHelper.ts +0 -4
  321. package/src/Select/StringSelectGroup.tsx +0 -16
  322. package/src/Select/__tests__/BooleanSelectGroup.test.tsx +0 -35
  323. package/src/Select/__tests__/NumberSelectGroup.test.tsx +0 -87
  324. package/src/Select/__tests__/StringSelectGroup.test.tsx +0 -89
  325. package/src/Select/__tests__/__snapshots__/BooleanSelectGroup.test.tsx.snap +0 -99
  326. package/src/Select/__tests__/__snapshots__/NumberSelectGroup.test.tsx.snap +0 -197
  327. package/src/Select/__tests__/__snapshots__/StringSelectGroup.test.tsx.snap +0 -197
  328. package/src/StandardFormActions.tsx +0 -41
  329. package/src/SubmitFormButton.tsx +0 -54
  330. package/src/TextArea/TextAreaGroup.tsx +0 -64
  331. package/src/Validation/ValidatedApiResult.ts +0 -8
  332. package/src/Validation/ValidationError.ts +0 -6
  333. package/src/Validation/ValidationFunction.ts +0 -4
  334. package/src/Validation/validators.test.tsx +0 -81
  335. package/src/Validation/validators.ts +0 -97
  336. package/src/__Tests__/FormTestBase.tsx +0 -66
  337. package/src/__Tests__/RealisticForm.test.tsx +0 -82
  338. package/src/__Tests__/StandardFormActions.test.tsx +0 -17
  339. package/src/__Tests__/SubmitFormButton.test.tsx +0 -17
  340. package/src/__Tests__/__snapshots__/StandardFormActions.test.tsx.snap +0 -27
  341. package/src/__Tests__/__snapshots__/SubmitFormButton.test.tsx.snap +0 -20
  342. package/src/__Tests__/index.ts +0 -3
  343. package/src/_variables.scss +0 -11
  344. package/src/index.ts +0 -163
  345. package/src/react-app-env.d.ts +0 -1
  346. package/src/setupTests.ts +0 -1
  347. package/src/styles.scss +0 -0
  348. package/src/utils/objectContainsNonSerializableProperty.test.tsx +0 -49
  349. package/src/utils/objectContainsNonSerializableProperty.ts +0 -17
  350. package/src/utils/objectToFormData.test.tsx +0 -76
  351. package/src/utils/objectToFormData.ts +0 -105
  352. package/src/utils/typeChecks.ts +0 -18
@@ -1,197 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`MultiStringSelectGroup has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- class="envoc-form-form"
8
- >
9
- <div
10
- class="envoc-form-multiple envoc-form-select-group envoc-form-group"
11
- >
12
- <div
13
- id="favoritecolors-error-scroll-target"
14
- style="display: none;"
15
- />
16
- <label
17
- for="favoriteColors"
18
- >
19
- Favorite Color
20
- </label>
21
- <div
22
- class="envoc-form-select-group css-b62m3t-container"
23
- id="favoriteColors"
24
- >
25
- <span
26
- class="css-1f43avz-a11yText-A11yText"
27
- id="react-select-5-live-region"
28
- />
29
- <span
30
- aria-atomic="false"
31
- aria-live="polite"
32
- aria-relevant="additions text"
33
- class="css-1f43avz-a11yText-A11yText"
34
- />
35
- <div
36
- class="react-select__control css-13cymwt-control"
37
- >
38
- <div
39
- class="react-select__value-container react-select__value-container--is-multi css-16674sh-Component"
40
- >
41
- <div
42
- class="react-select__placeholder css-1jqq78o-placeholder"
43
- id="react-select-5-placeholder"
44
- >
45
- Select...
46
- </div>
47
- <div
48
- class="react-select__input-container css-d9r47t-Component"
49
- data-value=""
50
- >
51
- <input
52
- aria-autocomplete="list"
53
- aria-describedby="react-select-5-placeholder"
54
- aria-expanded="false"
55
- aria-haspopup="true"
56
- autocapitalize="none"
57
- autocomplete="off"
58
- autocorrect="off"
59
- class="react-select__input"
60
- id="favoriteColors"
61
- role="combobox"
62
- spellcheck="false"
63
- style="opacity: 1; width: 100%; grid-area: 1 / 2; min-width: 2px; border: 0px; margin: 0px; outline: 0; padding: 0px;"
64
- tabindex="0"
65
- type="text"
66
- value=""
67
- />
68
- </div>
69
- </div>
70
- <div
71
- class="react-select__indicators css-ny0e4k-Component"
72
- >
73
- <span
74
- class="react-select__indicator-separator css-1u9des2-indicatorSeparator"
75
- />
76
- <div
77
- aria-hidden="true"
78
- class="react-select__indicator react-select__dropdown-indicator css-1xc3v61-indicatorContainer"
79
- >
80
- <svg
81
- aria-hidden="true"
82
- class="css-tj5bde-Svg"
83
- focusable="false"
84
- height="20"
85
- viewBox="0 0 20 20"
86
- width="20"
87
- >
88
- <path
89
- d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
90
- />
91
- </svg>
92
- </div>
93
- </div>
94
- </div>
95
- </div>
96
- </div>
97
- </form>
98
- </DocumentFragment>
99
- `;
100
-
101
- exports[`SingleStringSelectGroup has matching snapshot 1`] = `
102
- <DocumentFragment>
103
- <form
104
- action="#"
105
- class="envoc-form-form"
106
- >
107
- <div
108
- class="envoc-form-select-group envoc-form-group"
109
- >
110
- <div
111
- id="favoritecolor-error-scroll-target"
112
- style="display: none;"
113
- />
114
- <label
115
- for="favoriteColor"
116
- >
117
- Favorite Color
118
- </label>
119
- <div
120
- class="envoc-form-select-group css-b62m3t-container"
121
- id="favoriteColor"
122
- >
123
- <span
124
- class="css-1f43avz-a11yText-A11yText"
125
- id="react-select-3-live-region"
126
- />
127
- <span
128
- aria-atomic="false"
129
- aria-live="polite"
130
- aria-relevant="additions text"
131
- class="css-1f43avz-a11yText-A11yText"
132
- />
133
- <div
134
- class="react-select__control css-13cymwt-control"
135
- >
136
- <div
137
- class="react-select__value-container css-16674sh-Component"
138
- >
139
- <div
140
- class="react-select__placeholder css-1jqq78o-placeholder"
141
- id="react-select-3-placeholder"
142
- >
143
- Select...
144
- </div>
145
- <div
146
- class="react-select__input-container css-d9r47t-Component"
147
- data-value=""
148
- >
149
- <input
150
- aria-autocomplete="list"
151
- aria-describedby="react-select-3-placeholder"
152
- aria-expanded="false"
153
- aria-haspopup="true"
154
- autocapitalize="none"
155
- autocomplete="off"
156
- autocorrect="off"
157
- class="react-select__input"
158
- id="favoriteColor"
159
- role="combobox"
160
- spellcheck="false"
161
- style="opacity: 1; width: 100%; grid-area: 1 / 2; min-width: 2px; border: 0px; margin: 0px; outline: 0; padding: 0px;"
162
- tabindex="0"
163
- type="text"
164
- value=""
165
- />
166
- </div>
167
- </div>
168
- <div
169
- class="react-select__indicators css-ny0e4k-Component"
170
- >
171
- <span
172
- class="react-select__indicator-separator css-1u9des2-indicatorSeparator"
173
- />
174
- <div
175
- aria-hidden="true"
176
- class="react-select__indicator react-select__dropdown-indicator css-1xc3v61-indicatorContainer"
177
- >
178
- <svg
179
- aria-hidden="true"
180
- class="css-tj5bde-Svg"
181
- focusable="false"
182
- height="20"
183
- viewBox="0 0 20 20"
184
- width="20"
185
- >
186
- <path
187
- d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
188
- />
189
- </svg>
190
- </div>
191
- </div>
192
- </div>
193
- </div>
194
- </div>
195
- </form>
196
- </DocumentFragment>
197
- `;
@@ -1,41 +0,0 @@
1
- import { MouseEventHandler } from 'react';
2
- import { clsx } from 'clsx';
3
- import { useFormikContext } from 'formik';
4
- import { FormDefaults } from './FormDefaults';
5
- import SubmitFormButton from './SubmitFormButton';
6
-
7
- export interface StandardFormActionsProps {
8
- /** Allow the form to be submitted without any changes. By default this is not allowed. */
9
- allowPristineSubmit?: boolean;
10
- /** The cancel button's `onClick`.
11
- * @defaultValue `window.history.back()`
12
- */
13
- handleCancel?: MouseEventHandler<HTMLButtonElement>;
14
- }
15
-
16
- /** Standard submit and cancel buttons. */
17
- export default function StandardFormActions({
18
- allowPristineSubmit,
19
- handleCancel,
20
- }: StandardFormActionsProps) {
21
- const { isSubmitting } = useFormikContext();
22
-
23
- return (
24
- <>
25
- <SubmitFormButton allowPristineSubmit={allowPristineSubmit} />
26
- &nbsp;
27
- <button
28
- className={clsx(
29
- FormDefaults.cssClassPrefix + 'standard-form-actions-cancel-button'
30
- )}
31
- type="button"
32
- disabled={isSubmitting}
33
- onClick={handleCancel || goBack}>
34
- Cancel
35
- </button>
36
- </>
37
- );
38
- function goBack() {
39
- window.history.back();
40
- }
41
- }
@@ -1,54 +0,0 @@
1
- import React, { LegacyRef } from 'react';
2
- import { clsx } from 'clsx';
3
- import { useFormikContext } from 'formik';
4
- import { FormDefaults } from './FormDefaults';
5
-
6
- export interface SubmitFormButtonProps
7
- extends Omit<React.HTMLProps<HTMLButtonElement>, 'type'> {
8
- /** Allow the form to be submitted without any changes. By default this is not allowed. */
9
- allowPristineSubmit?: boolean;
10
- /** Text to display on the button. Default text is 'Submit'. */
11
- children?: React.ReactNode;
12
- }
13
-
14
- function SubmitFormButton(
15
- {
16
- allowPristineSubmit,
17
- children,
18
- disabled,
19
- title,
20
- className,
21
- ...props
22
- }: SubmitFormButtonProps,
23
- ref: LegacyRef<HTMLButtonElement>
24
- ) {
25
- const { isSubmitting, dirty } = useFormikContext();
26
- const preventSubmit = (!dirty && !allowPristineSubmit) || isSubmitting;
27
- const buttonName = typeof children === 'string' ? children : 'Submit';
28
- return (
29
- <button
30
- {...props}
31
- ref={ref}
32
- type="submit"
33
- disabled={preventSubmit || disabled}
34
- aria-label={buttonName}
35
- title={
36
- title || isSubmitting
37
- ? 'Loading, please wait...'
38
- : preventSubmit
39
- ? "You haven't made any changes"
40
- : ''
41
- }
42
- className={clsx(
43
- FormDefaults.cssClassPrefix + 'submit-form-button',
44
- className
45
- )}>
46
- {children || 'Submit'}
47
- </button>
48
- );
49
- }
50
-
51
- /** Generic submit button for forms. */
52
- export default React.forwardRef(
53
- SubmitFormButton
54
- ) as React.FunctionComponent<SubmitFormButtonProps>;
@@ -1,64 +0,0 @@
1
- import React, { LegacyRef } from 'react';
2
- import { clsx } from 'clsx';
3
- import { InjectedFieldProps } from '../Field/InjectedFieldProps';
4
- import { FormDefaults } from '../FormDefaults';
5
- import Group, { GroupProps } from '../Group';
6
-
7
- export interface TextAreaGroupProps
8
- extends InjectedFieldProps<string | undefined | null>,
9
- Omit<
10
- React.HTMLProps<HTMLTextAreaElement>,
11
- keyof InjectedFieldProps<any> | 'children' | 'className' | 'label'
12
- >,
13
- Omit<GroupProps, keyof InjectedFieldProps<any> | 'children'> {
14
- icon?: React.ReactNode;
15
- }
16
-
17
- function TextAreaGroup(
18
- {
19
- input,
20
- meta,
21
- label,
22
- helpText,
23
- className,
24
- required,
25
- disabled,
26
- icon,
27
- ...rest
28
- }: TextAreaGroupProps,
29
- ref: LegacyRef<HTMLTextAreaElement>
30
- ) {
31
- return (
32
- <Group
33
- input={input}
34
- meta={meta}
35
- required={required}
36
- disabled={disabled}
37
- label={label}
38
- helpText={helpText}
39
- className={clsx(
40
- className,
41
- FormDefaults.cssClassPrefix + 'text-area-group'
42
- )}>
43
- {icon}
44
- <textarea
45
- {...input}
46
- {...rest}
47
- value={input.value ?? ''}
48
- onChange={(val) => input.onChange(val.target.value)}
49
- ref={ref}
50
- className={clsx(
51
- className,
52
- FormDefaults.cssClassPrefix + 'text-area-group'
53
- )}
54
- />
55
- </Group>
56
- );
57
- }
58
-
59
- /** Generic controlled `<textarea/>` wrapped by a `<Group/>` */
60
- const TextAreaGroupWithRef = React.forwardRef(
61
- TextAreaGroup
62
- ) as React.ComponentType<TextAreaGroupProps>;
63
-
64
- export default TextAreaGroupWithRef;
@@ -1,8 +0,0 @@
1
- import { ValidationError } from './ValidationError';
2
-
3
- // TODO: this means that all template projects MUST have this API shape - thoughts?
4
- /** The root result from a typical envoc API call when forms are returned */
5
- export interface ValidatedApiResult {
6
- validationFailures?: ValidationError[];
7
- hasErrors?: boolean;
8
- }
@@ -1,6 +0,0 @@
1
- // TODO: this means that all template projects MUST have this API shape - thoughts?
2
- /** Represents a server side validation failure - only 'standard' for envoc */
3
- export interface ValidationError {
4
- propertyName?: string;
5
- errorMessage?: string;
6
- }
@@ -1,4 +0,0 @@
1
- /** Client side validation function */
2
- export interface ValidationFunction<TValue> {
3
- (value: TValue): string | undefined;
4
- }
@@ -1,81 +0,0 @@
1
- import { integer, length, maxLength, maxValue, minValue } from './validators';
2
-
3
- describe('integer validator', () => {
4
- it('accepts an integer', () => {
5
- const returned = integer('123');
6
- expect(returned).toBe(undefined);
7
- });
8
-
9
- it("doesn't accept a float", () => {
10
- const returned = integer('123.5569');
11
- expect(returned).toBe('Must be a whole number');
12
- });
13
- });
14
-
15
- describe('length validator', () => {
16
- it('fails for invalid Length', () => {
17
- const length10 = length(10);
18
- const tooLong = length10('01234567890');
19
- const tooShort = length10('aaa');
20
- expect(tooLong).toBe('Length must be 10');
21
- expect(tooShort).toBe('Length must be 10');
22
- });
23
-
24
- it('succeeds for correct length', () => {
25
- const length10 = length(10);
26
- const validString = length10('0123456789');
27
- const validNumber = length10(1234567890);
28
- expect(validString).toBe(undefined);
29
- expect(validNumber).toBe(undefined);
30
- });
31
- });
32
-
33
- describe('maxValue validator', () => {
34
- it('fails for invalid value', () => {
35
- const maxValue10 = maxValue(10);
36
- const tooBig = maxValue10(11);
37
- expect(tooBig).toBe('Maximum value 10 exceeded');
38
- });
39
-
40
- it('succeeds for valid value', () => {
41
- const maxValue10 = maxValue(10);
42
- const maxAllowable = maxValue10(10);
43
- const lowAllowable = maxValue10(1);
44
- expect(maxAllowable).toBe(undefined);
45
- expect(lowAllowable).toBe(undefined);
46
- });
47
- });
48
-
49
- describe('minValue validator', () => {
50
- it('fails for invalid value', () => {
51
- const minValue10 = minValue(10);
52
- const tooSmall = minValue10(9);
53
- expect(tooSmall).toBe('Minimum value 10 not met');
54
- });
55
-
56
- it('succeeds for valid value', () => {
57
- const minValue10 = minValue(10);
58
- const minAllowable = minValue10(10);
59
- const highAllowable = minValue10(15);
60
- expect(minAllowable).toBe(undefined);
61
- expect(highAllowable).toBe(undefined);
62
- });
63
- });
64
-
65
- describe('maxLength validator', () => {
66
- it('fails for invalid value', () => {
67
- const maxLength10 = maxLength(10);
68
- const stringTooLong = maxLength10('012345678910');
69
- const numberTooLong = maxLength10(1234567890123);
70
- expect(stringTooLong).toBe('Maximum length 10 exceeded');
71
- expect(numberTooLong).toBe('Maximum length 10 exceeded');
72
- });
73
-
74
- it('succeeds for valid value', () => {
75
- const maxLength10 = maxLength(10);
76
- const exactMatch = maxLength10('0123456789');
77
- const shortValid = maxLength10('0123');
78
- expect(exactMatch).toBe(undefined);
79
- expect(shortValid).toBe(undefined);
80
- });
81
- });
@@ -1,97 +0,0 @@
1
- import { ValidationFunction } from './ValidationFunction';
2
-
3
- export const required = (value: any) =>
4
- Array.isArray(value)
5
- ? value.length > 0
6
- ? undefined
7
- : 'Required'
8
- : value || value === false || value === 0
9
- ? undefined
10
- : 'Required';
11
-
12
- /** Asserts that the value is a certain number of characters. numbers are coerced to a string */
13
- export const length =
14
- (len: number) => (value: string | number | undefined | null) => {
15
- const hasError = getLengthOfValue(value) !== len;
16
- return !hasError ? undefined : `Length must be ${len}`;
17
- };
18
-
19
- export const integer = (val: string | number | undefined | null) => {
20
- if (!val) {
21
- return undefined;
22
- }
23
- if (!Number.isInteger(typeof val === 'number' ? val : parseFloat(val))) {
24
- return 'Must be a whole number';
25
- }
26
- };
27
-
28
- export const maxLength =
29
- (len: number) => (value: string | number | undefined | null) => {
30
- const hasError = getLengthOfValue(value) > len;
31
- return !hasError ? undefined : `Maximum length ${len} exceeded`;
32
- };
33
-
34
- export const maxCount =
35
- (count: number) => (value: { isDeleted?: boolean }[] | undefined | null) => {
36
- const hasError =
37
- !!value && value.filter((x) => !x.isDeleted).length > count;
38
- return !hasError ? undefined : `Should not have more than ${count}`;
39
- };
40
-
41
- export const minCount =
42
- (count: number) => (value: { isDeleted?: boolean }[] | undefined | null) => {
43
- const hasError = !value || value.filter((x) => !x.isDeleted).length < count;
44
- return !hasError ? undefined : `Should have at least ${count}`;
45
- };
46
-
47
- export const maxValue = (max: number) => (value: number | undefined | null) => {
48
- const hasError = !!value && value > max;
49
- return !hasError ? undefined : `Maximum value ${max} exceeded`;
50
- };
51
-
52
- export const minValue = (min: number) => (value: number | undefined | null) => {
53
- const hasError = !value || value < min;
54
- return !hasError ? undefined : `Minimum value ${min} not met`;
55
- };
56
-
57
- /** Validate for a ZIP Code. Accepts formats: ##### and #####-#### */
58
- export const zipCode = (value: string | undefined | null) => {
59
- return value && !/^[0-9]{5}(?:-[0-9]{4})?$/.test(value)
60
- ? 'Invalid ZIP Code'
61
- : undefined;
62
- };
63
-
64
- /** One of the validators provided must be true. */
65
- export const any =
66
- <TValue>(validatorList: ValidationFunction<TValue>[]) =>
67
- (value: TValue) => {
68
- if (validatorList.length === 0 || !value) {
69
- return;
70
- }
71
-
72
- return validatorList.reduce(
73
- (isAnyTrue, x) => (isAnyTrue ? isAnyTrue : x(value)),
74
- undefined as string | undefined
75
- );
76
- };
77
-
78
- function getLengthOfValue(value: string | number | undefined | null) {
79
- if (value === null) {
80
- return 0;
81
- }
82
- switch (typeof value) {
83
- case 'undefined':
84
- return 0;
85
- case 'string':
86
- return value.length;
87
- case 'number':
88
- // TODO: this seems iffy to me - what if the actual visible value is a fixed length or some special format (e.g. with commas?)
89
- return value.toString().length;
90
- default:
91
- assertUnreachable(value);
92
- return 0;
93
- }
94
- }
95
- function assertUnreachable(x: never) {
96
- return null;
97
- }
@@ -1,66 +0,0 @@
1
- import { HashRouter } from 'react-router-dom';
2
- import { Form, FormBuilderProp } from '../';
3
- import { ValidatedApiResult } from '../Validation/ValidatedApiResult';
4
-
5
- interface FormTestBaseProps<TForm extends object> {
6
- children: (formBuilder: FormBuilderProp<TForm>) => JSX.Element;
7
- initialValues?: TForm;
8
- handleSubmit?: (data: TForm | FormData) => Promise<ValidatedApiResult>;
9
- }
10
-
11
- export default function FormTestBase<TForm extends PersonDto>({
12
- children,
13
- initialValues,
14
- handleSubmit,
15
- }: FormTestBaseProps<TForm>) {
16
- return (
17
- <HashRouter>
18
- <Form
19
- onSubmit={handleSubmit ? handleSubmit : onSubmit}
20
- initialValues={initialValues}>
21
- {children}
22
- </Form>
23
- </HashRouter>
24
- );
25
-
26
- async function onSubmit(data: TForm | FormData): Promise<ValidatedApiResult> {
27
- const isFormData = data instanceof FormData;
28
- const result = await fetch('/api/submit', {
29
- body: isFormData ? data : JSON.stringify(data),
30
- method: 'POST',
31
- headers: {
32
- 'Content-Type': isFormData ? 'multipart/form-data' : 'application/json',
33
- 'X-Show-Errors': `Errors go here`,
34
- },
35
- });
36
-
37
- const apiResult = await (result.json() as Promise<ValidatedApiResult>);
38
-
39
- if (!apiResult.hasErrors) {
40
- alert('submitted');
41
- }
42
-
43
- return apiResult;
44
- }
45
- }
46
-
47
- export interface PersonDto {
48
- name?: string | undefined;
49
- nameWithIcon?: string | undefined;
50
- numberOfArms?: number;
51
- phoneNumber?: string;
52
- yearlySalaryUSD?: number;
53
- isCool?: boolean;
54
- isMusicEnjoyer?: boolean;
55
- gradDate?: string;
56
- favoriteDate?: string;
57
- favoriteNumber?: number;
58
- favoriteColor?: string;
59
- favoriteColors?: string[];
60
- favoriteNames?: string[];
61
- createdDateTime?: string;
62
- allowLogin?: boolean;
63
- userRoles?: number[];
64
- profileImage?: any;
65
- favoritePictures?: any[];
66
- }