@digigov/form 2.0.0-555d1027 → 2.0.0-5701c39b

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 (433) hide show
  1. package/Field/ErrorGroup.d.ts +3 -3
  2. package/Field/ErrorGroup.js.map +1 -1
  3. package/Field/FieldBase/index.js +2 -1
  4. package/Field/FieldBase.d.ts +1 -1
  5. package/Field/FieldBase.js.map +2 -2
  6. package/Field/FieldBaseContainer/index.js +36 -34
  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 +158 -0
  53. package/FieldArray/FormDialog/ArrayEditModal/package.json +6 -0
  54. package/FieldArray/FormDialog/ArrayEditModal.d.ts +24 -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 +183 -348
  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 +158 -132
  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 +2 -1
  107. package/cjs/Field/FieldBase.js.map +2 -2
  108. package/cjs/Field/FieldBaseContainer/index.js +36 -34
  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 +186 -0
  130. package/cjs/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  131. package/cjs/FieldArray/FormDialog/index.js +174 -331
  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 +159 -133
  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 +68 -63
  166. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  167. package/cjs/inputs/DateInput/index.js +10 -5
  168. package/cjs/inputs/DateInput/index.js.map +2 -2
  169. package/cjs/inputs/DateTimeInput/index.js +10 -5
  170. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  171. package/cjs/inputs/FileInput/index.js +6 -14
  172. package/cjs/inputs/FileInput/index.js.map +2 -2
  173. package/cjs/inputs/ImageInput/index.js +4 -4
  174. package/cjs/inputs/ImageInput/index.js.map +2 -2
  175. package/cjs/inputs/Input/index.js +5 -4
  176. package/cjs/inputs/Input/index.js.map +2 -2
  177. package/cjs/inputs/Label/index.js.map +1 -1
  178. package/cjs/inputs/OtpInput/index.js +36 -31
  179. package/cjs/inputs/OtpInput/index.js.map +2 -2
  180. package/cjs/inputs/Radio/index.js +7 -5
  181. package/cjs/inputs/Radio/index.js.map +3 -3
  182. package/cjs/inputs/Select/index.js +2 -2
  183. package/cjs/inputs/Select/index.js.map +2 -2
  184. package/cjs/{Field/utils → inputs/registry}/index.js +4 -4
  185. package/cjs/inputs/registry.js.map +7 -0
  186. package/cjs/lazy/index.js +12 -9
  187. package/cjs/lazy.js.map +2 -2
  188. package/cjs/registry/index.js +25 -11
  189. package/cjs/registry.js.map +2 -2
  190. package/cjs/types.js.map +1 -1
  191. package/cjs/utils/index.js +9 -0
  192. package/cjs/utils.js.map +2 -2
  193. package/cjs/validators/index.js +5 -2
  194. package/cjs/validators/index.js.map +2 -2
  195. package/cjs/validators/types.js.map +1 -1
  196. package/cjs/validators/utils/date/index.js +6 -1
  197. package/cjs/validators/utils/date.js.map +2 -2
  198. package/cjs/validators/utils/datetime/index.js +6 -1
  199. package/cjs/validators/utils/datetime.js.map +2 -2
  200. package/cjs/validators/utils/email/index.js +39 -0
  201. package/cjs/validators/utils/email.js.map +7 -0
  202. package/cjs/validators/utils/file.js.map +1 -1
  203. package/cjs/validators/utils/iban.js.map +1 -1
  204. package/cjs/validators/utils/image.js.map +1 -1
  205. package/cjs/validators/utils/index.js.map +1 -1
  206. package/cjs/validators/utils/int.js.map +1 -1
  207. package/cjs/validators/utils/number.js.map +1 -1
  208. package/cjs/validators/utils/otp.js.map +1 -1
  209. package/cjs/validators/utils/phone.js.map +1 -1
  210. package/cjs/validators/utils/postal_code.js.map +1 -1
  211. package/cjs/validators/utils/text_limit.js.map +1 -1
  212. package/hooks/useFieldFocusManager/index.js +116 -0
  213. package/hooks/useFieldFocusManager/package.json +6 -0
  214. package/hooks/useFieldFocusManager.d.ts +25 -0
  215. package/hooks/useFieldFocusManager.js.map +7 -0
  216. package/hooks/utils/index.js +73 -0
  217. package/{Field → hooks}/utils/package.json +1 -1
  218. package/hooks/utils.d.ts +18 -0
  219. package/hooks/utils.js.map +7 -0
  220. package/index.js +1 -1
  221. package/inputs/AutoCompleteInput/index.d.ts +3 -3
  222. package/inputs/AutoCompleteInput/index.js +1 -3
  223. package/inputs/AutoCompleteInput/index.js.map +2 -2
  224. package/inputs/Checkboxes/index.d.ts +5 -3
  225. package/inputs/Checkboxes/index.js +68 -63
  226. package/inputs/Checkboxes/index.js.map +2 -2
  227. package/inputs/DateInput/index.d.ts +2 -5
  228. package/inputs/DateInput/index.js +10 -5
  229. package/inputs/DateInput/index.js.map +2 -2
  230. package/inputs/DateTimeInput/index.d.ts +2 -5
  231. package/inputs/DateTimeInput/index.js +10 -5
  232. package/inputs/DateTimeInput/index.js.map +2 -2
  233. package/inputs/FileInput/index.d.ts +4 -4
  234. package/inputs/FileInput/index.js +7 -18
  235. package/inputs/FileInput/index.js.map +2 -2
  236. package/inputs/ImageInput/index.d.ts +2 -2
  237. package/inputs/ImageInput/index.js +4 -4
  238. package/inputs/ImageInput/index.js.map +2 -2
  239. package/inputs/Input/index.d.ts +3 -1
  240. package/inputs/Input/index.js +5 -4
  241. package/inputs/Input/index.js.map +2 -2
  242. package/inputs/Label/index.d.ts +1 -1
  243. package/inputs/Label/index.js.map +1 -1
  244. package/inputs/OtpInput/index.d.ts +1 -5
  245. package/inputs/OtpInput/index.js +36 -31
  246. package/inputs/OtpInput/index.js.map +2 -2
  247. package/inputs/Radio/index.d.ts +6 -4
  248. package/inputs/Radio/index.js +7 -5
  249. package/inputs/Radio/index.js.map +3 -3
  250. package/inputs/Select/index.d.ts +4 -2
  251. package/inputs/Select/index.js +2 -2
  252. package/inputs/Select/index.js.map +2 -2
  253. package/{Field/utils → inputs/registry}/index.js +1 -1
  254. package/{locales/el → inputs/registry}/package.json +1 -1
  255. package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
  256. package/inputs/registry.js.map +7 -0
  257. package/lazy/index.js +12 -9
  258. package/package.json +4 -4
  259. package/registry/index.js +25 -11
  260. package/src/Field/ErrorGroup.tsx +3 -3
  261. package/src/Field/FieldBase.tsx +3 -2
  262. package/src/Field/FieldBaseContainer.tsx +68 -58
  263. package/src/Field/FieldConditional.tsx +1 -1
  264. package/src/Field/index.tsx +16 -36
  265. package/src/Field/types.tsx +11 -12
  266. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  267. package/src/Field/utils/resolveField.ts +58 -0
  268. package/src/Field/utils/useField.ts +3 -1
  269. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  270. package/src/FieldArray/FieldArray.stories.js +1 -0
  271. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.tsx +45 -0
  272. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +14 -0
  273. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +337 -0
  274. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
  275. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.tsx +88 -0
  276. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
  277. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
  278. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.tsx +75 -0
  279. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
  280. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.tsx +88 -0
  281. package/src/FieldArray/FormDialog/ArrayDisplay/index.test.tsx +44 -0
  282. package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +67 -0
  283. package/src/FieldArray/FormDialog/ArrayEditModal.tsx +241 -0
  284. package/src/FieldArray/FormDialog/index.tsx +302 -0
  285. package/src/FieldArray/__stories__/CardsWithError.tsx +124 -0
  286. package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
  287. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
  288. package/src/FieldArray/__tests__/multiplicity-optional.spec.tsx +232 -0
  289. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +170 -0
  290. package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
  291. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  292. package/src/FieldArray/index.spec.tsx +355 -0
  293. package/src/FieldArray/index.test.tsx +4 -0
  294. package/src/FieldArray/index.tsx +43 -63
  295. package/src/FieldObject/index.tsx +9 -17
  296. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  297. package/src/Fieldset/index.tsx +1 -1
  298. package/src/Fieldset/types.tsx +2 -2
  299. package/src/FormBuilder/index.tsx +190 -144
  300. package/src/FormBuilder/scenarios.test.tsx +760 -1
  301. package/src/FormContext.tsx +3 -2
  302. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -3
  303. package/src/MultiplicityField/add-objects.tsx +12 -21
  304. package/src/MultiplicityField/index.tsx +3 -2
  305. package/src/MultiplicityField/types.ts +5 -2
  306. package/src/Questions/Questions.tsx +2 -2
  307. package/src/Questions/QuestionsContext.tsx +1 -1
  308. package/src/Questions/Step/Step.tsx +1 -1
  309. package/src/Questions/Step/StepArrayReview.tsx +2 -2
  310. package/src/Questions/Step/StepContext.tsx +1 -1
  311. package/src/Questions/Step/StepDescription.tsx +2 -1
  312. package/src/Questions/Step/StepForm.tsx +2 -2
  313. package/src/Questions/Step/StepQuote.tsx +2 -1
  314. package/src/Questions/Step/StepTitle.tsx +2 -1
  315. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  316. package/src/Questions/Step/types.tsx +1 -1
  317. package/src/Questions/getNextStep.tsx +1 -1
  318. package/src/Questions/types.tsx +1 -1
  319. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  320. package/src/hooks/__tests__/utils.spec.ts +568 -0
  321. package/src/hooks/useFieldFocusManager.ts +162 -0
  322. package/src/hooks/utils.ts +122 -0
  323. package/src/inputs/AutoCompleteInput/index.tsx +4 -6
  324. package/src/inputs/Checkboxes/index.tsx +98 -87
  325. package/src/inputs/DateInput/index.tsx +19 -6
  326. package/src/inputs/DateTimeInput/index.tsx +19 -6
  327. package/src/inputs/FileInput/index.tsx +15 -21
  328. package/src/inputs/ImageInput/index.tsx +6 -6
  329. package/src/inputs/Input/index.tsx +12 -8
  330. package/src/inputs/Label/index.tsx +1 -1
  331. package/src/inputs/OtpInput/index.tsx +43 -34
  332. package/src/inputs/Radio/index.tsx +33 -22
  333. package/src/inputs/Select/index.tsx +6 -4
  334. package/src/{Field/utils/index.ts → inputs/registry.ts} +3 -1
  335. package/src/lazy.js +12 -9
  336. package/src/registry.js +25 -11
  337. package/src/types.tsx +13 -5
  338. package/src/utils.ts +14 -2
  339. package/src/validators/index.ts +15 -11
  340. package/src/validators/types.ts +1 -1
  341. package/src/validators/utils/date.ts +8 -3
  342. package/src/validators/utils/datetime.ts +8 -3
  343. package/src/validators/utils/email.ts +11 -0
  344. package/src/validators/utils/file.ts +2 -2
  345. package/src/validators/utils/iban.ts +2 -2
  346. package/src/validators/utils/image.ts +2 -2
  347. package/src/validators/utils/index.ts +2 -2
  348. package/src/validators/utils/int.ts +1 -1
  349. package/src/validators/utils/number.ts +1 -1
  350. package/src/validators/utils/otp.ts +2 -2
  351. package/src/validators/utils/phone.ts +2 -2
  352. package/src/validators/utils/postal_code.ts +2 -2
  353. package/src/validators/utils/text_limit.ts +2 -2
  354. package/types.d.ts +9 -4
  355. package/types.js.map +1 -1
  356. package/utils/index.js +8 -0
  357. package/utils.d.ts +2 -1
  358. package/utils.js.map +2 -2
  359. package/validators/index.d.ts +5 -5
  360. package/validators/index.js +5 -2
  361. package/validators/index.js.map +2 -2
  362. package/validators/types.d.ts +1 -1
  363. package/validators/utils/date/index.js +6 -1
  364. package/validators/utils/date.d.ts +2 -2
  365. package/validators/utils/date.js.map +2 -2
  366. package/validators/utils/datetime/index.js +6 -1
  367. package/validators/utils/datetime.d.ts +2 -2
  368. package/validators/utils/datetime.js.map +2 -2
  369. package/validators/utils/email/index.js +16 -0
  370. package/validators/utils/email/package.json +6 -0
  371. package/validators/utils/email.d.ts +5 -0
  372. package/validators/utils/email.js.map +7 -0
  373. package/validators/utils/file.d.ts +2 -2
  374. package/validators/utils/file.js.map +1 -1
  375. package/validators/utils/iban.d.ts +2 -2
  376. package/validators/utils/iban.js.map +1 -1
  377. package/validators/utils/image.d.ts +2 -2
  378. package/validators/utils/image.js.map +1 -1
  379. package/validators/utils/index.d.ts +2 -2
  380. package/validators/utils/index.js.map +1 -1
  381. package/validators/utils/int.d.ts +1 -1
  382. package/validators/utils/int.js.map +1 -1
  383. package/validators/utils/number.d.ts +1 -1
  384. package/validators/utils/number.js.map +1 -1
  385. package/validators/utils/otp.d.ts +2 -2
  386. package/validators/utils/otp.js.map +1 -1
  387. package/validators/utils/phone.d.ts +2 -2
  388. package/validators/utils/phone.js.map +1 -1
  389. package/validators/utils/postal_code.d.ts +2 -2
  390. package/validators/utils/postal_code.js.map +1 -1
  391. package/validators/utils/text_limit.d.ts +2 -2
  392. package/validators/utils/text_limit.js.map +1 -1
  393. package/Field/utils/calculateField/index.js +0 -27
  394. package/Field/utils/calculateField.d.ts +0 -2
  395. package/Field/utils/calculateField.js.map +0 -7
  396. package/Field/utils/index.js.map +0 -7
  397. package/FieldArray/FormDialog.d.ts +0 -67
  398. package/FieldArray/FormDialog.js.map +0 -7
  399. package/FormBuilder/index.test.d.ts +0 -1
  400. package/FormBuilder/interaction.test.d.ts +0 -1
  401. package/FormBuilder/scenarios.test.d.ts +0 -88
  402. package/MultiplicityField/index.test.d.ts +0 -1
  403. package/Questions/index.spec.d.ts +0 -1
  404. package/Questions/index.test.d.ts +0 -1
  405. package/cjs/Field/utils/calculateField/index.js +0 -50
  406. package/cjs/Field/utils/calculateField.js.map +0 -7
  407. package/cjs/Field/utils/index.js.map +0 -7
  408. package/cjs/FieldArray/FormDialog.js.map +0 -7
  409. package/cjs/inputs/inputsScenarios/index.js +0 -533
  410. package/cjs/inputs/inputsScenarios.js.map +0 -7
  411. package/cjs/locales/el.js.map +0 -7
  412. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  413. package/inputs/Checkboxes/index.test.d.ts +0 -1
  414. package/inputs/DateInput/index.test.d.ts +0 -1
  415. package/inputs/DateTimeInput/index.test.d.ts +0 -1
  416. package/inputs/FileInput/index.test.d.ts +0 -1
  417. package/inputs/ImageInput/index.test.d.ts +0 -1
  418. package/inputs/Input/index.test.d.ts +0 -1
  419. package/inputs/Label/index.test.d.ts +0 -1
  420. package/inputs/OtpInput/index.test.d.ts +0 -1
  421. package/inputs/Radio/index.test.d.ts +0 -1
  422. package/inputs/Select/index.test.d.ts +0 -1
  423. package/inputs/inputsScenarios/index.js +0 -499
  424. package/inputs/inputsScenarios.d.ts +0 -296
  425. package/inputs/inputsScenarios.js.map +0 -7
  426. package/locales/el/index.js +0 -6
  427. package/locales/el.d.ts +0 -2
  428. package/locales/el.js.map +0 -7
  429. package/src/Field/utils/calculateField.ts +0 -49
  430. package/src/FieldArray/FormDialog.tsx +0 -568
  431. package/src/inputs/inputsScenarios.ts +0 -496
  432. package/src/locales/el.ts +0 -3
  433. /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
