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,58 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- import _readOnlyError from "@babel/runtime/helpers/esm/readOnlyError";
4
- var _excluded = ["className", "onChange", "value", "accept", "disabled", "multiple", "FileList", "placeholder", "dropzone"];
5
- import React from 'react';
6
- import { useDropzone } from 'react-dropzone';
7
- import classNames from 'classnames';
8
- import DefaultFileList from './DefaultFileList';
9
- export default function DropzoneFileInput(_ref) {
10
- var classNameProp = _ref.className,
11
- onChange = _ref.onChange,
12
- value = _ref.value,
13
- accept = _ref.accept,
14
- disabled = _ref.disabled,
15
- _ref$multiple = _ref.multiple,
16
- multiple = _ref$multiple === void 0 ? false : _ref$multiple,
17
- _ref$FileList = _ref.FileList,
18
- FileList = _ref$FileList === void 0 ? DefaultFileList : _ref$FileList,
19
- _ref$placeholder = _ref.placeholder,
20
- placeholder = _ref$placeholder === void 0 ? 'Drag and drop some file(s) here, or click to select file(s)' : _ref$placeholder,
21
- dropzone = _ref.dropzone,
22
- props = _objectWithoutProperties(_ref, _excluded);
23
-
24
- var _useDropzone = useDropzone({
25
- accept: accept,
26
- onDrop: onDrop,
27
- disabled: disabled,
28
- multiple: multiple
29
- }),
30
- _useDropzone$accepted = _useDropzone.acceptedFiles,
31
- acceptedFiles = _useDropzone$accepted === void 0 ? (acceptedFiles[0], _readOnlyError("acceptedFiles")) : _useDropzone$accepted,
32
- _useDropzone$fileReje = _useDropzone.fileRejections,
33
- fileRejections = _useDropzone$fileReje === void 0 ? fileRejections.push(acceptedFiles.slice(1, acceptedFiles.length)) : _useDropzone$fileReje,
34
- getRootProps = _useDropzone.getRootProps,
35
- getInputProps = _useDropzone.getInputProps,
36
- isDragAccept = _useDropzone.isDragAccept,
37
- isDragReject = _useDropzone.isDragReject;
38
-
39
- function onDrop(acceptedFiles) {
40
- if (!(acceptedFiles !== null && acceptedFiles !== void 0 && acceptedFiles.length) > 1 && !multiple) {
41
- onChange(null);
42
- } else {
43
- onChange(acceptedFiles);
44
- }
45
- }
46
-
47
- var className = classNames('react-dropzone', classNameProp, {
48
- accept: isDragAccept,
49
- reject: isDragReject,
50
- disabled: disabled
51
- });
52
- return /*#__PURE__*/React.createElement("section", {
53
- className: className
54
- }, /*#__PURE__*/React.createElement("div", getRootProps(), /*#__PURE__*/React.createElement("input", _extends({}, props, getInputProps())), /*#__PURE__*/React.createElement(React.Fragment, null, placeholder), !multiple && /*#__PURE__*/React.createElement("b", null, "Only one file accepted."), accept && /*#__PURE__*/React.createElement("b", null, "Files of type \"".concat(accept, "\" accepted"))), /*#__PURE__*/React.createElement("aside", null, /*#__PURE__*/React.createElement(FileList, {
55
- files: acceptedFiles,
56
- rejectedFiles: fileRejections
57
- })));
58
- }
@@ -1,62 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- var _excluded = ["className", "onChange", "value", "multiple"];
6
- import React, { useEffect, useRef, useState } from 'react';
7
- import DefaultFileList from './DefaultFileList';
8
- export default function FileInput(_ref) {
9
- var className = _ref.className,
10
- onChange = _ref.onChange,
11
- value = _ref.value,
12
- _ref$multiple = _ref.multiple,
13
- multiple = _ref$multiple === void 0 ? false : _ref$multiple,
14
- props = _objectWithoutProperties(_ref, _excluded);
15
-
16
- var inputRef = useRef();
17
-
18
- var _useState = useState([]),
19
- _useState2 = _slicedToArray(_useState, 2),
20
- acceptedFiles = _useState2[0],
21
- setAcceptedFiles = _useState2[1];
22
-
23
- useEffect(function () {
24
- if (!value && inputRef.current) {
25
- inputRef.current.value = null;
26
- }
27
- }, [value]);
28
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
29
- className: "custom-file file-input ".concat(className || '', " ").concat(props.disabled ? 'disabled' : '')
30
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("input", _extends({
31
- ref: inputRef,
32
- type: "file",
33
- className: "custom-file-input",
34
- onChange: handleChange,
35
- multiple: multiple
36
- }, props))), /*#__PURE__*/React.createElement("label", {
37
- className: "custom-file-label"
38
- }, /*#__PURE__*/React.createElement("div", null, !value && /*#__PURE__*/React.createElement("span", null, "Choose A File..."), value && (!multiple ? /*#__PURE__*/React.createElement("span", null, value.name, " - size: ", humanFileSize(value.size)) : value.length === 1 ? /*#__PURE__*/React.createElement("span", null, value[0].name, " - size: ", humanFileSize(value[0].size)) : /*#__PURE__*/React.createElement("span", null, "Multiple files selected."))))), /*#__PURE__*/React.createElement(DefaultFileList, {
39
- files: acceptedFiles
40
- }));
41
-
42
- function handleChange(e) {
43
- if (e == null || !e.target || !e.target.files.length) {
44
- onChange(null);
45
- } else {
46
- var files = _toConsumableArray(e.target.files);
47
-
48
- setAcceptedFiles(files);
49
-
50
- if (!multiple) {
51
- onChange(files[0]);
52
- } else {
53
- onChange(files);
54
- }
55
- }
56
- }
57
- }
58
-
59
- function humanFileSize(size) {
60
- var i = Math.floor(Math.log(size) / Math.log(1024));
61
- return (size / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + ['B', 'KB', 'MB', 'GB', 'TB'][i];
62
- }
@@ -1,3 +0,0 @@
1
- import FileInput from './FileInput';
2
- import DropzoneFileInput from './DropzoneFileInput';
3
- export { FileInput, DropzoneFileInput };
package/es/Form/index.js DELETED
@@ -1,3 +0,0 @@
1
- import Form from './Form';
2
- import ServerErrorContext from './ServerErrorContext';
3
- export { Form as default, ServerErrorContext };
package/es/FormGroup.js DELETED
@@ -1,22 +0,0 @@
1
- import React from 'react';
2
- import { FormGroup as BootstrapFormGroup, Label, FormFeedback, FormText, Alert } from 'reactstrap';
3
-
4
- var FormGroup = function FormGroup(_ref) {
5
- var label = _ref.label,
6
- id = _ref.id,
7
- helpText = _ref.helpText,
8
- className = _ref.className,
9
- style = _ref.style,
10
- children = _ref.children,
11
- meta = _ref.meta;
12
- return /*#__PURE__*/React.createElement(BootstrapFormGroup, {
13
- className: className,
14
- style: style
15
- }, !!meta.warning && /*#__PURE__*/React.createElement(Alert, {
16
- color: "warning"
17
- }, meta.warning), label && /*#__PURE__*/React.createElement(Label, {
18
- htmlFor: id
19
- }, label), children, meta.error && /*#__PURE__*/React.createElement(FormFeedback, null, meta.error), helpText && /*#__PURE__*/React.createElement(FormText, null, helpText));
20
- };
21
-
22
- export default FormGroup;
@@ -1,22 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["prepend", "append", "Component", "helpText"];
4
- import React from 'react';
5
- import { InputGroup } from 'reactstrap';
6
- import FormGroup from './FormGroup';
7
- import ErrorScrollTarget from './ErrorScrollTarget';
8
- export default function FormGroupWrapper(_ref) {
9
- var prepend = _ref.prepend,
10
- append = _ref.append,
11
- Component = _ref.Component,
12
- helpText = _ref.helpText,
13
- props = _objectWithoutProperties(_ref, _excluded);
14
-
15
- var meta = props.meta;
16
- return /*#__PURE__*/React.createElement(FormGroup, _extends({
17
- meta: meta,
18
- helpText: helpText
19
- }, props), /*#__PURE__*/React.createElement(ErrorScrollTarget, {
20
- name: props.name
21
- }), prepend || append ? /*#__PURE__*/React.createElement(InputGroup, null, prepend, /*#__PURE__*/React.createElement(Component, props), append) : /*#__PURE__*/React.createElement(Component, props));
22
- }
@@ -1,206 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
- var _excluded = ["className", "meta", "helpText"],
6
- _excluded2 = ["meta"],
7
- _excluded3 = ["includeEmptyOption", "options"],
8
- _excluded4 = ["optionsUrl", "includeEmptyOption", "includeOtherOption", "cache", "maxAge"],
9
- _excluded5 = ["meta"],
10
- _excluded6 = ["helpText", "meta"];
11
- import React from 'react';
12
- import classnames from 'classnames';
13
- import { Input as BootstrapInput, FormFeedback, CustomInput, FormText, Alert } from 'reactstrap';
14
- import lru from 'lru-cache';
15
- import PropTypes from 'prop-types';
16
- import TextareaAutosize from 'react-textarea-autosize';
17
- import { useAxiosRequest } from 'envoc-request';
18
- import FormGroupWrapper from '../FormGroupWrapper';
19
- import DatePickerInput from '../DatePickerInput';
20
- import ReactSelectField from '../ReactSelectField';
21
- import useStandardFormInput from '../useStandardFormInput';
22
- import { FileInput, DropzoneFileInput } from '../FileInput';
23
- export default function FormInput(props) {
24
- var _useStandardFormInput = useStandardFormInput(props),
25
- _useStandardFormInput2 = _slicedToArray(_useStandardFormInput, 2),
26
- input = _useStandardFormInput2[0],
27
- meta = _useStandardFormInput2[1];
28
-
29
- var className = props.className,
30
- hide = props.hide;
31
- return /*#__PURE__*/React.createElement(StandardFieldGroup, _extends({}, input, {
32
- className: classnames({
33
- 'd-none': hide
34
- }, className),
35
- meta: meta
36
- }));
37
- }
38
- FormInput.propTypes = {
39
- id: PropTypes.string,
40
- label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
41
- name: PropTypes.string.isRequired,
42
- placeholder: PropTypes.string,
43
- helpText: PropTypes.oneOfType([PropTypes.string, PropTypes.object])
44
- };
45
-
46
- function StandardFieldGroup(props) {
47
- switch (props.type) {
48
- case 'date':
49
- return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
50
- Component: DatePicker
51
- }));
52
-
53
- case 'select':
54
- if (props.optionsUrl) {
55
- return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
56
- Component: RemoteSelect
57
- }));
58
- } else {
59
- return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
60
- Component: Select
61
- }));
62
- }
63
-
64
- case 'checkbox':
65
- case 'radio':
66
- return Checkbox(props);
67
-
68
- case 'file':
69
- if (props.dropzone) {
70
- return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
71
- Component: DropzoneFileInput
72
- }));
73
- }
74
-
75
- return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
76
- Component: FileInput
77
- }));
78
-
79
- case 'textarea':
80
- return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
81
- Component: TextAreaInput
82
- }));
83
-
84
- default:
85
- return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
86
- Component: DefaultInput
87
- }));
88
- }
89
- }
90
-
91
- var TextAreaInput = function TextAreaInput(_ref) {
92
- var className = _ref.className,
93
- meta = _ref.meta,
94
- helpText = _ref.helpText,
95
- props = _objectWithoutProperties(_ref, _excluded);
96
-
97
- return /*#__PURE__*/React.createElement(TextareaAutosize, _extends({
98
- cacheMeasurements: true,
99
- className: classnames(className, 'form-control', meta.error ? 'is-invalid' : '')
100
- }, props));
101
- };
102
-
103
- var DefaultInput = function DefaultInput(_ref2) {
104
- var meta = _ref2.meta,
105
- props = _objectWithoutProperties(_ref2, _excluded2);
106
-
107
- return /*#__PURE__*/React.createElement(BootstrapInput, _extends({
108
- invalid: !!meta.error
109
- }, props));
110
- };
111
-
112
- var Select = function Select(_ref3) {
113
- var _ref3$includeEmptyOpt = _ref3.includeEmptyOption,
114
- includeEmptyOption = _ref3$includeEmptyOpt === void 0 ? true : _ref3$includeEmptyOpt,
115
- options = _ref3.options,
116
- props = _objectWithoutProperties(_ref3, _excluded3);
117
-
118
- var allOptions = includeEmptyOption && !props.isMulti ? [{
119
- label: ' ',
120
- value: null
121
- }].concat(_toConsumableArray(options)) : options;
122
- return /*#__PURE__*/React.createElement(ReactSelectField, _extends({}, props, {
123
- options: allOptions
124
- }));
125
- }; // low cache value just to prevent the same dropdown from hitting the API at the same time
126
- // TODO: global cache provider / "envoc-cache" instead of this static instance
127
-
128
-
129
- export var optionCache = new lru({
130
- max: 500,
131
- maxAge: 1000 * 10
132
- });
133
-
134
- var RemoteSelect = function RemoteSelect(_ref4) {
135
- var optionsUrl = _ref4.optionsUrl,
136
- _ref4$includeEmptyOpt = _ref4.includeEmptyOption,
137
- includeEmptyOption = _ref4$includeEmptyOpt === void 0 ? true : _ref4$includeEmptyOpt,
138
- _ref4$includeOtherOpt = _ref4.includeOtherOption,
139
- includeOtherOption = _ref4$includeOtherOpt === void 0 ? false : _ref4$includeOtherOpt,
140
- _ref4$cache = _ref4.cache,
141
- cache = _ref4$cache === void 0 ? optionCache : _ref4$cache,
142
- _ref4$maxAge = _ref4.maxAge,
143
- maxAge = _ref4$maxAge === void 0 ? 1000 * 10 : _ref4$maxAge,
144
- props = _objectWithoutProperties(_ref4, _excluded4);
145
-
146
- var request = {
147
- method: 'get',
148
- url: optionsUrl,
149
- cache: cache,
150
- maxAge: maxAge,
151
- autoExecute: true
152
- };
153
- var webRequest = useAxiosRequest(request);
154
-
155
- if (webRequest.error) {
156
- return /*#__PURE__*/React.createElement(Alert, {
157
- color: "danger"
158
- }, "An error occurred while loading.");
159
- }
160
-
161
- var options = [];
162
-
163
- if (webRequest.loading) {
164
- options.push({
165
- label: 'Loading...',
166
- value: ''
167
- });
168
- } else {
169
- if (includeEmptyOption && !props.isMulti) {
170
- options.push({
171
- label: ' ',
172
- value: null
173
- });
174
- }
175
-
176
- options.push.apply(options, _toConsumableArray(webRequest.resp.data.result));
177
-
178
- if (includeOtherOption) {
179
- options.push({
180
- label: 'Other',
181
- value: 'other'
182
- });
183
- }
184
- }
185
-
186
- return /*#__PURE__*/React.createElement(ReactSelectField, _extends({}, props, {
187
- options: options
188
- }));
189
- };
190
-
191
- var DatePicker = function DatePicker(_ref5) {
192
- var meta = _ref5.meta,
193
- props = _objectWithoutProperties(_ref5, _excluded5);
194
-
195
- return /*#__PURE__*/React.createElement(DatePickerInput, _extends({}, props, {
196
- className: meta.error ? 'is-invalid' : ''
197
- }));
198
- };
199
-
200
- var Checkbox = function Checkbox(_ref6) {
201
- var helpText = _ref6.helpText,
202
- meta = _ref6.meta,
203
- props = _objectWithoutProperties(_ref6, _excluded6);
204
-
205
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomInput, props), meta.error && /*#__PURE__*/React.createElement(FormFeedback, null, meta.error), helpText && /*#__PURE__*/React.createElement(FormText, null, helpText));
206
- };
@@ -1,2 +0,0 @@
1
- import FormInput from './FormInput';
2
- export default FormInput;
@@ -1,225 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
- var _excluded = ["id", "name", "label", "newItem", "component", "prepend", "disabled", "validate"],
7
- _excluded2 = ["className"],
8
- _excluded3 = ["className", "children"],
9
- _excluded4 = ["children", "className"],
10
- _excluded5 = ["children", "className"],
11
- _excluded6 = ["children", "className"];
12
-
13
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
-
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
-
17
- import React, { useEffect, useRef, useState } from 'react';
18
- import { v4 as uuid } from 'uuid';
19
- import classnames from 'classnames';
20
- import { Col, Card, Button, CardBody, Row, Alert } from 'reactstrap';
21
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
22
- import { faPlus, faTrash } from '@fortawesome/free-solid-svg-icons';
23
- import PropTypes from 'prop-types';
24
- import useStandardFormInput from '../useStandardFormInput';
25
- import NestedFormFieldContext from '../NestedFormFieldContext';
26
- import classNames from 'classnames';
27
- export default function FormInputArray(_ref) {
28
- var id = _ref.id,
29
- name = _ref.name,
30
- label = _ref.label,
31
- newItem = _ref.newItem,
32
- Component = _ref.component,
33
- Prepend = _ref.prepend,
34
- disabled = _ref.disabled,
35
- validate = _ref.validate,
36
- props = _objectWithoutProperties(_ref, _excluded);
37
-
38
- var _useStandardFormInput = useStandardFormInput(_objectSpread({
39
- id: id,
40
- name: name,
41
- validate: validate,
42
- disabled: disabled
43
- }, props)),
44
- _useStandardFormInput2 = _slicedToArray(_useStandardFormInput, 2),
45
- inputProps = _useStandardFormInput2[0],
46
- meta = _useStandardFormInput2[1];
47
-
48
- var inputPropsRef = useRef();
49
-
50
- var _useState = useState(false),
51
- _useState2 = _slicedToArray(_useState, 2),
52
- hasChangedLength = _useState2[0],
53
- setHasChangedLength = _useState2[1];
54
-
55
- inputPropsRef.current = inputProps;
56
- var values = inputProps.value || [];
57
- var length = values.length;
58
- useEffect(function () {
59
- return function () {
60
- setHasChangedLength(true);
61
- };
62
- }, [length, setHasChangedLength]);
63
- useEffect(function () {
64
- if (!hasChangedLength) {
65
- return;
66
- }
67
-
68
- inputPropsRef.current.onBlur();
69
- }, [length, hasChangedLength]);
70
- return /*#__PURE__*/React.createElement(Card, {
71
- className: "field-array-card"
72
- }, /*#__PURE__*/React.createElement(CardActionHeader, null, /*#__PURE__*/React.createElement(CardActionHeader.Title, null, label), /*#__PURE__*/React.createElement(CardActionHeader.Actions, null, !disabled && /*#__PURE__*/React.createElement(Button, {
73
- color: "link",
74
- onClick: addItem,
75
- title: "Add an additional item",
76
- className: "add-array-item"
77
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
78
- icon: faPlus
79
- }), " Add New"))), /*#__PURE__*/React.createElement(CardBody, null, meta.error && typeof meta.error === 'string' && /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, null, /*#__PURE__*/React.createElement(Alert, {
80
- className: "field-array-alert",
81
- color: "danger"
82
- }, meta.error))), Prepend && values.filter(function (x) {
83
- return !x.isDeleted;
84
- }).length > 0 && /*#__PURE__*/React.createElement(Row, {
85
- className: classnames('input-array-header')
86
- }, /*#__PURE__*/React.createElement(Prepend, null), !disabled && /*#__PURE__*/React.createElement("div", {
87
- className: "remove-array-item"
88
- })), values.map(function (value, index) {
89
- var itemName = "".concat(inputProps.name, "[").concat(index, "]");
90
- return /*#__PURE__*/React.createElement(Row, {
91
- key: value && value['form-input-array-key'] || value && value['id'] || itemName,
92
- className: classnames('field-array-item', {
93
- removed: value.isDeleted
94
- }),
95
- role: "listitem"
96
- }, /*#__PURE__*/React.createElement(NestedFormFieldContext.Provider, {
97
- value: itemName
98
- }, /*#__PURE__*/React.createElement("div", {
99
- className: "component"
100
- }, /*#__PURE__*/React.createElement(Component, _extends({
101
- value: value,
102
- name: itemName,
103
- disabled: disabled
104
- }, props)))), !disabled && /*#__PURE__*/React.createElement("div", {
105
- className: "remove-array-item"
106
- }, /*#__PURE__*/React.createElement(Button, {
107
- color: "link",
108
- onClick: function onClick() {
109
- return removeItem(index);
110
- },
111
- title: "Remove Item"
112
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
113
- icon: faTrash
114
- }))));
115
- })));
116
-
117
- function addItem() {
118
- if (disabled) {
119
- return;
120
- }
121
-
122
- var item = Object.assign({}, newItem, {
123
- 'form-input-array-key': uuid()
124
- });
125
- var mapped = [].concat(_toConsumableArray(values), [item]);
126
- inputProps.onChange(mapped);
127
- }
128
-
129
- function removeItem(index) {
130
- if (disabled) {
131
- return;
132
- }
133
-
134
- var itemToRemove = values[index]; // assumes anything from the server has an 'id' value sent
135
-
136
- if (!itemToRemove.id) {
137
- inputProps.onChange(values.filter(function (x) {
138
- return x !== itemToRemove;
139
- }));
140
- return;
141
- }
142
-
143
- var mapped = values.map(function (x) {
144
- return x !== itemToRemove ? x : Object.assign({}, x, {
145
- isDeleted: true
146
- });
147
- });
148
- inputProps.onChange(mapped);
149
- }
150
- }
151
-
152
- FormInputArray.Header = function (_ref2) {
153
- var className = _ref2.className,
154
- props = _objectWithoutProperties(_ref2, _excluded2);
155
-
156
- return /*#__PURE__*/React.createElement(FormInputArray.Column, _extends({
157
- className: classnames('mb-2', className)
158
- }, props));
159
- };
160
-
161
- FormInputArray.Column = function (_ref3) {
162
- var className = _ref3.className,
163
- children = _ref3.children,
164
- props = _objectWithoutProperties(_ref3, _excluded3);
165
-
166
- return /*#__PURE__*/React.createElement(Col, _extends({
167
- className: classnames('d-flex', className)
168
- }, props), children);
169
- };
170
-
171
- FormInputArray.propTypes = {
172
- name: PropTypes.string.isRequired,
173
- label: PropTypes.string.isRequired,
174
-
175
- /**
176
- * The component to use for each element of the array
177
- **/
178
- component: PropTypes.func.isRequired,
179
- disabled: PropTypes.bool,
180
-
181
- /**
182
- * When 'Add Item' is used this object is passed as the default (so you can, as an example, give a default)
183
- **/
184
- newItem: PropTypes.object,
185
-
186
- /**
187
- * Affixes a 'header' above all rows so you can have a grid-like display
188
- **/
189
- prepend: PropTypes.func,
190
-
191
- /**
192
- * standard validator, BUT, will be passed the whole array to validate
193
- **/
194
- validate: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.func), PropTypes.func])
195
- };
196
-
197
- function CardActionHeader(_ref4) {
198
- var children = _ref4.children,
199
- className = _ref4.className,
200
- props = _objectWithoutProperties(_ref4, _excluded4);
201
-
202
- return /*#__PURE__*/React.createElement("div", _extends({
203
- className: classnames('card-header card-action-header d-flex align-items-baseline', className)
204
- }, props), children);
205
- }
206
-
207
- CardActionHeader.Title = function Title(_ref5) {
208
- var children = _ref5.children,
209
- className = _ref5.className,
210
- props = _objectWithoutProperties(_ref5, _excluded5);
211
-
212
- return /*#__PURE__*/React.createElement("strong", _extends({
213
- className: classnames('mr-auto', className)
214
- }, props), children);
215
- };
216
-
217
- CardActionHeader.Actions = function Actions(_ref6) {
218
- var children = _ref6.children,
219
- className = _ref6.className,
220
- props = _objectWithoutProperties(_ref6, _excluded6);
221
-
222
- return /*#__PURE__*/React.createElement("div", _extends({
223
- className: classnames('card-action-header-actions', className)
224
- }, props), children);
225
- };
@@ -1,2 +0,0 @@
1
- import FormInputArray from './FormInputArray';
2
- export default FormInputArray;
package/es/FormSection.js DELETED
@@ -1,11 +0,0 @@
1
- import React, { useContext } from 'react';
2
- import NestedFormFieldContext from './NestedFormFieldContext';
3
- export default function FormSection(_ref) {
4
- var children = _ref.children,
5
- name = _ref.name;
6
- var parentContext = useContext(NestedFormFieldContext);
7
- var effectiveValue = parentContext ? "".concat(parentContext, ".").concat(name) : name;
8
- return /*#__PURE__*/React.createElement(NestedFormFieldContext.Provider, {
9
- value: effectiveValue
10
- }, children);
11
- }
package/es/IconInput.js DELETED
@@ -1,33 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["className", "icon", "helpText"];
5
- import React from 'react';
6
- import PropTypes from 'prop-types';
7
- import { InputGroup, InputGroupAddon, InputGroupText, Input as BootstrapInput, FormFeedback } from 'reactstrap';
8
- import useStandardFormInput from './useStandardFormInput';
9
- export default function IconInput(_ref) {
10
- var className = _ref.className,
11
- icon = _ref.icon,
12
- helpText = _ref.helpText,
13
- props = _objectWithoutProperties(_ref, _excluded);
14
-
15
- var _useStandardFormInput = useStandardFormInput(props),
16
- _useStandardFormInput2 = _slicedToArray(_useStandardFormInput, 2),
17
- input = _useStandardFormInput2[0],
18
- meta = _useStandardFormInput2[1];
19
-
20
- return /*#__PURE__*/React.createElement(InputGroup, {
21
- className: className
22
- }, /*#__PURE__*/React.createElement(InputGroupAddon, {
23
- addonType: "prepend"
24
- }, /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement("i", {
25
- className: icon
26
- }))), /*#__PURE__*/React.createElement(BootstrapInput, _extends({
27
- invalid: !!meta.error
28
- }, input)), meta.error && /*#__PURE__*/React.createElement(FormFeedback, null, meta.error), helpText && /*#__PURE__*/React.createElement(FormFeedback, null, helpText));
29
- }
30
- IconInput.propTypes = {
31
- icon: PropTypes.string,
32
- className: PropTypes.string
33
- };
@@ -1,8 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import React from 'react';
3
- import FormInput from '../FormInput';
4
- export default function InlineFormInput(props) {
5
- return /*#__PURE__*/React.createElement(FormInput, _extends({
6
- className: "inline-form-input col"
7
- }, props));
8
- }
@@ -1,2 +0,0 @@
1
- import InlineFormInput from './InlineFormInput';
2
- export default InlineFormInput;