envoc-form 5.0.6 → 6.0.1-0

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 (335) hide show
  1. package/README.md +4636 -1236
  2. package/dist/index.cjs +21685 -0
  3. package/dist/index.d.ts +599 -0
  4. package/dist/index.js +21617 -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 -87
  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/Field/CustomFieldInputProps.d.ts +0 -7
  25. package/es/Field/CustomFieldInputProps.js +0 -1
  26. package/es/Field/CustomFieldMetaProps.d.ts +0 -4
  27. package/es/Field/CustomFieldMetaProps.js +0 -1
  28. package/es/Field/Field.d.ts +0 -28
  29. package/es/Field/Field.js +0 -51
  30. package/es/Field/FieldErrorScrollTarget.d.ts +0 -2
  31. package/es/Field/FieldErrorScrollTarget.js +0 -12
  32. package/es/Field/FieldNameContext.d.ts +0 -3
  33. package/es/Field/FieldNameContext.js +0 -3
  34. package/es/Field/FieldSection.d.ts +0 -7
  35. package/es/Field/FieldSection.js +0 -9
  36. package/es/Field/InjectedFieldProps.d.ts +0 -7
  37. package/es/Field/InjectedFieldProps.js +0 -1
  38. package/es/Field/StandAloneInput.d.ts +0 -13
  39. package/es/Field/StandAloneInput.js +0 -50
  40. package/es/Field/useStandardField.d.ts +0 -21
  41. package/es/Field/useStandardField.js +0 -92
  42. package/es/FieldArray/FieldArray.d.ts +0 -24
  43. package/es/FieldArray/FieldArray.js +0 -77
  44. package/es/File/FileGroup.d.ts +0 -10
  45. package/es/File/FileGroup.js +0 -53
  46. package/es/File/FileList.d.ts +0 -5
  47. package/es/File/FileList.js +0 -10
  48. package/es/File/humanFileSize.d.ts +0 -1
  49. package/es/File/humanFileSize.js +0 -6
  50. package/es/Form/FocusError.d.ts +0 -7
  51. package/es/Form/FocusError.js +0 -42
  52. package/es/Form/Form.d.ts +0 -33
  53. package/es/Form/Form.js +0 -141
  54. package/es/Form/FormBasedPreventNavigation.d.ts +0 -6
  55. package/es/Form/FormBasedPreventNavigation.js +0 -20
  56. package/es/Form/LegacyFormBasedPreventNavigation.d.ts +0 -17
  57. package/es/Form/LegacyFormBasedPreventNavigation.js +0 -69
  58. package/es/Form/NewFormBasedPreventNavigation.d.ts +0 -14
  59. package/es/Form/NewFormBasedPreventNavigation.js +0 -39
  60. package/es/Form/ServerErrorContext.d.ts +0 -11
  61. package/es/Form/ServerErrorContext.js +0 -9
  62. package/es/FormActions.d.ts +0 -12
  63. package/es/FormActions.js +0 -16
  64. package/es/FormDefaults.d.ts +0 -4
  65. package/es/FormDefaults.js +0 -2
  66. package/es/Group.d.ts +0 -16
  67. package/es/Group.js +0 -14
  68. package/es/Input/CheckboxGroup.d.ts +0 -6
  69. package/es/Input/CheckboxGroup.js +0 -14
  70. package/es/Input/CheckboxInputGroup.d.ts +0 -13
  71. package/es/Input/CheckboxInputGroup.js +0 -41
  72. package/es/Input/IconInputGroup.d.ts +0 -12
  73. package/es/Input/IconInputGroup.js +0 -43
  74. package/es/Input/InputGroup.d.ts +0 -12
  75. package/es/Input/InputGroup.js +0 -34
  76. package/es/Input/MoneyInputGroup.d.ts +0 -9
  77. package/es/Input/MoneyInputGroup.js +0 -43
  78. package/es/Input/NumberInputGroup.d.ts +0 -9
  79. package/es/Input/NumberInputGroup.js +0 -43
  80. package/es/Input/PhoneNumberInputGroup.d.ts +0 -10
  81. package/es/Input/PhoneNumberInputGroup.js +0 -47
  82. package/es/Input/StringInputGroup.d.ts +0 -8
  83. package/es/Input/StringInputGroup.js +0 -43
  84. package/es/Normalization/NormalizationFunction.d.ts +0 -4
  85. package/es/Normalization/NormalizationFunction.js +0 -1
  86. package/es/Normalization/normalizers.d.ts +0 -4
  87. package/es/Normalization/normalizers.js +0 -32
  88. package/es/Select/BooleanSelectGroup.d.ts +0 -7
  89. package/es/Select/BooleanSelectGroup.js +0 -28
  90. package/es/Select/NumberSelectGroup.d.ts +0 -9
  91. package/es/Select/NumberSelectGroup.js +0 -21
  92. package/es/Select/SelectGroup.d.ts +0 -27
  93. package/es/Select/SelectGroup.js +0 -65
  94. package/es/Select/SelectGroupPropsHelper.d.ts +0 -3
  95. package/es/Select/SelectGroupPropsHelper.js +0 -1
  96. package/es/Select/StringSelectGroup.d.ts +0 -9
  97. package/es/Select/StringSelectGroup.js +0 -21
  98. package/es/StandardFormActions.d.ts +0 -11
  99. package/es/StandardFormActions.js +0 -14
  100. package/es/SubmitFormButton.d.ts +0 -10
  101. package/es/SubmitFormButton.js +0 -40
  102. package/es/TextArea/TextAreaGroup.d.ts +0 -9
  103. package/es/TextArea/TextAreaGroup.js +0 -35
  104. package/es/Validation/ValidatedApiResult.d.ts +0 -6
  105. package/es/Validation/ValidatedApiResult.js +0 -1
  106. package/es/Validation/ValidationError.d.ts +0 -5
  107. package/es/Validation/ValidationError.js +0 -1
  108. package/es/Validation/ValidationFunction.d.ts +0 -4
  109. package/es/Validation/ValidationFunction.js +0 -1
  110. package/es/Validation/validators.d.ts +0 -18
  111. package/es/Validation/validators.js +0 -77
  112. package/es/index.d.ts +0 -77
  113. package/es/index.js +0 -52
  114. package/es/setupTests.d.ts +0 -1
  115. package/es/setupTests.js +0 -1
  116. package/es/utils/objectContainsNonSerializableProperty.d.ts +0 -1
  117. package/es/utils/objectContainsNonSerializableProperty.js +0 -14
  118. package/es/utils/objectToFormData.d.ts +0 -10
  119. package/es/utils/objectToFormData.js +0 -77
  120. package/es/utils/typeChecks.d.ts +0 -8
  121. package/es/utils/typeChecks.js +0 -18
  122. package/lib/AddressInput/AddressInput.d.ts +0 -24
  123. package/lib/AddressInput/AddressInput.js +0 -26
  124. package/lib/AddressInput/UsStates.d.ts +0 -3
  125. package/lib/AddressInput/UsStates.js +0 -55
  126. package/lib/ConfirmBaseForm/ConfirmBaseForm.d.ts +0 -26
  127. package/lib/ConfirmBaseForm/ConfirmBaseForm.js +0 -45
  128. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +0 -24
  129. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -66
  130. package/lib/DatePicker/DatePickerGroup.d.ts +0 -13
  131. package/lib/DatePicker/DatePickerGroup.js +0 -95
  132. package/lib/DatePicker/DatePickerHelper.d.ts +0 -3
  133. package/lib/DatePicker/DatePickerHelper.js +0 -2
  134. package/lib/DatePicker/StringDateOnlyPickerGroup.d.ts +0 -9
  135. package/lib/DatePicker/StringDateOnlyPickerGroup.js +0 -35
  136. package/lib/DatePicker/StringDatePickerGroup.d.ts +0 -9
  137. package/lib/DatePicker/StringDatePickerGroup.js +0 -30
  138. package/lib/Field/CustomFieldInputProps.d.ts +0 -7
  139. package/lib/Field/CustomFieldInputProps.js +0 -2
  140. package/lib/Field/CustomFieldMetaProps.d.ts +0 -4
  141. package/lib/Field/CustomFieldMetaProps.js +0 -2
  142. package/lib/Field/Field.d.ts +0 -28
  143. package/lib/Field/Field.js +0 -56
  144. package/lib/Field/FieldErrorScrollTarget.d.ts +0 -2
  145. package/lib/Field/FieldErrorScrollTarget.js +0 -15
  146. package/lib/Field/FieldNameContext.d.ts +0 -3
  147. package/lib/Field/FieldNameContext.js +0 -9
  148. package/lib/Field/FieldSection.d.ts +0 -7
  149. package/lib/Field/FieldSection.js +0 -12
  150. package/lib/Field/InjectedFieldProps.d.ts +0 -7
  151. package/lib/Field/InjectedFieldProps.js +0 -2
  152. package/lib/Field/StandAloneInput.d.ts +0 -13
  153. package/lib/Field/StandAloneInput.js +0 -76
  154. package/lib/Field/useStandardField.d.ts +0 -21
  155. package/lib/Field/useStandardField.js +0 -95
  156. package/lib/FieldArray/FieldArray.d.ts +0 -24
  157. package/lib/FieldArray/FieldArray.js +0 -83
  158. package/lib/File/FileGroup.d.ts +0 -10
  159. package/lib/File/FileGroup.js +0 -58
  160. package/lib/File/FileList.d.ts +0 -5
  161. package/lib/File/FileList.js +0 -13
  162. package/lib/File/humanFileSize.d.ts +0 -1
  163. package/lib/File/humanFileSize.js +0 -10
  164. package/lib/Form/FocusError.d.ts +0 -7
  165. package/lib/Form/FocusError.js +0 -48
  166. package/lib/Form/Form.d.ts +0 -33
  167. package/lib/Form/Form.js +0 -147
  168. package/lib/Form/FormBasedPreventNavigation.d.ts +0 -6
  169. package/lib/Form/FormBasedPreventNavigation.js +0 -26
  170. package/lib/Form/LegacyFormBasedPreventNavigation.d.ts +0 -17
  171. package/lib/Form/LegacyFormBasedPreventNavigation.js +0 -72
  172. package/lib/Form/NewFormBasedPreventNavigation.d.ts +0 -14
  173. package/lib/Form/NewFormBasedPreventNavigation.js +0 -42
  174. package/lib/Form/ServerErrorContext.d.ts +0 -11
  175. package/lib/Form/ServerErrorContext.js +0 -15
  176. package/lib/FormActions.d.ts +0 -12
  177. package/lib/FormActions.js +0 -22
  178. package/lib/FormDefaults.d.ts +0 -4
  179. package/lib/FormDefaults.js +0 -5
  180. package/lib/Group.d.ts +0 -16
  181. package/lib/Group.js +0 -20
  182. package/lib/Input/CheckboxGroup.d.ts +0 -6
  183. package/lib/Input/CheckboxGroup.js +0 -20
  184. package/lib/Input/CheckboxInputGroup.d.ts +0 -13
  185. package/lib/Input/CheckboxInputGroup.js +0 -46
  186. package/lib/Input/IconInputGroup.d.ts +0 -12
  187. package/lib/Input/IconInputGroup.js +0 -48
  188. package/lib/Input/InputGroup.d.ts +0 -12
  189. package/lib/Input/InputGroup.js +0 -39
  190. package/lib/Input/MoneyInputGroup.d.ts +0 -9
  191. package/lib/Input/MoneyInputGroup.js +0 -48
  192. package/lib/Input/NumberInputGroup.d.ts +0 -9
  193. package/lib/Input/NumberInputGroup.js +0 -48
  194. package/lib/Input/PhoneNumberInputGroup.d.ts +0 -10
  195. package/lib/Input/PhoneNumberInputGroup.js +0 -52
  196. package/lib/Input/StringInputGroup.d.ts +0 -8
  197. package/lib/Input/StringInputGroup.js +0 -48
  198. package/lib/Normalization/NormalizationFunction.d.ts +0 -4
  199. package/lib/Normalization/NormalizationFunction.js +0 -2
  200. package/lib/Normalization/normalizers.d.ts +0 -4
  201. package/lib/Normalization/normalizers.js +0 -37
  202. package/lib/Select/BooleanSelectGroup.d.ts +0 -7
  203. package/lib/Select/BooleanSelectGroup.js +0 -35
  204. package/lib/Select/NumberSelectGroup.d.ts +0 -9
  205. package/lib/Select/NumberSelectGroup.js +0 -29
  206. package/lib/Select/SelectGroup.d.ts +0 -27
  207. package/lib/Select/SelectGroup.js +0 -71
  208. package/lib/Select/SelectGroupPropsHelper.d.ts +0 -3
  209. package/lib/Select/SelectGroupPropsHelper.js +0 -2
  210. package/lib/Select/StringSelectGroup.d.ts +0 -9
  211. package/lib/Select/StringSelectGroup.js +0 -29
  212. package/lib/StandardFormActions.d.ts +0 -11
  213. package/lib/StandardFormActions.js +0 -20
  214. package/lib/SubmitFormButton.d.ts +0 -10
  215. package/lib/SubmitFormButton.js +0 -45
  216. package/lib/TextArea/TextAreaGroup.d.ts +0 -9
  217. package/lib/TextArea/TextAreaGroup.js +0 -40
  218. package/lib/Validation/ValidatedApiResult.d.ts +0 -6
  219. package/lib/Validation/ValidatedApiResult.js +0 -2
  220. package/lib/Validation/ValidationError.d.ts +0 -5
  221. package/lib/Validation/ValidationError.js +0 -2
  222. package/lib/Validation/ValidationFunction.d.ts +0 -4
  223. package/lib/Validation/ValidationFunction.js +0 -2
  224. package/lib/Validation/validators.d.ts +0 -18
  225. package/lib/Validation/validators.js +0 -90
  226. package/lib/index.d.ts +0 -77
  227. package/lib/index.js +0 -121
  228. package/lib/setupTests.d.ts +0 -1
  229. package/lib/setupTests.js +0 -3
  230. package/lib/utils/objectContainsNonSerializableProperty.d.ts +0 -1
  231. package/lib/utils/objectContainsNonSerializableProperty.js +0 -17
  232. package/lib/utils/objectToFormData.d.ts +0 -10
  233. package/lib/utils/objectToFormData.js +0 -79
  234. package/lib/utils/typeChecks.d.ts +0 -8
  235. package/lib/utils/typeChecks.js +0 -29
  236. package/src/AddressInput/AddressInput.test.tsx +0 -27
  237. package/src/AddressInput/AddressInput.tsx +0 -82
  238. package/src/AddressInput/UsStates.ts +0 -55
  239. package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +0 -182
  240. package/src/ConfirmBaseForm/ConfirmBaseForm.test.tsx +0 -24
  241. package/src/ConfirmBaseForm/ConfirmBaseForm.tsx +0 -74
  242. package/src/ConfirmBaseForm/__snapshots__/ConfirmBaseForm.test.tsx.snap +0 -23
  243. package/src/ConfirmDeleteForm/ConfirmDeleteForm.test.tsx +0 -24
  244. package/src/ConfirmDeleteForm/ConfirmDeleteForm.tsx +0 -87
  245. package/src/ConfirmDeleteForm/__snapshots__/ConfirmDeleteForm.test.tsx.snap +0 -25
  246. package/src/DatePicker/DatePicker.test.tsx +0 -48
  247. package/src/DatePicker/DatePickerGroup.tsx +0 -109
  248. package/src/DatePicker/DatePickerHelper.ts +0 -4
  249. package/src/DatePicker/StringDateOnlyPickerGroup.tsx +0 -28
  250. package/src/DatePicker/StringDatePickerGroup.tsx +0 -20
  251. package/src/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -152
  252. package/src/Field/CustomFieldInputProps.ts +0 -10
  253. package/src/Field/CustomFieldMetaProps.ts +0 -5
  254. package/src/Field/Field.tsx +0 -113
  255. package/src/Field/FieldErrorScrollTarget.tsx +0 -12
  256. package/src/Field/FieldNameContext.ts +0 -6
  257. package/src/Field/FieldSection.tsx +0 -18
  258. package/src/Field/InjectedFieldProps.ts +0 -8
  259. package/src/Field/StandAloneInput.tsx +0 -55
  260. package/src/Field/useStandardField.ts +0 -125
  261. package/src/FieldArray/FieldArray.tsx +0 -154
  262. package/src/File/FileGroup.test.tsx +0 -35
  263. package/src/File/FileGroup.tsx +0 -82
  264. package/src/File/FileList.tsx +0 -21
  265. package/src/File/__snapshots__/FileGroup.test.tsx.snap +0 -34
  266. package/src/File/humanFileSize.ts +0 -8
  267. package/src/Form/FocusError.tsx +0 -55
  268. package/src/Form/Form.test.tsx +0 -14
  269. package/src/Form/Form.tsx +0 -234
  270. package/src/Form/FormBasedPreventNavigation.tsx +0 -56
  271. package/src/Form/LegacyFormBasedPreventNavigation.tsx +0 -77
  272. package/src/Form/NewFormBasedPreventNavigation.tsx +0 -59
  273. package/src/Form/ServerErrorContext.ts +0 -18
  274. package/src/Form/__snapshots__/Form.test.tsx.snap +0 -10
  275. package/src/FormActions.tsx +0 -47
  276. package/src/FormDefaults.ts +0 -2
  277. package/src/Group.tsx +0 -62
  278. package/src/Input/CheckboxGroup.tsx +0 -60
  279. package/src/Input/CheckboxInputGroup.tsx +0 -78
  280. package/src/Input/IconInputGroup.tsx +0 -54
  281. package/src/Input/InputGroup.tsx +0 -66
  282. package/src/Input/MoneyInputGroup.tsx +0 -47
  283. package/src/Input/NumberInputGroup.tsx +0 -45
  284. package/src/Input/PhoneNumberInputGroup.tsx +0 -45
  285. package/src/Input/StringInputGroup.tsx +0 -50
  286. package/src/Input/__Tests__/CheckboxInputGroup.test.tsx +0 -26
  287. package/src/Input/__Tests__/IconInputGroup.test.tsx +0 -35
  288. package/src/Input/__Tests__/MoneyInputGroup.test.tsx +0 -37
  289. package/src/Input/__Tests__/NumberInputGroup.test.tsx +0 -35
  290. package/src/Input/__Tests__/PhoneNumberInputGroup.test.tsx +0 -36
  291. package/src/Input/__Tests__/StringInputGroup.test.tsx +0 -27
  292. package/src/Input/__Tests__/__snapshots__/CheckboxInputGroup.test.tsx.snap +0 -33
  293. package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +0 -32
  294. package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +0 -34
  295. package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +0 -32
  296. package/src/Input/__Tests__/__snapshots__/PhoneNumberInputGroup.test.tsx.snap +0 -33
  297. package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +0 -31
  298. package/src/Normalization/NormalizationFunction.ts +0 -4
  299. package/src/Normalization/normalizers.ts +0 -44
  300. package/src/Select/BooleanSelectGroup.tsx +0 -28
  301. package/src/Select/NumberSelectGroup.tsx +0 -16
  302. package/src/Select/SelectGroup.tsx +0 -124
  303. package/src/Select/SelectGroupPropsHelper.ts +0 -4
  304. package/src/Select/StringSelectGroup.tsx +0 -16
  305. package/src/Select/__tests__/BooleanSelectGroup.test.tsx +0 -35
  306. package/src/Select/__tests__/NumberSelectGroup.test.tsx +0 -87
  307. package/src/Select/__tests__/StringSelectGroup.test.tsx +0 -89
  308. package/src/Select/__tests__/__snapshots__/BooleanSelectGroup.test.tsx.snap +0 -98
  309. package/src/Select/__tests__/__snapshots__/NumberSelectGroup.test.tsx.snap +0 -195
  310. package/src/Select/__tests__/__snapshots__/StringSelectGroup.test.tsx.snap +0 -195
  311. package/src/StandardFormActions.tsx +0 -41
  312. package/src/SubmitFormButton.tsx +0 -54
  313. package/src/TextArea/TextAreaGroup.tsx +0 -64
  314. package/src/Validation/ValidatedApiResult.ts +0 -8
  315. package/src/Validation/ValidationError.ts +0 -6
  316. package/src/Validation/ValidationFunction.ts +0 -4
  317. package/src/Validation/validators.test.tsx +0 -81
  318. package/src/Validation/validators.ts +0 -97
  319. package/src/__Tests__/FormTestBase.tsx +0 -65
  320. package/src/__Tests__/RealisticForm.test.tsx +0 -82
  321. package/src/__Tests__/StandardFormActions.test.tsx +0 -17
  322. package/src/__Tests__/SubmitFormButton.test.tsx +0 -17
  323. package/src/__Tests__/__snapshots__/StandardFormActions.test.tsx.snap +0 -27
  324. package/src/__Tests__/__snapshots__/SubmitFormButton.test.tsx.snap +0 -20
  325. package/src/__Tests__/index.ts +0 -3
  326. package/src/_variables.scss +0 -11
  327. package/src/index.ts +0 -156
  328. package/src/react-app-env.d.ts +0 -1
  329. package/src/setupTests.ts +0 -1
  330. package/src/styles.scss +0 -0
  331. package/src/utils/objectContainsNonSerializableProperty.test.tsx +0 -49
  332. package/src/utils/objectContainsNonSerializableProperty.ts +0 -17
  333. package/src/utils/objectToFormData.test.tsx +0 -76
  334. package/src/utils/objectToFormData.ts +0 -105
  335. package/src/utils/typeChecks.ts +0 -18
