envoc-form 3.3.0 → 4.0.1-2

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 (455) 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 -25
  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 -262
  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 -101
  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 +179 -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 +33 -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 +30 -0
  262. package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +32 -0
  263. package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +30 -0
  264. package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +29 -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 -3
  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 -4
  314. package/es/Form/index.js +0 -5
  315. package/es/FormGroup.js +0 -22
  316. package/es/FormGroupWrapper.js +0 -22
  317. package/es/FormInput/FormInput.js +0 -212
  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/MoneyFormattedInput/MoneyFormattedInput.js +0 -106
  326. package/es/MoneyFormattedInput/index.js +0 -2
  327. package/es/MoneyInput/InlineMoneyInput.js +0 -7
  328. package/es/MoneyInput/MoneyInput.js +0 -7
  329. package/es/MoneyInput/index.js +0 -3
  330. package/es/MoneyInput/moneyInputProps.js +0 -13
  331. package/es/NestedFormFieldContext.js +0 -4
  332. package/es/ReactSelectField/ReactSelectField.js +0 -162
  333. package/es/ReactSelectField/index.js +0 -2
  334. package/es/normalizers.js +0 -39
  335. package/es/selectors.js +0 -6
  336. package/es/useStandardFormInput.js +0 -119
  337. package/es/utils/index.js +0 -3
  338. package/es/validators/index.js +0 -2
  339. package/es/validators/validators.js +0 -94
  340. package/lib/AddressInput/index.js +0 -23
  341. package/lib/BoolInput/BoolInput.js +0 -23
  342. package/lib/BoolInput/InlineBoolInput.js +0 -23
  343. package/lib/BoolInput/boolOptions.js +0 -15
  344. package/lib/BoolInput/index.js +0 -23
  345. package/lib/ConfirmBaseForm/index.js +0 -13
  346. package/lib/ConfirmDeleteForm/index.js +0 -13
  347. package/lib/DatePickerInput/DatePickerInput.js +0 -113
  348. package/lib/DatePickerInput/index.js +0 -13
  349. package/lib/ErrorScrollTarget.js +0 -20
  350. package/lib/FileInput/DefaultFileList.js +0 -47
  351. package/lib/FileInput/DropzoneFileInput.js +0 -75
  352. package/lib/FileInput/FileInput.js +0 -82
  353. package/lib/FileInput/index.js +0 -31
  354. package/lib/Form/index.js +0 -39
  355. package/lib/FormGroup.js +0 -33
  356. package/lib/FormGroupWrapper.js +0 -37
  357. package/lib/FormInput/FormInput.js +0 -236
  358. package/lib/FormInput/index.js +0 -13
  359. package/lib/FormInputArray/FormInputArray.js +0 -248
  360. package/lib/FormInputArray/index.js +0 -13
  361. package/lib/FormSection.js +0 -28
  362. package/lib/IconInput.js +0 -51
  363. package/lib/InlineFormInput/InlineFormInput.js +0 -20
  364. package/lib/InlineFormInput/index.js +0 -13
  365. package/lib/MoneyFormattedInput/MoneyFormattedInput.js +0 -126
  366. package/lib/MoneyFormattedInput/index.js +0 -15
  367. package/lib/MoneyInput/InlineMoneyInput.js +0 -20
  368. package/lib/MoneyInput/MoneyInput.js +0 -20
  369. package/lib/MoneyInput/index.js +0 -23
  370. package/lib/MoneyInput/moneyInputProps.js +0 -26
  371. package/lib/NestedFormFieldContext.js +0 -16
  372. package/lib/ReactSelectField/ReactSelectField.js +0 -187
  373. package/lib/ReactSelectField/index.js +0 -31
  374. package/lib/normalizers.js +0 -51
  375. package/lib/selectors.js +0 -18
  376. package/lib/useStandardFormInput.js +0 -135
  377. package/lib/utils/index.js +0 -23
  378. package/lib/validators/index.js +0 -17
  379. package/lib/validators/validators.js +0 -130
  380. package/src/AddressInput/AddressInput.js +0 -73
  381. package/src/AddressInput/__snapshots__/AddesssInput.test.js.snap +0 -207
  382. package/src/AddressInput/index.js +0 -3
  383. package/src/BoolInput/BoolInput.js +0 -7
  384. package/src/BoolInput/BoolInput.test.js +0 -23
  385. package/src/BoolInput/InlineBoolInput.js +0 -7
  386. package/src/BoolInput/__snapshots__/BoolInput.test.js.snap +0 -89
  387. package/src/BoolInput/boolOptions.js +0 -6
  388. package/src/BoolInput/index.js +0 -4
  389. package/src/ConfirmBaseForm/ConfirmBaseForm.js +0 -37
  390. package/src/ConfirmBaseForm/ConfirmBaseForm.test.js +0 -14
  391. package/src/ConfirmBaseForm/index.js +0 -2
  392. package/src/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -39
  393. package/src/ConfirmDeleteForm/index.js +0 -2
  394. package/src/DatePickerInput/DatePickerInput.js +0 -49
  395. package/src/DatePickerInput/DatePickerInput.test.js +0 -74
  396. package/src/DatePickerInput/__snapshots__/DatePickerInput.test.js.snap +0 -134
  397. package/src/DatePickerInput/date-picker-input.scss +0 -42
  398. package/src/DatePickerInput/index.js +0 -3
  399. package/src/ErrorScrollTarget.js +0 -6
  400. package/src/FileInput/DefaultFileList.js +0 -39
  401. package/src/FileInput/DropzoneFileInput.js +0 -56
  402. package/src/FileInput/DropzoneFileInput.test.js +0 -24
  403. package/src/FileInput/FileInput.js +0 -77
  404. package/src/FileInput/FileInput.test.js +0 -24
  405. package/src/FileInput/__snapshots__/DropzoneFileInput.test.js.snap +0 -57
  406. package/src/FileInput/__snapshots__/FileInput.test.js.snap +0 -58
  407. package/src/FileInput/file-input.scss +0 -58
  408. package/src/FileInput/index.js +0 -5
  409. package/src/Form/Form.test.js +0 -23
  410. package/src/Form/FormBasedPreventNavigation.js +0 -25
  411. package/src/Form/ServerErrorContext.js +0 -7
  412. package/src/Form/index.js +0 -11
  413. package/src/FormGroup.js +0 -30
  414. package/src/FormGroupWrapper.js +0 -28
  415. package/src/FormInput/FormInput.js +0 -148
  416. package/src/FormInput/FormInput.test.js +0 -66
  417. package/src/FormInput/__snapshots__/FormInput.test.js.snap +0 -323
  418. package/src/FormInput/form-input.scss +0 -9
  419. package/src/FormInput/index.js +0 -2
  420. package/src/FormInputArray/FormInputArray.js +0 -224
  421. package/src/FormInputArray/FormInputArray.test.js +0 -108
  422. package/src/FormInputArray/__snapshots__/FormInputArray.test.js.snap +0 -52
  423. package/src/FormInputArray/form-input-array.scss +0 -13
  424. package/src/FormInputArray/index.js +0 -2
  425. package/src/FormSection.js +0 -13
  426. package/src/IconInput.js +0 -31
  427. package/src/InlineFormInput/InlineFormInput.js +0 -6
  428. package/src/InlineFormInput/InlineFormInput.test.js +0 -23
  429. package/src/InlineFormInput/__snapshots__/InlineFormInput.test.js.snap +0 -26
  430. package/src/InlineFormInput/index.js +0 -3
  431. package/src/InlineFormInput/inline-form-input.scss +0 -3
  432. package/src/MoneyFormattedInput/MoneyFormattedInput.js +0 -115
  433. package/src/MoneyFormattedInput/index.js +0 -3
  434. package/src/MoneyInput/InlineMoneyInput.js +0 -7
  435. package/src/MoneyInput/MoneyInput.js +0 -7
  436. package/src/MoneyInput/MoneyInputs.test.js +0 -43
  437. package/src/MoneyInput/__snapshots__/MoneyInputs.test.js.snap +0 -81
  438. package/src/MoneyInput/index.js +0 -4
  439. package/src/MoneyInput/money-input.scss +0 -3
  440. package/src/MoneyInput/moneyInputProps.js +0 -12
  441. package/src/NestedFormFieldContext.js +0 -6
  442. package/src/ReactSelectField/ReactSelectField.js +0 -155
  443. package/src/ReactSelectField/index.js +0 -6
  444. package/src/ReactSelectField/react-select-field.scss +0 -5
  445. package/src/SubmitFormButton.js +0 -28
  446. package/src/__Tests__/FormTestBase.js +0 -14
  447. package/src/__Tests__/IconInput.test.js +0 -23
  448. package/src/__Tests__/__snapshots__/IconInput.test.js.snap +0 -38
  449. package/src/index.js +0 -70
  450. package/src/selectors.js +0 -3
  451. package/src/useStandardFormInput.js +0 -118
  452. package/src/utils/index.js +0 -3
  453. package/src/utils/typeChecks.js +0 -18
  454. package/src/validators/index.js +0 -2
  455. package/src/validators/validators.js +0 -93
