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,323 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`FormInput has matching checkbox snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- >
8
- <div
9
- class="custom-checkbox custom-control"
10
- >
11
- <input
12
- class="custom-control-input"
13
- id="test"
14
- name="test"
15
- type="checkbox"
16
- value=""
17
- />
18
- <label
19
- class="custom-control-label"
20
- for="test"
21
- />
22
- </div>
23
- </form>
24
- </DocumentFragment>
25
- `;
26
-
27
- exports[`FormInput has matching datepicker snapshot 1`] = `
28
- <DocumentFragment>
29
- <form
30
- action="#"
31
- >
32
- <div
33
- class="form-group"
34
- >
35
- <div
36
- id="test-error-scroll-target"
37
- style="display: none;"
38
- />
39
- <div
40
- class="react-date-picker react-date-picker--closed react-date-picker--enabled form-control"
41
- >
42
- <div
43
- class="react-date-picker__wrapper"
44
- >
45
- <div
46
- class="react-date-picker__inputGroup"
47
- >
48
- <input
49
- max="2021-09-23"
50
- min="2020-09-23"
51
- name="test"
52
- style="visibility: hidden; position: absolute; z-index: -999;"
53
- type="date"
54
- value=""
55
- />
56
- <input
57
- autocomplete="off"
58
- class="react-date-picker__inputGroup__input react-date-picker__inputGroup__month"
59
- data-input="true"
60
- inputmode="numeric"
61
- max="12"
62
- min="1"
63
- name="month"
64
- placeholder="--"
65
- type="number"
66
- value=""
67
- />
68
- <span
69
- class="react-date-picker__inputGroup__divider"
70
- >
71
- /
72
- </span>
73
- <input
74
- autocomplete="off"
75
- class="react-date-picker__inputGroup__input react-date-picker__inputGroup__day"
76
- data-input="true"
77
- inputmode="numeric"
78
- max="31"
79
- min="1"
80
- name="day"
81
- placeholder="--"
82
- type="number"
83
- value=""
84
- />
85
- <span
86
- class="react-date-picker__inputGroup__divider"
87
- >
88
- /
89
- </span>
90
- <input
91
- autocomplete="off"
92
- class="react-date-picker__inputGroup__input react-date-picker__inputGroup__year"
93
- data-input="true"
94
- inputmode="numeric"
95
- max="2021"
96
- min="2020"
97
- name="year"
98
- placeholder="----"
99
- step="1"
100
- type="number"
101
- value=""
102
- />
103
- </div>
104
- <button
105
- class="react-date-picker__clear-button react-date-picker__button"
106
- type="button"
107
- >
108
- <svg
109
- class="react-date-picker__clear-button__icon react-date-picker__button__icon"
110
- height="19"
111
- stroke="black"
112
- stroke-width="2"
113
- viewBox="0 0 19 19"
114
- width="19"
115
- xmlns="http://www.w3.org/2000/svg"
116
- >
117
- <line
118
- x1="4"
119
- x2="15"
120
- y1="4"
121
- y2="15"
122
- />
123
- <line
124
- x1="15"
125
- x2="4"
126
- y1="4"
127
- y2="15"
128
- />
129
- </svg>
130
- </button>
131
- <button
132
- class="react-date-picker__calendar-button react-date-picker__button"
133
- type="button"
134
- >
135
- <svg
136
- class="react-date-picker__calendar-button__icon react-date-picker__button__icon"
137
- height="19"
138
- stroke="black"
139
- stroke-width="2"
140
- viewBox="0 0 19 19"
141
- width="19"
142
- xmlns="http://www.w3.org/2000/svg"
143
- >
144
- <rect
145
- fill="none"
146
- height="15"
147
- width="15"
148
- x="2"
149
- y="2"
150
- />
151
- <line
152
- x1="6"
153
- x2="6"
154
- y1="0"
155
- y2="4"
156
- />
157
- <line
158
- x1="13"
159
- x2="13"
160
- y1="0"
161
- y2="4"
162
- />
163
- </svg>
164
- </button>
165
- </div>
166
- </div>
167
- </div>
168
- </form>
169
- </DocumentFragment>
170
- `;
171
-
172
- exports[`FormInput has matching file input snapshot 1`] = `
173
- <DocumentFragment>
174
- <form
175
- action="#"
176
- >
177
- <div
178
- class="form-group"
179
- >
180
- <div
181
- id="test-error-scroll-target"
182
- style="display: none;"
183
- />
184
- <div
185
- class="custom-file file-input "
186
- >
187
- <div>
188
- <input
189
- class="custom-file-input"
190
- id="test"
191
- meta="[object Object]"
192
- name="test"
193
- type="file"
194
- />
195
- </div>
196
- <label
197
- class="custom-file-label"
198
- >
199
- <div>
200
- <span>
201
- Choose A File...
202
- </span>
203
- </div>
204
- </label>
205
- </div>
206
- <ul
207
- class="list-group"
208
- />
209
- </div>
210
- </form>
211
- </DocumentFragment>
212
- `;
213
-
214
- exports[`FormInput has matching select snapshot 1`] = `
215
- <DocumentFragment>
216
- <form
217
- action="#"
218
- >
219
- <div
220
- class="form-group"
221
- >
222
- <div
223
- id="test-error-scroll-target"
224
- style="display: none;"
225
- />
226
- <div
227
- class="react-select-input css-2b097c-container"
228
- id="test"
229
- >
230
- <div
231
- class=" css-150ye8w-control"
232
- >
233
- <div
234
- class=" css-lbak6p-Component"
235
- >
236
- <div
237
- class=" css-1vk4ta-placeholder"
238
- >
239
- Select...
240
- </div>
241
- <div
242
- class="css-lp83hw-Component"
243
- >
244
- <div
245
- class=""
246
- style="display: inline-block;"
247
- >
248
- <input
249
- aria-autocomplete="list"
250
- autocapitalize="none"
251
- autocomplete="off"
252
- autocorrect="off"
253
- id="react-select-2-input"
254
- spellcheck="false"
255
- style="box-sizing: content-box; width: 2px; border: 0px; opacity: 1; outline: 0; padding: 0px;"
256
- tabindex="0"
257
- type="text"
258
- value=""
259
- />
260
- <div
261
- style="position: absolute; top: 0px; left: 0px; visibility: hidden; height: 0px; overflow: scroll; white-space: pre; font-family: -webkit-small-control; letter-spacing: normal; text-transform: none;"
262
- />
263
- </div>
264
- </div>
265
- </div>
266
- <div
267
- class=" css-ny0e4k-Component"
268
- >
269
- <span
270
- class=" css-1sl80az-indicatorSeparator"
271
- />
272
- <div
273
- aria-hidden="true"
274
- class=" css-augegj-indicatorContainer"
275
- >
276
- <svg
277
- aria-hidden="true"
278
- class="css-7ezgaa-Component"
279
- focusable="false"
280
- height="20"
281
- viewBox="0 0 20 20"
282
- width="20"
283
- >
284
- <path
285
- 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"
286
- />
287
- </svg>
288
- </div>
289
- </div>
290
- </div>
291
- <input
292
- name="test"
293
- type="hidden"
294
- value=""
295
- />
296
- </div>
297
- </div>
298
- </form>
299
- </DocumentFragment>
300
- `;
301
-
302
- exports[`FormInput has matching textarea snapshot 1`] = `
303
- <DocumentFragment>
304
- <form
305
- action="#"
306
- >
307
- <div
308
- class="form-group"
309
- >
310
- <div
311
- id="test-error-scroll-target"
312
- style="display: none;"
313
- />
314
- <textarea
315
- class="form-control"
316
- id="test"
317
- name="test"
318
- type="textarea"
319
- />
320
- </div>
321
- </form>
322
- </DocumentFragment>
323
- `;
@@ -1,9 +0,0 @@
1
- .invalid-feedback {
2
- display: block;
3
- }
4
-
5
- .form-group {
6
- input[disabled] {
7
- cursor: not-allowed;
8
- }
9
- }
@@ -1,2 +0,0 @@
1
- import FormInput from './FormInput';
2
- export default FormInput;
@@ -1,224 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import { v4 as uuid } from 'uuid';
3
- import classnames from 'classnames';
4
- import { Col, Card, Button, CardBody, Row, Alert } from 'reactstrap';
5
- import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'
6
- import {faPlus, faTrash} from '@fortawesome/free-solid-svg-icons'
7
- import PropTypes from 'prop-types';
8
- import useStandardFormInput from '../useStandardFormInput';
9
- import NestedFormFieldContext from '../NestedFormFieldContext';
10
- import classNames from 'classnames';
11
-
12
- export default function FormInputArray({
13
- id,
14
- name,
15
- label,
16
- newItem,
17
- component: Component,
18
- prepend: Prepend,
19
- disabled,
20
- validate,
21
- ...props
22
- }) {
23
- const [inputProps, meta] = useStandardFormInput({
24
- id,
25
- name,
26
- validate,
27
- disabled,
28
- ...props,
29
- });
30
- const inputPropsRef = useRef();
31
- const [hasChangedLength, setHasChangedLength] = useState(false);
32
- inputPropsRef.current = inputProps;
33
- const values = inputProps.value || [];
34
- const length = values.length;
35
-
36
- useEffect(() => {
37
- return () => {
38
- setHasChangedLength(true);
39
- };
40
- }, [length, setHasChangedLength]);
41
-
42
- useEffect(() => {
43
- if (!hasChangedLength) {
44
- return;
45
- }
46
- inputPropsRef.current.onBlur();
47
- }, [length, hasChangedLength]);
48
-
49
- return (
50
- <Card className="field-array-card">
51
- <CardActionHeader>
52
- <CardActionHeader.Title>{label}</CardActionHeader.Title>
53
- <CardActionHeader.Actions>
54
- {!disabled && (
55
- <Button
56
- color="link"
57
- onClick={addItem}
58
- title="Add an additional item"
59
- className="add-array-item">
60
- <FontAwesomeIcon icon={faPlus} /> Add New
61
- </Button>
62
- )}
63
- </CardActionHeader.Actions>
64
- </CardActionHeader>
65
- <CardBody>
66
- {/* See: https://jaredpalmer.com/formik/docs/api/fieldarray#fieldarray-validation-gotchas */}
67
- {meta.error && typeof meta.error === 'string' && (
68
- <Row>
69
- <Col>
70
- <Alert className="field-array-alert" color="danger">
71
- {meta.error}
72
- </Alert>
73
- </Col>
74
- </Row>
75
- )}
76
- {Prepend && values.filter((x) => !x.isDeleted).length > 0 && (
77
- <Row className={classnames('input-array-header')}>
78
- <Prepend />
79
- {!disabled && <div className="remove-array-item"></div>}
80
- </Row>
81
- )}
82
- {values.map((value, index) => {
83
- const itemName = `${inputProps.name}[${index}]`;
84
- return (
85
- <Row
86
- key={
87
- (value && value['form-input-array-key']) ||
88
- (value && value['id']) ||
89
- itemName
90
- }
91
- className={classnames('field-array-item', {
92
- removed: value.isDeleted,
93
- })}
94
- role="listitem">
95
- <NestedFormFieldContext.Provider value={itemName}>
96
- <div className="component">
97
- <Component
98
- value={value}
99
- name={itemName}
100
- disabled={disabled}
101
- {...props}
102
- />
103
- </div>
104
- </NestedFormFieldContext.Provider>
105
- {!disabled && (
106
- <div className="remove-array-item">
107
- <Button
108
- color="link"
109
- onClick={() => removeItem(index)}
110
- title="Remove Item">
111
- <FontAwesomeIcon icon={faTrash} />
112
- </Button>
113
- </div>
114
- )}
115
- </Row>
116
- );
117
- })}
118
- </CardBody>
119
- </Card>
120
- );
121
-
122
- function addItem() {
123
- if (disabled) {
124
- return;
125
- }
126
- const item = Object.assign({}, newItem, { 'form-input-array-key': uuid() });
127
- const mapped = [...values, item];
128
- inputProps.onChange(mapped);
129
- }
130
-
131
- function removeItem(index) {
132
- if (disabled) {
133
- return;
134
- }
135
- const itemToRemove = values[index];
136
- // assumes anything from the server has an 'id' value sent
137
- if (!itemToRemove.id) {
138
- inputProps.onChange(values.filter((x) => x !== itemToRemove));
139
- return;
140
- }
141
- const mapped = values.map((x) =>
142
- x !== itemToRemove ? x : Object.assign({}, x, { isDeleted: true })
143
- );
144
- inputProps.onChange(mapped);
145
- }
146
- }
147
-
148
- FormInputArray.Header = ({ className, ...props }) => {
149
- return (
150
- <FormInputArray.Column
151
- className={classnames('mb-2', className)}
152
- {...props}
153
- />
154
- );
155
- };
156
-
157
- FormInputArray.Column = ({ className, children, ...props }) => {
158
- return (
159
- <Col className={classnames('d-flex', className)} {...props}>
160
- {children}
161
- </Col>
162
- );
163
- };
164
-
165
- FormInputArray.propTypes = {
166
- name: PropTypes.string.isRequired,
167
- label: PropTypes.string.isRequired,
168
-
169
- /**
170
- * The component to use for each element of the array
171
- **/
172
- component: PropTypes.func.isRequired,
173
-
174
- disabled: PropTypes.bool,
175
-
176
- /**
177
- * When 'Add Item' is used this object is passed as the default (so you can, as an example, give a default)
178
- **/
179
- newItem: PropTypes.object,
180
-
181
- /**
182
- * Affixes a 'header' above all rows so you can have a grid-like display
183
- **/
184
- prepend: PropTypes.func,
185
-
186
- /**
187
- * standard validator, BUT, will be passed the whole array to validate
188
- **/
189
- validate: PropTypes.oneOfType([
190
- PropTypes.arrayOf(PropTypes.func),
191
- PropTypes.func,
192
- ]),
193
- };
194
-
195
- function CardActionHeader({ children, className, ...props }) {
196
- return (
197
- <div
198
- className={classnames(
199
- 'card-header card-action-header d-flex align-items-baseline',
200
- className
201
- )}
202
- {...props}>
203
- {children}
204
- </div>
205
- );
206
- }
207
-
208
- CardActionHeader.Title = function Title({ children, className, ...props }) {
209
- return (
210
- <strong className={classnames('mr-auto', className)} {...props}>
211
- {children}
212
- </strong>
213
- );
214
- };
215
-
216
- CardActionHeader.Actions = function Actions({ children, className, ...props }) {
217
- return (
218
- <div
219
- className={classnames('card-action-header-actions', className)}
220
- {...props}>
221
- {children}
222
- </div>
223
- );
224
- };
@@ -1,108 +0,0 @@
1
- import React from 'react';
2
- import { render, screen, waitFor, within } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
- import { FormTestBase } from '../__Tests__';
5
- import FormInput from '../FormInput';
6
- import FormInputArray from './FormInputArray';
7
-
8
- describe('FormInputArray', () => {
9
- it('renders without crashing', () => {
10
- render(
11
- <FormTestBase>
12
- <FormInputArray
13
- label="Names"
14
- name="things"
15
- component={FirstLastNameInput}
16
- />
17
- </FormTestBase>
18
- );
19
- });
20
-
21
- it('has matching snapshot', () => {
22
- const renderResult = render(
23
- <FormTestBase>
24
- <FormInputArray
25
- label="Names"
26
- name="things"
27
- component={FirstLastNameInput}
28
- />
29
- </FormTestBase>
30
- );
31
- expect(renderResult.asFragment()).toMatchSnapshot();
32
- });
33
-
34
- it('renders a simple two input array', async () => {
35
- render(
36
- <FormTestBase>
37
- <FormInputArray
38
- label="Names"
39
- name="things"
40
- component={FirstLastNameInput}
41
- />
42
- </FormTestBase>
43
- );
44
- const addButton = screen.getByText('Add New');
45
- userEvent.click(addButton);
46
- userEvent.click(addButton);
47
- const firstNameElements = await screen.findAllByLabelText('First Name');
48
- expect(firstNameElements).toHaveLength(2);
49
- });
50
-
51
- it('adds "removed" class to deleted items specified in initialValues', async () => {
52
- const initialValues = {
53
- things: [
54
- {
55
- id: 1,
56
- firstName: 'John',
57
- lastName: 'Doe',
58
- },
59
- ],
60
- };
61
-
62
- render(
63
- <FormTestBase initialValues={initialValues}>
64
- <FormInputArray
65
- label="Names"
66
- name="things"
67
- component={FirstLastNameInput}
68
- />
69
- </FormTestBase>
70
- );
71
-
72
- const item = screen.getByRole(/listitem/i);
73
- const deleteButton = within(item).getByTitle(/remove item/i);
74
- expect(item).not.toHaveClass('removed');
75
- userEvent.click(deleteButton);
76
- expect(item).toHaveClass('removed');
77
- });
78
-
79
- it('removes deleted items not specified in initialValues', async () => {
80
- render(
81
- <FormTestBase>
82
- <FormInputArray
83
- label="Names"
84
- name="things"
85
- component={FirstLastNameInput}
86
- />
87
- </FormTestBase>
88
- );
89
-
90
- const addButton = screen.getByText(/add new/i);
91
- userEvent.click(addButton);
92
- const item = screen.getByRole(/listitem/i);
93
- const deleteButton = within(item).getByTitle(/remove item/i);
94
- userEvent.click(deleteButton);
95
- await waitFor(() => {
96
- expect(screen.queryByRole(/listitem/i)).not.toBeInTheDocument();
97
- });
98
- });
99
- });
100
-
101
- function FirstLastNameInput() {
102
- return (
103
- <>
104
- <FormInput label="First Name" name="firstName" type="text" />
105
- <FormInput label="Last Name" name="lastName" type="text" />
106
- </>
107
- );
108
- }