@@ -1,182 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`AddressInput 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 envoc-form-required"
11
- >
12
- <div
13
- id="normaladdressinput.address1-error-scroll-target"
14
- style="display: none;"
15
- />
16
- <label
17
- for="normalAddressInput.address1"
18
- >
19
- Address 1
20
- </label>
21
- <input
22
- aria-invalid="false"
23
- class="envoc-form-string-group envoc-form-input-group"
24
- id="normalAddressInput.address1"
25
- name="normalAddressInput.address1"
26
- placeholder="Address, Line 1"
27
- value=""
28
- />
29
- </div>
30
- <div
31
- class="envoc-form-string-group envoc-form-input-group envoc-form-group"
32
- >
33
- <div
34
- id="normaladdressinput.address2-error-scroll-target"
35
- style="display: none;"
36
- />
37
- <label
38
- for="normalAddressInput.address2"
39
- >
40
- Address 2
41
- </label>
42
- <input
43
- aria-invalid="false"
44
- class="envoc-form-string-group envoc-form-input-group"
45
- id="normalAddressInput.address2"
46
- name="normalAddressInput.address2"
47
- placeholder="Address, Line 2"
48
- value=""
49
- />
50
- </div>
51
- <div
52
- class="envoc-form-string-group envoc-form-input-group envoc-form-group envoc-form-required"
53
- >
54
- <div
55
- id="normaladdressinput.city-error-scroll-target"
56
- style="display: none;"
57
- />
58
- <label
59
- for="normalAddressInput.city"
60
- >
61
- City
62
- </label>
63
- <input
64
- aria-invalid="false"
65
- class="envoc-form-string-group envoc-form-input-group"
66
- id="normalAddressInput.city"
67
- name="normalAddressInput.city"
68
- placeholder="City"
69
- value=""
70
- />
71
- </div>
72
- <div
73
- class="envoc-form-select-group envoc-form-group envoc-form-required"
74
- >
75
- <div
76
- id="normaladdressinput.state-error-scroll-target"
77
- style="display: none;"
78
- />
79
- <label
80
- for="normalAddressInput.state"
81
- >
82
- State
83
- </label>
84
- <div
85
- class="envoc-form-select-group css-b62m3t-container"
86
- >
87
- <span
88
- class="css-1f43avz-a11yText-A11yText"
89
- id="react-select-3-live-region"
90
- />
91
- <span
92
- aria-atomic="false"
93
- aria-live="polite"
94
- aria-relevant="additions text"
95
- class="css-1f43avz-a11yText-A11yText"
96
- />
97
- <div
98
- class="react-select__control css-13cymwt-control"
99
- >
100
- <div
101
- class="react-select__value-container css-16674sh-Component"
102
- >
103
- <div
104
- class="react-select__placeholder css-1jqq78o-placeholder"
105
- id="react-select-3-placeholder"
106
- >
107
- State
108
- </div>
109
- <div
110
- class="react-select__input-container css-d9r47t-Component"
111
- data-value=""
112
- >
113
- <input
114
- aria-autocomplete="list"
115
- aria-describedby="react-select-3-placeholder"
116
- aria-expanded="false"
117
- aria-haspopup="true"
118
- autocapitalize="none"
119
- autocomplete="off"
120
- autocorrect="off"
121
- class="react-select__input"
122
- id="normalAddressInput.state"
123
- role="combobox"
124
- spellcheck="false"
125
- style="opacity: 1; width: 100%; grid-area: 1 / 2; min-width: 2px; border: 0px; margin: 0px; outline: 0; padding: 0px;"
126
- tabindex="0"
127
- type="text"
128
- value=""
129
- />
130
- </div>
131
- </div>
132
- <div
133
- class="react-select__indicators css-ny0e4k-Component"
134
- >
135
- <span
136
- class="react-select__indicator-separator css-1u9des2-indicatorSeparator"
137
- />
138
- <div
139
- aria-hidden="true"
140
- class="react-select__indicator react-select__dropdown-indicator css-1xc3v61-indicatorContainer"
141
- >
142
- <svg
143
- aria-hidden="true"
144
- class="css-tj5bde-Svg"
145
- focusable="false"
146
- height="20"
147
- viewBox="0 0 20 20"
148
- width="20"
149
- >
150
- <path
151
- 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"
152
- />
153
- </svg>
154
- </div>
155
- </div>
156
- </div>
157
- </div>
158
- </div>
159
- <div
160
- class="envoc-form-string-group envoc-form-input-group envoc-form-group envoc-form-required"
161
- >
162
- <div
163
- id="normaladdressinput.zipcode-error-scroll-target"
164
- style="display: none;"
165
- />
166
- <label
167
- for="normalAddressInput.zipCode"
168
- >
169
- Zip
170
- </label>
171
- <input
172
- aria-invalid="false"
173
- class="envoc-form-string-group envoc-form-input-group"
174
- id="normalAddressInput.zipCode"
175
- name="normalAddressInput.zipCode"
176
- placeholder="Zip"
177
- value=""
178
- />
179
- </div>
180
- </form>
181
- </DocumentFragment>
182
- `;
@@ -1,24 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import { useAxiosRequestProps } from 'envoc-request';
4
- import ConfirmBaseForm from './ConfirmBaseForm';
5
-
6
- describe('ConfirmBaseForm', () => {
7
- it('Renders without error', () => {
8
- render(<ConfirmBaseForm request={confirmBaseFormRequest} />);
9
- });
10
-
11
- it('has matching snapshot', () => {
12
- const renderResult = render(
13
- <ConfirmBaseForm request={confirmBaseFormRequest} />
14
- );
15
- expect(renderResult.asFragment()).toMatchSnapshot();
16
- });
17
- });
18
-
19
- const confirmBaseFormRequest = {
20
- method: 'get',
21
- url: `/boop`,
22
- onComplete: () => {},
23
- onError: () => {},
24
- } as useAxiosRequestProps;
@@ -1,74 +0,0 @@
1
- import React, { MouseEventHandler } from 'react';
2
- import { clsx } from 'clsx';
3
- import { useAxiosRequest, useAxiosRequestProps } from 'envoc-request';
4
- import { FormDefaults } from '../FormDefaults';
5
-
6
- // TODO: change the style prop type to Tailwind type (does this exist before Tailwind 3.1 ???), or
7
- // should this just be type 'string'
8
- export interface ConfirmBaseFormProps {
9
- /** Function to run when cancel button is clicked. */
10
- handleCancel?: MouseEventHandler<HTMLButtonElement>;
11
- /** Axios request upon confirmation */
12
- request: useAxiosRequestProps;
13
- style?: React.CSSProperties;
14
- /** `<h3/>` title text on top of the form. */
15
- title?: string;
16
- /** Custom confirm button text.
17
- * @defaultValue `Confirm`
18
- */
19
- confirmButtonText?: string;
20
- /** CSS class for the buttons. */
21
- confirmButtonClass?: string;
22
- /** Any components to be rendered in between the title and the buttons. */
23
- children?: React.ReactNode;
24
- }
25
-
26
- // TODO: ask about how we should use 'children'
27
- /**
28
- * Confimation dialog. Navigates to a different route to allow the user to either confirm or cancel an action.
29
- * Commonly used for confirming delete and archive.
30
- *
31
- * See `<ConfirmDeleteForm/>` if the confirmation is specifically for deletion.
32
- */
33
- export default function ConfirmBaseForm({
34
- handleCancel,
35
- request,
36
- style,
37
- title,
38
- confirmButtonText,
39
- confirmButtonClass,
40
- children,
41
- ...props
42
- }: ConfirmBaseFormProps) {
43
- const webRequest = useAxiosRequest(
44
- Object.assign({}, request, { autoExecute: false })
45
- );
46
- const onCancel = handleCancel ?? goBack;
47
-
48
- return (
49
- <div style={{ textAlign: 'center', ...style }} {...props}>
50
- <h3>{title}</h3>
51
- {children}
52
- <button
53
- className={clsx(
54
- confirmButtonClass ??
55
- FormDefaults.cssClassPrefix + 'confirm-base-form-confirm-button'
56
- )}
57
- type="button"
58
- onClick={webRequest.submitRequest}>
59
- {confirmButtonText ?? 'Confirm'}
60
- </button>
61
- <button
62
- className={clsx(
63
- FormDefaults.cssClassPrefix + 'confirm-base-form-cancel-button'
64
- )}
65
- type="button"
66
- onClick={onCancel}>
67
- Cancel
68
- </button>
69
- </div>
70
- );
71
- function goBack() {
72
- window.history.back();
73
- }
74
- }
@@ -1,23 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`ConfirmBaseForm has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <div
6
- style="text-align: center;"
7
- >
8
- <h3 />
9
- <button
10
- class="envoc-form-confirm-base-form-confirm-button"
11
- type="button"
12
- >
13
- Confirm
14
- </button>
15
- <button
16
- class="envoc-form-confirm-base-form-cancel-button"
17
- type="button"
18
- >
19
- Cancel
20
- </button>
21
- </div>
22
- </DocumentFragment>
23
- `;
@@ -1,24 +0,0 @@
1
- import React from 'react';
2
- import { HashRouter } from 'react-router-dom';
3
- import { render } from '@testing-library/react';
4
-
5
- import ConfirmDeleteForm from './ConfirmDeleteForm';
6
-
7
- describe('ConfirmDeleteForm', () => {
8
- it('Renders without error', () => {
9
- render(
10
- <HashRouter>
11
- <ConfirmDeleteForm form="foo" />
12
- </HashRouter>
13
- );
14
- });
15
-
16
- it('has matching snapshot', () => {
17
- const renderResult = render(
18
- <HashRouter>
19
- <ConfirmDeleteForm form="foo" />
20
- </HashRouter>
21
- );
22
- expect(renderResult.asFragment()).toMatchSnapshot();
23
- });
24
- });
@@ -1,87 +0,0 @@
1
- import React from 'react';
2
- import { useNavigate, useParams } from 'react-router-dom';
3
- import { toast } from 'react-toastify';
4
- import { useAxiosRequestProps } from 'envoc-request';
5
- import ConfirmBaseForm, {
6
- ConfirmBaseFormProps,
7
- } from '../ConfirmBaseForm/ConfirmBaseForm';
8
- import { FormDefaults } from '../FormDefaults';
9
-
10
- export interface ConfirmDeleteFormProps
11
- extends Pick<ConfirmBaseFormProps, 'style'> {
12
- /** Url to navigate to on success. */
13
- successUrl?: string;
14
- /** Form name (key) to apply the confirmation on. */
15
- form: string;
16
- /** Custom message to display.
17
- * @defaultValue `Are you sure you want to delete this?`
18
- */
19
- title?: string;
20
- /** Custom function when the axios request succeeds. */
21
- handleComplete?: Function;
22
- /** Custom function when the axios request fails. */
23
- handleError?: Function;
24
- /** Any components to be rendered in between the title and the buttons. */
25
- children?: React.ReactNode;
26
- }
27
-
28
- /**
29
- * Deletion confirmation. Navigates to a different route to allow the user to either confirm or cancel an action.
30
- *
31
- * Wraps `<ConfirmBaseForm/>`.
32
- */
33
- export default function ConfirmDeleteForm({
34
- successUrl,
35
- form,
36
- title,
37
- handleComplete,
38
- handleError,
39
- children,
40
- ...props
41
- }: ConfirmDeleteFormProps) {
42
- const navigate = useNavigate();
43
- const { entityId } = useParams();
44
- const onComplete =
45
- handleComplete ??
46
- function () {
47
- toast.success('Deleted!');
48
- goBack();
49
- };
50
- const onError =
51
- handleError ??
52
- function (error: any) {
53
- toast.error(
54
- error.response?.data?.validationFailures[0]?.errorMessage ??
55
- 'Something went wrong talking to the portal. Contact support if this continues.'
56
- );
57
- };
58
-
59
- const request = {
60
- method: 'delete',
61
- url: `/api/${form}/${entityId}`,
62
- onComplete: onComplete,
63
- onError: onError,
64
- } as useAxiosRequestProps;
65
-
66
- return (
67
- <ConfirmBaseForm
68
- request={request}
69
- handleCancel={goBack}
70
- title={title ?? 'Are you sure you want to delete this?'}
71
- confirmButtonText="Yes"
72
- confirmButtonClass={
73
- FormDefaults.cssClassPrefix + 'confirm-delete-form-yes-button'
74
- }
75
- {...props}>
76
- {children}
77
- </ConfirmBaseForm>
78
- );
79
-
80
- function goBack() {
81
- if (successUrl) {
82
- navigate(successUrl);
83
- } else {
84
- navigate(-1);
85
- }
86
- }
87
- }
@@ -1,25 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`ConfirmDeleteForm has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <div
6
- style="text-align: center;"
7
- >
8
- <h3>
9
- Are you sure you want to delete this?
10
- </h3>
11
- <button
12
- class="envoc-form-confirm-delete-form-yes-button"
13
- type="button"
14
- >
15
- Yes
16
- </button>
17
- <button
18
- class="envoc-form-confirm-base-form-cancel-button"
19
- type="button"
20
- >
21
- Cancel
22
- </button>
23
- </div>
24
- </DocumentFragment>
25
- `;
@@ -1,48 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import StringDatePickerGroup from './StringDatePickerGroup';
4
- import FormTestBase from '../__Tests__/FormTestBase';
5
-
6
- //hack so the datepicker internals don't complain about this not existing in the context of jest
7
- HTMLCanvasElement.prototype.getContext = () => null;
8
-
9
- describe('IconInputGroup', () => {
10
- it('renders without crashing', () => {
11
- render(
12
- <FormTestBase>
13
- {({ Field }) => (
14
- <Field
15
- name="favoriteDate"
16
- Component={StringDatePickerGroup}
17
- label="Favorite Date"
18
- monthPlaceholder="mm"
19
- dayPlaceholder="dd"
20
- yearPlaceholder="yyyy"
21
- maxDate={new Date('9/23/2023')}
22
- minDate={new Date('6/22/2022')}
23
- />
24
- )}
25
- </FormTestBase>
26
- );
27
- });
28
-
29
- it('has matching snapshot', () => {
30
- const renderResult = render(
31
- <FormTestBase>
32
- {({ Field }) => (
33
- <Field
34
- name="favoriteDate"
35
- Component={StringDatePickerGroup}
36
- label="Favorite Date"
37
- monthPlaceholder="mm"
38
- dayPlaceholder="dd"
39
- yearPlaceholder="yyyy"
40
- maxDate={new Date('9/23/2023')}
41
- minDate={new Date('6/22/2022')}
42
- />
43
- )}
44
- </FormTestBase>
45
- );
46
- expect(renderResult.asFragment()).toMatchSnapshot();
47
- });
48
- });
@@ -1,109 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- import DatePicker, {
3
- DatePickerProps,
4
- } from 'react-date-picker/dist/entry.nostyle';
5
- import { clsx } from 'clsx';
6
- import parseISO from 'date-fns/parseISO';
7
- import { InjectedFieldProps } from '../Field/InjectedFieldProps';
8
- import { FormDefaults } from '../FormDefaults';
9
- import Group, { GroupProps } from '../Group';
10
-
11
- export interface DatePickerGroupProps<T>
12
- extends InjectedFieldProps<T | undefined | null>,
13
- Omit<
14
- DatePickerProps,
15
- keyof InjectedFieldProps<T> | 'name' | 'value' | 'className'
16
- >,
17
- Omit<GroupProps, keyof InjectedFieldProps<T> | 'children'> {
18
- convert: (arg: Date) => T;
19
- }
20
-
21
- /**
22
- * Field for inputting dates. Uses `<Group/>` and `<DatePicker/>`.
23
- *
24
- * Uses [react-date-picker](https://www.npmjs.com/package/react-date-picker)
25
- */
26
- export default function DatePickerGroup<T>({
27
- input,
28
- meta,
29
- label,
30
- helpText,
31
- className,
32
- required,
33
- disabled,
34
- convert,
35
- ...rest
36
- }: DatePickerGroupProps<T>) {
37
- const [displayDate, setDisplayDate] = useState<Date | null>(null);
38
-
39
- useEffect(() => {
40
- if (!input.value) {
41
- setDisplayDate(null);
42
- } else if (typeof input.value === 'string') {
43
- if (input.value.indexOf('T') === -1) {
44
- setDisplayDate(new Date(`${input.value}T00:00:00.000`));
45
- } else {
46
- setDisplayDate(new Date(input.value));
47
- }
48
- }
49
- }, [setDisplayDate, input.value]);
50
-
51
- return (
52
- <Group
53
- input={input}
54
- meta={meta}
55
- label={label}
56
- helpText={helpText}
57
- className={clsx(className, FormDefaults.cssClassPrefix + 'date-picker')}
58
- required={required}
59
- disabled={disabled}>
60
- <DatePicker
61
- {...rest}
62
- className={clsx(FormDefaults.cssClassPrefix + 'date-picker', className)}
63
- value={displayDate}
64
- onChange={handleChange}
65
- />
66
- </Group>
67
- );
68
-
69
- function handleChange(e: Date | Date[] | string | undefined) {
70
- const { onChange } = input;
71
- if (onChange === null) {
72
- return;
73
- }
74
-
75
- if (!e) {
76
- onChange(undefined);
77
- setDisplayDate(null);
78
- return;
79
- } else if (typeof e === 'string') {
80
- const parsedValue = parseISO(e.toString().split('T')[0]);
81
- setDisplayDate(parsedValue);
82
- onChange(convert(parsedValue));
83
- } else if (e instanceof Date) {
84
- const parsedValue = parseISO(
85
- convertToTimeZoneInsensitiveISOString(e).split('T')[0]
86
- );
87
- setDisplayDate(parsedValue);
88
- onChange(convert(parsedValue));
89
- } else {
90
- // e is instanceof Date[]
91
- const parsedValue = parseISO(
92
- convertToTimeZoneInsensitiveISOString(e[0]).split('T')[0]
93
- );
94
- setDisplayDate(parsedValue);
95
- onChange(convert(parsedValue));
96
- }
97
- }
98
- }
99
-
100
- export function convertToTimeZoneInsensitiveISOString(date: Date): string {
101
- const year = new Intl.DateTimeFormat('en', { year: 'numeric' })
102
- .format(date)
103
- .padStart(4, '0');
104
- const month = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(
105
- date
106
- );
107
- const day = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date);
108
- return `${year}-${month}-${day}T00:00:00.000Z`;
109
- }
@@ -1,4 +0,0 @@
1
- import { DatePickerGroupProps } from './DatePickerGroup';
2
-
3
- export interface DatePickerHelper<T>
4
- extends Omit<DatePickerGroupProps<T>, 'convert'> {}
@@ -1,28 +0,0 @@
1
- import DatePickerGroup from './DatePickerGroup';
2
- import { DatePickerHelper } from './DatePickerHelper';
3
-
4
- export interface StringDateOnlyPickerGroupProps
5
- extends DatePickerHelper<string | undefined | null> {}
6
-
7
- /**
8
- * Date picker input that consumes and outputs as a date only string in ISO format `YYYY-MM-DD`.
9
- *
10
- * Default display to the user is in `MM/DD/YYYY` format.
11
- */
12
- export default function StringDatePickerGroup(
13
- props: StringDateOnlyPickerGroupProps
14
- ) {
15
- return <DatePickerGroup {...props} convert={convertToDateOnly} />;
16
- }
17
-
18
- function convertToDateOnly(arg: Date) {
19
- const year = new Intl.DateTimeFormat('en', { year: 'numeric' })
20
- .format(arg)
21
- .padStart(4, '0');
22
-
23
- const month = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(arg);
24
-
25
- const day = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(arg);
26
-
27
- return `${year}-${month}-${day}`;
28
- }
@@ -1,20 +0,0 @@
1
- import DatePickerGroup from './DatePickerGroup';
2
- import { DatePickerHelper } from './DatePickerHelper';
3
-
4
- export interface StringDatePickerGroupProps
5
- extends DatePickerHelper<string | undefined | null> {}
6
-
7
- /**
8
- * Date picker input that consumes and outputs as a date only string in ISO format `YYYY-MM-DDTHH:mm:ss.sssZ` or `±YYYYYY-MM-DDTHH:mm:ss.sssZ`
9
- *
10
- * If you need `YYYY-MM-DD` format use `<StringDateOnlyPickerGroup/>`.
11
- */
12
- export default function StringDatePickerGroup(
13
- props: StringDatePickerGroupProps
14
- ) {
15
- return <DatePickerGroup {...props} convert={convertToDateOnly} />;
16
- }
17
-
18
- function convertToDateOnly(arg: Date) {
19
- return arg.toISOString();
20
- }