@digigov/form 2.0.0-a402a664 → 2.0.0-aa380ec7

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 (447) hide show
  1. package/Field/ErrorGroup.d.ts +3 -3
  2. package/Field/ErrorGroup.js.map +1 -1
  3. package/Field/FieldBase/index.js +1 -2
  4. package/Field/FieldBase.d.ts +1 -1
  5. package/Field/FieldBase.js.map +2 -2
  6. package/Field/FieldBaseContainer/index.js +36 -19
  7. package/Field/FieldBaseContainer.d.ts +2 -2
  8. package/Field/FieldBaseContainer.js.map +2 -2
  9. package/Field/FieldConditional.d.ts +1 -1
  10. package/Field/FieldConditional.js.map +1 -1
  11. package/Field/index.d.ts +1 -1
  12. package/Field/index.js +16 -26
  13. package/Field/index.js.map +2 -2
  14. package/Field/types.d.ts +11 -10
  15. package/Field/utils/evaluateFieldWithConditions.d.ts +2 -2
  16. package/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  17. package/Field/utils/resolveField/index.js +35 -0
  18. package/Field/utils/{calculateField → resolveField}/package.json +1 -1
  19. package/Field/utils/resolveField.d.ts +3 -0
  20. package/Field/utils/resolveField.js.map +7 -0
  21. package/Field/utils/useField/index.js +4 -2
  22. package/Field/utils/useField.d.ts +1 -1
  23. package/Field/utils/useField.js.map +2 -2
  24. package/FieldArray/BaseFieldArray/index.js +76 -0
  25. package/{inputs/inputsScenarios → FieldArray/BaseFieldArray}/package.json +1 -1
  26. package/FieldArray/BaseFieldArray.d.ts +5 -0
  27. package/FieldArray/BaseFieldArray.js.map +7 -0
  28. package/FieldArray/FieldArray.stories.d.ts +1 -0
  29. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +23 -0
  30. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/package.json +6 -0
  31. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.d.ts +9 -0
  32. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  33. package/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.d.ts +13 -0
  34. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +184 -0
  35. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/package.json +6 -0
  36. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.d.ts +26 -0
  37. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  38. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/index.js +11 -0
  39. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/package.json +6 -0
  40. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.d.ts +5 -0
  41. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  42. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.d.ts +2 -0
  43. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.d.ts +2 -0
  44. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.d.ts +2 -0
  45. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.d.ts +2 -0
  46. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.d.ts +2 -0
  47. package/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.d.ts +2 -0
  48. package/FieldArray/FormDialog/ArrayDisplay/index.d.ts +15 -0
  49. package/FieldArray/FormDialog/ArrayDisplay/index.js +57 -0
  50. package/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  51. package/FieldArray/FormDialog/ArrayDisplay/package.json +6 -0
  52. package/FieldArray/FormDialog/ArrayEditModal/index.js +156 -0
  53. package/FieldArray/FormDialog/ArrayEditModal/package.json +6 -0
  54. package/FieldArray/FormDialog/ArrayEditModal.d.ts +26 -0
  55. package/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  56. package/FieldArray/FormDialog/index.d.ts +19 -0
  57. package/FieldArray/FormDialog/index.js +181 -347
  58. package/FieldArray/FormDialog/index.js.map +7 -0
  59. package/FieldArray/__stories__/CardsWithError.d.ts +15 -0
  60. package/FieldArray/index.d.ts +4 -2
  61. package/FieldArray/index.js +34 -56
  62. package/FieldArray/index.js.map +2 -2
  63. package/FieldObject/index.d.ts +4 -4
  64. package/FieldObject/index.js +5 -12
  65. package/FieldObject/index.js.map +2 -2
  66. package/Fieldset/FieldsetWithContext.js.map +1 -1
  67. package/Fieldset/index.d.ts +1 -1
  68. package/Fieldset/index.js.map +1 -1
  69. package/Fieldset/types.d.ts +2 -2
  70. package/FormBuilder/index.d.ts +1 -1
  71. package/FormBuilder/index.js +155 -131
  72. package/FormBuilder/index.js.map +2 -2
  73. package/FormContext.d.ts +2 -2
  74. package/FormContext.js.map +2 -2
  75. package/MultiplicityField/add-objects/index.js +10 -19
  76. package/MultiplicityField/add-objects.d.ts +1 -1
  77. package/MultiplicityField/add-objects.js.map +2 -2
  78. package/MultiplicityField/index.d.ts +2 -2
  79. package/MultiplicityField/index.js.map +2 -2
  80. package/MultiplicityField/types.d.ts +2 -2
  81. package/Questions/Questions.d.ts +1 -1
  82. package/Questions/Questions.js.map +1 -1
  83. package/Questions/QuestionsContext.d.ts +1 -1
  84. package/Questions/QuestionsContext.js.map +1 -1
  85. package/Questions/Step/Step.d.ts +1 -1
  86. package/Questions/Step/Step.js.map +1 -1
  87. package/Questions/Step/StepArrayReview.d.ts +1 -1
  88. package/Questions/Step/StepArrayReview.js.map +1 -1
  89. package/Questions/Step/StepContext.d.ts +1 -1
  90. package/Questions/Step/StepContext.js.map +1 -1
  91. package/Questions/Step/StepDescription.d.ts +1 -1
  92. package/Questions/Step/StepDescription.js.map +2 -2
  93. package/Questions/Step/StepForm.d.ts +2 -2
  94. package/Questions/Step/StepForm.js.map +1 -1
  95. package/Questions/Step/StepQuote.d.ts +1 -1
  96. package/Questions/Step/StepQuote.js.map +2 -2
  97. package/Questions/Step/StepTitle.d.ts +1 -1
  98. package/Questions/Step/StepTitle.js.map +2 -2
  99. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  100. package/Questions/Step/getAddMoreFields.js.map +1 -1
  101. package/Questions/Step/types.d.ts +1 -1
  102. package/Questions/getNextStep.d.ts +1 -1
  103. package/Questions/getNextStep.js.map +1 -1
  104. package/Questions/types.d.ts +1 -1
  105. package/cjs/Field/ErrorGroup.js.map +1 -1
  106. package/cjs/Field/FieldBase/index.js +1 -2
  107. package/cjs/Field/FieldBase.js.map +2 -2
  108. package/cjs/Field/FieldBaseContainer/index.js +36 -19
  109. package/cjs/Field/FieldBaseContainer.js.map +2 -2
  110. package/cjs/Field/FieldConditional.js.map +1 -1
  111. package/cjs/Field/index.js +16 -23
  112. package/cjs/Field/index.js.map +2 -2
  113. package/cjs/Field/types.js.map +1 -1
  114. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  115. package/cjs/Field/utils/resolveField/index.js +55 -0
  116. package/cjs/Field/utils/resolveField.js.map +7 -0
  117. package/cjs/Field/utils/useField/index.js +4 -2
  118. package/cjs/Field/utils/useField.js.map +2 -2
  119. package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
  120. package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
  121. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +56 -0
  122. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  123. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +209 -0
  124. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  125. package/cjs/{locales/el → FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader}/index.js +16 -7
  126. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  127. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js +90 -0
  128. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  129. package/cjs/FieldArray/FormDialog/ArrayEditModal/index.js +184 -0
  130. package/cjs/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  131. package/cjs/FieldArray/FormDialog/index.js +172 -330
  132. package/cjs/FieldArray/FormDialog/index.js.map +7 -0
  133. package/cjs/FieldArray/index.js +33 -55
  134. package/cjs/FieldArray/index.js.map +3 -3
  135. package/cjs/FieldObject/index.js +5 -9
  136. package/cjs/FieldObject/index.js.map +2 -2
  137. package/cjs/Fieldset/FieldsetWithContext.js.map +1 -1
  138. package/cjs/Fieldset/index.js.map +1 -1
  139. package/cjs/Fieldset/types.js.map +1 -1
  140. package/cjs/FormBuilder/index.js +156 -132
  141. package/cjs/FormBuilder/index.js.map +3 -3
  142. package/cjs/FormContext.js.map +2 -2
  143. package/cjs/MultiplicityField/add-objects/index.js +9 -13
  144. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  145. package/cjs/MultiplicityField/index.js.map +2 -2
  146. package/cjs/MultiplicityField/types.js.map +1 -1
  147. package/cjs/Questions/Questions.js.map +1 -1
  148. package/cjs/Questions/QuestionsContext.js.map +1 -1
  149. package/cjs/Questions/Step/Step.js.map +1 -1
  150. package/cjs/Questions/Step/StepArrayReview.js.map +1 -1
  151. package/cjs/Questions/Step/StepContext.js.map +1 -1
  152. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  153. package/cjs/Questions/Step/StepForm.js.map +1 -1
  154. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  155. package/cjs/Questions/Step/StepTitle.js.map +2 -2
  156. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  157. package/cjs/Questions/Step/types.js.map +1 -1
  158. package/cjs/Questions/getNextStep.js.map +1 -1
  159. package/cjs/Questions/types.js.map +1 -1
  160. package/cjs/hooks/useFieldFocusManager/index.js +135 -0
  161. package/cjs/hooks/useFieldFocusManager.js.map +7 -0
  162. package/cjs/hooks/utils/index.js +98 -0
  163. package/cjs/hooks/utils.js.map +7 -0
  164. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  165. package/cjs/inputs/Checkboxes/index.js +67 -63
  166. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  167. package/cjs/inputs/DateInput/index.js +36 -16
  168. package/cjs/inputs/DateInput/index.js.map +2 -2
  169. package/cjs/inputs/DateTimeInput/index.js +64 -38
  170. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  171. package/cjs/inputs/FileInput/index.js +42 -24
  172. package/cjs/inputs/FileInput/index.js.map +2 -2
  173. package/cjs/inputs/ImageInput/index.js.map +1 -1
  174. package/cjs/inputs/Input/index.js +54 -56
  175. package/cjs/inputs/Input/index.js.map +2 -2
  176. package/cjs/inputs/Label/index.js.map +1 -1
  177. package/cjs/inputs/OtpInput/index.js +36 -31
  178. package/cjs/inputs/OtpInput/index.js.map +2 -2
  179. package/cjs/inputs/Radio/index.js +5 -4
  180. package/cjs/inputs/Radio/index.js.map +3 -3
  181. package/cjs/inputs/Select/index.js.map +1 -1
  182. package/cjs/{Field/utils → inputs/registry}/index.js +4 -4
  183. package/cjs/inputs/registry.js.map +7 -0
  184. package/cjs/{lazy/index.js → lazy.js} +14 -11
  185. package/cjs/lazy.js.map +2 -2
  186. package/cjs/{registry/index.js → registry.js} +33 -19
  187. package/cjs/registry.js.map +2 -2
  188. package/cjs/types.js.map +1 -1
  189. package/cjs/utils.js.map +2 -2
  190. package/cjs/validators/index.js +6 -3
  191. package/cjs/validators/index.js.map +2 -2
  192. package/cjs/validators/types.js.map +1 -1
  193. package/cjs/validators/utils/date/index.js +26 -3
  194. package/cjs/validators/utils/date.js.map +2 -2
  195. package/cjs/validators/utils/datetime/index.js +118 -24
  196. package/cjs/validators/utils/datetime.js.map +2 -2
  197. package/cjs/validators/utils/email/index.js +39 -0
  198. package/cjs/validators/utils/email.js.map +7 -0
  199. package/cjs/validators/utils/file.js.map +1 -1
  200. package/cjs/validators/utils/iban.js.map +1 -1
  201. package/cjs/validators/utils/image.js.map +1 -1
  202. package/cjs/validators/utils/index.js.map +1 -1
  203. package/cjs/validators/utils/int.js.map +1 -1
  204. package/cjs/validators/utils/number.js.map +1 -1
  205. package/cjs/validators/utils/otp.js.map +1 -1
  206. package/cjs/validators/utils/phone.js.map +1 -1
  207. package/cjs/validators/utils/postal_code.js.map +1 -1
  208. package/cjs/validators/utils/text_limit.js.map +1 -1
  209. package/hooks/useFieldFocusManager/index.js +116 -0
  210. package/hooks/useFieldFocusManager/package.json +6 -0
  211. package/hooks/useFieldFocusManager.d.ts +25 -0
  212. package/hooks/useFieldFocusManager.js.map +7 -0
  213. package/hooks/utils/index.js +73 -0
  214. package/{Field → hooks}/utils/package.json +1 -1
  215. package/hooks/utils.d.ts +18 -0
  216. package/hooks/utils.js.map +7 -0
  217. package/index.js +1 -1
  218. package/inputs/AutoCompleteInput/index.d.ts +3 -3
  219. package/inputs/AutoCompleteInput/index.js +1 -3
  220. package/inputs/AutoCompleteInput/index.js.map +2 -2
  221. package/inputs/Checkboxes/index.d.ts +3 -3
  222. package/inputs/Checkboxes/index.js +67 -63
  223. package/inputs/Checkboxes/index.js.map +2 -2
  224. package/inputs/DateInput/DateInput.stories.d.ts +4 -0
  225. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  226. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  227. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  228. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  229. package/inputs/DateInput/index.d.ts +2 -5
  230. package/inputs/DateInput/index.js +37 -17
  231. package/inputs/DateInput/index.js.map +2 -2
  232. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +8 -3
  233. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  234. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  235. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  236. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  237. package/inputs/DateTimeInput/index.d.ts +2 -5
  238. package/inputs/DateTimeInput/index.js +65 -39
  239. package/inputs/DateTimeInput/index.js.map +2 -2
  240. package/inputs/FileInput/index.d.ts +8 -4
  241. package/inputs/FileInput/index.js +44 -29
  242. package/inputs/FileInput/index.js.map +2 -2
  243. package/inputs/ImageInput/index.d.ts +2 -2
  244. package/inputs/ImageInput/index.js.map +1 -1
  245. package/inputs/Input/index.d.ts +2 -2
  246. package/inputs/Input/index.js +54 -56
  247. package/inputs/Input/index.js.map +2 -2
  248. package/inputs/Label/index.d.ts +1 -1
  249. package/inputs/Label/index.js.map +1 -1
  250. package/inputs/OtpInput/index.d.ts +1 -5
  251. package/inputs/OtpInput/index.js +36 -31
  252. package/inputs/OtpInput/index.js.map +2 -2
  253. package/inputs/Radio/index.d.ts +4 -4
  254. package/inputs/Radio/index.js +5 -4
  255. package/inputs/Radio/index.js.map +3 -3
  256. package/inputs/Select/index.d.ts +2 -2
  257. package/inputs/Select/index.js.map +1 -1
  258. package/{Field/utils → inputs/registry}/index.js +1 -1
  259. package/{locales/el → inputs/registry}/package.json +1 -1
  260. package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
  261. package/inputs/registry.js.map +7 -0
  262. package/lazy/index.js +14 -11
  263. package/package.json +4 -4
  264. package/registry/index.js +33 -19
  265. package/src/Field/ErrorGroup.tsx +3 -3
  266. package/src/Field/FieldBase.tsx +2 -3
  267. package/src/Field/FieldBaseContainer.tsx +68 -51
  268. package/src/Field/FieldConditional.tsx +1 -1
  269. package/src/Field/index.tsx +16 -36
  270. package/src/Field/types.tsx +11 -12
  271. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  272. package/src/Field/utils/resolveField.ts +58 -0
  273. package/src/Field/utils/useField.ts +3 -1
  274. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  275. package/src/FieldArray/FieldArray.stories.js +1 -0
  276. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.tsx +45 -0
  277. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +14 -0
  278. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +335 -0
  279. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
  280. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.tsx +88 -0
  281. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
  282. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
  283. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.tsx +75 -0
  284. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
  285. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.tsx +88 -0
  286. package/src/FieldArray/FormDialog/ArrayDisplay/index.test.tsx +44 -0
  287. package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +67 -0
  288. package/src/FieldArray/FormDialog/ArrayEditModal.tsx +242 -0
  289. package/src/FieldArray/FormDialog/index.tsx +299 -0
  290. package/src/FieldArray/__stories__/CardsWithError.tsx +124 -0
  291. package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
  292. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
  293. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +131 -0
  294. package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
  295. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  296. package/src/FieldArray/index.spec.tsx +355 -0
  297. package/src/FieldArray/index.test.tsx +4 -0
  298. package/src/FieldArray/index.tsx +43 -63
  299. package/src/FieldObject/index.tsx +9 -17
  300. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  301. package/src/Fieldset/index.tsx +1 -1
  302. package/src/Fieldset/types.tsx +2 -2
  303. package/src/FormBuilder/index.tsx +188 -143
  304. package/src/FormBuilder/scenarios.test.tsx +760 -1
  305. package/src/FormContext.tsx +3 -2
  306. package/src/MultiplicityField/add-objects.tsx +12 -21
  307. package/src/MultiplicityField/index.tsx +3 -2
  308. package/src/MultiplicityField/types.ts +5 -2
  309. package/src/Questions/Questions.tsx +2 -2
  310. package/src/Questions/QuestionsContext.tsx +1 -1
  311. package/src/Questions/Step/Step.tsx +1 -1
  312. package/src/Questions/Step/StepArrayReview.tsx +2 -2
  313. package/src/Questions/Step/StepContext.tsx +1 -1
  314. package/src/Questions/Step/StepDescription.tsx +2 -1
  315. package/src/Questions/Step/StepForm.tsx +2 -2
  316. package/src/Questions/Step/StepQuote.tsx +2 -1
  317. package/src/Questions/Step/StepTitle.tsx +2 -1
  318. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  319. package/src/Questions/Step/types.tsx +1 -1
  320. package/src/Questions/getNextStep.tsx +1 -1
  321. package/src/Questions/types.tsx +1 -1
  322. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  323. package/src/hooks/__tests__/utils.spec.ts +568 -0
  324. package/src/hooks/useFieldFocusManager.ts +162 -0
  325. package/src/hooks/utils.ts +122 -0
  326. package/src/inputs/AutoCompleteInput/index.tsx +4 -6
  327. package/src/inputs/Checkboxes/index.tsx +95 -91
  328. package/src/inputs/DateInput/DateInput.stories.js +4 -0
  329. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  330. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  331. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  332. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  333. package/src/inputs/DateInput/index.test.tsx +16 -0
  334. package/src/inputs/DateInput/index.tsx +49 -18
  335. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +9 -6
  336. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  337. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  338. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  339. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  340. package/src/inputs/DateTimeInput/index.test.tsx +16 -0
  341. package/src/inputs/DateTimeInput/index.tsx +77 -40
  342. package/src/inputs/FileInput/index.tsx +76 -43
  343. package/src/inputs/ImageInput/index.tsx +2 -2
  344. package/src/inputs/Input/index.tsx +72 -71
  345. package/src/inputs/Label/index.tsx +1 -1
  346. package/src/inputs/OtpInput/index.tsx +43 -34
  347. package/src/inputs/Radio/index.tsx +29 -21
  348. package/src/inputs/Select/index.tsx +2 -2
  349. package/src/{Field/utils/index.ts → inputs/registry.ts} +3 -1
  350. package/src/lazy.js +14 -11
  351. package/src/registry.js +33 -19
  352. package/src/types.tsx +13 -5
  353. package/src/utils.ts +3 -2
  354. package/src/validators/index.ts +16 -12
  355. package/src/validators/types.ts +1 -1
  356. package/src/validators/utils/date.ts +30 -6
  357. package/src/validators/utils/datetime.ts +123 -31
  358. package/src/validators/utils/email.ts +11 -0
  359. package/src/validators/utils/file.ts +2 -2
  360. package/src/validators/utils/iban.ts +2 -2
  361. package/src/validators/utils/image.ts +2 -2
  362. package/src/validators/utils/index.ts +2 -2
  363. package/src/validators/utils/int.ts +1 -1
  364. package/src/validators/utils/number.ts +1 -1
  365. package/src/validators/utils/otp.ts +2 -2
  366. package/src/validators/utils/phone.ts +2 -2
  367. package/src/validators/utils/postal_code.ts +2 -2
  368. package/src/validators/utils/text_limit.ts +2 -2
  369. package/types.d.ts +9 -4
  370. package/types.js.map +1 -1
  371. package/utils.d.ts +1 -1
  372. package/utils.js.map +2 -2
  373. package/validators/index.d.ts +5 -5
  374. package/validators/index.js +6 -3
  375. package/validators/index.js.map +2 -2
  376. package/validators/types.d.ts +1 -1
  377. package/validators/utils/date/index.js +26 -3
  378. package/validators/utils/date.d.ts +3 -3
  379. package/validators/utils/date.js.map +2 -2
  380. package/validators/utils/datetime/index.js +118 -24
  381. package/validators/utils/datetime.d.ts +3 -3
  382. package/validators/utils/datetime.js.map +2 -2
  383. package/validators/utils/email/index.js +16 -0
  384. package/validators/utils/email/package.json +6 -0
  385. package/validators/utils/email.d.ts +5 -0
  386. package/validators/utils/email.js.map +7 -0
  387. package/validators/utils/file.d.ts +2 -2
  388. package/validators/utils/file.js.map +1 -1
  389. package/validators/utils/iban.d.ts +2 -2
  390. package/validators/utils/iban.js.map +1 -1
  391. package/validators/utils/image.d.ts +2 -2
  392. package/validators/utils/image.js.map +1 -1
  393. package/validators/utils/index.d.ts +2 -2
  394. package/validators/utils/index.js.map +1 -1
  395. package/validators/utils/int.d.ts +1 -1
  396. package/validators/utils/int.js.map +1 -1
  397. package/validators/utils/number.d.ts +1 -1
  398. package/validators/utils/number.js.map +1 -1
  399. package/validators/utils/otp.d.ts +2 -2
  400. package/validators/utils/otp.js.map +1 -1
  401. package/validators/utils/phone.d.ts +2 -2
  402. package/validators/utils/phone.js.map +1 -1
  403. package/validators/utils/postal_code.d.ts +2 -2
  404. package/validators/utils/postal_code.js.map +1 -1
  405. package/validators/utils/text_limit.d.ts +2 -2
  406. package/validators/utils/text_limit.js.map +1 -1
  407. package/Field/utils/calculateField/index.js +0 -27
  408. package/Field/utils/calculateField.d.ts +0 -2
  409. package/Field/utils/calculateField.js.map +0 -7
  410. package/Field/utils/index.js.map +0 -7
  411. package/FieldArray/FormDialog.d.ts +0 -66
  412. package/FieldArray/FormDialog.js.map +0 -7
  413. package/FormBuilder/index.test.d.ts +0 -1
  414. package/FormBuilder/interaction.test.d.ts +0 -1
  415. package/FormBuilder/scenarios.test.d.ts +0 -88
  416. package/MultiplicityField/index.test.d.ts +0 -1
  417. package/Questions/index.spec.d.ts +0 -1
  418. package/Questions/index.test.d.ts +0 -1
  419. package/cjs/Field/utils/calculateField/index.js +0 -50
  420. package/cjs/Field/utils/calculateField.js.map +0 -7
  421. package/cjs/Field/utils/index.js.map +0 -7
  422. package/cjs/FieldArray/FormDialog.js.map +0 -7
  423. package/cjs/inputs/inputsScenarios/index.js +0 -533
  424. package/cjs/inputs/inputsScenarios.js.map +0 -7
  425. package/cjs/locales/el.js.map +0 -7
  426. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  427. package/inputs/Checkboxes/index.test.d.ts +0 -1
  428. package/inputs/DateInput/index.test.d.ts +0 -1
  429. package/inputs/DateTimeInput/index.test.d.ts +0 -1
  430. package/inputs/FileInput/index.test.d.ts +0 -1
  431. package/inputs/ImageInput/index.test.d.ts +0 -1
  432. package/inputs/Input/index.test.d.ts +0 -1
  433. package/inputs/Label/index.test.d.ts +0 -1
  434. package/inputs/OtpInput/index.test.d.ts +0 -1
  435. package/inputs/Radio/index.test.d.ts +0 -1
  436. package/inputs/Select/index.test.d.ts +0 -1
  437. package/inputs/inputsScenarios/index.js +0 -499
  438. package/inputs/inputsScenarios.d.ts +0 -296
  439. package/inputs/inputsScenarios.js.map +0 -7
  440. package/locales/el/index.js +0 -6
  441. package/locales/el.d.ts +0 -2
  442. package/locales/el.js.map +0 -7
  443. package/src/Field/utils/calculateField.ts +0 -49
  444. package/src/FieldArray/FormDialog.tsx +0 -565
  445. package/src/inputs/inputsScenarios.ts +0 -496
  446. package/src/locales/el.ts +0 -3
  447. /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { useWatch } from 'react-hook-form';