@@ -1,6 +1,7 @@
1
1
  import React, { useRef, useState, useEffect, useCallback } from 'react';
2
- import { UseFormReturn } from 'react-hook-form';
3
- import { UncontrolledFieldProps } from '@digigov/form/Field/types';
2
+ import type { UseFormReturn } from 'react-hook-form';
3
+ import type { UncontrolledFieldProps } from '@digigov/form/Field/types';
4
+ import { omit } from '@digigov/form/utils';
4
5
  import { Button, ButtonGroup } from '@digigov/ui/form/Button';
5
6
  import { FileUpload, FileUploadContainer } from '@digigov/ui/form/FileUpload';
6
7
  import { useTranslation } from '@digigov/ui/i18n';
@@ -50,7 +51,7 @@ export interface ImageInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
50
51
 
51
52
  export const ImageInput: React.FC<ImageInputProps> = React.forwardRef(
52
53
  function ImageInput(
53
- { name, disabled, onChange, resetField, defaultValue, value, ...props },
54
+ { name, disabled, onChange, defaultValue, value, resetField, ...props },
54
55
  ref: any
55
56
  ) {
56
57
  const imageRef = useRef(ref?.current);
@@ -87,7 +88,7 @@ export const ImageInput: React.FC<ImageInputProps> = React.forwardRef(
87
88
  setSelectedImage(null);
88
89
  setImageUrl(null);
89
90
  },
90
- [selectedImage]
91
+ [resetField, name]
91
92
  );
92
93
 
93
94
  useEffect(() => {
@@ -134,9 +135,8 @@ export const ImageInput: React.FC<ImageInputProps> = React.forwardRef(
134
135
  accept="image/*"
135
136
  onChange={handleImageChange}
136
137
  {...{
137
- ...(props as any),
138
+ ...omit(props, ['Field', 'reset', 'error']),
138
139
  required: undefined,
139
- Field: undefined,
140
140
  type: 'file',
141
141
  }}
142
142
  >
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
+ import type { UseFormReturn } from 'react-hook-form';
2
3
  import { useWatch } from 'react-hook-form';
3
- import { UncontrolledFieldProps } from '@digigov/form/Field/types';
4
+ import type { UncontrolledFieldProps } from '@digigov/form/Field/types';
5
+ import { omit } from '@digigov/form/utils';
4
6
  import { TextArea } from '@digigov/ui/form/TextArea';
5
7
  import { TextInput } from '@digigov/ui/form/TextInput';
6
8
  import { useTranslation } from '@digigov/ui/i18n';
@@ -28,11 +30,11 @@ export interface InputProps
28
30
  };
29
31
  };
30
32
  Field?: UncontrolledFieldProps['Field'];
33
+ resetField: UseFormReturn['resetField'];
31
34
  }
32
35
 
33
36
  export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
34
37
  function WrappedInput({ name, control, type, extra, ...props }, ref: never) {
35
- delete props['Field'];
36
38
  // eslint-disable-next-line prefer-const
37
39
  let { multiline = false, rows, limit } = extra || {};
38
40
  const { className } = extra || {};
@@ -65,6 +67,8 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
65
67
  return remainingText;
66
68
  };
67
69
 
70
+ const transformedProps = omit(props, ['Field', 'resetField']);
71
+
68
72
  if (multiline === true) {
69
73
  return (
70
74
  <>
@@ -72,10 +76,10 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
72
76
  name={name}
73
77
  className={className}
74
78
  rows={rows}
75
- ref={ref}
79
+ ref={ref as React.RefObject<HTMLTextAreaElement>}
76
80
  id={name}
77
81
  {...{
78
- ...props,
82
+ ...transformedProps,
79
83
  reset: undefined,
80
84
  required: undefined,
81
85
  type: fieldType,
@@ -84,10 +88,10 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
84
88
  {limit?.max && (
85
89
  <Hint display={'flex'}>
86
90
  {t('form.info.text.you_have')}
87
- <Hint fontWeight="bold">
91
+ <strong>
88
92
  &nbsp;{`${Math.abs(getRemainingChars(currentValue, limit))}`}
89
93
  &nbsp;
90
- </Hint>
94
+ </strong>
91
95
  {constructRemainingText(currentValue, limit)}
92
96
  </Hint>
93
97
  )}
@@ -101,9 +105,9 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
101
105
  type={fieldType}
102
106
  data-type={type}
103
107
  className={className}
104
- ref={ref}
108
+ ref={ref as React.RefObject<HTMLInputElement>}
105
109
  {...{
106
- ...props,
110
+ ...transformedProps,
107
111
  reset: undefined,
108
112
  required: undefined,
109
113
  }}
@@ -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,9 @@
1
1
  import React from 'react';
2
+ import type { UseFormReturn } from 'react-hook-form';
2
3
  import { useWatch } from 'react-hook-form';
3
- import { UncontrolledFieldProps } from '@digigov/form/Field/types';
4
- import { FieldOptionProps } from '@digigov/form/inputs/Label';
4
+ import type { UncontrolledFieldProps } from '@digigov/form/Field/types';
5
+ import type { FieldOptionProps } from '@digigov/form/inputs/Label';
6
+ import { omit } from '@digigov/form/utils';
5
7
  import {
6
8
  RadioContainer,
7
9
  RadioItem,
@@ -19,6 +21,7 @@ export interface RadioButtonsGroupProps
19
21
  dense?: boolean;
20
22
  };
21
23
  fieldComponent?: React.FC<Omit<UncontrolledFieldProps, 'register'>>;
24
+ resetField: UseFormReturn['resetField'];
22
25
  }
23
26
 
24
27
  export const RadioButtonsGroup: React.FC<RadioButtonsGroupProps> = ({
@@ -51,7 +54,7 @@ export const RadioButtonsGroup: React.FC<RadioButtonsGroupProps> = ({
51
54
  disabled={disabled || optionDisabled}
52
55
  {...option}
53
56
  {...{
54
- ...props,
57
+ ...omit(props, ['resetField']),
55
58
  reset: undefined,
56
59
  required: undefined,
57
60
  error: undefined,
@@ -78,32 +81,40 @@ export const RadioButtonsGroup: React.FC<RadioButtonsGroupProps> = ({
78
81
  </RadioContainer>
79
82
  );
80
83
  };
81
- export const ControlledRadioButtonsGroup: React.FC<
84
+ export const ControlledRadioButtonsGroup = React.forwardRef<
85
+ HTMLInputElement,
82
86
  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
- }) => {
87
+ >(function ControlledRadioButtonsGroup(
88
+ {
89
+ name,
90
+ extra: { options, className },
91
+ disabled,
92
+ onChange,
93
+ value,
94
+ Field,
95
+ ...props
96
+ },
97
+ ref
98
+ ) {
92
99
  const currentValue: string | undefined = value;
93
100
  const { t } = useTranslation();
94
101
  return (
95
102
  <RadioContainer className={className} id={name}>
96
103
  {options.map(
97
- ({
98
- label,
99
- value: v,
100
- show,
101
- disabled: optionDisabled,
102
- selected,
103
- ...option
104
- }) => (
104
+ (
105
+ {
106
+ label,
107
+ value: v,
108
+ show,
109
+ disabled: optionDisabled,
110
+ selected,
111
+ ...option
112
+ },
113
+ index
114
+ ) => (
105
115
  <React.Fragment key={`${name}.${v}`}>
106
116
  <RadioItem
117
+ ref={index === 0 ? ref : undefined}
107
118
  onChange={(e) => {
108
119
  console.log(e);
109
120
  onChange(e);
@@ -139,6 +150,6 @@ export const ControlledRadioButtonsGroup: React.FC<
139
150
  )}
140
151
  </RadioContainer>
141
152
  );
142
- };
153
+ });
143
154
 
144
155
  export default RadioButtonsGroup;
@@ -1,6 +1,8 @@
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 { UseFormReturn } from 'react-hook-form';
3
+ import type { UncontrolledFieldProps } from '@digigov/form/Field/types';
4
+ import type { FieldOptionProps } from '@digigov/form/inputs/Label';
5
+ import { omit } from '@digigov/form/utils';
4
6
  import {
5
7
  SelectContainer,
6
8
  SelectOption,
@@ -13,6 +15,7 @@ export interface SelectProps
13
15
  options: FieldOptionProps[];
14
16
  };
15
17
  Field?: UncontrolledFieldProps['Field'];
18
+ resetField: UseFormReturn['resetField'];
16
19
  }
17
20
 
18
21
  export const Select: React.ExoticComponent<SelectProps> = React.forwardRef(
@@ -20,7 +23,6 @@ export const Select: React.ExoticComponent<SelectProps> = React.forwardRef(
20
23
  { name, extra: { options, className }, disabled, ...props },
21
24
  ref: never
22
25
  ) {
23
- delete props.Field;
24
26
  return (
25
27
  <SelectContainer
26
28
  className={className}
@@ -29,7 +31,7 @@ export const Select: React.ExoticComponent<SelectProps> = React.forwardRef(
29
31
  id={name}
30
32
  disabled={disabled}
31
33
  {...{
32
- ...props,
34
+ ...omit(props, ['Field', 'resetField']),
33
35
  reset: undefined,
34
36
  error: undefined,
35
37
  required: undefined,
@@ -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,10 +42,11 @@ 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'] }))),
@@ -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";
@@ -60,6 +62,7 @@ import * as _digigov_form_validators_utils_afm from "@digigov/form/validators/ut
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),
@@ -151,6 +160,7 @@ export default {
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
@@ -98,3 +99,14 @@ export const yupResolver =
98
99
  };
99
100
  }
100
101
  };
102
+
103
+ export function omit<T extends Record<string, unknown>, K extends keyof T>(
104
+ obj: T,
105
+ keys: K[]
106
+ ): Omit<T, K> {
107
+ const result = { ...obj };
108
+ for (const key of keys) {
109
+ delete result[key];
110
+ }
111
+ return result;
112
+ }
@@ -1,13 +1,14 @@
1
- import { MutableRefObject, useMemo } from 'react';
1
+ import type { MutableRefObject } from 'react';
2
+ import { useMemo } from 'react';
2
3
  import * as yup from 'yup';
3
- import { AnyObjectSchema, StringSchema } from 'yup';
4
- import { RequiredArraySchema } from 'yup/lib/array';
5
- import Lazy from 'yup/lib/Lazy';
6
- import { MixedSchema } from 'yup/lib/mixed';
7
- import { TypeOfShape, AssertsShape } from 'yup/lib/object';
8
- import { AnyObject } from 'yup/lib/types';
9
- import { FieldSpec } from '@digigov/form/types';
10
- import { ValidatorSchema } from '@digigov/form/validators/types';
4
+ import type { AnyObjectSchema, StringSchema } from 'yup';
5
+ import type { RequiredArraySchema } from 'yup/lib/array';
6
+ import type Lazy from 'yup/lib/Lazy';
7
+ import type { MixedSchema } from 'yup/lib/mixed';
8
+ import type { TypeOfShape, AssertsShape } from 'yup/lib/object';
9
+ import type { AnyObject } from 'yup/lib/types';
10
+ import type { FieldSpec } from '@digigov/form/types';
11
+ import type { ValidatorSchema } from '@digigov/form/validators/types';
11
12
  import {
12
13
  getYupObjectShape,
13
14
  AFM_VALIDATOR,
@@ -28,6 +29,7 @@ import {
28
29
  LATER_THAN_DATETIME_VALIDATOR,
29
30
  EARLIER_THAN_DATETIME_VALIDATOR,
30
31
  } from '@digigov/form/validators/utils';
32
+ import { EMAIL_VALIDATOR } from '@digigov/form/validators/utils/email';
31
33
  import { INT_VALIDATOR } from '@digigov/form/validators/utils/int';
32
34
  import { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';
33
35
 
@@ -103,12 +105,14 @@ export const getYUPTypeMap = (
103
105
  key: 'form.error.array.min',
104
106
  context: {
105
107
  min: field.extra.min,
108
+ max: field.extra.max || undefined,
106
109
  },
107
110
  });
108
111
  if (field.extra.max)
109
112
  arrayValidator = arrayValidator.max(field.extra.max, {
110
113
  key: 'form.error.array.max',
111
114
  context: {
115
+ min: field.extra.min || undefined,
112
116
  max: field.extra.max,
113
117
  },
114
118
  });
@@ -133,8 +137,8 @@ export const getYUPTypeMap = (
133
137
  .test(INT_VALIDATOR()),
134
138
  email: (field): yup.StringSchema =>
135
139
  field.trim
136
- ? yup.string().trim().email('form.error.email')
137
- : yup.string().email('form.error.email'),
140
+ ? yup.string().trim().test(EMAIL_VALIDATOR)
141
+ : yup.string().test(EMAIL_VALIDATOR),
138
142
  afm: (field): yup.StringSchema =>
139
143
  field.trim
140
144
  ? yup.string().trim().test(AFM_VALIDATOR)
@@ -1,2 +1,2 @@
1
- import * as yup from 'yup';
1
+ import type * as yup from 'yup';
2
2
  export type ValidatorSchema = yup.TestConfig;