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,6 +1,6 @@
1
- export const phoneNumber = (value) => {
1
+ export const phoneNumber = (value: string | undefined) => {
2
2
  if (!value) {
3
- return value;
3
+ return undefined;
4
4
  }
5
5
 
6
6
  const onlyNums = value.replace(/[^\d]/g, '');
@@ -17,7 +17,7 @@ export const phoneNumber = (value) => {
17
17
  )}`;
18
18
  }
19
19
  if (onlyNums.length <= 13) {
20
- const countryCodeLength = onlyNums - 10;
20
+ const countryCodeLength = onlyNums.length - 10;
21
21
  return `+${onlyNums.slice(0, countryCodeLength)} ${onlyNums.slice(
22
22
  countryCodeLength,
23
23
  3 + countryCodeLength
@@ -30,9 +30,9 @@ export const phoneNumber = (value) => {
30
30
  return onlyNums;
31
31
  };
32
32
 
33
- export const zipCode = (value) => {
33
+ export const zipCode = (value: string | undefined) => {
34
34
  if (!value) {
35
- return value;
35
+ return undefined;
36
36
  }
37
37
  const onlyNums = value.replace(/[^\d]/g, '');
38
38
  if (onlyNums.length > 5) {
@@ -0,0 +1,27 @@
1
+ import SelectGroup, { SelectOption } from './SelectGroup';
2
+ import { SelectGroupPropsHelper } from './SelectGroupPropsHelper';
3
+
4
+ const booleanOptions: SelectOption<boolean>[] = [
5
+ {
6
+ label: 'Yes',
7
+ value: true,
8
+ },
9
+ {
10
+ label: 'No',
11
+ value: false,
12
+ },
13
+ ];
14
+
15
+ export interface BooleanSelectGroupProps
16
+ extends Omit<SelectGroupPropsHelper<boolean>, 'options'> {
17
+ options?: SelectOption<boolean>[];
18
+ }
19
+ export function BooleanSelectGroup(props: BooleanSelectGroupProps) {
20
+ return (
21
+ <SelectGroup
22
+ multiple={false}
23
+ {...props}
24
+ options={props.options ?? booleanOptions}
25
+ />
26
+ );
27
+ }
@@ -0,0 +1,14 @@
1
+ import SelectGroup from './SelectGroup';
2
+ import { SelectGroupPropsHelper } from './SelectGroupPropsHelper';
3
+
4
+ export interface MultiNumberSelectGroupProps
5
+ extends SelectGroupPropsHelper<number[]> {}
6
+ export function MultiNumberSelectGroup(props: MultiNumberSelectGroupProps) {
7
+ return <SelectGroup multiple={true} {...props} />;
8
+ }
9
+
10
+ export interface SingleNumberSelectGroupProps
11
+ extends SelectGroupPropsHelper<number> {}
12
+ export function SingleNumberSelectGroup(props: SingleNumberSelectGroupProps) {
13
+ return <SelectGroup multiple={false} {...props} />;
14
+ }
@@ -0,0 +1,106 @@
1
+ import { default as ReactSelect } from 'react-select';
2
+ import classNames from 'classnames';
3
+ import { InjectedFieldProps } from '../Field/InjectedFieldProps';
4
+ import Group, { GroupProps } from '../Group';
5
+
6
+ export interface SelectOption<TValue> {
7
+ value: (TValue extends Array<infer P> ? P : TValue) | undefined;
8
+ label: string;
9
+ }
10
+
11
+ // types roughly like the useService (envoc-core) result
12
+ interface OptionsApiResult<TValue> {
13
+ // we must apply Partial here because all results from template code gen are optional
14
+ result?: Partial<SelectOption<TValue>>[];
15
+ }
16
+
17
+ interface OptionsUseServiceResult<TValue> {
18
+ loading?: boolean;
19
+ // we must apply Partial here because all results from template code gen are optional
20
+ resp?: Partial<SelectOption<TValue>>[] | OptionsApiResult<TValue> | null;
21
+ error?: any;
22
+ }
23
+
24
+ export interface SelectGroupProps<TValue>
25
+ extends InjectedFieldProps<TValue | undefined>,
26
+ Omit<GroupProps, 'input' | 'meta' | 'children'> {
27
+ // allows for "useService" or other handles to control the data - including cache
28
+ // TODO: do we still want a version of select that has a "url" or maybe a promise func or something?
29
+ // eventually we can just add the shape of, say, useQuery (TanStack) to the union type
30
+ options: SelectOption<TValue>[] | OptionsUseServiceResult<TValue>;
31
+ multiple: TValue extends Array<any> ? true : false;
32
+ placeholder?: string;
33
+ }
34
+
35
+ // TODO: we could also name this "ReactSelectGroup" or similar but the types are strongly defined now so kept the names consistent
36
+ export default function SelectGroup<TValue>({
37
+ input,
38
+ meta,
39
+ className,
40
+ options,
41
+ multiple,
42
+ placeholder,
43
+ ...rest
44
+ }: SelectGroupProps<TValue>) {
45
+ const effectiveOptions: Partial<SelectOption<TValue>>[] = !options
46
+ ? []
47
+ : Array.isArray(options)
48
+ ? options
49
+ : 'resp' in options &&
50
+ !!options.resp &&
51
+ 'result' in options.resp &&
52
+ !!options.resp.result
53
+ ? options.resp.result
54
+ : 'resp' in options && !!options.resp && Array.isArray(options.resp)
55
+ ? options.resp
56
+ : [];
57
+
58
+ const isLoading =
59
+ (options && 'loading' in options && options.loading) || false;
60
+
61
+ return (
62
+ <Group
63
+ {...rest}
64
+ input={input}
65
+ meta={meta}
66
+ className={classNames(
67
+ className,
68
+ { multiple, 'is-loading': isLoading },
69
+ 'select-group'
70
+ )}>
71
+ <ReactSelect<
72
+ Partial<SelectOption<TValue>>,
73
+ TValue extends Array<any> ? true : false
74
+ >
75
+ inputId={input.id}
76
+ isMulti={multiple}
77
+ options={effectiveOptions}
78
+ onBlur={input.onBlur}
79
+ value={getValue()}
80
+ onChange={(e: any) => {
81
+ if (multiple === true) {
82
+ input.onChange(e?.map((x: any) => x.value));
83
+ } else {
84
+ input.onChange(e?.value as any);
85
+ }
86
+ }}
87
+ getOptionLabel={(option) => option?.label ?? ''}
88
+ className={classNames(className, 'select-group')}
89
+ classNamePrefix="react-select"
90
+ menuPortalTarget={document.body}
91
+ menuPlacement="auto"
92
+ placeholder={placeholder}
93
+ />
94
+ </Group>
95
+ );
96
+
97
+ function getValue() {
98
+ if (multiple) {
99
+ return effectiveOptions.filter(
100
+ (o) =>
101
+ Array.isArray(input.value) && !!input.value.find((x) => o.value === x)
102
+ );
103
+ }
104
+ return effectiveOptions.find((o) => o.value === input.value);
105
+ }
106
+ }
@@ -0,0 +1,4 @@
1
+ import { SelectGroupProps } from './SelectGroup';
2
+
3
+ export interface SelectGroupPropsHelper<T>
4
+ extends Omit<SelectGroupProps<T>, 'multiple'> {}
@@ -0,0 +1,14 @@
1
+ import SelectGroup from './SelectGroup';
2
+ import { SelectGroupPropsHelper } from './SelectGroupPropsHelper';
3
+
4
+ export interface MultiStringSelectGroupProps
5
+ extends SelectGroupPropsHelper<string[]> {}
6
+ export function MultiStringSelectGroup(props: MultiStringSelectGroupProps) {
7
+ return <SelectGroup multiple={true} {...props} />;
8
+ }
9
+
10
+ export interface SingleStringSelectGroupProps
11
+ extends SelectGroupPropsHelper<string> {}
12
+ export function SingleStringSelectGroup(props: SingleStringSelectGroupProps) {
13
+ return <SelectGroup multiple={false} {...props} />;
14
+ }
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import FormTestBase from '../../__Tests__/FormTestBase';
4
+ import { BooleanSelectGroup } from '../BooleanSelectGroup';
5
+
6
+ describe('BooleanSelectGroup', () => {
7
+ it('renders without crashing', () => {
8
+ render(
9
+ <FormTestBase>
10
+ {({ Field }) => (
11
+ <Field
12
+ name="allowLogin"
13
+ Component={BooleanSelectGroup}
14
+ label="Allow Login"
15
+ />
16
+ )}
17
+ </FormTestBase>
18
+ );
19
+ });
20
+
21
+ it('has matching snapshot', () => {
22
+ const renderResult = render(
23
+ <FormTestBase>
24
+ {({ Field }) => (
25
+ <Field
26
+ name="allowLogin"
27
+ Component={BooleanSelectGroup}
28
+ label="Allow Login"
29
+ />
30
+ )}
31
+ </FormTestBase>
32
+ );
33
+ expect(renderResult.asFragment()).toMatchSnapshot();
34
+ });
35
+ });
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import FormTestBase from '../../__Tests__/FormTestBase';
4
+ import {
5
+ MultiNumberSelectGroup,
6
+ SingleNumberSelectGroup,
7
+ } from '../NumberSelectGroup';
8
+
9
+ describe('SingleNumberSelectGroup', () => {
10
+ it('renders without crashing', () => {
11
+ render(
12
+ <FormTestBase>
13
+ {({ Field }) => (
14
+ <Field
15
+ name="favoriteNumber"
16
+ Component={SingleNumberSelectGroup}
17
+ label="Favorite Number"
18
+ options={[
19
+ { label: 'I like one', value: 1 },
20
+ { label: 'Occasionally two', value: 2 },
21
+ { label: 'Forever three', value: 3 },
22
+ ]}
23
+ />
24
+ )}
25
+ </FormTestBase>
26
+ );
27
+ });
28
+
29
+ it('has matching snapshot', () => {
30
+ const renderResult = render(
31
+ <FormTestBase>
32
+ {({ Field }) => (
33
+ <Field
34
+ name="favoriteNumber"
35
+ Component={SingleNumberSelectGroup}
36
+ label="Favorite Number"
37
+ options={[
38
+ { label: 'I like one', value: 1 },
39
+ { label: 'Occasionally two', value: 2 },
40
+ { label: 'Forever three', value: 3 },
41
+ ]}
42
+ />
43
+ )}
44
+ </FormTestBase>
45
+ );
46
+ expect(renderResult.asFragment()).toMatchSnapshot();
47
+ });
48
+ });
49
+
50
+ describe('MultiNumberSelectGroup', () => {
51
+ it('renders without crashing', () => {
52
+ render(
53
+ <FormTestBase>
54
+ {({ Field }) => (
55
+ <Field
56
+ name="userRoles"
57
+ Component={MultiNumberSelectGroup}
58
+ label="Favorite Number"
59
+ options={[
60
+ { label: 'Tyrannosaurus Rex', value: 1 },
61
+ { label: 'Stegosaurus', value: 2 },
62
+ ]}
63
+ />
64
+ )}
65
+ </FormTestBase>
66
+ );
67
+ });
68
+
69
+ it('has matching snapshot', () => {
70
+ const renderResult = render(
71
+ <FormTestBase>
72
+ {({ Field }) => (
73
+ <Field
74
+ name="userRoles"
75
+ Component={MultiNumberSelectGroup}
76
+ label="Favorite Number"
77
+ options={[
78
+ { label: 'Tyrannosaurus Rex', value: 1 },
79
+ { label: 'Stegosaurus', value: 2 },
80
+ ]}
81
+ />
82
+ )}
83
+ </FormTestBase>
84
+ );
85
+ expect(renderResult.asFragment()).toMatchSnapshot();
86
+ });
87
+ });
@@ -0,0 +1,89 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import FormTestBase from '../../__Tests__/FormTestBase';
4
+ import {
5
+ MultiStringSelectGroup,
6
+ SingleStringSelectGroup,
7
+ } from '../StringSelectGroup';
8
+
9
+ describe('SingleStringSelectGroup', () => {
10
+ it('renders without crashing', () => {
11
+ render(
12
+ <FormTestBase>
13
+ {({ Field }) => (
14
+ <Field
15
+ name="favoriteColor"
16
+ Component={SingleStringSelectGroup}
17
+ label="Favorite Color"
18
+ options={[
19
+ { label: 'Blue', value: 'Blue' },
20
+ { label: 'Green', value: 'Green' },
21
+ { label: 'Red', value: 'Red' },
22
+ ]}
23
+ />
24
+ )}
25
+ </FormTestBase>
26
+ );
27
+ });
28
+
29
+ it('has matching snapshot', () => {
30
+ const renderResult = render(
31
+ <FormTestBase>
32
+ {({ Field }) => (
33
+ <Field
34
+ name="favoriteColor"
35
+ Component={SingleStringSelectGroup}
36
+ label="Favorite Color"
37
+ options={[
38
+ { label: 'Blue', value: 'Blue' },
39
+ { label: 'Green', value: 'Green' },
40
+ { label: 'Red', value: 'Red' },
41
+ ]}
42
+ />
43
+ )}
44
+ </FormTestBase>
45
+ );
46
+ expect(renderResult.asFragment()).toMatchSnapshot();
47
+ });
48
+ });
49
+
50
+ describe('MultiStringSelectGroup', () => {
51
+ it('renders without crashing', () => {
52
+ render(
53
+ <FormTestBase>
54
+ {({ Field }) => (
55
+ <Field
56
+ name="favoriteColors"
57
+ Component={MultiStringSelectGroup}
58
+ label="Favorite Color"
59
+ options={[
60
+ { label: 'Blue', value: 'Blue' },
61
+ { label: 'Green', value: 'Green' },
62
+ { label: 'Red', value: 'Red' },
63
+ ]}
64
+ />
65
+ )}
66
+ </FormTestBase>
67
+ );
68
+ });
69
+
70
+ it('has matching snapshot', () => {
71
+ const renderResult = render(
72
+ <FormTestBase>
73
+ {({ Field }) => (
74
+ <Field
75
+ name="favoriteColors"
76
+ Component={MultiStringSelectGroup}
77
+ label="Favorite Color"
78
+ options={[
79
+ { label: 'Blue', value: 'Blue' },
80
+ { label: 'Green', value: 'Green' },
81
+ { label: 'Red', value: 'Red' },
82
+ ]}
83
+ />
84
+ )}
85
+ </FormTestBase>
86
+ );
87
+ expect(renderResult.asFragment()).toMatchSnapshot();
88
+ });
89
+ });
@@ -0,0 +1,99 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`BooleanSelectGroup has matching snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <form
6
+ action="#"
7
+ >
8
+ <div
9
+ class="select-group group"
10
+ >
11
+ <div
12
+ id="allowlogin-error-scroll-target"
13
+ style="display: none;"
14
+ />
15
+ <label
16
+ for="allowLogin"
17
+ >
18
+ Allow Login
19
+ </label>
20
+ <div
21
+ class="select-group css-b62m3t-container"
22
+ >
23
+ <span
24
+ class="css-1f43avz-a11yText-A11yText"
25
+ id="react-select-3-live-region"
26
+ />
27
+ <span
28
+ aria-atomic="false"
29
+ aria-live="polite"
30
+ aria-relevant="additions text"
31
+ class="css-1f43avz-a11yText-A11yText"
32
+ />
33
+ <div
34
+ class="react-select__control css-1s2u09g-control"
35
+ >
36
+ <div
37
+ class="react-select__value-container css-dlobye-Component"
38
+ >
39
+ <div
40
+ class="react-select__placeholder css-14el2xx-placeholder"
41
+ id="react-select-3-placeholder"
42
+ >
43
+ Select...
44
+ </div>
45
+ <div
46
+ class="react-select__input-container css-1u4kn00-Component"
47
+ data-value=""
48
+ >
49
+ <input
50
+ aria-autocomplete="list"
51
+ aria-controls="react-select-3-listbox"
52
+ aria-describedby="react-select-3-placeholder"
53
+ aria-expanded="false"
54
+ aria-haspopup="true"
55
+ aria-owns="react-select-3-listbox"
56
+ autocapitalize="none"
57
+ autocomplete="off"
58
+ autocorrect="off"
59
+ class="react-select__input"
60
+ id="allowLogin"
61
+ role="combobox"
62
+ spellcheck="false"
63
+ style="opacity: 1; width: 100%; grid-area: 1 / 2; min-width: 2px; border: 0px; margin: 0px; outline: 0; padding: 0px;"
64
+ tabindex="0"
65
+ type="text"
66
+ value=""
67
+ />
68
+ </div>
69
+ </div>
70
+ <div
71
+ class="react-select__indicators css-ny0e4k-Component"
72
+ >
73
+ <span
74
+ class="react-select__indicator-separator css-1okebmr-indicatorSeparator"
75
+ />
76
+ <div
77
+ aria-hidden="true"
78
+ class="react-select__indicator react-select__dropdown-indicator css-tlfecz-indicatorContainer"
79
+ >
80
+ <svg
81
+ aria-hidden="true"
82
+ class="css-tj5bde-Svg"
83
+ focusable="false"
84
+ height="20"
85
+ viewBox="0 0 20 20"
86
+ width="20"
87
+ >
88
+ <path
89
+ d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
90
+ />
91
+ </svg>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ </form>
98
+ </DocumentFragment>
99
+ `;