3
- import { UncontrolledFieldProps } from '@digigov/form/Field/types';
3
+ import type { UncontrolledFieldProps } from '@digigov/form/Field/types';
4
4
  import { TextArea } from '@digigov/ui/form/TextArea';
5
5
  import { TextInput } from '@digigov/ui/form/TextInput';
6
6
  import { useTranslation } from '@digigov/ui/i18n';
@@ -30,87 +30,88 @@ export interface InputProps
30
30
  Field?: UncontrolledFieldProps['Field'];
31
31
  }
32
32
 
33
- export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
34
- function WrappedInput({ name, control, type, extra, ...props }, ref: never) {
35
- delete props['Field'];
36
- // eslint-disable-next-line prefer-const
37
- let { multiline = false, rows, limit } = extra || {};
38
- const { className } = extra || {};
39
- // if enforced to multiline use true. Derive from type otherwise.
40
- multiline = multiline === true || type === 'text';
41
- // use explicit rows value if set. Derive from multiline otherwise.
42
- rows = rows || (multiline ? 4 : 1);
43
- // translate dilosi type to HTML Input type
44
- const fieldType = TYPES_MAP[type || 'text'] || 'text';
45
- const { t } = useTranslation();
46
- const currentValue: string | '' = useWatch({ control, name });
33
+ export const Input = React.forwardRef<
34
+ HTMLInputElement | HTMLTextAreaElement,
35
+ InputProps
36
+ >(function WrappedInput({ name, control, type, extra, ...props }, ref) {
37
+ delete props['Field'];
38
+ // eslint-disable-next-line prefer-const
39
+ let { multiline = false, rows, limit } = extra || {};
40
+ const { className } = extra || {};
41
+ // if enforced to multiline use true. Derive from type otherwise.
42
+ multiline = multiline === true || type === 'text';
43
+ // use explicit rows value if set. Derive from multiline otherwise.
44
+ rows = rows || (multiline ? 4 : 1);
45
+ // translate dilosi type to HTML Input type
46
+ const fieldType = TYPES_MAP[type || 'text'] || 'text';
47
+ const { t } = useTranslation();
48
+ const currentValue: string | '' = useWatch({ control, name });
47
49
 
48
- const getRemainingChars = (currentValue, limit) => {
49
- if (currentValue) {
50
- return limit?.max - currentValue.length;
51
- }
52
- return limit?.max;
53
- };
50
+ const getRemainingChars = (currentValue, limit) => {
51
+ if (currentValue) {
52
+ return limit?.max - currentValue.length;
53
+ }
54
+ return limit?.max;
55
+ };
54
56
 
55
- const constructRemainingText = (currentValue, limit) => {
56
- const remainingChars = getRemainingChars(currentValue, limit);
57
- let remainingText =
58
- Math.abs(remainingChars) === 1
59
- ? t('form.info.text.character')
60
- : t('form.info.text.characters');
61
- remainingText +=
62
- remainingChars > 0
63
- ? ` ${t('form.info.text.remaining')}.`
64
- : ` ${t('form.info.text.too_many')}.`;
65
- return remainingText;
66
- };
57
+ const constructRemainingText = (currentValue, limit) => {
58
+ const remainingChars = getRemainingChars(currentValue, limit);
59
+ let remainingText =
60
+ Math.abs(remainingChars) === 1
61
+ ? t('form.info.text.character')
62
+ : t('form.info.text.characters');
63
+ remainingText +=
64
+ remainingChars > 0
65
+ ? ` ${t('form.info.text.remaining')}.`
66
+ : ` ${t('form.info.text.too_many')}.`;
67
+ return remainingText;
68
+ };
67
69
 
68
- if (multiline === true) {
69
- return (
70
- <>
71
- <TextArea
72
- name={name}
73
- className={className}
74
- rows={rows}
75
- ref={ref}
76
- id={name}
77
- {...{
78
- ...props,
79
- reset: undefined,
80
- required: undefined,
81
- type: fieldType,
82
- }}
83
- />
84
- {limit?.max && (
85
- <Hint display={'flex'}>
86
- {t('form.info.text.you_have')}
87
- <Hint fontWeight="bold">
88
- &nbsp;{`${Math.abs(getRemainingChars(currentValue, limit))}`}
89
- &nbsp;
90
- </Hint>
91
- {constructRemainingText(currentValue, limit)}
92
- </Hint>
93
- )}
94
- </>
95
- );
96
- } else {
97
- return (
98
- <TextInput
70
+ if (multiline === true) {
71
+ return (
72
+ <>
73
+ <TextArea
99
74
  name={name}
100
- id={name}
101
- type={fieldType}
102
- data-type={type}
103
75
  className={className}
104
- ref={ref}
76
+ rows={rows}
77
+ ref={ref as React.RefObject<HTMLTextAreaElement>}
78
+ id={name}
105
79
  {...{
106
80
  ...props,
107
81
  reset: undefined,
108
82
  required: undefined,
83
+ type: fieldType,
109
84
  }}
110
85
  />
111
- );
112
- }
86
+ {limit?.max && (
87
+ <Hint display={'flex'}>
88
+ {t('form.info.text.you_have')}
89
+ <Hint fontWeight="bold">
90
+ &nbsp;{`${Math.abs(getRemainingChars(currentValue, limit))}`}
91
+ &nbsp;
92
+ </Hint>
93
+ {constructRemainingText(currentValue, limit)}
94
+ </Hint>
95
+ )}
96
+ </>
97
+ );
98
+ } else {
99
+ return (
100
+ <TextInput
101
+ name={name}
102
+ id={name}
103
+ type={fieldType}
104
+ data-type={type}
105
+ className={className}
106
+ ref={ref as React.RefObject<HTMLInputElement>}
107
+ {...{
108
+ ...props,
109
+ reset: undefined,
110
+ required: undefined,
111
+ }}
112
+ />
113
+ );
113
114
  }
114
- );
115
+ });
115
116
 
