envoc-form 3.3.0 → 4.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 (428) hide show
  1. package/README.md +10 -1
  2. package/dist/css/envoc-form-styles.css +0 -113
  3. package/dist/css/envoc-form-styles.css.map +1 -1
  4. package/es/AddressInput/AddressInput.d.ts +15 -0
  5. package/es/AddressInput/AddressInput.js +21 -97
  6. package/es/AddressInput/UsStates.d.ts +3 -0
  7. package/es/AddressInput/UsStates.js +53 -152
  8. package/es/ConfirmBaseForm/ConfirmBaseForm.d.ts +10 -0
  9. package/es/ConfirmBaseForm/ConfirmBaseForm.js +35 -43
  10. package/es/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +11 -0
  11. package/es/ConfirmDeleteForm/ConfirmDeleteForm.js +54 -40
  12. package/es/DatePickerInput/DatePickerInput.d.ts +14 -0
  13. package/es/DatePickerInput/DatePickerInput.js +63 -95
  14. package/es/Field/CustomFieldInputProps.d.ts +7 -0
  15. package/es/Field/CustomFieldInputProps.js +1 -0
  16. package/es/Field/CustomFieldMetaProps.d.ts +4 -0
  17. package/es/Field/CustomFieldMetaProps.js +1 -0
  18. package/es/Field/Field.d.ts +22 -0
  19. package/es/Field/Field.js +46 -0
  20. package/es/Field/FieldErrorScrollTarget.d.ts +2 -0
  21. package/es/Field/FieldErrorScrollTarget.js +11 -0
  22. package/es/Field/FieldNameContext.d.ts +3 -0
  23. package/es/Field/FieldNameContext.js +3 -0
  24. package/es/Field/FieldSection.d.ts +7 -0
  25. package/es/Field/FieldSection.js +20 -0
  26. package/es/Field/InjectedFieldProps.d.ts +7 -0
  27. package/es/Field/InjectedFieldProps.js +1 -0
  28. package/es/Field/useStandardField.d.ts +15 -0
  29. package/es/Field/useStandardField.js +93 -0
  30. package/es/FieldArray/FieldArray.d.ts +15 -0
  31. package/es/FieldArray/FieldArray.js +80 -0
  32. package/es/File/FileGroup.d.ts +8 -0
  33. package/es/File/FileGroup.js +50 -0
  34. package/es/File/FileList.d.ts +6 -0
  35. package/es/File/FileList.js +20 -0
  36. package/es/File/humanFileSize.d.ts +1 -0
  37. package/es/File/humanFileSize.js +6 -0
  38. package/es/Form/FocusError.d.ts +5 -0
  39. package/es/Form/FocusError.js +41 -53
  40. package/es/Form/Form.d.ts +22 -0
  41. package/es/Form/Form.js +111 -125
  42. package/es/Form/FormBasedPreventNavigation.d.ts +5 -0
  43. package/es/Form/FormBasedPreventNavigation.js +53 -30
  44. package/es/Form/ServerErrorContext.d.ts +10 -0
  45. package/es/Form/ServerErrorContext.js +8 -6
  46. package/es/FormActions.d.ts +7 -0
  47. package/es/FormActions.js +22 -0
  48. package/es/Group.d.ts +13 -0
  49. package/es/Group.js +22 -0
  50. package/es/Input/IconInputGroup.d.ts +9 -0
  51. package/es/Input/IconInputGroup.js +40 -0
  52. package/es/Input/InputGroup.d.ts +12 -0
  53. package/es/Input/InputGroup.js +33 -0
  54. package/es/Input/MoneyInputGroup.d.ts +7 -0
  55. package/es/Input/MoneyInputGroup.js +41 -0
  56. package/es/Input/NumberInputGroup.d.ts +7 -0
  57. package/es/Input/NumberInputGroup.js +41 -0
  58. package/es/Input/StringInputGroup.d.ts +7 -0
  59. package/es/Input/StringInputGroup.js +40 -0
  60. package/es/Normalization/NormalizationFunction.d.ts +4 -0
  61. package/es/Normalization/NormalizationFunction.js +1 -0
  62. package/es/Normalization/normalizers.d.ts +2 -0
  63. package/es/Normalization/normalizers.js +30 -0
  64. package/es/Select/BooleanSelectGroup.d.ts +7 -0
  65. package/es/Select/BooleanSelectGroup.js +27 -0
  66. package/es/Select/NumberSelectGroup.d.ts +8 -0
  67. package/es/Select/NumberSelectGroup.js +19 -0
  68. package/es/Select/SelectGroup.d.ts +22 -0
  69. package/es/Select/SelectGroup.js +59 -0
  70. package/es/Select/SelectGroupPropsHelper.d.ts +3 -0
  71. package/es/Select/SelectGroupPropsHelper.js +1 -0
  72. package/es/Select/StringSelectGroup.d.ts +8 -0
  73. package/es/Select/StringSelectGroup.js +19 -0
  74. package/es/StandardFormActions.d.ts +6 -0
  75. package/es/StandardFormActions.js +23 -24
  76. package/es/SubmitFormButton.d.ts +7 -0
  77. package/es/SubmitFormButton.js +37 -23
  78. package/es/Validation/ValidatedApiResult.d.ts +6 -0
  79. package/es/Validation/ValidatedApiResult.js +1 -0
  80. package/es/Validation/ValidationError.d.ts +5 -0
  81. package/es/Validation/ValidationError.js +1 -0
  82. package/es/Validation/ValidationFunction.d.ts +4 -0
  83. package/es/Validation/ValidationFunction.js +1 -0
  84. package/es/Validation/validators.d.ts +15 -0
  85. package/es/Validation/validators.js +73 -0
  86. package/es/__Tests__/FormTestBase.d.ts +27 -0
  87. package/es/__Tests__/FormTestBase.js +83 -12
  88. package/{src/__Tests__/index.js → es/__Tests__/index.d.ts} +0 -0
  89. package/es/__Tests__/index.js +2 -2
  90. package/es/index.d.ts +57 -0
  91. package/es/index.js +41 -25
  92. package/es/utils/objectContainsNonSerializableProperty.d.ts +1 -0
  93. package/es/utils/objectContainsNonSerializableProperty.js +14 -16
  94. package/es/utils/objectToFormData.d.ts +10 -0
  95. package/es/utils/objectToFormData.js +77 -65
  96. package/es/utils/typeChecks.d.ts +8 -0
  97. package/es/utils/typeChecks.js +18 -25
  98. package/lib/AddressInput/AddressInput.d.ts +15 -0
  99. package/lib/AddressInput/AddressInput.js +27 -123
  100. package/lib/AddressInput/UsStates.d.ts +3 -0
  101. package/lib/AddressInput/UsStates.js +55 -159
  102. package/lib/ConfirmBaseForm/ConfirmBaseForm.d.ts +10 -0
  103. package/lib/ConfirmBaseForm/ConfirmBaseForm.js +41 -57
  104. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +11 -0
  105. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.js +60 -56
  106. package/lib/DatePickerInput/DatePickerInput.d.ts +14 -0
  107. package/lib/DatePickerInput/DatePickerInput.js +69 -113
  108. package/lib/Field/CustomFieldInputProps.d.ts +7 -0
  109. package/lib/Field/CustomFieldInputProps.js +2 -0
  110. package/lib/Field/CustomFieldMetaProps.d.ts +4 -0
  111. package/lib/Field/CustomFieldMetaProps.js +2 -0
  112. package/lib/Field/Field.d.ts +22 -0
  113. package/lib/Field/Field.js +51 -0
  114. package/lib/Field/FieldErrorScrollTarget.d.ts +2 -0
  115. package/lib/Field/FieldErrorScrollTarget.js +14 -0
  116. package/lib/Field/FieldNameContext.d.ts +3 -0
  117. package/lib/Field/FieldNameContext.js +9 -0
  118. package/lib/Field/FieldSection.d.ts +7 -0
  119. package/lib/Field/FieldSection.js +23 -0
  120. package/lib/Field/InjectedFieldProps.d.ts +7 -0
  121. package/lib/Field/InjectedFieldProps.js +2 -0
  122. package/lib/Field/useStandardField.d.ts +15 -0
  123. package/lib/Field/useStandardField.js +96 -0
  124. package/lib/FieldArray/FieldArray.d.ts +15 -0
  125. package/lib/FieldArray/FieldArray.js +86 -0
  126. package/lib/File/FileGroup.d.ts +8 -0
  127. package/lib/File/FileGroup.js +55 -0
  128. package/lib/File/FileList.d.ts +6 -0
  129. package/lib/File/FileList.js +23 -0
  130. package/lib/File/humanFileSize.d.ts +1 -0
  131. package/lib/File/humanFileSize.js +10 -0
  132. package/lib/Form/FocusError.d.ts +5 -0
  133. package/lib/Form/FocusError.js +47 -66
  134. package/lib/Form/Form.d.ts +22 -0
  135. package/lib/Form/Form.js +117 -153
  136. package/lib/Form/FormBasedPreventNavigation.d.ts +5 -0
  137. package/lib/Form/FormBasedPreventNavigation.js +56 -39
  138. package/lib/Form/ServerErrorContext.d.ts +10 -0
  139. package/lib/Form/ServerErrorContext.js +14 -18
  140. package/lib/FormActions.d.ts +7 -0
  141. package/lib/FormActions.js +28 -0
  142. package/lib/Group.d.ts +13 -0
  143. package/lib/Group.js +28 -0
  144. package/lib/Input/IconInputGroup.d.ts +9 -0
  145. package/lib/Input/IconInputGroup.js +45 -0
  146. package/lib/Input/InputGroup.d.ts +12 -0
  147. package/lib/Input/InputGroup.js +38 -0
  148. package/lib/Input/MoneyInputGroup.d.ts +7 -0
  149. package/lib/Input/MoneyInputGroup.js +46 -0
  150. package/lib/Input/NumberInputGroup.d.ts +7 -0
  151. package/lib/Input/NumberInputGroup.js +46 -0
  152. package/lib/Input/StringInputGroup.d.ts +7 -0
  153. package/lib/Input/StringInputGroup.js +45 -0
  154. package/lib/Normalization/NormalizationFunction.d.ts +4 -0
  155. package/lib/Normalization/NormalizationFunction.js +2 -0
  156. package/lib/Normalization/normalizers.d.ts +2 -0
  157. package/lib/Normalization/normalizers.js +35 -0
  158. package/lib/Select/BooleanSelectGroup.d.ts +7 -0
  159. package/lib/Select/BooleanSelectGroup.js +34 -0
  160. package/lib/Select/NumberSelectGroup.d.ts +8 -0
  161. package/lib/Select/NumberSelectGroup.js +27 -0
  162. package/lib/Select/SelectGroup.d.ts +22 -0
  163. package/lib/Select/SelectGroup.js +65 -0
  164. package/lib/Select/SelectGroupPropsHelper.d.ts +3 -0
  165. package/lib/Select/SelectGroupPropsHelper.js +2 -0
  166. package/lib/Select/StringSelectGroup.d.ts +8 -0
  167. package/lib/Select/StringSelectGroup.js +27 -0
  168. package/lib/StandardFormActions.d.ts +6 -0
  169. package/lib/StandardFormActions.js +29 -37
  170. package/lib/SubmitFormButton.d.ts +7 -0
  171. package/lib/SubmitFormButton.js +42 -38
  172. package/lib/Validation/ValidatedApiResult.d.ts +6 -0
  173. package/lib/Validation/ValidatedApiResult.js +2 -0
  174. package/lib/Validation/ValidationError.d.ts +5 -0
  175. package/lib/Validation/ValidationError.js +2 -0
  176. package/lib/Validation/ValidationFunction.d.ts +4 -0
  177. package/lib/Validation/ValidationFunction.js +2 -0
  178. package/lib/Validation/validators.d.ts +15 -0
  179. package/lib/Validation/validators.js +86 -0
  180. package/lib/__Tests__/FormTestBase.d.ts +27 -0
  181. package/lib/__Tests__/FormTestBase.js +86 -25
  182. package/lib/__Tests__/index.d.ts +2 -0
  183. package/lib/__Tests__/index.js +8 -15
  184. package/lib/index.d.ts +57 -0
  185. package/lib/index.js +101 -262
  186. package/lib/utils/objectContainsNonSerializableProperty.d.ts +1 -0
  187. package/lib/utils/objectContainsNonSerializableProperty.js +17 -24
  188. package/lib/utils/objectToFormData.d.ts +10 -0
  189. package/lib/utils/objectToFormData.js +79 -73
  190. package/lib/utils/typeChecks.d.ts +8 -0
  191. package/lib/utils/typeChecks.js +29 -58
  192. package/package.json +106 -101
  193. package/src/AddressInput/{AddesssInput.test.js → AddressInput.test.tsx} +7 -3
  194. package/src/AddressInput/AddressInput.tsx +72 -0
  195. package/src/AddressInput/{UsStates.js → UsStates.ts} +3 -1
  196. package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +175 -0
  197. package/src/ConfirmBaseForm/ConfirmBaseForm.test.tsx +24 -0
  198. package/src/ConfirmBaseForm/ConfirmBaseForm.tsx +50 -0
  199. package/src/ConfirmBaseForm/__snapshots__/{ConfirmBaseForm.test.js.snap → ConfirmBaseForm.test.tsx.snap} +2 -2
  200. package/src/ConfirmDeleteForm/{ConfirmDeleteForm.test.js → ConfirmDeleteForm.test.tsx} +3 -3
  201. package/src/ConfirmDeleteForm/ConfirmDeleteForm.tsx +67 -0
  202. package/src/ConfirmDeleteForm/__snapshots__/{ConfirmDeleteForm.test.js.snap → ConfirmDeleteForm.test.tsx.snap} +2 -2
  203. package/src/DatePickerInput/DatePickerInput.test.tsx +48 -0
  204. package/src/DatePickerInput/DatePickerInput.tsx +85 -0
  205. package/src/DatePickerInput/__snapshots__/DatePickerInput.test.tsx.snap +151 -0
  206. package/src/Field/CustomFieldInputProps.ts +10 -0
  207. package/src/Field/CustomFieldMetaProps.ts +5 -0
  208. package/src/Field/Field.tsx +90 -0
  209. package/src/Field/FieldErrorScrollTarget.tsx +11 -0
  210. package/src/Field/FieldNameContext.ts +6 -0
  211. package/src/Field/FieldSection.tsx +18 -0
  212. package/src/Field/InjectedFieldProps.ts +8 -0
  213. package/src/Field/useStandardField.ts +121 -0
  214. package/src/FieldArray/FieldArray.tsx +133 -0
  215. package/src/File/FileGroup.test.tsx +35 -0
  216. package/src/File/FileGroup.tsx +71 -0
  217. package/src/File/FileList.tsx +19 -0
  218. package/src/File/__snapshots__/FileGroup.test.tsx.snap +32 -0
  219. package/src/File/humanFileSize.ts +8 -0
  220. package/src/Form/{FocusError.js → FocusError.tsx} +10 -6
  221. package/src/Form/Form.test.tsx +14 -0
  222. package/src/Form/{Form.js → Form.tsx} +71 -31
  223. package/src/Form/FormBasedPreventNavigation.tsx +74 -0
  224. package/src/Form/ServerErrorContext.ts +17 -0
  225. package/src/Form/__snapshots__/{Form.test.js.snap → Form.test.tsx.snap} +1 -1
  226. package/src/FormActions.tsx +34 -0
  227. package/src/Group.tsx +43 -0
  228. package/src/Input/IconInputGroup.tsx +48 -0
  229. package/src/Input/InputGroup.tsx +57 -0
  230. package/src/Input/MoneyInputGroup.tsx +44 -0
  231. package/src/Input/NumberInputGroup.tsx +42 -0
  232. package/src/Input/StringInputGroup.tsx +40 -0
  233. package/src/Input/__Tests__/IconInputGroup.test.tsx +35 -0
  234. package/src/Input/__Tests__/MoneyInputGroup.test.tsx +37 -0
  235. package/src/Input/__Tests__/NumberInputGroup.test.tsx +35 -0
  236. package/src/Input/__Tests__/StringInputGroup.test.tsx +27 -0
  237. package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +29 -0
  238. package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +31 -0
  239. package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +29 -0
  240. package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +28 -0
  241. package/src/Normalization/NormalizationFunction.ts +4 -0
  242. package/src/{normalizers.js → Normalization/normalizers.ts} +5 -5
  243. package/src/Select/BooleanSelectGroup.tsx +27 -0
  244. package/src/Select/NumberSelectGroup.tsx +14 -0
  245. package/src/Select/SelectGroup.tsx +106 -0
  246. package/src/Select/SelectGroupPropsHelper.ts +4 -0
  247. package/src/Select/StringSelectGroup.tsx +14 -0
  248. package/src/Select/__tests__/BooleanSelectGroup.test.tsx +35 -0
  249. package/src/Select/__tests__/NumberSelectGroup.test.tsx +87 -0
  250. package/src/Select/__tests__/StringSelectGroup.test.tsx +89 -0
  251. package/src/Select/__tests__/__snapshots__/BooleanSelectGroup.test.tsx.snap +99 -0
  252. package/src/Select/__tests__/__snapshots__/NumberSelectGroup.test.tsx.snap +197 -0
  253. package/src/Select/__tests__/__snapshots__/StringSelectGroup.test.tsx.snap +197 -0
  254. package/src/{StandardFormActions.js → StandardFormActions.tsx} +12 -6
  255. package/src/SubmitFormButton.tsx +44 -0
  256. package/src/Validation/ValidatedApiResult.ts +8 -0
  257. package/src/Validation/ValidationError.ts +6 -0
  258. package/src/Validation/ValidationFunction.ts +4 -0
  259. package/src/{validators/validators.test.js → Validation/validators.test.tsx} +6 -4
  260. package/src/Validation/validators.ts +92 -0
  261. package/src/__Tests__/FormTestBase.tsx +63 -0
  262. package/src/__Tests__/{StandardFormActions.test.js → StandardFormActions.test.tsx} +2 -8
  263. package/src/__Tests__/{SubmitFormButton.test.js → SubmitFormButton.test.tsx} +2 -8
  264. package/src/__Tests__/__snapshots__/{StandardFormActions.test.js.snap → StandardFormActions.test.tsx.snap} +2 -2
  265. package/src/__Tests__/__snapshots__/{SubmitFormButton.test.js.snap → SubmitFormButton.test.tsx.snap} +1 -1
  266. package/src/__Tests__/index.ts +3 -0
  267. package/src/index.ts +114 -0
  268. package/src/react-app-env.d.ts +1 -0
  269. package/src/styles.scss +0 -7
  270. package/src/utils/{objectContainsNonSerializableProperty.test.js → objectContainsNonSerializableProperty.test.tsx} +0 -0
  271. package/src/utils/{objectContainsNonSerializableProperty.js → objectContainsNonSerializableProperty.ts} +4 -2
  272. package/src/utils/{objectToFormData.test.js → objectToFormData.test.tsx} +0 -0
  273. package/src/utils/{objectToFormData.js → objectToFormData.ts} +29 -13
  274. package/src/utils/typeChecks.ts +18 -0
  275. package/es/AddressInput/index.js +0 -3
  276. package/es/BoolInput/BoolInput.js +0 -10
  277. package/es/BoolInput/InlineBoolInput.js +0 -10
  278. package/es/BoolInput/boolOptions.js +0 -8
  279. package/es/BoolInput/index.js +0 -3
  280. package/es/ConfirmBaseForm/index.js +0 -2
  281. package/es/ConfirmDeleteForm/index.js +0 -2
  282. package/es/DatePickerInput/index.js +0 -2
  283. package/es/ErrorScrollTarget.js +0 -10
  284. package/es/FileInput/DefaultFileList.js +0 -36
  285. package/es/FileInput/DropzoneFileInput.js +0 -58
  286. package/es/FileInput/FileInput.js +0 -62
  287. package/es/FileInput/index.js +0 -4
  288. package/es/Form/index.js +0 -5
  289. package/es/FormGroup.js +0 -22
  290. package/es/FormGroupWrapper.js +0 -22
  291. package/es/FormInput/FormInput.js +0 -212
  292. package/es/FormInput/index.js +0 -2
  293. package/es/FormInputArray/FormInputArray.js +0 -225
  294. package/es/FormInputArray/index.js +0 -2
  295. package/es/FormSection.js +0 -11
  296. package/es/IconInput.js +0 -33
  297. package/es/InlineFormInput/InlineFormInput.js +0 -8
  298. package/es/InlineFormInput/index.js +0 -2
  299. package/es/MoneyFormattedInput/MoneyFormattedInput.js +0 -106
  300. package/es/MoneyFormattedInput/index.js +0 -2
  301. package/es/MoneyInput/InlineMoneyInput.js +0 -7
  302. package/es/MoneyInput/MoneyInput.js +0 -7
  303. package/es/MoneyInput/index.js +0 -3
  304. package/es/MoneyInput/moneyInputProps.js +0 -13
  305. package/es/NestedFormFieldContext.js +0 -4
  306. package/es/ReactSelectField/ReactSelectField.js +0 -162
  307. package/es/ReactSelectField/index.js +0 -2
  308. package/es/normalizers.js +0 -39
  309. package/es/selectors.js +0 -6
  310. package/es/useStandardFormInput.js +0 -119
  311. package/es/utils/index.js +0 -3
  312. package/es/validators/index.js +0 -2
  313. package/es/validators/validators.js +0 -94
  314. package/lib/AddressInput/index.js +0 -23
  315. package/lib/BoolInput/BoolInput.js +0 -23
  316. package/lib/BoolInput/InlineBoolInput.js +0 -23
  317. package/lib/BoolInput/boolOptions.js +0 -15
  318. package/lib/BoolInput/index.js +0 -23
  319. package/lib/ConfirmBaseForm/index.js +0 -13
  320. package/lib/ConfirmDeleteForm/index.js +0 -13
  321. package/lib/DatePickerInput/index.js +0 -13
  322. package/lib/ErrorScrollTarget.js +0 -20
  323. package/lib/FileInput/DefaultFileList.js +0 -47
  324. package/lib/FileInput/DropzoneFileInput.js +0 -75
  325. package/lib/FileInput/FileInput.js +0 -82
  326. package/lib/FileInput/index.js +0 -31
  327. package/lib/Form/index.js +0 -39
  328. package/lib/FormGroup.js +0 -33
  329. package/lib/FormGroupWrapper.js +0 -37
  330. package/lib/FormInput/FormInput.js +0 -236
  331. package/lib/FormInput/index.js +0 -13
  332. package/lib/FormInputArray/FormInputArray.js +0 -248
  333. package/lib/FormInputArray/index.js +0 -13
  334. package/lib/FormSection.js +0 -28
  335. package/lib/IconInput.js +0 -51
  336. package/lib/InlineFormInput/InlineFormInput.js +0 -20
  337. package/lib/InlineFormInput/index.js +0 -13
  338. package/lib/MoneyFormattedInput/MoneyFormattedInput.js +0 -126
  339. package/lib/MoneyFormattedInput/index.js +0 -15
  340. package/lib/MoneyInput/InlineMoneyInput.js +0 -20
  341. package/lib/MoneyInput/MoneyInput.js +0 -20
  342. package/lib/MoneyInput/index.js +0 -23
  343. package/lib/MoneyInput/moneyInputProps.js +0 -26
  344. package/lib/NestedFormFieldContext.js +0 -16
  345. package/lib/ReactSelectField/ReactSelectField.js +0 -187
  346. package/lib/ReactSelectField/index.js +0 -31
  347. package/lib/normalizers.js +0 -51
  348. package/lib/selectors.js +0 -18
  349. package/lib/useStandardFormInput.js +0 -135
  350. package/lib/utils/index.js +0 -23
  351. package/lib/validators/index.js +0 -17
  352. package/lib/validators/validators.js +0 -130
  353. package/src/AddressInput/AddressInput.js +0 -73
  354. package/src/AddressInput/__snapshots__/AddesssInput.test.js.snap +0 -207
  355. package/src/AddressInput/index.js +0 -3
  356. package/src/BoolInput/BoolInput.js +0 -7
  357. package/src/BoolInput/BoolInput.test.js +0 -23
  358. package/src/BoolInput/InlineBoolInput.js +0 -7
  359. package/src/BoolInput/__snapshots__/BoolInput.test.js.snap +0 -89
  360. package/src/BoolInput/boolOptions.js +0 -6
  361. package/src/BoolInput/index.js +0 -4
  362. package/src/ConfirmBaseForm/ConfirmBaseForm.js +0 -37
  363. package/src/ConfirmBaseForm/ConfirmBaseForm.test.js +0 -14
  364. package/src/ConfirmBaseForm/index.js +0 -2
  365. package/src/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -39
  366. package/src/ConfirmDeleteForm/index.js +0 -2
  367. package/src/DatePickerInput/DatePickerInput.js +0 -49
  368. package/src/DatePickerInput/DatePickerInput.test.js +0 -74
  369. package/src/DatePickerInput/__snapshots__/DatePickerInput.test.js.snap +0 -134
  370. package/src/DatePickerInput/date-picker-input.scss +0 -42
  371. package/src/DatePickerInput/index.js +0 -3
  372. package/src/ErrorScrollTarget.js +0 -6
  373. package/src/FileInput/DefaultFileList.js +0 -39
  374. package/src/FileInput/DropzoneFileInput.js +0 -56
  375. package/src/FileInput/DropzoneFileInput.test.js +0 -24
  376. package/src/FileInput/FileInput.js +0 -77
  377. package/src/FileInput/FileInput.test.js +0 -24
  378. package/src/FileInput/__snapshots__/DropzoneFileInput.test.js.snap +0 -57
  379. package/src/FileInput/__snapshots__/FileInput.test.js.snap +0 -58
  380. package/src/FileInput/file-input.scss +0 -58
  381. package/src/FileInput/index.js +0 -5
  382. package/src/Form/Form.test.js +0 -23
  383. package/src/Form/FormBasedPreventNavigation.js +0 -25
  384. package/src/Form/ServerErrorContext.js +0 -7
  385. package/src/Form/index.js +0 -11
  386. package/src/FormGroup.js +0 -30
  387. package/src/FormGroupWrapper.js +0 -28
  388. package/src/FormInput/FormInput.js +0 -148
  389. package/src/FormInput/FormInput.test.js +0 -66
  390. package/src/FormInput/__snapshots__/FormInput.test.js.snap +0 -323
  391. package/src/FormInput/form-input.scss +0 -9
  392. package/src/FormInput/index.js +0 -2
  393. package/src/FormInputArray/FormInputArray.js +0 -224
  394. package/src/FormInputArray/FormInputArray.test.js +0 -108
  395. package/src/FormInputArray/__snapshots__/FormInputArray.test.js.snap +0 -52
  396. package/src/FormInputArray/form-input-array.scss +0 -13
  397. package/src/FormInputArray/index.js +0 -2
  398. package/src/FormSection.js +0 -13
  399. package/src/IconInput.js +0 -31
  400. package/src/InlineFormInput/InlineFormInput.js +0 -6
  401. package/src/InlineFormInput/InlineFormInput.test.js +0 -23
  402. package/src/InlineFormInput/__snapshots__/InlineFormInput.test.js.snap +0 -26
  403. package/src/InlineFormInput/index.js +0 -3
  404. package/src/InlineFormInput/inline-form-input.scss +0 -3
  405. package/src/MoneyFormattedInput/MoneyFormattedInput.js +0 -115
  406. package/src/MoneyFormattedInput/index.js +0 -3
  407. package/src/MoneyInput/InlineMoneyInput.js +0 -7
  408. package/src/MoneyInput/MoneyInput.js +0 -7
  409. package/src/MoneyInput/MoneyInputs.test.js +0 -43
  410. package/src/MoneyInput/__snapshots__/MoneyInputs.test.js.snap +0 -81
  411. package/src/MoneyInput/index.js +0 -4
  412. package/src/MoneyInput/money-input.scss +0 -3
  413. package/src/MoneyInput/moneyInputProps.js +0 -12
  414. package/src/NestedFormFieldContext.js +0 -6
  415. package/src/ReactSelectField/ReactSelectField.js +0 -155
  416. package/src/ReactSelectField/index.js +0 -6
  417. package/src/ReactSelectField/react-select-field.scss +0 -5
  418. package/src/SubmitFormButton.js +0 -28
  419. package/src/__Tests__/FormTestBase.js +0 -14
  420. package/src/__Tests__/IconInput.test.js +0 -23
  421. package/src/__Tests__/__snapshots__/IconInput.test.js.snap +0 -38
  422. package/src/index.js +0 -70
  423. package/src/selectors.js +0 -3
  424. package/src/useStandardFormInput.js +0 -118
  425. package/src/utils/index.js +0 -3
  426. package/src/utils/typeChecks.js +0 -18
  427. package/src/validators/index.js +0 -2
  428. package/src/validators/validators.js +0 -93
