envoc-form 3.2.0 → 4.0.1-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) 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/DatePicker/DateOnlyDatePickerGroup.d.ts +10 -0
  13. package/es/DatePicker/DateOnlyDatePickerGroup.js +23 -0
  14. package/es/DatePicker/DatePickerGroup.d.ts +8 -0
  15. package/es/DatePicker/DatePickerGroup.js +60 -0
  16. package/es/DatePicker/DatePickerHelper.d.ts +3 -0
  17. package/es/DatePicker/DatePickerHelper.js +1 -0
  18. package/es/DatePicker/StringDatePickerGroup.d.ts +5 -0
  19. package/es/DatePicker/StringDatePickerGroup.js +19 -0
  20. package/es/Field/CustomFieldInputProps.d.ts +7 -0
  21. package/es/Field/CustomFieldInputProps.js +1 -0
  22. package/es/Field/CustomFieldMetaProps.d.ts +4 -0
  23. package/es/Field/CustomFieldMetaProps.js +1 -0
  24. package/es/Field/Field.d.ts +22 -0
  25. package/es/Field/Field.js +46 -0
  26. package/es/Field/FieldErrorScrollTarget.d.ts +2 -0
  27. package/es/Field/FieldErrorScrollTarget.js +11 -0
  28. package/es/Field/FieldNameContext.d.ts +3 -0
  29. package/es/Field/FieldNameContext.js +3 -0
  30. package/es/Field/FieldSection.d.ts +7 -0
  31. package/es/Field/FieldSection.js +20 -0
  32. package/es/Field/InjectedFieldProps.d.ts +7 -0
  33. package/es/Field/InjectedFieldProps.js +1 -0
  34. package/es/Field/StandAloneInput.d.ts +9 -0
  35. package/es/Field/StandAloneInput.js +49 -0
  36. package/es/Field/useStandardField.d.ts +15 -0
  37. package/es/Field/useStandardField.js +93 -0
  38. package/es/FieldArray/FieldArray.d.ts +15 -0
  39. package/es/FieldArray/FieldArray.js +80 -0
  40. package/es/File/FileGroup.d.ts +8 -0
  41. package/es/File/FileGroup.js +50 -0
  42. package/es/File/FileList.d.ts +6 -0
  43. package/es/File/FileList.js +20 -0
  44. package/es/File/humanFileSize.d.ts +1 -0
  45. package/es/File/humanFileSize.js +6 -0
  46. package/es/Form/FocusError.d.ts +5 -0
  47. package/es/Form/FocusError.js +41 -53
  48. package/es/Form/Form.d.ts +22 -0
  49. package/es/Form/Form.js +111 -125
  50. package/es/Form/FormBasedPreventNavigation.d.ts +5 -0
  51. package/es/Form/FormBasedPreventNavigation.js +53 -30
  52. package/es/Form/ServerErrorContext.d.ts +10 -0
  53. package/es/Form/ServerErrorContext.js +8 -6
  54. package/es/FormActions.d.ts +7 -0
  55. package/es/FormActions.js +22 -0
  56. package/es/Group.d.ts +13 -0
  57. package/es/Group.js +22 -0
  58. package/es/Input/IconInputGroup.d.ts +9 -0
  59. package/es/Input/IconInputGroup.js +40 -0
  60. package/es/Input/InputGroup.d.ts +12 -0
  61. package/es/Input/InputGroup.js +33 -0
  62. package/es/Input/MoneyInputGroup.d.ts +7 -0
  63. package/es/Input/MoneyInputGroup.js +41 -0
  64. package/es/Input/NumberInputGroup.d.ts +7 -0
  65. package/es/Input/NumberInputGroup.js +41 -0
  66. package/es/Input/StringInputGroup.d.ts +7 -0
  67. package/es/Input/StringInputGroup.js +40 -0
  68. package/es/Normalization/NormalizationFunction.d.ts +4 -0
  69. package/es/Normalization/NormalizationFunction.js +1 -0
  70. package/es/Normalization/normalizers.d.ts +2 -0
  71. package/es/Normalization/normalizers.js +30 -0
  72. package/es/Select/BooleanSelectGroup.d.ts +7 -0
  73. package/es/Select/BooleanSelectGroup.js +27 -0
  74. package/es/Select/NumberSelectGroup.d.ts +8 -0
  75. package/es/Select/NumberSelectGroup.js +19 -0
  76. package/es/Select/SelectGroup.d.ts +22 -0
  77. package/es/Select/SelectGroup.js +59 -0
  78. package/es/Select/SelectGroupPropsHelper.d.ts +3 -0
  79. package/es/Select/SelectGroupPropsHelper.js +1 -0
  80. package/es/Select/StringSelectGroup.d.ts +8 -0
  81. package/es/Select/StringSelectGroup.js +19 -0
  82. package/es/StandardFormActions.d.ts +6 -0
  83. package/es/StandardFormActions.js +23 -24
  84. package/es/SubmitFormButton.d.ts +7 -0
  85. package/es/SubmitFormButton.js +37 -23
  86. package/es/TextArea/TextAreaGroup.d.ts +8 -0
  87. package/es/TextArea/TextAreaGroup.js +33 -0
  88. package/es/Validation/ValidatedApiResult.d.ts +6 -0
  89. package/es/Validation/ValidatedApiResult.js +1 -0
  90. package/es/Validation/ValidationError.d.ts +5 -0
  91. package/es/Validation/ValidationError.js +1 -0
  92. package/es/Validation/ValidationFunction.d.ts +4 -0
  93. package/es/Validation/ValidationFunction.js +1 -0
  94. package/es/Validation/validators.d.ts +15 -0
  95. package/es/Validation/validators.js +73 -0
  96. package/es/__Tests__/FormTestBase.d.ts +27 -0
  97. package/es/__Tests__/FormTestBase.js +83 -12
  98. package/{src/__Tests__/index.js → es/__Tests__/index.d.ts} +0 -0
  99. package/es/__Tests__/index.js +2 -2
  100. package/es/index.d.ts +71 -0
  101. package/es/index.js +47 -20
  102. package/es/utils/objectContainsNonSerializableProperty.d.ts +1 -0
  103. package/es/utils/objectContainsNonSerializableProperty.js +14 -16
  104. package/es/utils/objectToFormData.d.ts +10 -0
  105. package/es/utils/objectToFormData.js +77 -65
  106. package/es/utils/typeChecks.d.ts +8 -0
  107. package/es/utils/typeChecks.js +18 -25
  108. package/lib/AddressInput/AddressInput.d.ts +15 -0
  109. package/lib/AddressInput/AddressInput.js +27 -123
  110. package/lib/AddressInput/UsStates.d.ts +3 -0
  111. package/lib/AddressInput/UsStates.js +55 -159
  112. package/lib/ConfirmBaseForm/ConfirmBaseForm.d.ts +10 -0
  113. package/lib/ConfirmBaseForm/ConfirmBaseForm.js +41 -57
  114. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +11 -0
  115. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.js +60 -56
  116. package/lib/DatePicker/DateOnlyDatePickerGroup.d.ts +10 -0
  117. package/lib/DatePicker/DateOnlyDatePickerGroup.js +29 -0
  118. package/lib/DatePicker/DatePickerGroup.d.ts +8 -0
  119. package/lib/DatePicker/DatePickerGroup.js +66 -0
  120. package/lib/DatePicker/DatePickerHelper.d.ts +3 -0
  121. package/lib/DatePicker/DatePickerHelper.js +2 -0
  122. package/lib/DatePicker/StringDatePickerGroup.d.ts +5 -0
  123. package/lib/DatePicker/StringDatePickerGroup.js +25 -0
  124. package/lib/Field/CustomFieldInputProps.d.ts +7 -0
  125. package/lib/Field/CustomFieldInputProps.js +2 -0
  126. package/lib/Field/CustomFieldMetaProps.d.ts +4 -0
  127. package/lib/Field/CustomFieldMetaProps.js +2 -0
  128. package/lib/Field/Field.d.ts +22 -0
  129. package/lib/Field/Field.js +51 -0
  130. package/lib/Field/FieldErrorScrollTarget.d.ts +2 -0
  131. package/lib/Field/FieldErrorScrollTarget.js +14 -0
  132. package/lib/Field/FieldNameContext.d.ts +3 -0
  133. package/lib/Field/FieldNameContext.js +9 -0
  134. package/lib/Field/FieldSection.d.ts +7 -0
  135. package/lib/Field/FieldSection.js +23 -0
  136. package/lib/Field/InjectedFieldProps.d.ts +7 -0
  137. package/lib/Field/InjectedFieldProps.js +2 -0
  138. package/lib/Field/StandAloneInput.d.ts +9 -0
  139. package/lib/Field/StandAloneInput.js +75 -0
  140. package/lib/Field/useStandardField.d.ts +15 -0
  141. package/lib/Field/useStandardField.js +96 -0
  142. package/lib/FieldArray/FieldArray.d.ts +15 -0
  143. package/lib/FieldArray/FieldArray.js +86 -0
  144. package/lib/File/FileGroup.d.ts +8 -0
  145. package/lib/File/FileGroup.js +55 -0
  146. package/lib/File/FileList.d.ts +6 -0
  147. package/lib/File/FileList.js +23 -0
  148. package/lib/File/humanFileSize.d.ts +1 -0
  149. package/lib/File/humanFileSize.js +10 -0
  150. package/lib/Form/FocusError.d.ts +5 -0
  151. package/lib/Form/FocusError.js +47 -66
  152. package/lib/Form/Form.d.ts +22 -0
  153. package/lib/Form/Form.js +117 -153
  154. package/lib/Form/FormBasedPreventNavigation.d.ts +5 -0
  155. package/lib/Form/FormBasedPreventNavigation.js +56 -39
  156. package/lib/Form/ServerErrorContext.d.ts +10 -0
  157. package/lib/Form/ServerErrorContext.js +14 -18
  158. package/lib/FormActions.d.ts +7 -0
  159. package/lib/FormActions.js +28 -0
  160. package/lib/Group.d.ts +13 -0
  161. package/lib/Group.js +28 -0
  162. package/lib/Input/IconInputGroup.d.ts +9 -0
  163. package/lib/Input/IconInputGroup.js +45 -0
  164. package/lib/Input/InputGroup.d.ts +12 -0
  165. package/lib/Input/InputGroup.js +38 -0
  166. package/lib/Input/MoneyInputGroup.d.ts +7 -0
  167. package/lib/Input/MoneyInputGroup.js +46 -0
  168. package/lib/Input/NumberInputGroup.d.ts +7 -0
  169. package/lib/Input/NumberInputGroup.js +46 -0
  170. package/lib/Input/StringInputGroup.d.ts +7 -0
  171. package/lib/Input/StringInputGroup.js +45 -0
  172. package/lib/Normalization/NormalizationFunction.d.ts +4 -0
  173. package/lib/Normalization/NormalizationFunction.js +2 -0
  174. package/lib/Normalization/normalizers.d.ts +2 -0
  175. package/lib/Normalization/normalizers.js +35 -0
  176. package/lib/Select/BooleanSelectGroup.d.ts +7 -0
  177. package/lib/Select/BooleanSelectGroup.js +34 -0
  178. package/lib/Select/NumberSelectGroup.d.ts +8 -0
  179. package/lib/Select/NumberSelectGroup.js +27 -0
  180. package/lib/Select/SelectGroup.d.ts +22 -0
  181. package/lib/Select/SelectGroup.js +65 -0
  182. package/lib/Select/SelectGroupPropsHelper.d.ts +3 -0
  183. package/lib/Select/SelectGroupPropsHelper.js +2 -0
  184. package/lib/Select/StringSelectGroup.d.ts +8 -0
  185. package/lib/Select/StringSelectGroup.js +27 -0
  186. package/lib/StandardFormActions.d.ts +6 -0
  187. package/lib/StandardFormActions.js +29 -37
  188. package/lib/SubmitFormButton.d.ts +7 -0
  189. package/lib/SubmitFormButton.js +42 -38
  190. package/lib/TextArea/TextAreaGroup.d.ts +8 -0
  191. package/lib/TextArea/TextAreaGroup.js +38 -0
  192. package/lib/Validation/ValidatedApiResult.d.ts +6 -0
  193. package/lib/Validation/ValidatedApiResult.js +2 -0
  194. package/lib/Validation/ValidationError.d.ts +5 -0
  195. package/lib/Validation/ValidationError.js +2 -0
  196. package/lib/Validation/ValidationFunction.d.ts +4 -0
  197. package/lib/Validation/ValidationFunction.js +2 -0
  198. package/lib/Validation/validators.d.ts +15 -0
  199. package/lib/Validation/validators.js +86 -0
  200. package/lib/__Tests__/FormTestBase.d.ts +27 -0
  201. package/lib/__Tests__/FormTestBase.js +86 -25
  202. package/lib/__Tests__/index.d.ts +2 -0
  203. package/lib/__Tests__/index.js +8 -15
  204. package/lib/index.d.ts +71 -0
  205. package/lib/index.js +112 -174
  206. package/lib/utils/objectContainsNonSerializableProperty.d.ts +1 -0
  207. package/lib/utils/objectContainsNonSerializableProperty.js +17 -24
  208. package/lib/utils/objectToFormData.d.ts +10 -0
  209. package/lib/utils/objectToFormData.js +79 -73
  210. package/lib/utils/typeChecks.d.ts +8 -0
  211. package/lib/utils/typeChecks.js +29 -58
  212. package/package.json +106 -100
  213. package/src/AddressInput/{AddesssInput.test.js → AddressInput.test.tsx} +7 -3
  214. package/src/AddressInput/AddressInput.tsx +72 -0
  215. package/src/AddressInput/{UsStates.js → UsStates.ts} +3 -1
  216. package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +175 -0
  217. package/src/ConfirmBaseForm/ConfirmBaseForm.test.tsx +24 -0
  218. package/src/ConfirmBaseForm/ConfirmBaseForm.tsx +50 -0
  219. package/src/ConfirmBaseForm/__snapshots__/{ConfirmBaseForm.test.js.snap → ConfirmBaseForm.test.tsx.snap} +2 -2
  220. package/src/ConfirmDeleteForm/{ConfirmDeleteForm.test.js → ConfirmDeleteForm.test.tsx} +3 -3
  221. package/src/ConfirmDeleteForm/ConfirmDeleteForm.tsx +67 -0
  222. package/src/ConfirmDeleteForm/__snapshots__/{ConfirmDeleteForm.test.js.snap → ConfirmDeleteForm.test.tsx.snap} +2 -2
  223. package/src/DatePicker/DateOnlyDatePickerGroup.tsx +24 -0
  224. package/src/DatePicker/DatePicker.test.tsx +48 -0
  225. package/src/DatePicker/DatePickerGroup.tsx +75 -0
  226. package/src/DatePicker/DatePickerHelper.ts +4 -0
  227. package/src/DatePicker/StringDatePickerGroup.tsx +14 -0
  228. package/src/DatePicker/__snapshots__/DatePicker.test.tsx.snap +151 -0
  229. package/src/Field/CustomFieldInputProps.ts +10 -0
  230. package/src/Field/CustomFieldMetaProps.ts +5 -0
  231. package/src/Field/Field.tsx +93 -0
  232. package/src/Field/FieldErrorScrollTarget.tsx +11 -0
  233. package/src/Field/FieldNameContext.ts +6 -0
  234. package/src/Field/FieldSection.tsx +18 -0
  235. package/src/Field/InjectedFieldProps.ts +8 -0
  236. package/src/Field/StandAloneInput.tsx +51 -0
  237. package/src/Field/useStandardField.ts +121 -0
  238. package/src/FieldArray/FieldArray.tsx +133 -0
  239. package/src/File/FileGroup.test.tsx +35 -0
  240. package/src/File/FileGroup.tsx +71 -0
  241. package/src/File/FileList.tsx +19 -0
  242. package/src/File/__snapshots__/FileGroup.test.tsx.snap +32 -0
  243. package/src/File/humanFileSize.ts +8 -0
  244. package/src/Form/{FocusError.js → FocusError.tsx} +10 -6
  245. package/src/Form/Form.test.tsx +14 -0
  246. package/src/Form/{Form.js → Form.tsx} +71 -31
  247. package/src/Form/FormBasedPreventNavigation.tsx +74 -0
  248. package/src/Form/ServerErrorContext.ts +17 -0
  249. package/src/Form/__snapshots__/{Form.test.js.snap → Form.test.tsx.snap} +1 -1
  250. package/src/FormActions.tsx +34 -0
  251. package/src/Group.tsx +43 -0
  252. package/src/Input/IconInputGroup.tsx +48 -0
  253. package/src/Input/InputGroup.tsx +57 -0
  254. package/src/Input/MoneyInputGroup.tsx +44 -0
  255. package/src/Input/NumberInputGroup.tsx +42 -0
  256. package/src/Input/StringInputGroup.tsx +48 -0
  257. package/src/Input/__Tests__/IconInputGroup.test.tsx +35 -0
  258. package/src/Input/__Tests__/MoneyInputGroup.test.tsx +37 -0
  259. package/src/Input/__Tests__/NumberInputGroup.test.tsx +35 -0
  260. package/src/Input/__Tests__/StringInputGroup.test.tsx +27 -0
  261. package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +29 -0
  262. package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +31 -0
  263. package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +29 -0
  264. package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +28 -0
  265. package/src/Normalization/NormalizationFunction.ts +4 -0
  266. package/src/{normalizers.js → Normalization/normalizers.ts} +5 -5
  267. package/src/Select/BooleanSelectGroup.tsx +27 -0
  268. package/src/Select/NumberSelectGroup.tsx +14 -0
  269. package/src/Select/SelectGroup.tsx +106 -0
  270. package/src/Select/SelectGroupPropsHelper.ts +4 -0
  271. package/src/Select/StringSelectGroup.tsx +14 -0
  272. package/src/Select/__tests__/BooleanSelectGroup.test.tsx +35 -0
  273. package/src/Select/__tests__/NumberSelectGroup.test.tsx +87 -0
  274. package/src/Select/__tests__/StringSelectGroup.test.tsx +89 -0
  275. package/src/Select/__tests__/__snapshots__/BooleanSelectGroup.test.tsx.snap +99 -0
  276. package/src/Select/__tests__/__snapshots__/NumberSelectGroup.test.tsx.snap +197 -0
  277. package/src/Select/__tests__/__snapshots__/StringSelectGroup.test.tsx.snap +197 -0
  278. package/src/{StandardFormActions.js → StandardFormActions.tsx} +12 -6
  279. package/src/SubmitFormButton.tsx +44 -0
  280. package/src/TextArea/TextAreaGroup.tsx +55 -0
  281. package/src/Validation/ValidatedApiResult.ts +8 -0
  282. package/src/Validation/ValidationError.ts +6 -0
  283. package/src/Validation/ValidationFunction.ts +4 -0
  284. package/src/{validators/validators.test.js → Validation/validators.test.tsx} +6 -4
  285. package/src/Validation/validators.ts +92 -0
  286. package/src/__Tests__/FormTestBase.tsx +63 -0
  287. package/src/__Tests__/{StandardFormActions.test.js → StandardFormActions.test.tsx} +2 -8
  288. package/src/__Tests__/{SubmitFormButton.test.js → SubmitFormButton.test.tsx} +2 -8
  289. package/src/__Tests__/__snapshots__/{StandardFormActions.test.js.snap → StandardFormActions.test.tsx.snap} +2 -2
  290. package/src/__Tests__/__snapshots__/{SubmitFormButton.test.js.snap → SubmitFormButton.test.tsx.snap} +1 -1
  291. package/src/__Tests__/index.ts +3 -0
  292. package/src/index.ts +149 -0
  293. package/src/react-app-env.d.ts +1 -0
  294. package/src/styles.scss +0 -7
  295. package/src/utils/{objectContainsNonSerializableProperty.test.js → objectContainsNonSerializableProperty.test.tsx} +0 -0
  296. package/src/utils/{objectContainsNonSerializableProperty.js → objectContainsNonSerializableProperty.ts} +4 -2
  297. package/src/utils/{objectToFormData.test.js → objectToFormData.test.tsx} +0 -0
  298. package/src/utils/{objectToFormData.js → objectToFormData.ts} +29 -13
  299. package/src/utils/typeChecks.ts +18 -0
  300. package/es/AddressInput/index.js +0 -2
  301. package/es/BoolInput/BoolInput.js +0 -10
  302. package/es/BoolInput/InlineBoolInput.js +0 -10
  303. package/es/BoolInput/boolOptions.js +0 -8
  304. package/es/BoolInput/index.js +0 -3
  305. package/es/ConfirmBaseForm/index.js +0 -2
  306. package/es/ConfirmDeleteForm/index.js +0 -2
  307. package/es/DatePickerInput/DatePickerInput.js +0 -95
  308. package/es/DatePickerInput/index.js +0 -2
  309. package/es/ErrorScrollTarget.js +0 -10
  310. package/es/FileInput/DefaultFileList.js +0 -36
  311. package/es/FileInput/DropzoneFileInput.js +0 -58
  312. package/es/FileInput/FileInput.js +0 -62
  313. package/es/FileInput/index.js +0 -3
  314. package/es/Form/index.js +0 -3
  315. package/es/FormGroup.js +0 -22
  316. package/es/FormGroupWrapper.js +0 -22
  317. package/es/FormInput/FormInput.js +0 -206
  318. package/es/FormInput/index.js +0 -2
  319. package/es/FormInputArray/FormInputArray.js +0 -225
  320. package/es/FormInputArray/index.js +0 -2
  321. package/es/FormSection.js +0 -11
  322. package/es/IconInput.js +0 -33
  323. package/es/InlineFormInput/InlineFormInput.js +0 -8
  324. package/es/InlineFormInput/index.js +0 -2
  325. package/es/MoneyInput/InlineMoneyInput.js +0 -7
  326. package/es/MoneyInput/MoneyInput.js +0 -7
  327. package/es/MoneyInput/index.js +0 -3
  328. package/es/MoneyInput/moneyInputProps.js +0 -13
  329. package/es/NestedFormFieldContext.js +0 -4
  330. package/es/ReactSelectField/ReactSelectField.js +0 -162
  331. package/es/ReactSelectField/index.js +0 -2
  332. package/es/normalizers.js +0 -39
  333. package/es/selectors.js +0 -6
  334. package/es/useStandardFormInput.js +0 -119
  335. package/es/utils/index.js +0 -3
  336. package/es/validators/index.js +0 -2
  337. package/es/validators/validators.js +0 -94
  338. package/lib/AddressInput/index.js +0 -13
  339. package/lib/BoolInput/BoolInput.js +0 -23
  340. package/lib/BoolInput/InlineBoolInput.js +0 -23
  341. package/lib/BoolInput/boolOptions.js +0 -15
  342. package/lib/BoolInput/index.js +0 -23
  343. package/lib/ConfirmBaseForm/index.js +0 -13
  344. package/lib/ConfirmDeleteForm/index.js +0 -13
  345. package/lib/DatePickerInput/DatePickerInput.js +0 -113
  346. package/lib/DatePickerInput/index.js +0 -13
  347. package/lib/ErrorScrollTarget.js +0 -20
  348. package/lib/FileInput/DefaultFileList.js +0 -47
  349. package/lib/FileInput/DropzoneFileInput.js +0 -75
  350. package/lib/FileInput/FileInput.js +0 -82
  351. package/lib/FileInput/index.js +0 -23
  352. package/lib/Form/index.js +0 -23
  353. package/lib/FormGroup.js +0 -33
  354. package/lib/FormGroupWrapper.js +0 -37
  355. package/lib/FormInput/FormInput.js +0 -229
  356. package/lib/FormInput/index.js +0 -13
  357. package/lib/FormInputArray/FormInputArray.js +0 -248
  358. package/lib/FormInputArray/index.js +0 -13
  359. package/lib/FormSection.js +0 -28
  360. package/lib/IconInput.js +0 -51
  361. package/lib/InlineFormInput/InlineFormInput.js +0 -20
  362. package/lib/InlineFormInput/index.js +0 -13
  363. package/lib/MoneyInput/InlineMoneyInput.js +0 -20
  364. package/lib/MoneyInput/MoneyInput.js +0 -20
  365. package/lib/MoneyInput/index.js +0 -23
  366. package/lib/MoneyInput/moneyInputProps.js +0 -26
  367. package/lib/NestedFormFieldContext.js +0 -16
  368. package/lib/ReactSelectField/ReactSelectField.js +0 -187
  369. package/lib/ReactSelectField/index.js +0 -31
  370. package/lib/normalizers.js +0 -51
  371. package/lib/selectors.js +0 -18
  372. package/lib/useStandardFormInput.js +0 -135
  373. package/lib/utils/index.js +0 -23
  374. package/lib/validators/index.js +0 -17
  375. package/lib/validators/validators.js +0 -130
  376. package/src/AddressInput/AddressInput.js +0 -73
  377. package/src/AddressInput/__snapshots__/AddesssInput.test.js.snap +0 -207
  378. package/src/AddressInput/index.js +0 -2
  379. package/src/BoolInput/BoolInput.js +0 -7
  380. package/src/BoolInput/BoolInput.test.js +0 -23
  381. package/src/BoolInput/InlineBoolInput.js +0 -7
  382. package/src/BoolInput/__snapshots__/BoolInput.test.js.snap +0 -89
  383. package/src/BoolInput/boolOptions.js +0 -6
  384. package/src/BoolInput/index.js +0 -4
  385. package/src/ConfirmBaseForm/ConfirmBaseForm.js +0 -37
  386. package/src/ConfirmBaseForm/ConfirmBaseForm.test.js +0 -14
  387. package/src/ConfirmBaseForm/index.js +0 -2
  388. package/src/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -39
  389. package/src/ConfirmDeleteForm/index.js +0 -2
  390. package/src/DatePickerInput/DatePickerInput.js +0 -49
  391. package/src/DatePickerInput/DatePickerInput.test.js +0 -74
  392. package/src/DatePickerInput/__snapshots__/DatePickerInput.test.js.snap +0 -134
  393. package/src/DatePickerInput/date-picker-input.scss +0 -42
  394. package/src/DatePickerInput/index.js +0 -3
  395. package/src/ErrorScrollTarget.js +0 -6
  396. package/src/FileInput/DefaultFileList.js +0 -39
  397. package/src/FileInput/DropzoneFileInput.js +0 -56
  398. package/src/FileInput/DropzoneFileInput.test.js +0 -24
  399. package/src/FileInput/FileInput.js +0 -77
  400. package/src/FileInput/FileInput.test.js +0 -24
  401. package/src/FileInput/__snapshots__/DropzoneFileInput.test.js.snap +0 -57
  402. package/src/FileInput/__snapshots__/FileInput.test.js.snap +0 -58
  403. package/src/FileInput/file-input.scss +0 -58
  404. package/src/FileInput/index.js +0 -4
  405. package/src/Form/Form.test.js +0 -23
  406. package/src/Form/FormBasedPreventNavigation.js +0 -25
  407. package/src/Form/ServerErrorContext.js +0 -7
  408. package/src/Form/index.js +0 -3
  409. package/src/FormGroup.js +0 -30
  410. package/src/FormGroupWrapper.js +0 -28
  411. package/src/FormInput/FormInput.js +0 -145
  412. package/src/FormInput/FormInput.test.js +0 -66
  413. package/src/FormInput/__snapshots__/FormInput.test.js.snap +0 -323
  414. package/src/FormInput/form-input.scss +0 -9
  415. package/src/FormInput/index.js +0 -2
  416. package/src/FormInputArray/FormInputArray.js +0 -224
  417. package/src/FormInputArray/FormInputArray.test.js +0 -108
  418. package/src/FormInputArray/__snapshots__/FormInputArray.test.js.snap +0 -52
  419. package/src/FormInputArray/form-input-array.scss +0 -13
  420. package/src/FormInputArray/index.js +0 -2
  421. package/src/FormSection.js +0 -13
  422. package/src/IconInput.js +0 -31
  423. package/src/InlineFormInput/InlineFormInput.js +0 -6
  424. package/src/InlineFormInput/InlineFormInput.test.js +0 -23
  425. package/src/InlineFormInput/__snapshots__/InlineFormInput.test.js.snap +0 -26
  426. package/src/InlineFormInput/index.js +0 -3
  427. package/src/InlineFormInput/inline-form-input.scss +0 -3
  428. package/src/MoneyInput/InlineMoneyInput.js +0 -7
  429. package/src/MoneyInput/MoneyInput.js +0 -7
  430. package/src/MoneyInput/MoneyInputs.test.js +0 -43
  431. package/src/MoneyInput/__snapshots__/MoneyInputs.test.js.snap +0 -81
  432. package/src/MoneyInput/index.js +0 -4
  433. package/src/MoneyInput/money-input.scss +0 -3
  434. package/src/MoneyInput/moneyInputProps.js +0 -12
  435. package/src/NestedFormFieldContext.js +0 -6
  436. package/src/ReactSelectField/ReactSelectField.js +0 -155
  437. package/src/ReactSelectField/index.js +0 -6
  438. package/src/ReactSelectField/react-select-field.scss +0 -5
  439. package/src/SubmitFormButton.js +0 -28
  440. package/src/__Tests__/FormTestBase.js +0 -14
  441. package/src/__Tests__/IconInput.test.js +0 -23
  442. package/src/__Tests__/__snapshots__/IconInput.test.js.snap +0 -38
  443. package/src/index.js +0 -45
  444. package/src/selectors.js +0 -3
  445. package/src/useStandardFormInput.js +0 -118
  446. package/src/utils/index.js +0 -3
  447. package/src/utils/typeChecks.js +0 -18
  448. package/src/validators/index.js +0 -2
  449. package/src/validators/validators.js +0 -93