116
117
  export default Input;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { FieldLabelProps } from '@digigov/form/types';
2
+ import type { FieldLabelProps } from '@digigov/form/types';
3
3
  import { LabelTitle } from '@digigov/ui/form/LabelContainer';
4
4
  import { useTranslation } from '@digigov/ui/i18n';
5
5
  import { Hint } from '@digigov/ui/typography/Hint';
@@ -120,40 +120,49 @@ export function useOtp(onChange, maxLength) {
120
120
  };
121
121
  }
122
122
 
123
- const SingleCharacterInputPart = ({ ...props }) => {
124
- return <SingleCharacterInput {...props} />;
125
- };
123
+ const SingleCharacterInputPart = React.forwardRef<
124
+ HTMLInputElement,
125
+ Record<string, any>
126
+ >(({ ...props }, ref) => {
127
+ return <SingleCharacterInput {...props} ref={ref} />;
128
+ });
129
+ SingleCharacterInputPart.displayName = 'SingleCharacterInputPart';
126
130
 
127
- export const OtpInput = ({ name, maxLength = 6, ...props }) => {
128
- const otp = useOtp(props.onChange, maxLength);
129
- return (
130
- <SingleCharacterInputs>
131
- {otp.otpValues.map((digit, idx) => (
132
- <SingleCharacterInputPart
133
- name={`${name}-${idx}`}
134
- id={`${name}-${idx}`}
135
- type="text"
136
- key={idx}
137
- autoComplete="one-time-code"
138
- pattern="\d{1}"
139
- maxLength={maxLength}
140
- value={digit}
141
- disabled={props.disabled}
142
- aria-required={props['aria-required']}
143
- onChange={(e) => otp.handleOtpChange(e, idx)}
144
- onInput={(e) => {
145
- if (e.target.value === digit) {
146
- otp.handleOtpChange(e, idx);
147
- }
148
- }}
149
- onKeyDown={(e) => otp.handleKeyDown(e, idx)}
150
- onFocus={otp.handleFocus}
151
- onPaste={otp.handlePaste}
152
- error={!digit ? props.error : false}
153
- />
154
- ))}
155
- </SingleCharacterInputs>
156
- );
157
- };
131
+ export const OtpInput = React.forwardRef<HTMLInputElement, Record<string, any>>(
132
+ ({ name, maxLength = 6, ...props }, ref) => {
133
+ const otp = useOtp(props.onChange, maxLength);
134
+ return (
135
+ <SingleCharacterInputs>
136
+ {otp.otpValues.map((digit, idx) => (
137
+ <SingleCharacterInputPart
138
+ ref={idx === 0 ? ref : null}
139
+ name={`${name}-${idx}`}
140
+ id={`${name}-${idx}`}
141
+ type="text"
142
+ key={idx}
143
+ autoComplete="one-time-code"
144
+ pattern="\d{1}"
145
+ maxLength={maxLength}
146
+ value={digit}
147
+ disabled={props.disabled}
148
+ aria-required={props['aria-required']}
149
+ onChange={(e) => otp.handleOtpChange(e, idx)}
150
+ onInput={(e) => {
151
+ if (e.target.value === digit) {
152
+ otp.handleOtpChange(e, idx);
153
+ }
154
+ }}
155
+ onKeyDown={(e) => otp.handleKeyDown(e, idx)}
156
+ onFocus={otp.handleFocus}
157
+ onPaste={otp.handlePaste}
158
+ error={!digit ? props.error : false}
159
+ />
160
+ ))}
161
+ </SingleCharacterInputs>
162
+ );
163
+ }
164
+ );
165
+
166
+ OtpInput.displayName = 'OtpInput';
158
167
 