@@ -1,58 +1,29 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.isFile = exports.isBlob = exports.isDate = exports.isArray = exports.isObject = exports.isBoolean = exports.isNull = exports.isUndefined = void 0;
9
-
10
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
-
12
- var isUndefined = function isUndefined(value) {
13
- return value === undefined;
14
- };
15
-
16
- exports.isUndefined = isUndefined;
17
-
18
- var isNull = function isNull(value) {
19
- return value === null;
20
- };
21
-
22
- exports.isNull = isNull;
23
-
24
- var isBoolean = function isBoolean(value) {
25
- return typeof value === 'boolean';
26
- };
27
-
28
- exports.isBoolean = isBoolean;
29
-
30
- var isObject = function isObject(value) {
31
- return value === Object(value);
32
- };
33
-
34
- exports.isObject = isObject;
35
-
36
- var isArray = function isArray(value) {
37
- return Array.isArray(value);
38
- };
39
-
40
- exports.isArray = isArray;
41
-
42
- var isDate = function isDate(value) {
43
- return value instanceof Date;
44
- };
45
-
46
- exports.isDate = isDate;
47
-
48
- var isBlob = function isBlob(value) {
49
- return value && typeof value.size === 'number' && typeof value.type === 'string' && typeof value.slice === 'function';
50
- };
51
-
52
- exports.isBlob = isBlob;
53
-
54
- var isFile = function isFile(value) {
55
- return isBlob(value) && typeof value.name === 'string' && ((0, _typeof2["default"])(value.lastModifiedDate) === 'object' || typeof value.lastModified === 'number');
56
- };
57
-
58
- exports.isFile = isFile;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFile = exports.isBlob = exports.isDate = exports.isArray = exports.isObject = exports.isBoolean = exports.isNull = exports.isUndefined = void 0;
4
+ var isUndefined = function (value) { return value === undefined; };
5
+ exports.isUndefined = isUndefined;
6
+ var isNull = function (value) { return value === null; };
7
+ exports.isNull = isNull;
8
+ var isBoolean = function (value) { return typeof value === 'boolean'; };
9
+ exports.isBoolean = isBoolean;
10
+ var isObject = function (value) { return value === Object(value); };
11
+ exports.isObject = isObject;
12
+ var isArray = function (value) { return Array.isArray(value); };
13
+ exports.isArray = isArray;
14
+ var isDate = function (value) { return value instanceof Date; };
15
+ exports.isDate = isDate;
16
+ var isBlob = function (value) {
17
+ return value &&
18
+ typeof value.size === 'number' &&
19
+ typeof value.type === 'string' &&
20
+ typeof value.slice === 'function';
21
+ };
22
+ exports.isBlob = isBlob;
23
+ var isFile = function (value) {
24
+ return (0, exports.isBlob)(value) &&
25
+ typeof value.name === 'string' &&
26
+ (typeof value.lastModifiedDate === 'object' ||
27
+ typeof value.lastModified === 'number');
28
+ };
29
+ exports.isFile = isFile;
package/package.json CHANGED
@@ -1,101 +1,106 @@
1
- {
2
- "name": "envoc-form",
3
- "version": "3.3.0",
4
- "description": "Envoc form components",
5
- "keywords": [
6
- "react-component",
7
- "react",
8
- "forms",
9
- "components",
10
- "envoc"
11
- ],
12
- "homepage": "",
13
- "repository": "",
14
- "license": "MIT",
15
- "author": "Envoc Developers",
16
- "sideEffects": false,
17
- "main": "lib/index.js",
18
- "module": "es/index.js",
19
- "files": [
20
- "dist",
21
- "src",
22
- "lib",
23
- "es"
24
- ],
25
- "dependencies": {
26
- "axios": "^0.21.1",
27
- "classnames": "^2.3.1",
28
- "date-fns": "^2.22.1",
29
- "envoc-request": "^3.3.0",
30
- "lodash": "^4.17.21",
31
- "lru-cache": "^6.0.0",
32
- "prop-types": "^15.7.2",
33
- "react-date-picker": "^8.2.0",
34
- "react-dropzone": "^11.3.4",
35
- "react-router": "^6.2.1",
36
- "react-select": "^3.1.1",
37
- "react-textarea-autosize": "^8.3.3",
38
- "react-toastify": "^7.0.4",
39
- "reactstrap": "^8.9.0",
40
- "smoothscroll-polyfill": "^0.4.4",
41
- "uuid": "^8.3.2",
42
- "@fortawesome/react-fontawesome": "~0.1.16",
43
- "@fortawesome/free-solid-svg-icons": "~5.15.4",
44
- "@fortawesome/fontawesome-svg-core": "~1.2.36"
45
- },
46
- "devDependencies": {
47
- "@babel/cli": "^7.14.5",
48
- "@babel/core": "^7.14.6",
49
- "@babel/plugin-transform-runtime": "^7.14.5",
50
- "@babel/preset-env": "^7.14.7",
51
- "@babel/preset-react": "^7.14.5",
52
- "@testing-library/jest-dom": "^5.14.1",
53
- "@testing-library/react": "^11.2.5",
54
- "@testing-library/user-event": "^12.7.1",
55
- "babel-loader": "^8.2.2",
56
- "bootstrap": "^4.6.0",
57
- "clean-webpack-plugin": "^3.0.0",
58
- "cross-env": "7.0.3",
59
- "css-loader": "^5.0.2",
60
- "html-webpack-plugin": "^5.3.2",
61
- "identity-obj-proxy": "^3.0.0",
62
- "jest-junit": "~12.2.0",
63
- "react": "^17.0.1",
64
- "react-dom": "^17.0.1",
65
- "react-router-dom": "^6.2.1",
66
- "react-scripts": "^4.0.3",
67
- "rimraf": "~3.0.2",
68
- "sass": "^1.35.2",
69
- "sass-loader": "^11.0.1",
70
- "style-loader": "^2.0.0",
71
- "webpack": "^5.45.0",
72
- "webpack-cli": "^4.7.2",
73
- "webpack-dev-server": "^3.11.2",
74
- "typedoc-plugin-markdown": "~3.10.3",
75
- "typedoc": "~0.21.4"
76
- },
77
- "peerDependencies": {
78
- "@babel/runtime": "^7.14.6",
79
- "formik": "^2.2.9",
80
- "react": ">=16.8.0",
81
- "react-dom": ">=16.8.0",
82
- "react-router-dom": "^6.2.1"
83
- },
84
- "jest": {
85
- "transformIgnorePatterns": [
86
- "^.+\\.module\\.(css|sass|scss)$"
87
- ]
88
- },
89
- "scripts": {
90
- "build": "yarn verify-imports && yarn build:esm && yarn build:cjs && yarn build:css",
91
- "rebuild": "rimraf ./{dist,es,lib} && yarn build",
92
- "build:esm": "cross-env BABEL_ENV=esm-dir babel src --out-dir es --ignore \"src/**/*.spec.js\",\"src/**/*.test.js\"",
93
- "build:css": "sass src/styles.scss dist/css/envoc-form-styles.css",
94
- "build:cjs": "babel src --out-dir lib --ignore \"src/**/*.spec.js\",\"src/**/*.test.js\"",
95
- "verify-imports": "node ../../scripts/check-for-scss-imports.js envoc-form",
96
- "start": "webpack serve --config ./webpack.demo.config.js",
97
- "test": "cross-env SKIP_PREFLIGHT_CHECK=true react-scripts test --watchAll=false",
98
- "coverage": "yarn test --reporters=jest-junit --coverage --coverageReporters=cobertura"
99
- },
100
- "readme": "# envoc-form\r\n\r\n[![npm package][npm-badge]][npm]\r\n\r\nBase form package for envoc projects.\r\n\r\n[npm-badge]: https://img.shields.io/npm/v/envoc-form.png?style=flat\r\n[npm]: https://www.npmjs.com/package/envoc-form"
101
- }
1
+ {
2
+ "name": "envoc-form",
3
+ "version": "4.0.1-0",
4
+ "description": "Envoc form components",
5
+ "keywords": [
6
+ "react-component",
7
+ "react",
8
+ "forms",
9
+ "components",
10
+ "envoc"
11
+ ],
12
+ "homepage": "",
13
+ "repository": "",
14
+ "license": "MIT",
15
+ "author": "Envoc Developers",
16
+ "sideEffects": false,
17
+ "main": "lib/index.js",
18
+ "module": "es/index.js",
19
+ "files": [
20
+ "dist",
21
+ "src",
22
+ "lib",
23
+ "es"
24
+ ],
25
+ "scripts": {
26
+ "build": "yarn verify-imports && yarn build:esm && yarn build:cjs && yarn build:css",
27
+ "rebuild": "rimraf ./{dist,es,lib} && yarn build",
28
+ "build:esm": "cross-env BABEL_ENV=esm-dir tsc -p tsconfig.esm.json",
29
+ "build:css": "sass src/styles.scss dist/css/envoc-form-styles.css",
30
+ "build:cjs": "tsc -p tsconfig.cjs.json",
31
+ "verify-imports": "node ../../scripts/check-for-scss-imports.js envoc-form",
32
+ "start": "webpack serve --config ./webpack.demo.config.js",
33
+ "test": "cross-env SKIP_PREFLIGHT_CHECK=true react-scripts test --watchAll=false",
34
+ "coverage": "yarn test --verbose --reporters=default --reporters=jest-junit --coverage --coverageReporters=cobertura"
35
+ },
36
+ "dependencies": {
37
+ "axios": "^0.21.1",
38
+ "classnames": "^2.3.1",
39
+ "date-fns": "^2.22.1",
40
+ "envoc-request": "^4.0.1-0",
41
+ "lru-cache": "^6.0.0",
42
+ "prop-types": "^15.7.2",
43
+ "react-date-picker": "^8.2.0",
44
+ "react-dropzone": "^11.3.4",
45
+ "react-router": "^6.2.1",
46
+ "react-select": "^5.2.2",
47
+ "react-textarea-autosize": "^8.3.3",
48
+ "react-toastify": "^7.0.4",
49
+ "reactstrap": "^8.9.0",
50
+ "history": "^5.2.0",
51
+ "smoothscroll-polyfill": "^0.4.4",
52
+ "uuid": "^8.3.2",
53
+ "@fortawesome/react-fontawesome": "~0.1.16",
54
+ "@fortawesome/free-solid-svg-icons": "~5.15.4",
55
+ "@fortawesome/fontawesome-svg-core": "~1.2.36"
56
+ },
57
+ "devDependencies": {
58
+ "@babel/cli": "^7.14.5",
59
+ "@babel/core": "^7.14.6",
60
+ "@babel/plugin-transform-runtime": "^7.14.5",
61
+ "@babel/preset-env": "^7.14.7",
62
+ "@babel/preset-react": "^7.14.5",
63
+ "@testing-library/jest-dom": "^5.14.1",
64
+ "@testing-library/react": "^11.2.5",
65
+ "@testing-library/user-event": "^12.7.1",
66
+ "@types/jest": "^26.0.24",
67
+ "@types/react": "^16.9.56",
68
+ "@types/smoothscroll-polyfill": "^0.3.1",
69
+ "@types/uuid": "^8.3.2",
70
+ "babel-loader": "^8.2.2",
71
+ "bootstrap": "^4.6.0",
72
+ "clean-webpack-plugin": "^3.0.0",
73
+ "cross-env": "7.0.3",
74
+ "css-loader": "^5.0.2",
75
+ "html-webpack-plugin": "^5.3.2",
76
+ "identity-obj-proxy": "^3.0.0",
77
+ "jest-junit": "~12.2.0",
78
+ "react": "^17.0.1",
79
+ "react-dom": "^17.0.1",
80
+ "react-router-dom": "^6.2.1",
81
+ "react-scripts": "^4.0.3",
82
+ "rimraf": "~3.0.2",
83
+ "sass": "^1.35.2",
84
+ "sass-loader": "^11.0.1",
85
+ "style-loader": "^2.0.0",
86
+ "webpack": "^5.45.0",
87
+ "webpack-cli": "^4.7.2",
88
+ "webpack-dev-server": "^3.11.2",
89
+ "ts-loader": "^9.2.8",
90
+ "typescript": "^4.6.3",
91
+ "typedoc-plugin-markdown": "~3.10.3",
92
+ "typedoc": "~0.21.4"
93
+ },
94
+ "peerDependencies": {
95
+ "@babel/runtime": "^7.14.6",
96
+ "formik": "^2.2.9",
97
+ "react": ">=16.8.0",
98
+ "react-dom": ">=16.8.0",
99
+ "react-router-dom": "^6.2.1"
100
+ },
101
+ "jest": {
102
+ "transformIgnorePatterns": [
103
+ "^.+\\.module\\.(css|sass|scss)$"
104
+ ]
105
+ }
106
+ }
@@ -1,13 +1,15 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import { FormTestBase } from '../__Tests__';
4
3
  import AddressInput from './AddressInput';
