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,50 +0,0 @@
1
- import React, { LegacyRef } from 'react';
2
- import { clsx } from 'clsx';
3
- import InputGroup, { InputGroupProps } from './InputGroup';
4
- import { FormDefaults } from '../FormDefaults';
5
-
6
- export interface StringInputGroupProps
7
- extends Omit<
8
- InputGroupProps<string | undefined | null>,
9
- 'onChange' | 'type' | 'value'
10
- > {
11
- type?:
12
- | 'color'
13
- | 'email'
14
- | 'search'
15
- | 'tel'
16
- | 'text'
17
- | 'url'
18
- | 'password'
19
- | 'textarea';
20
- }
21
-
22
- function StringInputGroup(
23
- { className, ...rest }: StringInputGroupProps,
24
- ref: LegacyRef<HTMLInputElement>
25
- ) {
26
- const { input } = rest;
27
-
28
- return (
29
- <InputGroup
30
- ref={ref}
31
- {...rest}
32
- className={clsx(className, FormDefaults.cssClassPrefix + 'string-group')}
33
- value={input.value ?? ''}
34
- onChange={(e) => {
35
- if (!e.target.value) {
36
- input.onChange(undefined);
37
- } else {
38
- input.onChange(e.target.value);
39
- }
40
- }}
41
- />
42
- );
43
- }
44
-
45
- /** Standard string input group. */
46
- const StringInputGroupWithRef = React.forwardRef(
47
- StringInputGroup
48
- ) as React.ComponentType<StringInputGroupProps>;
49
-
50
- export default StringInputGroupWithRef;
@@ -1,26 +0,0 @@
1
- import { render } from '@testing-library/react';
2
- import FormTestBase from '../../__Tests__/FormTestBase';
3
- import { CheckboxInputGroup } from 'index';
4
-
5
- describe('CheckboxInputGroup', () => {
6
- it('renders without crashing', () => {
7
- render(
8
- <FormTestBase>
9
- {({ Field }) => (
10
- <Field name="isMusicEnjoyer" Component={CheckboxInputGroup} />
11
- )}
12
- </FormTestBase>
13
- );
14
- });
15
-
16
- it('has matching snapshot', () => {
17
- const renderResult = render(
18
- <FormTestBase>
19
- {({ Field }) => (
20
- <Field name="isMusicEnjoyer" Component={CheckboxInputGroup} />
21
- )}
22
- </FormTestBase>
23
- );
24
- expect(renderResult.asFragment()).toMatchSnapshot();
25
- });
26
- });
@@ -1,35 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import FormTestBase from '../../__Tests__/FormTestBase';
4
- import IconInputGroup from '../IconInputGroup';
5
-
6
- describe('IconInputGroup', () => {
7
- it('renders without crashing', () => {
8
- render(
9
- <FormTestBase>
10
- {({ Field }) => (
11
- <Field
12
- name="nameWithIcon"
13
- Component={IconInputGroup}
14
- icon={<span>Pretend this is an icon</span>}
15
- />
16
- )}
17
- </FormTestBase>
18
- );
19
- });
20
-
21
- it('has matching snapshot', () => {
22
- const renderResult = render(
23
- <FormTestBase>
24
- {({ Field }) => (
25
- <Field
26
- name="nameWithIcon"
27
- Component={IconInputGroup}
28
- icon={<span>Pretend this is an icon</span>}
29
- />
30
- )}
31
- </FormTestBase>
32
- );
33
- expect(renderResult.asFragment()).toMatchSnapshot();
34
- });
35
- });
@@ -1,37 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import FormTestBase from '../../__Tests__/FormTestBase';
4
- import MoneyInputGroup from '../MoneyInputGroup';
5
-
6
- describe('MoneyInputGroup', () => {
7
- it('renders without crashing', () => {
8
- render(
9
- <FormTestBase>
10
- {({ Field }) => (
11
- <Field
12
- name="yearlySalaryUSD"
13
- Component={MoneyInputGroup}
14
- label="Salary"
15
- className="something-here"
16
- />
17
- )}
18
- </FormTestBase>
19
- );
20
- });
21
-
22
- it('has matching snapshot', () => {
23
- const renderResult = render(
24
- <FormTestBase>
25
- {({ Field }) => (
26
- <Field
27
- name="yearlySalaryUSD"
28
- Component={MoneyInputGroup}
29
- label="Salary"
30
- className="something-here"
31
- />
32
- )}
33
- </FormTestBase>
34
- );
35
- expect(renderResult.asFragment()).toMatchSnapshot();
36
- });
37
- });
@@ -1,35 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import FormTestBase from '../../__Tests__/FormTestBase';
4
- import NumberInputGroup from '../NumberInputGroup';
5
-
6
- describe('NumberInputGroup', () => {
7
- it('renders without crashing', () => {
8
- render(
9
- <FormTestBase>
10
- {({ Field }) => (
11
- <Field
12
- name="numberOfArms"
13
- Component={NumberInputGroup}
14
- label="Arm Count"
15
- />
16
- )}
17
- </FormTestBase>
18
- );
19
- });
20
-
21
- it('has matching snapshot', () => {
22
- const renderResult = render(
23
- <FormTestBase>
24
- {({ Field }) => (
25
- <Field
26
- name="numberOfArms"
27
- Component={NumberInputGroup}
28
- label="Arm Count"
29
- />
30
- )}
31
- </FormTestBase>
32
- );
33
- expect(renderResult.asFragment()).toMatchSnapshot();
34
- });
35
- });
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import FormTestBase from '../../__Tests__/FormTestBase';
4
- import PhoneNumberInputGroup from '../PhoneNumberInputGroup';
5
-
6
- describe('PhoneNumberInputGroup', () => {
7
- it('renders without crashing', () => {
8
- render(
9
- <FormTestBase>
10
- {({ Field }) => (
11
- <Field
12
- name="phoneNumber"
13
- Component={PhoneNumberInputGroup}
14
- label="Phone Number"
15
- className="something-here"
16
- />
17
- )}
18
- </FormTestBase>
19
- );
20
- });
21
- it('has matching snapshot', () => {
22
- const renderResult = render(
23
- <FormTestBase>
24
- {({ Field }) => (
25
- <Field
26
- name="phoneNumber"
27
- Component={PhoneNumberInputGroup}
28
- label="Phone Number"
29
- className="something-here"
30
- />
31
- )}
32
- </FormTestBase>
33
- );
34
- expect(renderResult.asFragment()).toMatchSnapshot();
35
- });
36
- });
@@ -1,27 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import FormTestBase from '../../__Tests__/FormTestBase';
4
- import StringInputGroup from '../StringInputGroup';
5
-
6
- describe('StringInputGroup', () => {
7
- it('renders without crashing', () => {
8
- render(
9
- <FormTestBase>
10
- {({ Field }) => (
11
- <Field name="name" Component={StringInputGroup} label="Name" />
12
- )}
13
- </FormTestBase>
14
- );
15
- });
16
-
17
- it('has matching snapshot', () => {
18
- const renderResult = render(
19
- <FormTestBase>
20
- {({ Field }) => (
21
- <Field name="name" Component={StringInputGroup} label="Name" />
22
- )}
23
- </FormTestBase>
24
- );
25
- expect(renderResult.asFragment()).toMatchSnapshot();
26
- });
27
- });
@@ -1,33 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`CheckboxInputGroup has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- class="envoc-form-form"
8
- >
9
- <div
10
- class="envoc-form-checkbox-group label-on-right envoc-form-group"
11
- >
12
- <div
13
- id="ismusicenjoyer-error-scroll-target"
14
- style="display: none;"
15
- />
16
- <div
17
- class="envoc-form-checkbox-group-input"
18
- >
19
- <input
20
- aria-invalid="false"
21
- class="envoc-form-checkbox-group"
22
- id="isMusicEnjoyer"
23
- name="isMusicEnjoyer"
24
- type="checkbox"
25
- />
26
- <label
27
- for="isMusicEnjoyer"
28
- />
29
- </div>
30
- </div>
31
- </form>
32
- </DocumentFragment>
33
- `;
@@ -1,32 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`IconInputGroup has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- class="envoc-form-form"
8
- >
9
- <div
10
- class="envoc-form-icon-input-group envoc-form-input-group envoc-form-group"
11
- >
12
- <div
13
- id="namewithicon-error-scroll-target"
14
- style="display: none;"
15
- />
16
- <label
17
- for="nameWithIcon"
18
- />
19
- <span>
20
- Pretend this is an icon
21
- </span>
22
- <input
23
- aria-invalid="false"
24
- class="envoc-form-icon-input-group envoc-form-input-group"
25
- id="nameWithIcon"
26
- name="nameWithIcon"
27
- value=""
28
- />
29
- </div>
30
- </form>
31
- </DocumentFragment>
32
- `;
@@ -1,34 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`MoneyInputGroup has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- class="envoc-form-form"
8
- >
9
- <div
10
- class="something-here envoc-form-money-group envoc-form-input-group envoc-form-group"
11
- >
12
- <div
13
- id="yearlysalaryusd-error-scroll-target"
14
- style="display: none;"
15
- />
16
- <label
17
- for="yearlySalaryUSD"
18
- >
19
- Salary
20
- </label>
21
- <input
22
- aria-invalid="false"
23
- class="something-here envoc-form-money-group envoc-form-input-group"
24
- id="yearlySalaryUSD"
25
- min="0"
26
- name="yearlySalaryUSD"
27
- step="0.01"
28
- type="number"
29
- value=""
30
- />
31
- </div>
32
- </form>
33
- </DocumentFragment>
34
- `;
@@ -1,32 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`NumberInputGroup has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- class="envoc-form-form"
8
- >
9
- <div
10
- class="envoc-form-number-group envoc-form-input-group envoc-form-group"
11
- >
12
- <div
13
- id="numberofarms-error-scroll-target"
14
- style="display: none;"
15
- />
16
- <label
17
- for="numberOfArms"
18
- >
19
- Arm Count
20
- </label>
21
- <input
22
- aria-invalid="false"
23
- class="envoc-form-number-group envoc-form-input-group"
24
- id="numberOfArms"
25
- name="numberOfArms"
26
- type="number"
27
- value=""
28
- />
29
- </div>
30
- </form>
31
- </DocumentFragment>
32
- `;
@@ -1,33 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`PhoneNumberInputGroup has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- class="envoc-form-form"
8
- >
9
- <div
10
- class="something-here envoc-form-phone-number-group envoc-form-input-group envoc-form-group"
11
- >
12
- <div
13
- id="phonenumber-error-scroll-target"
14
- style="display: none;"
15
- />
16
- <label
17
- for="phoneNumber"
18
- >
19
- Phone Number
20
- </label>
21
- <input
22
- aria-invalid="false"
23
- autocomplete="tel-national"
24
- class="something-here envoc-form-phone-number-group envoc-form-input-group"
25
- id="phoneNumber"
26
- name="phoneNumber"
27
- type="text"
28
- value=""
29
- />
30
- </div>
31
- </form>
32
- </DocumentFragment>
33
- `;
@@ -1,31 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`StringInputGroup has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- class="envoc-form-form"
8
- >
9
- <div
10
- class="envoc-form-string-group envoc-form-input-group envoc-form-group"
11
- >
12
- <div
13
- id="name-error-scroll-target"
14
- style="display: none;"
15
- />
16
- <label
17
- for="name"
18
- >
19
- Name
20
- </label>
21
- <input
22
- aria-invalid="false"
23
- class="envoc-form-string-group envoc-form-input-group"
24
- id="name"
25
- name="name"
26
- value=""
27
- />
28
- </div>
29
- </form>
30
- </DocumentFragment>
31
- `;
@@ -1,4 +0,0 @@
1
- /** Normalization of values */
2
- export interface NormalizationFunction<TValue> {
3
- (value: TValue): TValue;
4
- }
@@ -1,44 +0,0 @@
1
- /** Normalizer for converting a string into a valid phone number. */
2
- export const phoneNumber = (value: string | undefined | null) => {
3
- if (!value) {
4
- return undefined;
5
- }
6
-
7
- const onlyNums = value.replace(/[^\d]/g, '');
8
- if (onlyNums.length <= 3) {
9
- return onlyNums;
10
- }
11
- if (onlyNums.length <= 7) {
12
- return `${onlyNums.slice(0, 3)}-${onlyNums.slice(3)}`;
13
- }
14
- if (onlyNums.length <= 10) {
15
- return `${onlyNums.slice(0, 3)}-${onlyNums.slice(3, 6)}-${onlyNums.slice(
16
- 6,
17
- 10
18
- )}`;
19
- }
20
- if (onlyNums.length <= 13) {
21
- const countryCodeLength = onlyNums.length - 10;
22
- return `+${onlyNums.slice(0, countryCodeLength)} ${onlyNums.slice(
23
- countryCodeLength,
24
- 3 + countryCodeLength
25
- )}-${onlyNums.slice(
26
- 3 + countryCodeLength,
27
- 6 + countryCodeLength
28
- )}-${onlyNums.slice(6 + countryCodeLength, onlyNums.length)}`;
29
- }
30
-
31
- return onlyNums;
32
- };
33
-
34
- /** Normalizer for converting a string into a valid zip code. Allows for XXXXX and XXXXX-XXXX format. */
35
- export const zipCode = (value: string | undefined | null) => {
36
- if (!value) {
37
- return undefined;
38
- }
39
- const onlyNums = value.replace(/[^\d]/g, '');
40
- if (onlyNums.length > 5) {
41
- return onlyNums.substring(0, 5) + '-' + onlyNums.substring(5, 9);
42
- }
43
- return onlyNums;
44
- };
@@ -1,28 +0,0 @@
1
- import SelectGroup, { SelectOption } from './SelectGroup';
2
- import { SelectGroupPropsHelper } from './SelectGroupPropsHelper';
3
-
4
- const booleanOptions: SelectOption<boolean>[] = [
5
- {
6
- label: 'Yes',
7
- value: true,
8
- },
9
- {
10
- label: 'No',
11
- value: false,
12
- },
13
- ];
14
-
15
- export interface BooleanSelectGroupProps
16
- extends Omit<SelectGroupPropsHelper<boolean | undefined | null>, 'options'> {
17
- options?: SelectOption<boolean>[];
18
- }
19
- /** A `<SelectGroup/>` dropdown with two options. Default options are 'Yes' and 'No' with values of `true` and `false`. */
20
- export function BooleanSelectGroup(props: BooleanSelectGroupProps) {
21
- return (
22
- <SelectGroup
23
- multiple={false}
24
- {...props}
25
- options={props.options ?? booleanOptions}
26
- />
27
- );
28
- }
@@ -1,16 +0,0 @@
1
- import SelectGroup from './SelectGroup';
2
- import { SelectGroupPropsHelper } from './SelectGroupPropsHelper';
3
-
4
- export interface MultiNumberSelectGroupProps
5
- extends SelectGroupPropsHelper<number[] | undefined | null> {}
6
- /** A `<SelectGroup/>` dropdown with values as numbers. Many options can be selected at a time. */
7
- export function MultiNumberSelectGroup(props: MultiNumberSelectGroupProps) {
8
- return <SelectGroup multiple={true} {...props} />;
9
- }
10
-
11
- export interface SingleNumberSelectGroupProps
12
- extends SelectGroupPropsHelper<number | undefined | null> {}
13
- /** A `<SelectGroup/>` dropdown with values as numbers. Only one option can be selected at a time. */
14
- export function SingleNumberSelectGroup(props: SingleNumberSelectGroupProps) {
15
- return <SelectGroup multiple={false} {...props} />;
16
- }
@@ -1,132 +0,0 @@
1
- import { default as ReactSelect } from 'react-select';
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 SelectOption<TValue> {
8
- /** Value for the select. This will be sent to the API. */
9
- value: (TValue extends Array<infer P> ? P : TValue) | undefined;
10
- /** Label for the select. This is displayed to the user. */
11
- label: string;
12
- }
13
-
14
- // types roughly like the useService (envoc-core) result
15
- interface OptionsApiResult<TValue> {
16
- // we must apply Partial here because all results from template code gen are optional
17
- result?: Partial<SelectOption<TValue>>[];
18
- }
19
-
20
- interface OptionsUseServiceResult<TValue> {
21
- loading?: boolean;
22
- // we must apply Partial here because all results from template code gen are optional
23
- resp?: Partial<SelectOption<TValue>>[] | OptionsApiResult<TValue> | null;
24
- error?: any;
25
- }
26
-
27
- export interface SelectGroupProps<TValue>
28
- extends InjectedFieldProps<TValue | undefined | null>,
29
- Omit<GroupProps, 'input' | 'meta' | 'children'> {
30
- // allows for "useService" or other handles to control the data - including cache
31
- // TODO: do we still want a version of select that has a "url" or maybe a promise func or something?
32
- // eventually we can just add the shape of, say, useQuery (TanStack) to the union type
33
- /** Options for the dropdown. Includes the label and value. */
34
- options: SelectOption<TValue>[] | OptionsUseServiceResult<TValue>;
35
- /** Whether the user should be able to have multiple values selected. */
36
- multiple: TValue extends Array<any> ? true : false;
37
- /** Text diplayed when no value is selected. */
38
- placeholder?: string;
39
- /** allows the select value to be cleared */
40
- isClearable?: boolean;
41
- }
42
-
43
- // TODO: we could also name this "ReactSelectGroup" or similar but the types are strongly defined now so kept the names consistent
44
- /** Generic select dropdown. Uses [react-select](https://react-select.com/home). */
45
- export default function SelectGroup<TValue>({
46
- input,
47
- meta,
48
- className,
49
- required,
50
- disabled,
51
- options,
52
- multiple,
53
- placeholder,
54
- isClearable,
55
- label,
56
- helpText,
57
- ...rest
58
- }: SelectGroupProps<TValue>) {
59
- const effectiveOptions: Partial<SelectOption<TValue>>[] = !options
60
- ? []
61
- : Array.isArray(options)
62
- ? options
63
- : 'resp' in options &&
64
- !!options.resp &&
65
- 'result' in options.resp &&
66
- !!options.resp.result
67
- ? options.resp.result
68
- : 'resp' in options && !!options.resp && Array.isArray(options.resp)
69
- ? options.resp
70
- : [];
71
-
72
- const isLoading =
73
- (options && 'loading' in options && options.loading) || false;
74
-
75
- return (
76
- <Group
77
- input={input}
78
- meta={meta}
79
- label={label}
80
- helpText={helpText}
81
- required={required}
82
- disabled={disabled}
83
- className={clsx(
84
- className,
85
- {
86
- [FormDefaults.cssClassPrefix + 'multiple']: multiple,
87
- [FormDefaults.cssClassPrefix + 'loading']: isLoading,
88
- },
89
- FormDefaults.cssClassPrefix + 'select-group'
90
- )}>
91
- <ReactSelect<
92
- Partial<SelectOption<TValue>>,
93
- TValue extends Array<any> ? true : false
94
- >
95
- {...rest}
96
- inputId={input.id}
97
- isMulti={multiple}
98
- isDisabled={disabled}
99
- options={effectiveOptions}
100
- onBlur={input.onBlur}
101
- value={getValue()}
102
- onChange={(e: any) => {
103
- if (multiple === true) {
104
- input.onChange(e?.map((x: any) => x.value));
105
- } else {
106
- input.onChange(e?.value as any);
107
- }
108
- }}
109
- getOptionLabel={(option) => option?.label ?? ''}
110
- className={clsx(
111
- className,
112
- FormDefaults.cssClassPrefix + 'select-group'
113
- )}
114
- classNamePrefix="react-select"
115
- menuPortalTarget={document.body}
116
- menuPlacement="auto"
117
- placeholder={placeholder}
118
- isClearable={isClearable}
119
- />
120
- </Group>
121
- );
122
-
123
- function getValue() {
124
- if (multiple) {
125
- return effectiveOptions.filter(
126
- (o) =>
127
- Array.isArray(input.value) && !!input.value.find((x) => o.value === x)
128
- );
129
- }
130
- return effectiveOptions.find((o) => o.value === input.value);
131
- }
132
- }