@@ -1,40 +1,54 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["successUrl", "form", "children"];
4
- import React from 'react';
5
- import { useNavigate, useParams } from 'react-router-dom';
6
- import ConfirmBaseForm from '../ConfirmBaseForm';
7
- import { toast } from 'react-toastify';
8
- export default function ConfirmDeleteForm(_ref) {
9
- var successUrl = _ref.successUrl,
10
- form = _ref.form,
11
- children = _ref.children,
12
- props = _objectWithoutProperties(_ref, _excluded);
13
-
14
- var navigate = useNavigate();
15
-
16
- var _useParams = useParams(),
17
- entityId = _useParams.entityId;
18
-
19
- var request = {
20
- method: 'delete',
21
- url: "/api/".concat(form, "/").concat(entityId),
22
- onComplete: function onComplete() {
23
- toast.success('Deleted!');
24
- goBack();
25
- }
26
- };
27
- return /*#__PURE__*/React.createElement(ConfirmBaseForm, _extends({
28
- request: request,
29
- handleCancel: goBack,
30
- title: "Are you sure you want to delete this?"
31
- }, props), children);
32
-
33
- function goBack() {
34
- if (successUrl) {
35
- navigate(successUrl);
36
- } else {
37
- navigate(-1);
38
- }
39
- }
40
- }
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import { useNavigate, useParams } from 'react-router-dom';
25
+ import { toast } from 'react-toastify';
26
+ import ConfirmBaseForm from '../ConfirmBaseForm/ConfirmBaseForm';
27
+ export default function ConfirmDeleteForm(_a) {
28
+ var successUrl = _a.successUrl, form = _a.form, title = _a.title, handleComplete = _a.handleComplete, handleError = _a.handleError, children = _a.children, props = __rest(_a, ["successUrl", "form", "title", "handleComplete", "handleError", "children"]);
29
+ var navigate = useNavigate();
30
+ var entityId = useParams().entityId;
31
+ var onComplete = handleComplete !== null && handleComplete !== void 0 ? handleComplete : function () {
32
+ toast.success('Deleted!');
33
+ goBack();
34
+ };
35
+ var onError = handleError !== null && handleError !== void 0 ? handleError : function (error) {
36
+ var _a, _b, _c, _d;
37
+ toast.error((_d = (_c = (_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.validationFailures[0]) === null || _c === void 0 ? void 0 : _c.errorMessage) !== null && _d !== void 0 ? _d : 'Something went wrong talking to the portal. Contact support if this continues.');
38
+ };
39
+ var request = {
40
+ method: 'delete',
41
+ url: "/api/".concat(form, "/").concat(entityId),
42
+ onComplete: onComplete,
43
+ onError: onError,
44
+ };
45
+ return (_jsx(ConfirmBaseForm, __assign({ request: request, handleCancel: goBack, title: title !== null && title !== void 0 ? title : 'Are you sure you want to delete this?' }, props, { children: children })));
46
+ function goBack() {
47
+ if (successUrl) {
48
+ navigate(successUrl);
49
+ }
50
+ else {
51
+ navigate(-1);
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { DatePickerHelper } from './DatePickerHelper';
3
+ export interface DateOnly {
4
+ year?: number;
5
+ month?: number;
6
+ day?: number;
7
+ }
8
+ export interface DateOnlyDatePickerGroupProps extends DatePickerHelper<DateOnly | undefined> {
9
+ }
10
+ export default function DateOnlyDatePickerGroup(props: DateOnlyDatePickerGroupProps): JSX.Element;
@@ -0,0 +1,23 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import DatePickerGroup from './DatePickerGroup';
14
+ export default function DateOnlyDatePickerGroup(props) {
15
+ return _jsx(DatePickerGroup, __assign({}, props, { convert: convertToDateOnly }));
16
+ }
17
+ function convertToDateOnly(arg) {
18
+ return {
19
+ year: arg.getFullYear(),
20
+ month: arg.getMonth() + 1,
21
+ day: arg.getDate(),
22
+ };
23
+ }
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { DatePickerProps } from 'react-date-picker/dist/entry.nostyle';
3
+ import { InjectedFieldProps } from '../Field/InjectedFieldProps';
4
+ import { GroupProps } from '../Group';
5
+ export interface DatePickerGroupProps<T> extends InjectedFieldProps<T | undefined>, Omit<DatePickerProps, keyof InjectedFieldProps<T> | 'name' | 'value' | 'className'>, Omit<GroupProps, keyof InjectedFieldProps<T> | 'children'> {
6
+ convert: (arg: Date) => T;
7
+ }
8
+ export default function DatePickerGroup<T>({ input, meta, label, helpText, className, disabled, convert, ...rest }: DatePickerGroupProps<T>): JSX.Element;
@@ -0,0 +1,60 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import { useState } from 'react';
25
+ import DatePicker from 'react-date-picker/dist/entry.nostyle';
26
+ import classnames from 'classnames';
27
+ import parseISO from 'date-fns/parseISO';
28
+ import Group from '../Group';
29
+ export default function DatePickerGroup(_a) {
30
+ var input = _a.input, meta = _a.meta, label = _a.label, helpText = _a.helpText, className = _a.className, disabled = _a.disabled, convert = _a.convert, rest = __rest(_a, ["input", "meta", "label", "helpText", "className", "disabled", "convert"]);
31
+ var _b = useState(null), displayDate = _b[0], setDisplayDate = _b[1];
32
+ return (_jsx(Group, __assign({ input: input, meta: meta, label: label, helpText: helpText, className: classnames(className, 'date-picker'), disabled: disabled }, { children: _jsx(DatePicker, __assign({}, rest, { className: classnames('date-picker', className), value: displayDate, onChange: handleChange })) })));
33
+ function handleChange(e) {
34
+ var onChange = input.onChange;
35
+ if (onChange === null) {
36
+ return;
37
+ }
38
+ if (!e) {
39
+ onChange(undefined);
40
+ setDisplayDate(null);
41
+ return;
42
+ }
43
+ else if (typeof e === 'string') {
44
+ var parsedValue = parseISO(e.toString().split('T')[0]);
45
+ setDisplayDate(parsedValue);
46
+ onChange(convert(parsedValue));
47
+ }
48
+ else if (e instanceof Date) {
49
+ var parsedValue = parseISO(e.toISOString().split('T')[0]);
50
+ setDisplayDate(parsedValue);
51
+ onChange(convert(parsedValue));
52
+ }
53
+ else {
54
+ // e is instanceof Date[]
55
+ var parsedValue = parseISO(e[0].toISOString().split('T')[0]);
56
+ setDisplayDate(parsedValue);
57
+ onChange(convert(parsedValue));
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,3 @@
1
+ import { DatePickerGroupProps } from './DatePickerGroup';
2
+ export interface DatePickerHelper<T> extends Omit<DatePickerGroupProps<T>, 'convert'> {
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { DatePickerHelper } from './DatePickerHelper';
3
+ export interface StringDatePickerGroupProps extends DatePickerHelper<string | undefined> {
4
+ }
5
+ export default function StringDatePickerGroup(props: StringDatePickerGroupProps): JSX.Element;
@@ -0,0 +1,19 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import DatePickerGroup from './DatePickerGroup';
14
+ export default function StringDatePickerGroup(props) {
15
+ return _jsx(DatePickerGroup, __assign({}, props, { convert: convertToDateOnly }));
16
+ }
17
+ function convertToDateOnly(arg) {
18
+ return arg.toISOString();
19
+ }
@@ -0,0 +1,7 @@
1
+ export interface CustomFieldInputProps<TValue> {
2
+ id: string;
3
+ name: string;
4
+ value: TValue;
5
+ onChange: (newValue: TValue) => void;
6
+ onBlur: () => void;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import { FieldMetaProps } from 'formik';
2
+ export interface CustomFieldMetaProps<TValue> extends FieldMetaProps<TValue> {
3
+ warning: string | undefined;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ import { ComponentProps, ElementType, LegacyRef } from 'react';
2
+ import { InjectedFieldProps } from './InjectedFieldProps';
3
+ import { NormalizationFunction } from '../Normalization/NormalizationFunction';
4
+ import { ValidationFunction } from '../Validation/ValidationFunction';
5
+ export declare type RenderComponent<TValue, TRenderComponent extends ElementType> = Partial<ComponentProps<TRenderComponent>> extends Partial<InjectedFieldProps<TValue>> ? TRenderComponent : never;
6
+ export declare type RenderComponentProps<TValue, TRenderComponent extends ElementType> = Partial<ComponentProps<TRenderComponent>> extends Partial<InjectedFieldProps<TValue>> ? ComponentProps<TRenderComponent> : never;
7
+ /** A specific Field instance to be rendered by the given TRenderComponent or by whatever default is reasonable */
8
+ export declare type FieldProps<TForm extends object, TProp extends keyof TForm, TRenderComponent extends ElementType> = {
9
+ name: TProp;
10
+ Component: RenderComponent<TForm[TProp], TRenderComponent>;
11
+ id?: string;
12
+ disabled?: boolean;
13
+ validate?: ValidationFunction<TForm[TProp]> | ValidationFunction<TForm[TProp]>[];
14
+ normalize?: NormalizationFunction<TForm[TProp]>;
15
+ } & Omit<RenderComponentProps<TForm[TProp], TRenderComponent>, keyof InjectedFieldProps<TForm[TProp]>>;
16
+ /**
17
+ * Renders whatever Component is passed - injecting the formik values needed to finish wiring up that individual field.
18
+ * Should no Component be used then the default will be provided by the default lookup based on typeof(TForm[TProp])
19
+ */
20
+ declare function Field<TForm extends object, TProp extends keyof TForm, TRenderComponent extends ElementType>({ name, Component, id, normalize, validate, disabled, ...rest }: FieldProps<TForm, TProp, TRenderComponent>, ref: LegacyRef<any>): JSX.Element;
21
+ declare const _default: typeof Field;
22
+ export default _default;
@@ -0,0 +1,46 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import React from 'react';
25
+ import { FieldNameContext } from './FieldNameContext';
26
+ import useStandardFormInput from './useStandardField';
27
+ /**
28
+ * Renders whatever Component is passed - injecting the formik values needed to finish wiring up that individual field.
29
+ * Should no Component be used then the default will be provided by the default lookup based on typeof(TForm[TProp])
30
+ */
31
+ function Field(_a, ref) {
32
+ var name = _a.name, Component = _a.Component, id = _a.id, normalize = _a.normalize, validate = _a.validate, disabled = _a.disabled, rest = __rest(_a, ["name", "Component", "id", "normalize", "validate", "disabled"]);
33
+ var _b = useStandardFormInput({
34
+ name: String(name),
35
+ id: id,
36
+ normalize: normalize,
37
+ validate: validate,
38
+ disabled: disabled,
39
+ }), input = _b[0], meta = _b[1];
40
+ // a bit of a hack so JSX is happy with us
41
+ var Wrapped = Component;
42
+ return (_jsx(FieldNameContext.Provider, __assign({ value: input.name }, { children: _jsx(Wrapped, __assign({}, rest, { ref: ref, id: id, input: input, meta: meta })) })));
43
+ }
44
+ // hack to get forwarded refs to work
45
+ var FieldWithRef = React.forwardRef(Field);
46
+ export default FieldWithRef;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export default function FieldErrorScrollTarget(): JSX.Element | null;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useContext } from 'react';
3
+ import { FieldNameContext } from './FieldNameContext';
4
+ export default function FieldErrorScrollTarget() {
5
+ var name = useContext(FieldNameContext);
6
+ if (!name) {
7
+ return null;
8
+ }
9
+ var divId = "".concat(name.toLowerCase(), "-error-scroll-target");
10
+ return _jsx("div", { id: divId, style: { display: 'none' } });
11
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ /** provides the full, qualified name of the current field name - including nested fields, path/dot delimited */
3
+ export declare const FieldNameContext: React.Context<string | undefined>;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ /** provides the full, qualified name of the current field name - including nested fields, path/dot delimited */
3
+ export var FieldNameContext = React.createContext(undefined);
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface FieldSectionProps {
3
+ children: React.ReactNode;
4
+ name: string;
5
+ }
6
+ export default function FieldSection({ children, name }: FieldSectionProps): JSX.Element;
7
+ export {};
@@ -0,0 +1,20 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { useContext } from 'react';
14
+ import { FieldNameContext } from './FieldNameContext';
15
+ export default function FieldSection(_a) {
16
+ var children = _a.children, name = _a.name;
17
+ var parentContext = useContext(FieldNameContext);
18
+ var effectiveValue = parentContext ? "".concat(parentContext, ".").concat(name) : name;
19
+ return (_jsx(FieldNameContext.Provider, __assign({ value: effectiveValue }, { children: children })));
20
+ }
@@ -0,0 +1,7 @@
1
+ import { CustomFieldInputProps } from './CustomFieldInputProps';
2
+ import { CustomFieldMetaProps } from './CustomFieldMetaProps';
3
+ /** Defines what is injected by a Field wrapper of some TRenderComponent */
4
+ export interface InjectedFieldProps<TValue> {
5
+ input: CustomFieldInputProps<TValue>;
6
+ meta: CustomFieldMetaProps<TValue>;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { ElementType } from 'react';
2
+ import { RenderComponent, RenderComponentProps } from './Field';
3
+ import { InjectedFieldProps } from './InjectedFieldProps';
4
+ export declare type StandAloneInputProps<TValue, TRenderComponent extends ElementType> = {
5
+ Component: RenderComponent<TValue, TRenderComponent>;
6
+ value: TValue;
7
+ onChange: (arg: TValue) => void;
8
+ } & Omit<RenderComponentProps<TValue, TRenderComponent>, keyof InjectedFieldProps<TValue> | 'value' | 'onChange' | 'normalize' | 'validate'>;
9
+ export default function StandAloneInput<TValue, TComponent extends ElementType>(props: StandAloneInputProps<TValue, TComponent>): JSX.Element;
@@ -0,0 +1,49 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import { useRef } from 'react';
25
+ import * as uuid from 'uuid';
26
+ export default function StandAloneInput(props) {
27
+ var Component = props.Component, value = props.value, onChange = props.onChange, disabled = props.disabled, rest = __rest(props, ["Component", "value", "onChange", "disabled"]);
28
+ var handleChange = function (arg) {
29
+ if (!disabled) {
30
+ onChange(arg);
31
+ }
32
+ };
33
+ var Wrapped = Component;
34
+ var idRef = useRef(uuid.v4());
35
+ var input = {
36
+ id: idRef.current,
37
+ name: idRef.current,
38
+ value: value,
39
+ onChange: handleChange,
40
+ onBlur: function () { },
41
+ };
42
+ var meta = {
43
+ warning: undefined,
44
+ value: value,
45
+ touched: false,
46
+ initialTouched: false,
47
+ };
48
+ return _jsx(Wrapped, __assign({}, rest, { disabled: disabled, input: input, meta: meta }));
49
+ }
@@ -0,0 +1,15 @@
1
+ import { CustomFieldInputProps } from './CustomFieldInputProps';
2
+ import { CustomFieldMetaProps } from './CustomFieldMetaProps';
3
+ import { NormalizationFunction } from '../Normalization/NormalizationFunction';
4
+ import { ValidationFunction } from '../Validation/ValidationFunction';
5
+ export interface useStandardFieldProps<TValue> {
6
+ id?: string;
7
+ name: string;
8
+ disabled?: boolean;
9
+ validate?: ValidationFunction<TValue> | ValidationFunction<TValue>[];
10
+ normalize?: NormalizationFunction<TValue>;
11
+ }
12
+ export default function useStandardField<TValue>({ id: providedId, name: providedName, disabled, validate, normalize, }: useStandardFieldProps<TValue>): [
13
+ CustomFieldInputProps<TValue>,
14
+ CustomFieldMetaProps<TValue>
15
+ ];
@@ -0,0 +1,93 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { useContext, useEffect } from 'react';
13
+ import { useField, useFormikContext } from 'formik';
14
+ import { FieldNameContext } from './FieldNameContext';
15
+ import { ServerErrorContext } from '../Form/ServerErrorContext';
16
+ // provides a consistent way to deal with all form fields (non array)
17
+ export default function useStandardField(_a) {
18
+ var providedId = _a.id, providedName = _a.name, disabled = _a.disabled, validate = _a.validate, normalize = _a.normalize;
19
+ // because the formik errors are evaluated all at the same time we need to keep server errors separate
20
+ var _b = useContext(ServerErrorContext), getServerError = _b.getError, setServerError = _b.setError;
21
+ // ensure that form section values are obeyed, e.g. homeAddress.zipCode
22
+ var fieldNameContextValue = useContext(FieldNameContext);
23
+ var name = fieldNameContextValue
24
+ ? "".concat(fieldNameContextValue, ".").concat(providedName)
25
+ : providedName;
26
+ // ensure that nested contexts don't have duplicate id issues when an id is specified
27
+ var id = providedId
28
+ ? fieldNameContextValue
29
+ ? "".concat(fieldNameContextValue, ".").concat(providedId)
30
+ : providedId
31
+ : name;
32
+ // ensure that our custom validation rules are handled
33
+ // e.g. we allow arrays of validators
34
+ var _c = useField({
35
+ name: name,
36
+ id: id ? id : name,
37
+ disabled: disabled,
38
+ validate: callAllValidators,
39
+ }), formikInput = _c[0], formikMeta = _c[1];
40
+ var _d = useFormikContext(), setFieldValue = _d.setFieldValue, isSubmitting = _d.isSubmitting;
41
+ var touched = formikMeta.touched !== false && formikMeta.touched !== undefined;
42
+ useEffect(function () {
43
+ if (!touched && isSubmitting) {
44
+ // because we do not always register all fields up front.
45
+ // e.g. formik expects even a 'create' form to have all fields given, at least, blank values
46
+ // that seems to be how it touches on submit:
47
+ // see: https://codesandbox.io/s/formik-example-4n7n8 vs https://codesandbox.io/s/formik-example-kttk5
48
+ // note in particular the change in line 24
49
+ // thus, we manually touch all fields here by calling onBlur
50
+ // there is a "setFieldTouched" from useFormikContext but it doesn't appear to work on field arrays
51
+ handleBlur();
52
+ }
53
+ });
54
+ // these are the props we expect consumers of this hook to pass directly to the input (or other control)
55
+ var resultInput = {
56
+ name: formikInput.name,
57
+ // pass any direct from server props through normalize without making the form dirty (e.g. phone number)
58
+ value: normalize ? normalize(formikInput.value) : formikInput.value,
59
+ onChange: handleChange,
60
+ onBlur: handleBlur,
61
+ // extensions to formik
62
+ id: id,
63
+ };
64
+ var resultMeta = __assign(__assign({}, formikMeta), { error: getServerError(name) || (touched ? formikMeta.error : undefined),
65
+ // extensions to formik
66
+ warning: undefined, touched: touched });
67
+ return [resultInput, resultMeta];
68
+ function handleBlur() {
69
+ formikInput.onBlur({ target: { name: name } });
70
+ }
71
+ function handleChange(value) {
72
+ if (disabled) {
73
+ return;
74
+ }
75
+ var normalized = normalize ? normalize(value) : value;
76
+ setFieldValue(name, normalized);
77
+ setServerError(name, undefined);
78
+ }
79
+ function callAllValidators(value) {
80
+ if (disabled || !validate) {
81
+ return;
82
+ }
83
+ if (!Array.isArray(validate)) {
84
+ return validate(value);
85
+ }
86
+ for (var i = 0; i < validate.length; i++) {
87
+ var result = validate[i](value);
88
+ if (result) {
89
+ return result;
90
+ }
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,15 @@
1
+ import { ElementType } from 'react';
2
+ import { FieldProps } from '../Field/Field';
3
+ import { ValidationFunction } from '../Validation/ValidationFunction';
4
+ export declare type FieldArrayProps<TForm extends object, TProp extends keyof TForm> = TForm[TProp] extends Array<any> | undefined ? {
5
+ name: TProp;
6
+ label?: string;
7
+ disabled?: boolean;
8
+ validate?: ValidationFunction<TForm[TProp]> | ValidationFunction<TForm[TProp]>[];
9
+ children: (formBuilder: ArrayFormBuilderProp<TForm[TProp]>) => JSX.Element;
10
+ } : never;
11
+ export declare type ArrayFormBuilderProp<TValue extends Array<any> | undefined> = TValue extends Array<infer TForm> | undefined ? TForm extends object ? {
12
+ Field: <TProp extends keyof TForm, TRenderComponent extends ElementType>(props: FieldProps<TForm, TProp, TRenderComponent>) => JSX.Element;
13
+ FieldArray: <TProp extends keyof TForm>(props: FieldArrayProps<TForm, TProp>) => JSX.Element;
14
+ } : never : never;
15
+ export default function FieldArray<TForm extends object, TProp extends keyof TForm>({ name, label, validate, disabled, children, ...rest }: FieldArrayProps<TForm, TProp>): JSX.Element;