@@ -1,52 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`FormInputArray has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- >
8
- <div
9
- class="field-array-card card"
10
- >
11
- <div
12
- class="card-header card-action-header d-flex align-items-baseline"
13
- >
14
- <strong
15
- class="mr-auto"
16
- >
17
- Names
18
- </strong>
19
- <div
20
- class="card-action-header-actions"
21
- >
22
- <button
23
- class="add-array-item btn btn-link"
24
- title="Add an additional item"
25
- type="button"
26
- >
27
- <svg
28
- aria-hidden="true"
29
- class="svg-inline--fa fa-plus fa-w-14 "
30
- data-icon="plus"
31
- data-prefix="fas"
32
- focusable="false"
33
- role="img"
34
- viewBox="0 0 448 512"
35
- xmlns="http://www.w3.org/2000/svg"
36
- >
37
- <path
38
- d="M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"
39
- fill="currentColor"
40
- />
41
- </svg>
42
- Add New
43
- </button>
44
- </div>
45
- </div>
46
- <div
47
- class="card-body"
48
- />
49
- </div>
50
- </form>
51
- </DocumentFragment>
52
- `;
@@ -1,13 +0,0 @@
1
- .field-array-card {
2
- margin-bottom: 1rem;
3
-
4
- .field-array-item {
5
- &.removed {
6
- display: none;
7
- }
8
-
9
- > .remove-array-item {
10
- display: flex;
11
- }
12
- }
13
- }
@@ -1,2 +0,0 @@
1
- import FormInputArray from './FormInputArray';
2
- export default FormInputArray;
@@ -1,13 +0,0 @@
1
- import React, { useContext } from 'react';
2
- import NestedFormFieldContext from './NestedFormFieldContext';
3
-
4
- export default function FormSection({ children, name }) {
5
- const parentContext = useContext(NestedFormFieldContext);
6
- const effectiveValue = parentContext ? `${parentContext}.${name}` : name;
7
-
8
- return (
9
- <NestedFormFieldContext.Provider value={effectiveValue}>
10
- {children}
11
- </NestedFormFieldContext.Provider>
12
- );
13
- }
package/src/IconInput.js DELETED
@@ -1,31 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import {
4
- InputGroup,
5
- InputGroupAddon,
6
- InputGroupText,
7
- Input as BootstrapInput,
8
- FormFeedback,
9
- } from 'reactstrap';
10
- import useStandardFormInput from './useStandardFormInput';
11
-
12
- export default function IconInput({ className, icon, helpText, ...props }) {
13
- const [input, meta] = useStandardFormInput(props);
14
- return (
15
- <InputGroup className={className}>
16
- <InputGroupAddon addonType="prepend">
17
- <InputGroupText>
18
- <i className={icon} />
19
- </InputGroupText>
20
- </InputGroupAddon>
21
- <BootstrapInput invalid={!!meta.error} {...input} />
22
- {meta.error && <FormFeedback>{meta.error}</FormFeedback>}
23
- {helpText && <FormFeedback>{helpText}</FormFeedback>}
24
- </InputGroup>
25
- );
26
- }
27
-
28
- IconInput.propTypes = {
29
- icon: PropTypes.string,
30
- className: PropTypes.string,
31
- };
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import FormInput from '../FormInput';
3
-
4
- export default function InlineFormInput(props) {
5
- return <FormInput className="inline-form-input col" {...props} />;
6
- }
@@ -1,23 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import { FormTestBase } from '../__Tests__';
4
- import InlineFormInput from './InlineFormInput';
5
-
6
- describe('MoneyInput', () => {
7
- it('renders without crashing', () => {
8
- render(
9
- <FormTestBase>
10
- <InlineFormInput name="test" />
11
- </FormTestBase>
12
- );
13
- });
14
-
15
- it('has matching snapshot', () => {
16
- const renderResult = render(
17
- <FormTestBase>
18
- <InlineFormInput name="test" />
19
- </FormTestBase>
20
- );
21
- expect(renderResult.asFragment()).toMatchSnapshot();
22
- });
23
- });
@@ -1,26 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`MoneyInput has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- >
8
- <div
9
- class="inline-form-input col form-group"
10
- >
11
- <div
12
- id="test-error-scroll-target"
13
- style="display: none;"
14
- />
15
- <input
16
- aria-invalid="false"
17
- class="inline-form-input col form-control"
18
- id="test"
19
- name="test"
20
- type="text"
21
- value=""
22
- />
23
- </div>
24
- </form>
25
- </DocumentFragment>
26
- `;
@@ -1,3 +0,0 @@
1
- import InlineFormInput from './InlineFormInput';
2
-
3
- export default InlineFormInput;
@@ -1,3 +0,0 @@
1
- .inline-form-input.form-group {
2
- display: inline-block;
3
- }
@@ -1,115 +0,0 @@
1
- import React, { useEffect, useMemo, useState } from 'react';
2
- import { useField } from 'formik';
3
- import debounce from 'lodash/debounce';
4
- import classNames from 'classnames';
5
-
6
- // Money input that will format the value to always have commas, a single decimal, and
7
- // exactly two digits after the decimal. This happens after a delay (using debounce).
8
- export default function MoneyFormattedInput({
9
- name,
10
- onBlur,
11
- onChange,
12
- classname,
13
- disabled = false,
14
- debounceTimer = 1500,
15
- meta,
16
- }) {
17
- // The displayed state and formik state are two seperate values that we handle
18
- const [inputValue, setInputValue] = useState('');
19
- const [{ value: formikValue }] = useField(name);
20
-
21
- const handleChangeDebounce = useMemo(() => {
22
- return debounce(debouncedUpdateInput, debounceTimer);
23
-
24
- function debouncedUpdateInput(value) {
25
- var result = formatToCurrency(value);
26
-
27
- setInputValue(result ?? '');
28
-
29
- // sets value in formik
30
- onChange(result ?? '');
31
- onBlur();
32
- }
33
- }, [onBlur, onChange]);
34
-
35
- // Format first render
36
- useEffect(() => {
37
- var formattedFormikValue = formatToCurrency(formikValue);
38
- setInputValue(formattedFormikValue ?? '');
39
- }, [formikValue]);
40
-
41
- function handleChange(e) {
42
- const onlyNumbersDecimalComma = e.target.value
43
- .toString()
44
- .replace(/[^.,0-9]/g, '');
45
-
46
- setInputValue(onlyNumbersDecimalComma);
47
- handleChangeDebounce(onlyNumbersDecimalComma);
48
- }
49
-
50
- return (
51
- <>
52
- <div className="input-group">
53
- <div className="input-group-prepend">
54
- <span className="input-group-text">$</span>
55
- </div>
56
- <input
57
- name={name}
58
- type="text"
59
- value={inputValue}
60
- onChange={handleChange}
61
- onBlur={onBlur}
62
- disabled={disabled}
63
- className={classNames(
64
- classname,
65
- meta.error === 'Required' ? 'is-invalid' : '',
66
- 'react-select-input money-input form-control'
67
- )}
68
- />
69
- </div>
70
- </>
71
- );
72
- }
73
-
74
- function formatToCurrency(value) {
75
- if (value === null || value === undefined) {
76
- return null;
77
- }
78
-
79
- // 'value' is sometimes a number on first render
80
- const onlyNumbersDecimal = value.toString().replace(/[^.0-9]/g, '');
81
-
82
- if (!onlyNumbersDecimal) {
83
- return null;
84
- }
85
-
86
- var result = new Intl.NumberFormat('en-US', {
87
- style: 'decimal',
88
- minimumSignificantDigits: 2,
89
- minimumFractionDigits: 2,
90
- }).format(parseFloat(onlyNumbersDecimal));
91
-
92
- result = formatTwoDecimalPlaces(result);
93
- return result;
94
- }
95
-
96
- function formatTwoDecimalPlaces(value) {
97
- const decimalIndex = value.indexOf('.');
98
-
99
- // If the string doesn't contain a decimal OR
100
- // the string contains a single '.' with nothing to the right of the decimal -> append '.00'
101
- // Reason: parseFloat will remove '.00' from whole numbers (ex. 350.00 -> 350)
102
- if (!value.includes('.')) {
103
- return value.concat('.00');
104
- }
105
- // If 2 or more characters to the right of the decimal
106
- else if (!!value.charAt(decimalIndex + 2)) {
107
- return value.substring(0, decimalIndex + 3);
108
- }
109
- // If only 1 character to the right of the decimal
110
- else if (!!value.charAt(decimalIndex + 1)) {
111
- return value.substring(0, decimalIndex + 2).concat('0');
112
- }
113
-
114
- return value;
115
- }
@@ -1,3 +0,0 @@
1
- import MoneyFormattedInput from './MoneyFormattedInput';
2
-
3
- export { MoneyFormattedInput };
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import InlineFormInput from '../InlineFormInput';
3
- import moneyInputProps from './moneyInputProps';
4
-
5
- export default function InlineMoneyInput(props) {
6
- return <InlineFormInput {...moneyInputProps} {...props} />;
7
- }
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import FormInput from '../FormInput';
3
- import moneyInputProps from './moneyInputProps';
4
-
5
- export default function MoneyInput(props) {
6
- return <FormInput {...moneyInputProps} {...props} />;
7
- }
@@ -1,43 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import { FormTestBase } from '../__Tests__';
4
- import MoneyInput from './MoneyInput';
5
- import InlineMoneyInput from './InlineMoneyInput';
6
-
7
- describe('MoneyInput', () => {
8
- it('renders without crashing', () => {
9
- render(
10
- <FormTestBase>
11
- <MoneyInput name="moneytest" />
12
- </FormTestBase>
13
- );
14
- });
15
-
16
- it('has matching snapshot', () => {
17
- const renderResult = render(
18
- <FormTestBase>
19
- <MoneyInput name="moneytest" />
20
- </FormTestBase>
21
- );
22
- expect(renderResult.asFragment()).toMatchSnapshot();
23
- });
24
- });
25
-
26
- describe('InlineMoneyInput', () => {
27
- it('renders without crashing', () => {
28
- render(
29
- <FormTestBase>
30
- <InlineMoneyInput name="moneytest" />
31
- </FormTestBase>
32
- );
33
- });
34
-
35
- it('has matching snapshot', () => {
36
- const renderResult = render(
37
- <FormTestBase>
38
- <InlineMoneyInput name="moneytest" />
39
- </FormTestBase>
40
- );
41
- expect(renderResult.asFragment()).toMatchSnapshot();
42
- });
43
- });
@@ -1,81 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`InlineMoneyInput has matching snapshot 1`] = `
4
- <DocumentFragment>
5
- <form
6
- action="#"
7
- >
8
- <div
9
- class="money-input form-group"
10
- >
11
- <div
12
- id="moneytest-error-scroll-target"
13
- style="display: none;"
14
- />
15
- <div
16
- class="input-group"
17
- >
18
- <div
19
- class="input-group-prepend"
20
- >
21
- <span
22
- class="input-group-text"
23
- >
24
- $
25
- </span>
26
- </div>
27
- <input
28
- aria-invalid="false"
29
- class="money-input form-control"
30
- id="moneytest"
31
- min="0"
32
- name="moneytest"
33
- step="0.01"
34
- type="number"
35
- value=""
36
- />
37
- </div>
38
- </div>
39
- </form>
40
- </DocumentFragment>
41
- `;
42
-
43
- exports[`MoneyInput has matching snapshot 1`] = `
44
- <DocumentFragment>
45
- <form
46
- action="#"
47
- >
48
- <div
49
- class="money-input form-group"
50
- >
51
- <div
52
- id="moneytest-error-scroll-target"
53
- style="display: none;"
54
- />
55
- <div
56
- class="input-group"
57
- >
58
- <div
59
- class="input-group-prepend"
60
- >
61
- <span
62
- class="input-group-text"
63
- >
64
- $
65
- </span>
66
- </div>
67
- <input
68
- aria-invalid="false"
69
- class="money-input form-control"
70
- id="moneytest"
71
- min="0"
72
- name="moneytest"
73
- step="0.01"
74
- type="number"
75
- value=""
76
- />
77
- </div>
78
- </div>
79
- </form>
80
- </DocumentFragment>
81
- `;
@@ -1,4 +0,0 @@
1
- import MoneyInput from './MoneyInput';
2
- import InlineMoneyInput from './InlineMoneyInput';
3
-
4
- export { MoneyInput, InlineMoneyInput };
@@ -1,3 +0,0 @@
1
- input.money-input {
2
- text-align: right;
3
- }
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import { InputGroupAddon } from 'reactstrap';
3
-
4
- const MoneyPrepend = <InputGroupAddon addonType="prepend">$</InputGroupAddon>;
5
- const moneyInputProps = {
6
- type: 'number',
7
- step: '0.01',
8
- min: '0',
9
- prepend: MoneyPrepend,
10
- className: 'money-input',
11
- };
12
- export default moneyInputProps;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
-
3
- // TODO: better name?
4
- const NestedFormFieldContext = React.createContext();
5
-
6
- export default NestedFormFieldContext;
@@ -1,155 +0,0 @@
1
- import classNames from 'classnames';
2
- import React, { useEffect, useRef } from 'react';
3
- import { default as ReactSelect } from 'react-select';
4
-
5
- export const overrideTheme = (theme) => {
6
- return {
7
- ...theme,
8
- borderRadius: 0,
9
- spacing: Object.assign(
10
- {},
11
- { ...theme.spacing },
12
- { baseUnit: 2, controlHeight: 35 }
13
- ),
14
- };
15
- };
16
-
17
- const red = '#f86c6b';
18
- const inputBorderColor = '#c2cfd6';
19
- const inputBorderColorFocused = '#8ad4ee';
20
- const inputBoxShadowFocused = '0 0 0 0.2rem rgba(32, 168, 216, 0.25)';
21
- const placeholderColor = '#9ca3af';
22
- const disabledSingleValueColor = '#4b5563';
23
-
24
- export const customStyles = {
25
- control: (provided, { isFocused, selectProps }) => {
26
- return {
27
- ...provided,
28
- paddingLeft: '7px',
29
- '&:hover': {
30
- borderColor: isFocused ? inputBorderColorFocused : inputBorderColor,
31
- },
32
- borderColor: selectProps.hasErrors
33
- ? red
34
- : isFocused
35
- ? inputBorderColorFocused
36
- : inputBorderColor,
37
- boxShadow: isFocused ? inputBoxShadowFocused : '',
38
- };
39
- },
40
- menu: (provided) => ({ ...provided, zIndex: 3 }),
41
- singleValue: (provided, state) => {
42
- const color = state.isDisabled ? disabledSingleValueColor : '';
43
- return { ...provided, color };
44
- },
45
- placeholder: (defaultStyles) => {
46
- return { ...defaultStyles, color: placeholderColor };
47
- },
48
- };
49
-
50
- // internal to forms use only
51
- export default function ReactSelectInput({
52
- className,
53
- meta,
54
- disabled,
55
- onSelected,
56
- onChange,
57
- onBlur,
58
- value,
59
- options,
60
- defaultValue,
61
- defaultIndex,
62
- ...props
63
- }) {
64
- const selectedItems = getSelectedItems();
65
- const onSelectedRef = useRef(onSelected);
66
- onSelectedRef.current = onSelected;
67
-
68
- useEffect(() => {
69
- onSelectedRef.current && onSelectedRef.current(selectedItems);
70
- }, [selectedItems]);
71
-
72
- const onBlurRef = useRef(onBlur);
73
- onBlurRef.current = onBlur;
74
- const { touched } = meta;
75
-
76
- useEffect(() => {
77
- if (!touched) return;
78
-
79
- // without the timer set to 0, if the empty option is selected the required message doesn't appear until clicked away from the select input
80
- const timerRef = setTimeout(() => {
81
- onBlurRef.current && onBlurRef.current();
82
- }, 0);
83
-
84
- return () => {
85
- clearTimeout(timerRef);
86
- };
87
- }, [value, touched]);
88
-
89
- const classes = classNames(className, 'react-select-input', {
90
- 'is-invalid': !!meta.error,
91
- disabled: disabled,
92
- });
93
-
94
- return (
95
- <ReactSelect
96
- {...props}
97
- options={options}
98
- isDisabled={disabled}
99
- hasErrors={meta.error}
100
- getOptionLabel={(option) => option.label}
101
- getOptionValue={getOptionValue}
102
- value={selectedItems}
103
- onChange={handleChange}
104
- onBlur={() => onBlur()}
105
- className={classes}
106
- theme={overrideTheme}
107
- styles={customStyles}
108
- menuPortalTarget={document.body}
109
- menuPlacement="auto"
110
- />
111
- );
112
-
113
- function getOptionValue(option) {
114
- if (typeof props.getOptionValue === 'function') {
115
- return props.getOptionValue(option);
116
- } else {
117
- return option.value;
118
- }
119
- }
120
-
121
- function getSelectedItems() {
122
- if (defaultValue !== undefined && value === '') {
123
- value = defaultValue;
124
- onChange(defaultValue);
125
- }
126
- if (defaultIndex !== undefined && value === '') {
127
- const item = options[defaultIndex];
128
- onChange(getOptionValue(item));
129
- return item;
130
- }
131
-
132
- const valueIsArray = Array.isArray(value);
133
- const matches = options.filter((x) => {
134
- if (valueIsArray) {
135
- return value.includes(getOptionValue(x));
136
- } else {
137
- return value === getOptionValue(x);
138
- }
139
- });
140
- if (matches.length < 1) {
141
- return null;
142
- }
143
- return matches;
144
- }
145
-
146
- function handleChange(e) {
147
- if (e == null) {
148
- onChange(null);
149
- } else if (Array.isArray(e)) {
150
- onChange(e.map((x) => x.value));
151
- } else {
152
- onChange(e.value);
153
- }
154
- }
155
- }
@@ -1,6 +0,0 @@
1
- import ReactSelectField, {
2
- overrideTheme,
3
- customStyles,
4
- } from './ReactSelectField';
5
-
6
- export { ReactSelectField as default, overrideTheme, customStyles };
@@ -1,5 +0,0 @@
1
- @import '../variables';
2
-
3
- div.react-select-input.has-error {
4
- border-color: $red;
5
- }
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
- import { Button } from 'reactstrap';
3
- import { useFormikContext } from 'formik';
4
-
5
- export default function SubmitFormButton({
6
- allowPristineSubmit,
7
- children,
8
- ...props
9
- }) {
10
- const { isSubmitting, dirty } = useFormikContext();
11
- const preventSubmit = (!dirty && !allowPristineSubmit) || isSubmitting;
12
- return (
13
- <Button
14
- type="submit"
15
- color="primary"
16
- disabled={preventSubmit}
17
- title={
18
- isSubmitting
19
- ? 'Loading, please wait...'
20
- : preventSubmit
21
- ? "You haven't made any changes"
22
- : ''
23
- }
24
- {...props}>
25
- {children || 'Submit'}
26
- </Button>
27
- );
28
- }