159
168
  export default OtpInput;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { useWatch } from 'react-hook-form';
3
- import { UncontrolledFieldProps } from '@digigov/form/Field/types';
4
- import { FieldOptionProps } from '@digigov/form/inputs/Label';
3
+ import type { UncontrolledFieldProps } from '@digigov/form/Field/types';
4
+ import type { FieldOptionProps } from '@digigov/form/inputs/Label';
5
5
  import {
6
6
  RadioContainer,
7
7
  RadioItem,
@@ -78,32 +78,40 @@ export const RadioButtonsGroup: React.FC<RadioButtonsGroupProps> = ({
78
78
  </RadioContainer>
79
79
  );
80
80
  };
81
- export const ControlledRadioButtonsGroup: React.FC<
81
+ export const ControlledRadioButtonsGroup = React.forwardRef<
82
+ HTMLInputElement,
82
83
  RadioButtonsGroupProps & { onChange: (e: any) => void; value: any }
83
- > = ({
84
- name,
85
- extra: { options, className },
86
- disabled,
87
- onChange,
88
- value,
89
- Field,
90
- ...props
91
- }) => {
84
+ >(function ControlledRadioButtonsGroup(
85
+ {
86
+ name,
87
+ extra: { options, className },
88
+ disabled,
89
+ onChange,
90
+ value,
91
+ Field,
92
+ ...props
93
+ },
94
+ ref
95
+ ) {
92
96
  const currentValue: string | undefined = value;
93
97
  const { t } = useTranslation();
94
98
  return (
95
99
  <RadioContainer className={className} id={name}>
96
100
  {options.map(
97
- ({
98
- label,
99
- value: v,
100
- show,
101
- disabled: optionDisabled,
102
- selected,
103
- ...option
104
- }) => (
101
+ (
102
+ {
103
+ label,
104
+ value: v,
105
+ show,
106
+ disabled: optionDisabled,
107
+ selected,
108
+ ...option
109
+ },
110
+ index
111
+ ) => (
105
112
  <React.Fragment key={`${name}.${v}`}>
106
113
  <RadioItem
114
+ ref={index === 0 ? ref : undefined}
107
115
  onChange={(e) => {
108
116
  console.log(e);
109
117
  onChange(e);
@@ -139,6 +147,6 @@ export const ControlledRadioButtonsGroup: React.FC<
139
147
  )}
140
148
  </RadioContainer>
141
149
  );
142
- };
150
+ });
143
151
 
144
152
  export default RadioButtonsGroup;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { UncontrolledFieldProps } from '@digigov/form/Field/types';
3
- import { FieldOptionProps } from '@digigov/form/inputs/Label';
2
+ import type { UncontrolledFieldProps } from '@digigov/form/Field/types';
3
+ import type { FieldOptionProps } from '@digigov/form/inputs/Label';
4
4
  import {
5
5
  SelectContainer,
6
6
  SelectOption,
@@ -1,4 +1,4 @@
1
- import { FieldComponentRegistry } from '@digigov/form/Field/types';
1
+ import { type FieldComponentItem } from '@digigov/form/Field/types';
2
2
  import AutoCompleteInput from '@digigov/form/inputs/AutoCompleteInput';
3
3
  import Checkboxes from '@digigov/form/inputs/Checkboxes';
4
4
  import DateInput from '@digigov/form/inputs/DateInput';
@@ -10,6 +10,8 @@ import OtpInput from '@digigov/form/inputs/OtpInput';
10
10
  import Radio, { ControlledRadioButtonsGroup } from '@digigov/form/inputs/Radio';
11
11
  import Select from '@digigov/form/inputs/Select';
12
12
 
13
+ export type FieldComponentRegistry = Record<string, FieldComponentItem>;
14
+
13
15
  export const FIELD_COMPONENTS: FieldComponentRegistry = {
14
16
  text: {
15
17
  component: Input,
package/src/lazy.js CHANGED
@@ -9,10 +9,7 @@ export default {
9
9
  'FieldBase': lazy(() => import('@digigov/form/Field/FieldBase').then((module) => ({ default: module['FieldBase'] }))),
10
10
  'FieldBaseContainer': lazy(() => import('@digigov/form/Field/FieldBaseContainer').then((module) => ({ default: module['FieldBaseContainer'] }))),
11
11
  'FieldConditional': lazy(() => import('@digigov/form/Field/FieldConditional').then((module) => ({ default: module['FieldConditional'] }))),
12
- 'FormDialog': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['FormDialog'] }))),
13
- 'ArrayItemModal': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemModal'] }))),
14
- 'ArrayItemHeader': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemHeader'] }))),
15
- 'ArrayItemDisplay': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemDisplay'] }))),
12
+ 'BaseFieldArray': lazy(() => import('@digigov/form/FieldArray/BaseFieldArray').then((module) => ({ default: module['BaseFieldArray'] }))),
16
13
  'FieldArray': lazy(() => import('@digigov/form/FieldArray').then((module) => ({ default: module['FieldArray'] }))),
17
14
  'FieldObject': lazy(() => import('@digigov/form/FieldObject').then((module) => ({ default: module['FieldObject'] }))),
18
15
  'FieldsetWithContext': lazy(() => import('@digigov/form/Fieldset/FieldsetWithContext').then((module) => ({ default: module['FieldsetWithContext'] }))),
@@ -45,17 +42,18 @@ export default {
45
42
  'Input': lazy(() => import('@digigov/form/inputs/Input').then((module) => ({ default: module['Input'] }))),
46
43
  'Radio': lazy(() => import('@digigov/form/inputs').then((module) => ({ default: module['Radio'] }))),
47
44
  'Select': lazy(() => import('@digigov/form/inputs/Select').then((module) => ({ default: module['Select'] }))),
48
- 'INPUTS_FIELDS': lazy(() => import('@digigov/form/inputs/inputsScenarios').then((module) => ({ default: module['INPUTS_FIELDS'] }))),
49
- 'FIELD_COMPONENTS': lazy(() => import('@digigov/form/Field/utils').then((module) => ({ default: module['FIELD_COMPONENTS'] }))),
50
- 'ALTERNATIVE_COMPONENTS': lazy(() => import('@digigov/form/Field/utils').then((module) => ({ default: module['ALTERNATIVE_COMPONENTS'] }))),
51
- 'CONTROLLED_FIELD_COMPONENTS': lazy(() => import('@digigov/form/Field/utils').then((module) => ({ default: module['CONTROLLED_FIELD_COMPONENTS'] }))),
45
+ 'FIELD_COMPONENTS': lazy(() => import('@digigov/form/inputs/registry').then((module) => ({ default: module['FIELD_COMPONENTS'] }))),
46
+ 'ALTERNATIVE_COMPONENTS': lazy(() => import('@digigov/form/inputs/registry').then((module) => ({ default: module['ALTERNATIVE_COMPONENTS'] }))),
47
+ 'CONTROLLED_FIELD_COMPONENTS': lazy(() => import('@digigov/form/inputs/registry').then((module) => ({ default: module['CONTROLLED_FIELD_COMPONENTS'] }))),
48
+ 'ArrayEditModal': lazy(() => import('@digigov/form/FieldArray/FormDialog/ArrayEditModal').then((module) => ({ default: module['ArrayEditModal'] }))),
49
+ 'FormDialog': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['FormDialog'] }))),
52
50
  'AutoCompleteInput': lazy(() => import('@digigov/form/inputs/AutoCompleteInput').then((module) => ({ default: module['AutoCompleteInput'] }))),
53
51
  'DateTimeInput': lazy(() => import('@digigov/form/inputs/DateTimeInput').then((module) => ({ default: module['DateTimeInput'] }))),
54
52
  'Image': lazy(() => import('@digigov/form/inputs/ImageInput').then((module) => ({ default: module['Image'] }))),
55
- 'RE_DIGIT': lazy(() => import('@digigov/form/inputs/OtpInput').then((module) => ({ default: module['RE_DIGIT'] }))),
56
- 'REMOVE_SPACES': lazy(() => import('@digigov/form/inputs/OtpInput').then((module) => ({ default: module['REMOVE_SPACES'] }))),
57
53
  'RadioButtonsGroup': lazy(() => import('@digigov/form/inputs/Radio').then((module) => ({ default: module['RadioButtonsGroup'] }))),
58
54
  'ControlledRadioButtonsGroup': lazy(() => import('@digigov/form/inputs/Radio').then((module) => ({ default: module['ControlledRadioButtonsGroup'] }))),
55
+ 'RE_DIGIT': lazy(() => import('@digigov/form/inputs/OtpInput').then((module) => ({ default: module['RE_DIGIT'] }))),
56
+ 'REMOVE_SPACES': lazy(() => import('@digigov/form/inputs/OtpInput').then((module) => ({ default: module['REMOVE_SPACES'] }))),
59
57
  'AFM_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['AFM_VALIDATOR'] }))),
60
58
  'AMKA_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['AMKA_VALIDATOR'] }))),
61
59
  'LATER_THAN_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['LATER_THAN_VALIDATOR'] }))),
@@ -64,6 +62,7 @@ export default {
64
62
  'LATER_THAN_DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['LATER_THAN_DATETIME_VALIDATOR'] }))),
65
63
  'EARLIER_THAN_DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['EARLIER_THAN_DATETIME_VALIDATOR'] }))),
66
64
  'DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['DATETIME_VALIDATOR'] }))),
65
+ 'EMAIL_VALIDATOR': lazy(() => import('@digigov/form/validators/utils/email').then((module) => ({ default: module['EMAIL_VALIDATOR'] }))),
67
66
  'FILE_MAX_SIZE_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['FILE_MAX_SIZE_VALIDATOR'] }))),
68
67
  'IBAN_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['IBAN_VALIDATOR'] }))),
69
68
  'IMAGE_DIMENSION_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['IMAGE_DIMENSION_VALIDATOR'] }))),
@@ -74,5 +73,9 @@ export default {
74
73
  'UUID4_VALIDATOR': lazy(() => import('@digigov/form/validators/utils/uuid4').then((module) => ({ default: module['UUID4_VALIDATOR'] }))),
75
74
  'TEXT_LIMIT_VALIDATOR': lazy(() => import('@digigov/form/validators/utils/text_limit').then((module) => ({ default: module['TEXT_LIMIT_VALIDATOR'] }))),
76
75
  'INT_VALIDATOR': lazy(() => import('@digigov/form/validators/utils/int').then((module) => ({ default: module['INT_VALIDATOR'] }))),
77
- 'NUMBER_VALIDATOR': lazy(() => import('@digigov/form/validators/utils/number').then((module) => ({ default: module['NUMBER_VALIDATOR'] })))
76
+ 'NUMBER_VALIDATOR': lazy(() => import('@digigov/form/validators/utils/number').then((module) => ({ default: module['NUMBER_VALIDATOR'] }))),
77
+ 'ArrayContainerDisplay': lazy(() => import('@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay').then((module) => ({ default: module['ArrayContainerDisplay'] }))),
78
+ 'ArrayItemDisplay': lazy(() => import('@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay').then((module) => ({ default: module['ArrayItemDisplay'] }))),
79
+ 'ArrayItemHeader': lazy(() => import('@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader').then((module) => ({ default: module['ArrayItemHeader'] }))),
80
+ 'ArrayDisplay': lazy(() => import('@digigov/form/FieldArray/FormDialog/ArrayDisplay').then((module) => ({ default: module['ArrayDisplay'] })))
78
81
  };
package/src/registry.js CHANGED
@@ -10,7 +10,7 @@ import * as _digigov_form_Field_FieldBaseContainer from "@digigov/form/Field/Fie
10
10
  import * as _digigov_form_Field_FieldConditional from "@digigov/form/Field/FieldConditional";
11
11
  import * as _digigov_form_Field from "@digigov/form/Field";
12
12
  import * as _digigov_form_Field_types from "@digigov/form/Field/types";
13
- import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
13
+ import * as _digigov_form_FieldArray_BaseFieldArray from "@digigov/form/FieldArray/BaseFieldArray";
14
14
  import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
15
15
  import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
16
16
  import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
@@ -25,15 +25,17 @@ import * as _digigov_form_Questions_QuestionsContext from "@digigov/form/Questio
25
25
  import * as _digigov_form_Questions_getNextStep from "@digigov/form/Questions/getNextStep";
26
26
  import * as _digigov_form_Questions from "@digigov/form/Questions";
27
27
  import * as _digigov_form_Questions_types from "@digigov/form/Questions/types";
28
+ import * as _digigov_form_hooks_useFieldFocusManager from "@digigov/form/hooks/useFieldFocusManager";
29
+ import * as _digigov_form_hooks_utils from "@digigov/form/hooks/utils";
28
30
  import * as _digigov_form_inputs from "@digigov/form/inputs";
29
- import * as _digigov_form_inputs_inputsScenarios from "@digigov/form/inputs/inputsScenarios";
30
- import * as _digigov_form_locales_el from "@digigov/form/locales/el";
31
+ import * as _digigov_form_inputs_registry from "@digigov/form/inputs/registry";
31
32
  import * as _digigov_form_validators from "@digigov/form/validators";
32
33
  import * as _digigov_form_validators_types from "@digigov/form/validators/types";
33
- import * as _digigov_form_Field_utils_calculateField from "@digigov/form/Field/utils/calculateField";
34
34
  import * as _digigov_form_Field_utils_evaluateFieldWithConditions from "@digigov/form/Field/utils/evaluateFieldWithConditions";
35
- import * as _digigov_form_Field_utils from "@digigov/form/Field/utils";
35
+ import * as _digigov_form_Field_utils_resolveField from "@digigov/form/Field/utils/resolveField";
36
36
  import * as _digigov_form_Field_utils_useField from "@digigov/form/Field/utils/useField";
37
+ import * as _digigov_form_FieldArray_FormDialog_ArrayEditModal from "@digigov/form/FieldArray/FormDialog/ArrayEditModal";
38
+ import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
37
39
  import * as _digigov_form_Questions_Step_ReviewStep from "@digigov/form/Questions/Step/ReviewStep";
38
40
  import * as _digigov_form_Questions_Step_Step from "@digigov/form/Questions/Step/Step";
39
41
  import * as _digigov_form_Questions_Step_StepArrayReview from "@digigov/form/Questions/Step/StepArrayReview";
@@ -45,21 +47,22 @@ import * as _digigov_form_Questions_Step_StepTitle from "@digigov/form/Questions
45
47
  import * as _digigov_form_Questions_Step_getAddMoreFields from "@digigov/form/Questions/Step/getAddMoreFields";
46
48
  import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
47
49
  import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
48
- import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
49
50
  import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
50
- import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
51
51
  import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
52
- import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
52
+ import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
53
+ import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
53
54
  import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
55
+ import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
54
56
  import * as _digigov_form_inputs_Input from "@digigov/form/inputs/Input";
55
57
  import * as _digigov_form_inputs_Label from "@digigov/form/inputs/Label";
56
- import * as _digigov_form_inputs_OtpInput from "@digigov/form/inputs/OtpInput";
57
58
  import * as _digigov_form_inputs_Radio from "@digigov/form/inputs/Radio";
59
+ import * as _digigov_form_inputs_OtpInput from "@digigov/form/inputs/OtpInput";
58
60
  import * as _digigov_form_inputs_Select from "@digigov/form/inputs/Select";
59
61
  import * as _digigov_form_validators_utils_afm from "@digigov/form/validators/utils/afm";
60
62
  import * as _digigov_form_validators_utils_amka from "@digigov/form/validators/utils/amka";
61
63
  import * as _digigov_form_validators_utils_date from "@digigov/form/validators/utils/date";
62
64
  import * as _digigov_form_validators_utils_datetime from "@digigov/form/validators/utils/datetime";
65
+ import * as _digigov_form_validators_utils_email from "@digigov/form/validators/utils/email";
63
66
  import * as _digigov_form_validators_utils_file from "@digigov/form/validators/utils/file";
64
67
  import * as _digigov_form_validators_utils_iban from "@digigov/form/validators/utils/iban";
65
68
  import * as _digigov_form_validators_utils_image from "@digigov/form/validators/utils/image";
@@ -71,6 +74,10 @@ import * as _digigov_form_validators_utils_phone from "@digigov/form/validators/
71
74
  import * as _digigov_form_validators_utils_postal_code from "@digigov/form/validators/utils/postal_code";
72
75
  import * as _digigov_form_validators_utils_text_limit from "@digigov/form/validators/utils/text_limit";
73
76
  import * as _digigov_form_validators_utils_uuid4 from "@digigov/form/validators/utils/uuid4";
77
+ import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayContainerDisplay from "@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay";
78
+ import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemDisplay from "@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay";
79
+ import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemHeader from "@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader";
80
+ import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay from "@digigov/form/FieldArray/FormDialog/ArrayDisplay";
74
81
  function lazyImport(pkgImport) {
75
82
  return new Proxy(
76
83
  {},
@@ -101,7 +108,7 @@ export default {
101
108
  '@digigov/form/Field/FieldConditional': lazyImport(_digigov_form_Field_FieldConditional),
102
109
  '@digigov/form/Field': lazyImport(_digigov_form_Field),
103
110
  '@digigov/form/Field/types': lazyImport(_digigov_form_Field_types),
104
- '@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
111
+ '@digigov/form/FieldArray/BaseFieldArray': lazyImport(_digigov_form_FieldArray_BaseFieldArray),
105
112
  '@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
106
113
  '@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
107
114
  '@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
@@ -116,15 +123,17 @@ export default {
116
123
  '@digigov/form/Questions/getNextStep': lazyImport(_digigov_form_Questions_getNextStep),
117
124
  '@digigov/form/Questions': lazyImport(_digigov_form_Questions),
118
125
  '@digigov/form/Questions/types': lazyImport(_digigov_form_Questions_types),
126
+ '@digigov/form/hooks/useFieldFocusManager': lazyImport(_digigov_form_hooks_useFieldFocusManager),
127
+ '@digigov/form/hooks/utils': lazyImport(_digigov_form_hooks_utils),
119
128
  '@digigov/form/inputs': lazyImport(_digigov_form_inputs),
120
- '@digigov/form/inputs/inputsScenarios': lazyImport(_digigov_form_inputs_inputsScenarios),
121
- '@digigov/form/locales/el': lazyImport(_digigov_form_locales_el),
129
+ '@digigov/form/inputs/registry': lazyImport(_digigov_form_inputs_registry),
122
130
  '@digigov/form/validators': lazyImport(_digigov_form_validators),
123
131
  '@digigov/form/validators/types': lazyImport(_digigov_form_validators_types),
124
- '@digigov/form/Field/utils/calculateField': lazyImport(_digigov_form_Field_utils_calculateField),
125
132
  '@digigov/form/Field/utils/evaluateFieldWithConditions': lazyImport(_digigov_form_Field_utils_evaluateFieldWithConditions),
126
- '@digigov/form/Field/utils': lazyImport(_digigov_form_Field_utils),
133
+ '@digigov/form/Field/utils/resolveField': lazyImport(_digigov_form_Field_utils_resolveField),
127
134
  '@digigov/form/Field/utils/useField': lazyImport(_digigov_form_Field_utils_useField),
135
+ '@digigov/form/FieldArray/FormDialog/ArrayEditModal': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayEditModal),
136
+ '@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
128
137
  '@digigov/form/Questions/Step/ReviewStep': lazyImport(_digigov_form_Questions_Step_ReviewStep),
129
138
  '@digigov/form/Questions/Step/Step': lazyImport(_digigov_form_Questions_Step_Step),
130
139
  '@digigov/form/Questions/Step/StepArrayReview': lazyImport(_digigov_form_Questions_Step_StepArrayReview),
@@ -136,21 +145,22 @@ export default {
136
145
  '@digigov/form/Questions/Step/getAddMoreFields': lazyImport(_digigov_form_Questions_Step_getAddMoreFields),
137
146
  '@digigov/form/Questions/Step': lazyImport(_digigov_form_Questions_Step),
138
147
  '@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
139
- '@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
140
148
  '@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
141
- '@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
142
149
  '@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
143
- '@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
150
+ '@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
151
+ '@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
144
152
  '@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
153
+ '@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
145
154
  '@digigov/form/inputs/Input': lazyImport(_digigov_form_inputs_Input),
146
155
  '@digigov/form/inputs/Label': lazyImport(_digigov_form_inputs_Label),
147
- '@digigov/form/inputs/OtpInput': lazyImport(_digigov_form_inputs_OtpInput),
148
156
  '@digigov/form/inputs/Radio': lazyImport(_digigov_form_inputs_Radio),
157
+ '@digigov/form/inputs/OtpInput': lazyImport(_digigov_form_inputs_OtpInput),
149
158
  '@digigov/form/inputs/Select': lazyImport(_digigov_form_inputs_Select),
150
159
  '@digigov/form/validators/utils/afm': lazyImport(_digigov_form_validators_utils_afm),
151
160
  '@digigov/form/validators/utils/amka': lazyImport(_digigov_form_validators_utils_amka),
152
161
  '@digigov/form/validators/utils/date': lazyImport(_digigov_form_validators_utils_date),
153
162
  '@digigov/form/validators/utils/datetime': lazyImport(_digigov_form_validators_utils_datetime),
163
+ '@digigov/form/validators/utils/email': lazyImport(_digigov_form_validators_utils_email),
154
164
  '@digigov/form/validators/utils/file': lazyImport(_digigov_form_validators_utils_file),
155
165
  '@digigov/form/validators/utils/iban': lazyImport(_digigov_form_validators_utils_iban),
156
166
  '@digigov/form/validators/utils/image': lazyImport(_digigov_form_validators_utils_image),
@@ -161,5 +171,9 @@ export default {
161
171
  '@digigov/form/validators/utils/phone': lazyImport(_digigov_form_validators_utils_phone),
162
172
  '@digigov/form/validators/utils/postal_code': lazyImport(_digigov_form_validators_utils_postal_code),
163
173
  '@digigov/form/validators/utils/text_limit': lazyImport(_digigov_form_validators_utils_text_limit),
164
- '@digigov/form/validators/utils/uuid4': lazyImport(_digigov_form_validators_utils_uuid4)
174
+ '@digigov/form/validators/utils/uuid4': lazyImport(_digigov_form_validators_utils_uuid4),
175
+ '@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayContainerDisplay),
176
+ '@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemDisplay),
177
+ '@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemHeader),
178
+ '@digigov/form/FieldArray/FormDialog/ArrayDisplay': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay)
165
179
  };
package/src/types.tsx CHANGED
@@ -1,11 +1,11 @@
1
- import { UseFormReturn, UseFormProps, ErrorOption } from 'react-hook-form';
2
- import {
3
- FieldComponentRegistry,
1
+ import type { UseFormReturn, UseFormProps, ErrorOption } from 'react-hook-form';
2
+ import type {
4
3
  FieldLabelProps,
5
4
  FieldSpec,
6
5
  FormData,
7
6
  } from '@digigov/form/Field/types';
8
- import { ValidatorSchema } from '@digigov/form/validators/types';
7
+ import type { FieldComponentRegistry } from '@digigov/form/inputs/registry';
8
+ import type { ValidatorSchema } from '@digigov/form/validators/types';
9
9
  export * from '@digigov/form/Field/types';
10
10
  export interface FieldError {
11
11
  message: string;
@@ -18,25 +18,33 @@ export interface FieldsetSpec {
18
18
  body?: React.ReactNode;
19
19
  }
20
20
 
21
+ export type registerFieldFocus = (
22
+ fieldName: string,
23
+ element: HTMLElement
24
+ ) => (name: string) => void;
25
+
21
26
  export interface FormContextProps {
22
27
  fieldsetsMap?: Record<string, FieldsetSpec>;
23
28
  fieldsMap: Record<string, FieldSpec>;
24
29
  control: UseFormReturn['control'];
25
30
  register: UseFormReturn['register'];
26
31
  trigger: UseFormReturn['trigger'];
32
+ setError: UseFormReturn['setError'];
27
33
  clearErrors: UseFormReturn['clearErrors'];
28
34
  watch: UseFormReturn['watch'];
29
35
  getFieldState: UseFormReturn['getFieldState'];
30
36
  setValue: UseFormReturn['setValue'];
31
37
  getValues: UseFormReturn['getValues'];
38
+ getValuesFromParentForm?: UseFormReturn['getValues'];
32
39
  unregister: UseFormReturn['unregister'];
33
40
  formState: UseFormReturn['formState'];
34
41
  reset: UseFormReturn['reset'];
35
42
  resetField: UseFormReturn['resetField'];
36
43
  registerField: (field: FieldSpec) => void;
44
+ registerFieldFocus: registerFieldFocus;
37
45
  errors: UseFormReturn['formState']['errors'];
38
46
  componentRegistry?: FieldComponentRegistry;
39
- submit: () => Promise<void>;
47
+ submit: () => Promise<void> | void;
40
48
  }
41
49
 
42
50
  export interface FormBuilderProps {
package/src/utils.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { validateFieldsNatively } from '@hookform/resolvers';
2
- import { appendErrors, FieldError } from 'react-hook-form';
3
- import * as Yup from 'yup';
2
+ import type { FieldError } from 'react-hook-form';
3
+ import { appendErrors } from 'react-hook-form';
4
+ import type * as Yup from 'yup';
4
5
 
5
6
  /**
6
7
  * Why `path!` ? because it could be `undefined` in some case