4
+ import FormTestBase from '../__Tests__/FormTestBase';
5
5
 
6
6
  describe('AddressInput', () => {
7
7
  it('renders without crashing', () => {
8
8
  render(
9
9
  <FormTestBase>
10
- <AddressInput />
10
+ {({ Field }) => (
11
+ <AddressInput fieldBuilder={{ Field }} name="normalAddressInput" />
12
+ )}
11
13
  </FormTestBase>
12
14
  );
13
15
  });
@@ -15,7 +17,9 @@ describe('AddressInput', () => {
15
17
  it('has matching snapshot', () => {
16
18
  const renderResult = render(
17
19
  <FormTestBase>
18
- <AddressInput />
20
+ {({ Field }) => (
21
+ <AddressInput fieldBuilder={{ Field }} name="normalAddressInput" />
22
+ )}
19
23
  </FormTestBase>
20
24
  );
21
25
  expect(renderResult.asFragment()).toMatchSnapshot();
@@ -0,0 +1,72 @@
1
+ import UsStates from './UsStates';
2
+ import { SingleStringSelectGroup, StringInputGroup } from '../';
3
+ import FieldSection from '../Field/FieldSection';
4
+ import { FormBuilderProp } from '../Form/Form';
5
+ import { zipCode as zipCodeNormalizer } from '../Normalization/normalizers';
6
+ import {
7
+ required,
8
+ zipCode as zipCodeValidator,
9
+ } from '../Validation/validators';
10
+
11
+ // TODO: find a permanent home for these interfaces
12
+ // TODO: but also, maybe they are comfortable here?
13
+ export interface AddressInputProps {
14
+ fieldBuilder: Pick<FormBuilderProp<AddressDto>, 'Field'>;
15
+ name: string;
16
+ }
17
+
18
+ interface AddressDto {
19
+ address1?: string;
20
+ address2?: string;
21
+ zipCode?: string;
22
+ city?: string;
23
+ state?: string;
24
+ }
25
+
26
+ export default function AddressInput({
27
+ fieldBuilder: { Field },
28
+ name,
29
+ }: AddressInputProps) {
30
+ return (
31
+ <>
32
+ <FieldSection name={name}>
33
+ <Field
34
+ name="address1"
35
+ placeholder="Address, Line 1"
36
+ label="Address 1"
37
+ Component={StringInputGroup}
38
+ validate={required}
39
+ />
40
+ <Field
41
+ name="address2"
42
+ placeholder="Address, Line 2"
43
+ label="Address 2"
44
+ Component={StringInputGroup}
45
+ />
46
+ <Field
47
+ name="city"
48
+ placeholder="City"
49
+ label="City"
50
+ Component={StringInputGroup}
51
+ validate={required}
52
+ />
53
+ <Field
54
+ name="state"
55
+ placeholder="State"
56
+ label="State"
57
+ Component={SingleStringSelectGroup}
58
+ options={UsStates}
59
+ validate={required}
60
+ />
61
+ <Field
62
+ name="zipCode"
63
+ placeholder="Zip"
64
+ label="Zip"
65
+ Component={StringInputGroup}
66
+ normalize={zipCodeNormalizer}
67
+ validate={[required, zipCodeValidator]}
68
+ />
69
+ </FieldSection>
70
+ </>
71
+ );
72
+ }
@@ -1,4 +1,6 @@
1
- const states = [
1
+ import { SelectOption } from '../Select/SelectGroup';
2
+
3
+ const states: SelectOption<string>[] = [
2
4
  { label: 'Alabama', value: 'AL' },
3
5
  { label: 'Alaska', value: 'AK' },
4
6
  { label: 'Arizona', value: 'AZ' },
@@ -0,0 +1,175 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`AddressInput has matching snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <form
6
+ action="#"
7
+ >
8
+ <div
9
+ class="string-group input-group group"
10
+ >
11
+ <div
12
+ id="normaladdressinput.address1-error-scroll-target"
13
+ style="display: none;"
14
+ />
15
+ <label
16
+ for="normalAddressInput.address1"
17
+ >
18
+ Address 1
19
+ </label>
20
+ <input
21
+ class="string-group input-group"
22
+ name="normalAddressInput.address1"
23
+ placeholder="Address, Line 1"
24
+ value=""
25
+ />
26
+ </div>
27
+ <div
28
+ class="string-group input-group group"
29
+ >
30
+ <div
31
+ id="normaladdressinput.address2-error-scroll-target"
32
+ style="display: none;"
33
+ />
34
+ <label
35
+ for="normalAddressInput.address2"
36
+ >
37
+ Address 2
38
+ </label>
39
+ <input
40
+ class="string-group input-group"
41
+ name="normalAddressInput.address2"
42
+ placeholder="Address, Line 2"
43
+ value=""
44
+ />
45
+ </div>
46
+ <div
47
+ class="string-group input-group group"
48
+ >
49
+ <div
50
+ id="normaladdressinput.city-error-scroll-target"
51
+ style="display: none;"
52
+ />
53
+ <label
54
+ for="normalAddressInput.city"
55
+ >
56
+ City
57
+ </label>
58
+ <input
59
+ class="string-group input-group"
60
+ name="normalAddressInput.city"
61
+ placeholder="City"
62
+ value=""
63
+ />
64
+ </div>
65
+ <div
66
+ class="select-group group"
67
+ >
68
+ <div
69
+ id="normaladdressinput.state-error-scroll-target"
70
+ style="display: none;"
71
+ />
72
+ <label
73
+ for="normalAddressInput.state"
74
+ >
75
+ State
76
+ </label>
77
+ <div
78
+ class="select-group css-b62m3t-container"
79
+ >
80
+ <span
81
+ class="css-1f43avz-a11yText-A11yText"
82
+ id="react-select-3-live-region"
83
+ />
84
+ <span
85
+ aria-atomic="false"
86
+ aria-live="polite"
87
+ aria-relevant="additions text"
88
+ class="css-1f43avz-a11yText-A11yText"
89
+ />
90
+ <div
91
+ class="react-select__control css-1s2u09g-control"
92
+ >
93
+ <div
94
+ class="react-select__value-container css-dlobye-Component"
95
+ >
96
+ <div
97
+ class="react-select__placeholder css-14el2xx-placeholder"
98
+ id="react-select-3-placeholder"
99
+ >
100
+ State
101
+ </div>
102
+ <div
103
+ class="react-select__input-container css-1u4kn00-Component"
104
+ data-value=""
105
+ >
106
+ <input
107
+ aria-autocomplete="list"
108
+ aria-controls="react-select-3-listbox"
109
+ aria-describedby="react-select-3-placeholder"
110
+ aria-expanded="false"
111
+ aria-haspopup="true"
112
+ aria-owns="react-select-3-listbox"
113
+ autocapitalize="none"
114
+ autocomplete="off"
115
+ autocorrect="off"
116
+ class="react-select__input"
117
+ id="normalAddressInput.state"
118
+ role="combobox"
119
+ spellcheck="false"
120
+ style="opacity: 1; width: 100%; grid-area: 1 / 2; min-width: 2px; border: 0px; margin: 0px; outline: 0; padding: 0px;"
121
+ tabindex="0"
122
+ type="text"
123
+ value=""
124
+ />
125
+ </div>
126
+ </div>
127
+ <div
128
+ class="react-select__indicators css-ny0e4k-Component"
129
+ >
130
+ <span
131
+ class="react-select__indicator-separator css-1okebmr-indicatorSeparator"
132
+ />
133
+ <div
134
+ aria-hidden="true"
135
+ class="react-select__indicator react-select__dropdown-indicator css-tlfecz-indicatorContainer"
136
+ >
137
+ <svg
138
+ aria-hidden="true"
139
+ class="css-tj5bde-Svg"
140
+ focusable="false"
141
+ height="20"
142
+ viewBox="0 0 20 20"
143
+ width="20"
144
+ >
145
+ <path
146
+ 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"
147
+ />
148
+ </svg>
149
+ </div>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ <div
155
+ class="string-group input-group group"
156
+ >
157
+ <div
158
+ id="normaladdressinput.zipcode-error-scroll-target"
159
+ style="display: none;"
160
+ />
161
+ <label
162
+ for="normalAddressInput.zipCode"
163
+ >
164
+ Zip
165
+ </label>
166
+ <input
167
+ class="string-group input-group"
168
+ name="normalAddressInput.zipCode"
169
+ placeholder="Zip"
170
+ value=""
171
+ />
172
+ </div>
173
+ </form>
174
+ </DocumentFragment>
175
+ `;
@@ -0,0 +1,24 @@
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;
@@ -0,0 +1,50 @@
1
+ import React, { MouseEventHandler } from 'react';
2
+ import classNames from 'classnames';
3
+ import { useAxiosRequest, useAxiosRequestProps } from 'envoc-request';
4
+
5
+ // TODO: change the style prop type to Tailwind type (does this exist before Tailwind 3.1 ???), or
6
+ // should this just be type 'string'
7
+ export interface ConfirmBaseFormProps {
8
+ handleCancel?: MouseEventHandler<HTMLButtonElement>;
9
+ request: useAxiosRequestProps;
10
+ style?: React.CSSProperties;
11
+ title?: string;
12
+ children?: React.ReactNode;
13
+ }
14
+
15
+ // TODO: ask about how we should use 'children'
16
+ export default function ConfirmBaseForm({
17
+ handleCancel,
18
+ request,
19
+ style,
20
+ title,
21
+ children,
22
+ ...props
23
+ }: ConfirmBaseFormProps) {
24
+ const webRequest = useAxiosRequest(
25
+ Object.assign({}, request, { autoExecute: false })
26
+ );
27
+ const onCancel = handleCancel ?? goBack;
28
+
29
+ return (
30
+ <div style={{ textAlign: 'center', ...style }} {...props}>
31
+ <h3>{title}</h3>
32
+ {children}
33
+ <button
34
+ className={classNames('confirm-base-form-yes-button')}
35
+ type="button"
36
+ onClick={webRequest.submitRequest}>
37
+ Yes
38
+ </button>
39
+ <button
40
+ className={classNames('confirm-base-form-cancel-button')}
41
+ type="button"
42
+ onClick={onCancel}>
43
+ Cancel
44
+ </button>
45
+ </div>
46
+ );
47
+ function goBack() {
48
+ window.history.back();
49
+ }
50
+ }