@digigov/form 2.0.0-750aec28 → 2.0.0-7d765d3c

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 (548) hide show
  1. package/Field/ErrorGroup.d.ts +3 -3
  2. package/Field/ErrorGroup.js.map +1 -1
  3. package/Field/FieldBase/index.js +7 -4
  4. package/Field/FieldBase.d.ts +1 -1
  5. package/Field/FieldBase.js.map +2 -2
  6. package/Field/FieldBaseContainer/index.js +37 -18
  7. package/Field/FieldBaseContainer.d.ts +2 -2
  8. package/Field/FieldBaseContainer.js.map +2 -2
  9. package/Field/FieldConditional/index.js +4 -0
  10. package/Field/FieldConditional.d.ts +1 -1
  11. package/Field/FieldConditional.js.map +2 -2
  12. package/Field/index.d.ts +1 -1
  13. package/Field/index.js +25 -29
  14. package/Field/index.js.map +2 -2
  15. package/Field/types.d.ts +19 -11
  16. package/Field/utils/evaluateFieldWithConditions.d.ts +2 -2
  17. package/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  18. package/Field/utils/resolveField/index.js +35 -0
  19. package/Field/utils/{calculateField → resolveField}/package.json +1 -1
  20. package/Field/utils/resolveField.d.ts +3 -0
  21. package/Field/utils/resolveField.js.map +7 -0
  22. package/Field/utils/useField/index.js +12 -3
  23. package/Field/utils/useField.d.ts +1 -1
  24. package/Field/utils/useField.js.map +2 -2
  25. package/FieldArray/BaseFieldArray/index.js +76 -0
  26. package/{inputs/inputsScenarios → FieldArray/BaseFieldArray}/package.json +1 -1
  27. package/FieldArray/BaseFieldArray.d.ts +5 -0
  28. package/FieldArray/BaseFieldArray.js.map +7 -0
  29. package/FieldArray/FormDialog/ArrayItemDisplay/index.js +97 -0
  30. package/FieldArray/FormDialog/ArrayItemDisplay/package.json +6 -0
  31. package/FieldArray/FormDialog/ArrayItemDisplay.d.ts +22 -0
  32. package/FieldArray/FormDialog/ArrayItemDisplay.js.map +7 -0
  33. package/FieldArray/FormDialog/ArrayItemHeader/index.js +11 -0
  34. package/FieldArray/FormDialog/ArrayItemHeader/package.json +6 -0
  35. package/FieldArray/FormDialog/ArrayItemHeader.d.ts +5 -0
  36. package/FieldArray/FormDialog/ArrayItemHeader.js.map +7 -0
  37. package/FieldArray/FormDialog/ArrayItemModal/index.js +158 -0
  38. package/{inputs/Input/inputsInputScenarios → FieldArray/FormDialog/ArrayItemModal}/package.json +1 -1
  39. package/FieldArray/FormDialog/ArrayItemModal.d.ts +26 -0
  40. package/FieldArray/FormDialog/ArrayItemModal.js.map +7 -0
  41. package/FieldArray/FormDialog/index.d.ts +19 -0
  42. package/FieldArray/FormDialog/index.js +152 -258
  43. package/FieldArray/FormDialog/index.js.map +7 -0
  44. package/FieldArray/__stories__/Default.d.ts +1 -1
  45. package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
  46. package/FieldArray/__stories__/WithModal.d.ts +1 -1
  47. package/FieldArray/index.d.ts +5 -2
  48. package/FieldArray/index.js +36 -57
  49. package/FieldArray/index.js.map +2 -2
  50. package/FieldObject/index.d.ts +7 -4
  51. package/FieldObject/index.js +29 -25
  52. package/FieldObject/index.js.map +2 -2
  53. package/Fieldset/FieldsetWithContext.js.map +1 -1
  54. package/Fieldset/index.d.ts +1 -1
  55. package/Fieldset/index.js.map +1 -1
  56. package/Fieldset/types.d.ts +2 -2
  57. package/FormBuilder/FormBuilder.stories.d.ts +2 -0
  58. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +1 -1
  59. package/FormBuilder/__stories__/Default.d.ts +1 -1
  60. package/FormBuilder/__stories__/ErrorGrouping.d.ts +1 -1
  61. package/FormBuilder/index.d.ts +2 -2
  62. package/FormBuilder/index.js +163 -134
  63. package/FormBuilder/index.js.map +2 -2
  64. package/FormContext/index.js +6 -2
  65. package/FormContext.d.ts +3 -2
  66. package/FormContext.js.map +2 -2
  67. package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
  68. package/MultiplicityField/__stories__/Default.d.ts +1 -1
  69. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
  70. package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
  71. package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
  72. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
  73. package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
  74. package/MultiplicityField/add-objects/index.js +12 -19
  75. package/MultiplicityField/add-objects.d.ts +1 -1
  76. package/MultiplicityField/add-objects.js.map +2 -2
  77. package/MultiplicityField/index.d.ts +2 -2
  78. package/MultiplicityField/index.js +4 -1
  79. package/MultiplicityField/index.js.map +2 -2
  80. package/MultiplicityField/types.d.ts +3 -2
  81. package/Questions/Questions.d.ts +1 -1
  82. package/Questions/Questions.js.map +1 -1
  83. package/Questions/Questions.stories.d.ts +2 -0
  84. package/Questions/QuestionsContext.d.ts +1 -1
  85. package/Questions/QuestionsContext.js.map +1 -1
  86. package/Questions/Step/Step.d.ts +1 -1
  87. package/Questions/Step/Step.js.map +1 -1
  88. package/Questions/Step/StepArrayReview.d.ts +1 -1
  89. package/Questions/Step/StepArrayReview.js.map +1 -1
  90. package/Questions/Step/StepContext.d.ts +1 -1
  91. package/Questions/Step/StepContext.js.map +1 -1
  92. package/Questions/Step/StepDescription.d.ts +1 -1
  93. package/Questions/Step/StepDescription.js.map +2 -2
  94. package/Questions/Step/StepForm.d.ts +2 -2
  95. package/Questions/Step/StepForm.js.map +1 -1
  96. package/Questions/Step/StepQuote.d.ts +1 -1
  97. package/Questions/Step/StepQuote.js.map +2 -2
  98. package/Questions/Step/StepTitle.d.ts +1 -1
  99. package/Questions/Step/StepTitle.js.map +2 -2
  100. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  101. package/Questions/Step/getAddMoreFields.js.map +1 -1
  102. package/Questions/Step/types.d.ts +1 -1
  103. package/Questions/__stories__/Default.d.ts +1 -1
  104. package/Questions/getNextStep.d.ts +1 -1
  105. package/Questions/getNextStep.js.map +1 -1
  106. package/Questions/types.d.ts +1 -1
  107. package/cjs/Field/ErrorGroup.js.map +1 -1
  108. package/cjs/Field/FieldBase/index.js +7 -4
  109. package/cjs/Field/FieldBase.js.map +2 -2
  110. package/cjs/Field/FieldBaseContainer/index.js +36 -17
  111. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  112. package/cjs/Field/FieldConditional/index.js +4 -0
  113. package/cjs/Field/FieldConditional.js.map +2 -2
  114. package/cjs/Field/index.js +25 -26
  115. package/cjs/Field/index.js.map +2 -2
  116. package/cjs/Field/types.js.map +1 -1
  117. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  118. package/cjs/Field/utils/resolveField/index.js +55 -0
  119. package/cjs/Field/utils/resolveField.js.map +7 -0
  120. package/cjs/Field/utils/useField/index.js +12 -3
  121. package/cjs/Field/utils/useField.js.map +2 -2
  122. package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
  123. package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
  124. package/cjs/FieldArray/FormDialog/ArrayItemDisplay/index.js +130 -0
  125. package/cjs/FieldArray/FormDialog/ArrayItemDisplay.js.map +7 -0
  126. package/cjs/{locales/el → FieldArray/FormDialog/ArrayItemHeader}/index.js +16 -7
  127. package/cjs/FieldArray/FormDialog/ArrayItemHeader.js.map +7 -0
  128. package/cjs/FieldArray/FormDialog/ArrayItemModal/index.js +186 -0
  129. package/cjs/FieldArray/FormDialog/ArrayItemModal.js.map +7 -0
  130. package/cjs/FieldArray/FormDialog/index.js +148 -243
  131. package/cjs/FieldArray/FormDialog/index.js.map +7 -0
  132. package/cjs/FieldArray/index.js +35 -56
  133. package/cjs/FieldArray/index.js.map +3 -3
  134. package/cjs/FieldObject/index.js +29 -22
  135. package/cjs/FieldObject/index.js.map +2 -2
  136. package/cjs/Fieldset/FieldsetWithContext.js.map +1 -1
  137. package/cjs/Fieldset/index.js.map +1 -1
  138. package/cjs/Fieldset/types.js.map +1 -1
  139. package/cjs/FormBuilder/index.js +164 -135
  140. package/cjs/FormBuilder/index.js.map +3 -3
  141. package/cjs/FormContext/index.js +7 -2
  142. package/cjs/FormContext.js.map +2 -2
  143. package/cjs/MultiplicityField/add-objects/index.js +11 -13
  144. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  145. package/cjs/MultiplicityField/index.js +4 -1
  146. package/cjs/MultiplicityField/index.js.map +2 -2
  147. package/cjs/MultiplicityField/types.js.map +1 -1
  148. package/cjs/Questions/Questions.js.map +1 -1
  149. package/cjs/Questions/QuestionsContext.js.map +1 -1
  150. package/cjs/Questions/Step/Step.js.map +1 -1
  151. package/cjs/Questions/Step/StepArrayReview.js.map +1 -1
  152. package/cjs/Questions/Step/StepContext.js.map +1 -1
  153. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  154. package/cjs/Questions/Step/StepForm.js.map +1 -1
  155. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  156. package/cjs/Questions/Step/StepTitle.js.map +2 -2
  157. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  158. package/cjs/Questions/Step/types.js.map +1 -1
  159. package/cjs/Questions/getNextStep.js.map +1 -1
  160. package/cjs/Questions/types.js.map +1 -1
  161. package/cjs/hooks/useFieldFocusManager/index.js +135 -0
  162. package/cjs/hooks/useFieldFocusManager.js.map +7 -0
  163. package/cjs/hooks/utils/index.js +98 -0
  164. package/cjs/hooks/utils.js.map +7 -0
  165. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  166. package/cjs/inputs/Checkboxes/index.js +67 -63
  167. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  168. package/cjs/inputs/DateInput/index.js +51 -19
  169. package/cjs/inputs/DateInput/index.js.map +2 -2
  170. package/cjs/inputs/DateTimeInput/index.js +78 -39
  171. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  172. package/cjs/inputs/FileInput/index.js +52 -29
  173. package/cjs/inputs/FileInput/index.js.map +2 -2
  174. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  175. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  176. package/cjs/inputs/ImageInput/index.js +41 -10
  177. package/cjs/inputs/ImageInput/index.js.map +2 -2
  178. package/cjs/inputs/Input/index.js +55 -57
  179. package/cjs/inputs/Input/index.js.map +2 -2
  180. package/cjs/inputs/Label/index.js.map +1 -1
  181. package/cjs/inputs/OtpInput/index.js +36 -31
  182. package/cjs/inputs/OtpInput/index.js.map +2 -2
  183. package/cjs/inputs/Radio/index.js +5 -4
  184. package/cjs/inputs/Radio/index.js.map +3 -3
  185. package/cjs/inputs/Select/index.js +4 -3
  186. package/cjs/inputs/Select/index.js.map +2 -2
  187. package/cjs/{Field/utils → inputs/registry}/index.js +7 -5
  188. package/cjs/inputs/registry.js.map +7 -0
  189. package/cjs/lazy/index.js +9 -9
  190. package/cjs/lazy.js.map +2 -2
  191. package/cjs/registry/index.js +24 -18
  192. package/cjs/registry.js.map +2 -2
  193. package/cjs/types.js.map +1 -1
  194. package/cjs/utils/index.js +20 -6
  195. package/cjs/utils.js.map +2 -2
  196. package/cjs/validators/index.js +10 -6
  197. package/cjs/validators/index.js.map +2 -2
  198. package/cjs/validators/types.js.map +1 -1
  199. package/cjs/validators/utils/date/index.js +26 -3
  200. package/cjs/validators/utils/date.js.map +2 -2
  201. package/cjs/validators/utils/datetime/index.js +118 -24
  202. package/cjs/validators/utils/datetime.js.map +2 -2
  203. package/cjs/validators/utils/file/index.js +30 -17
  204. package/cjs/validators/utils/file.js.map +2 -2
  205. package/cjs/validators/utils/iban.js.map +1 -1
  206. package/cjs/validators/utils/image.js.map +1 -1
  207. package/cjs/validators/utils/index.js +3 -1
  208. package/cjs/validators/utils/index.js.map +2 -2
  209. package/cjs/validators/utils/int.js.map +1 -1
  210. package/cjs/validators/utils/number.js.map +1 -1
  211. package/cjs/validators/utils/otp.js.map +1 -1
  212. package/cjs/validators/utils/phone.js.map +1 -1
  213. package/cjs/validators/utils/postal_code.js.map +1 -1
  214. package/cjs/validators/utils/text_limit.js.map +1 -1
  215. package/hooks/useFieldFocusManager/index.js +116 -0
  216. package/hooks/useFieldFocusManager/package.json +6 -0
  217. package/hooks/useFieldFocusManager.d.ts +25 -0
  218. package/hooks/useFieldFocusManager.js.map +7 -0
  219. package/hooks/utils/index.js +73 -0
  220. package/{Field → hooks}/utils/package.json +1 -1
  221. package/hooks/utils.d.ts +18 -0
  222. package/hooks/utils.js.map +7 -0
  223. package/index.js +1 -1
  224. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
  225. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
  226. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
  227. package/inputs/AutoCompleteInput/index.d.ts +3 -3
  228. package/inputs/AutoCompleteInput/index.js +1 -3
  229. package/inputs/AutoCompleteInput/index.js.map +2 -2
  230. package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
  231. package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
  232. package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
  233. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
  234. package/inputs/Checkboxes/index.d.ts +3 -3
  235. package/inputs/Checkboxes/index.js +67 -63
  236. package/inputs/Checkboxes/index.js.map +2 -2
  237. package/inputs/DateInput/DateInput.stories.d.ts +6 -0
  238. package/inputs/DateInput/__stories__/Default.d.ts +1 -1
  239. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  240. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  241. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  242. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  243. package/inputs/DateInput/index.d.ts +2 -5
  244. package/inputs/DateInput/index.js +52 -20
  245. package/inputs/DateInput/index.js.map +2 -2
  246. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +10 -3
  247. package/inputs/DateTimeInput/__stories__/Default.d.ts +1 -1
  248. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  249. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  250. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  251. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  252. package/inputs/DateTimeInput/index.d.ts +2 -5
  253. package/inputs/DateTimeInput/index.js +79 -40
  254. package/inputs/DateTimeInput/index.js.map +2 -2
  255. package/inputs/FileInput/FileInput.stories.d.ts +3 -0
  256. package/inputs/FileInput/__stories__/Default.d.ts +1 -1
  257. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  258. package/inputs/FileInput/index.d.ts +12 -5
  259. package/inputs/FileInput/index.js +53 -30
  260. package/inputs/FileInput/index.js.map +2 -2
  261. package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
  262. package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
  263. package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
  264. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  265. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
  266. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  267. package/inputs/ImageInput/__stories__/logo.d/package.json +6 -0
  268. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  269. package/inputs/ImageInput/index.d.ts +10 -2
  270. package/inputs/ImageInput/index.js +42 -11
  271. package/inputs/ImageInput/index.js.map +2 -2
  272. package/inputs/Input/Input.stories.d.ts +3 -0
  273. package/inputs/Input/__stories__/AFM.d.ts +1 -1
  274. package/inputs/Input/__stories__/Boolean.d.ts +1 -1
  275. package/inputs/Input/__stories__/Email.d.ts +3 -0
  276. package/inputs/Input/__stories__/IBAN.d.ts +1 -1
  277. package/inputs/Input/__stories__/Integer.d.ts +1 -1
  278. package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
  279. package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
  280. package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
  281. package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
  282. package/inputs/Input/__stories__/String.d.ts +1 -1
  283. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +1 -1
  284. package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
  285. package/inputs/Input/index.d.ts +4 -3
  286. package/inputs/Input/index.js +55 -57
  287. package/inputs/Input/index.js.map +2 -2
  288. package/inputs/Label/Label.stories.d.ts +2 -0
  289. package/inputs/Label/__stories__/Default.d.ts +1 -1
  290. package/inputs/Label/index.d.ts +1 -1
  291. package/inputs/Label/index.js.map +1 -1
  292. package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
  293. package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
  294. package/inputs/OtpInput/index.d.ts +1 -5
  295. package/inputs/OtpInput/index.js +36 -31
  296. package/inputs/OtpInput/index.js.map +2 -2
  297. package/inputs/Radio/Radio.stories.d.ts +2 -0
  298. package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
  299. package/inputs/Radio/__stories__/Default.d.ts +1 -1
  300. package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
  301. package/inputs/Radio/index.d.ts +4 -4
  302. package/inputs/Radio/index.js +5 -4
  303. package/inputs/Radio/index.js.map +3 -3
  304. package/inputs/Select/Select.stories.d.ts +2 -0
  305. package/inputs/Select/__stories__/Default.d.ts +1 -1
  306. package/inputs/Select/index.d.ts +4 -3
  307. package/inputs/Select/index.js +4 -3
  308. package/inputs/Select/index.js.map +2 -2
  309. package/{Field/utils → inputs/registry}/index.js +4 -2
  310. package/{locales/el → inputs/registry}/package.json +1 -1
  311. package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
  312. package/inputs/registry.js.map +7 -0
  313. package/lazy/index.js +9 -9
  314. package/package.json +8 -8
  315. package/registry/index.js +24 -18
  316. package/src/Field/ErrorGroup.tsx +3 -3
  317. package/src/Field/FieldBase.tsx +7 -4
  318. package/src/Field/FieldBaseContainer.tsx +69 -48
  319. package/src/Field/FieldConditional.tsx +5 -1
  320. package/src/Field/index.tsx +30 -38
  321. package/src/Field/types.tsx +20 -14
  322. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  323. package/src/Field/utils/resolveField.ts +58 -0
  324. package/src/Field/utils/useField.ts +12 -2
  325. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  326. package/src/FieldArray/FormDialog/ArrayItemDisplay.tsx +165 -0
  327. package/src/FieldArray/FormDialog/ArrayItemHeader.tsx +15 -0
  328. package/src/FieldArray/FormDialog/ArrayItemModal.tsx +223 -0
  329. package/src/FieldArray/FormDialog/index.tsx +233 -0
  330. package/src/FieldArray/__stories__/Default.tsx +1 -1
  331. package/src/FieldArray/__stories__/WithExactLength.tsx +1 -1
  332. package/src/FieldArray/__stories__/WithModal.tsx +4 -3
  333. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +219 -0
  334. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +131 -0
  335. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  336. package/src/FieldArray/index.spec.tsx +355 -0
  337. package/src/FieldArray/index.tsx +41 -72
  338. package/src/FieldObject/index.tsx +36 -31
  339. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  340. package/src/Fieldset/index.tsx +1 -1
  341. package/src/Fieldset/types.tsx +2 -2
  342. package/src/FormBuilder/FormBuilder.stories.js +3 -0
  343. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +1 -1
  344. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  345. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +1 -1
  346. package/src/FormBuilder/index.tsx +197 -146
  347. package/src/FormBuilder/scenarios.test.tsx +763 -5
  348. package/src/FormContext.tsx +7 -2
  349. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  350. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  351. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
  352. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  353. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  354. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  355. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  356. package/src/MultiplicityField/add-objects.tsx +14 -21
  357. package/src/MultiplicityField/index.tsx +6 -2
  358. package/src/MultiplicityField/types.ts +6 -2
  359. package/src/Questions/Questions.stories.js +3 -0
  360. package/src/Questions/Questions.tsx +2 -2
  361. package/src/Questions/QuestionsContext.tsx +1 -1
  362. package/src/Questions/Step/Step.tsx +1 -1
  363. package/src/Questions/Step/StepArrayReview.tsx +2 -2
  364. package/src/Questions/Step/StepContext.tsx +1 -1
  365. package/src/Questions/Step/StepDescription.tsx +2 -1
  366. package/src/Questions/Step/StepForm.tsx +2 -2
  367. package/src/Questions/Step/StepQuote.tsx +2 -1
  368. package/src/Questions/Step/StepTitle.tsx +2 -1
  369. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  370. package/src/Questions/Step/types.tsx +1 -1
  371. package/src/Questions/__stories__/Default.tsx +1 -1
  372. package/src/Questions/getNextStep.tsx +1 -1
  373. package/src/Questions/types.tsx +1 -1
  374. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  375. package/src/hooks/__tests__/utils.spec.ts +568 -0
  376. package/src/hooks/useFieldFocusManager.ts +162 -0
  377. package/src/hooks/utils.ts +122 -0
  378. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  379. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
  380. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
  381. package/src/inputs/AutoCompleteInput/index.tsx +4 -6
  382. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  383. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  384. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  385. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  386. package/src/inputs/Checkboxes/index.tsx +95 -91
  387. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  388. package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
  389. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  390. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  391. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  392. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  393. package/src/inputs/DateInput/index.test.tsx +16 -0
  394. package/src/inputs/DateInput/index.tsx +65 -20
  395. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +12 -6
  396. package/src/inputs/DateTimeInput/__stories__/Default.tsx +1 -1
  397. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  398. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  399. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  400. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  401. package/src/inputs/DateTimeInput/index.test.tsx +16 -0
  402. package/src/inputs/DateTimeInput/index.tsx +92 -40
  403. package/src/inputs/FileInput/FileInput.stories.js +4 -0
  404. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  405. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  406. package/src/inputs/FileInput/index.test.tsx +4 -0
  407. package/src/inputs/FileInput/index.tsx +91 -47
  408. package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
  409. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  410. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
  411. package/src/inputs/ImageInput/__stories__/WithInitialValues.tsx +45 -0
  412. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
  413. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  414. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  415. package/src/inputs/ImageInput/index.test.tsx +21 -17
  416. package/src/inputs/ImageInput/index.tsx +101 -49
  417. package/src/inputs/Input/Input.stories.js +4 -0
  418. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  419. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  420. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  421. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  422. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  423. package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
  424. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
  425. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
  426. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
  427. package/src/inputs/Input/__stories__/String.tsx +1 -1
  428. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +1 -1
  429. package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -1
  430. package/src/inputs/Input/index.test.tsx +8 -0
  431. package/src/inputs/Input/index.tsx +76 -73
  432. package/src/inputs/Label/Label.stories.js +3 -0
  433. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  434. package/src/inputs/Label/index.tsx +1 -1
  435. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  436. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  437. package/src/inputs/OtpInput/index.tsx +43 -34
  438. package/src/inputs/Radio/Radio.stories.js +3 -0
  439. package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
  440. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  441. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  442. package/src/inputs/Radio/index.tsx +29 -21
  443. package/src/inputs/Select/Select.stories.js +3 -0
  444. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  445. package/src/inputs/Select/index.tsx +9 -6
  446. package/src/{Field/utils/index.ts → inputs/registry.ts} +5 -1
  447. package/src/lazy.js +9 -9
  448. package/src/registry.js +24 -18
  449. package/src/types.tsx +13 -5
  450. package/src/utils.ts +30 -8
  451. package/src/validators/index.ts +22 -15
  452. package/src/validators/types.ts +1 -1
  453. package/src/validators/utils/date.ts +30 -6
  454. package/src/validators/utils/datetime.ts +123 -31
  455. package/src/validators/utils/file.ts +35 -21
  456. package/src/validators/utils/iban.ts +2 -2
  457. package/src/validators/utils/image.ts +2 -2
  458. package/src/validators/utils/index.ts +5 -3
  459. package/src/validators/utils/int.ts +1 -1
  460. package/src/validators/utils/number.ts +1 -1
  461. package/src/validators/utils/otp.ts +2 -2
  462. package/src/validators/utils/phone.ts +2 -2
  463. package/src/validators/utils/postal_code.ts +2 -2
  464. package/src/validators/utils/text_limit.ts +2 -2
  465. package/types.d.ts +9 -4
  466. package/types.js.map +1 -1
  467. package/utils/index.js +20 -6
  468. package/utils.d.ts +3 -1
  469. package/utils.js.map +2 -2
  470. package/validators/index.d.ts +6 -6
  471. package/validators/index.js +10 -6
  472. package/validators/index.js.map +2 -2
  473. package/validators/types.d.ts +1 -1
  474. package/validators/utils/date/index.js +26 -3
  475. package/validators/utils/date.d.ts +3 -3
  476. package/validators/utils/date.js.map +2 -2
  477. package/validators/utils/datetime/index.js +118 -24
  478. package/validators/utils/datetime.d.ts +3 -3
  479. package/validators/utils/datetime.js.map +2 -2
  480. package/validators/utils/file/index.js +30 -17
  481. package/validators/utils/file.d.ts +2 -2
  482. package/validators/utils/file.js.map +2 -2
  483. package/validators/utils/iban.d.ts +2 -2
  484. package/validators/utils/iban.js.map +1 -1
  485. package/validators/utils/image.d.ts +2 -2
  486. package/validators/utils/image.js.map +1 -1
  487. package/validators/utils/index.d.ts +2 -2
  488. package/validators/utils/index.js +3 -1
  489. package/validators/utils/index.js.map +2 -2
  490. package/validators/utils/int.d.ts +1 -1
  491. package/validators/utils/int.js.map +1 -1
  492. package/validators/utils/number.d.ts +1 -1
  493. package/validators/utils/number.js.map +1 -1
  494. package/validators/utils/otp.d.ts +2 -2
  495. package/validators/utils/otp.js.map +1 -1
  496. package/validators/utils/phone.d.ts +2 -2
  497. package/validators/utils/phone.js.map +1 -1
  498. package/validators/utils/postal_code.d.ts +2 -2
  499. package/validators/utils/postal_code.js.map +1 -1
  500. package/validators/utils/text_limit.d.ts +2 -2
  501. package/validators/utils/text_limit.js.map +1 -1
  502. package/Field/utils/calculateField/index.js +0 -27
  503. package/Field/utils/calculateField.d.ts +0 -2
  504. package/Field/utils/calculateField.js.map +0 -7
  505. package/Field/utils/index.js.map +0 -7
  506. package/FieldArray/FormDialog.d.ts +0 -53
  507. package/FieldArray/FormDialog.js.map +0 -7
  508. package/FormBuilder/index.test.d.ts +0 -1
  509. package/FormBuilder/interaction.test.d.ts +0 -1
  510. package/FormBuilder/scenarios.test.d.ts +0 -88
  511. package/MultiplicityField/index.test.d.ts +0 -1
  512. package/Questions/index.spec.d.ts +0 -1
  513. package/Questions/index.test.d.ts +0 -1
  514. package/cjs/Field/utils/calculateField/index.js +0 -50
  515. package/cjs/Field/utils/calculateField.js.map +0 -7
  516. package/cjs/Field/utils/index.js.map +0 -7
  517. package/cjs/FieldArray/FormDialog.js.map +0 -7
  518. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  519. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  520. package/cjs/inputs/inputsScenarios/index.js +0 -533
  521. package/cjs/inputs/inputsScenarios.js.map +0 -7
  522. package/cjs/locales/el.js.map +0 -7
  523. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  524. package/inputs/Checkboxes/index.test.d.ts +0 -1
  525. package/inputs/DateInput/index.test.d.ts +0 -1
  526. package/inputs/DateTimeInput/index.test.d.ts +0 -1
  527. package/inputs/FileInput/index.test.d.ts +0 -1
  528. package/inputs/ImageInput/index.test.d.ts +0 -1
  529. package/inputs/Input/index.test.d.ts +0 -1
  530. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  531. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  532. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  533. package/inputs/Label/index.test.d.ts +0 -1
  534. package/inputs/OtpInput/index.test.d.ts +0 -1
  535. package/inputs/Radio/index.test.d.ts +0 -1
  536. package/inputs/Select/index.test.d.ts +0 -1
  537. package/inputs/inputsScenarios/index.js +0 -499
  538. package/inputs/inputsScenarios.d.ts +0 -296
  539. package/inputs/inputsScenarios.js.map +0 -7
  540. package/locales/el/index.js +0 -6
  541. package/locales/el.d.ts +0 -2
  542. package/locales/el.js.map +0 -7
  543. package/src/Field/utils/calculateField.ts +0 -49
  544. package/src/FieldArray/FormDialog.tsx +0 -378
  545. package/src/inputs/Input/inputsInputScenarios.ts +0 -404
  546. package/src/inputs/inputsScenarios.ts +0 -496
  547. package/src/locales/el.ts +0 -3
  548. /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
package/registry/index.js CHANGED
@@ -10,9 +10,9 @@ 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_FieldObject from "@digigov/form/FieldObject";
14
- import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
13
+ import * as _digigov_form_FieldArray_BaseFieldArray from "@digigov/form/FieldArray/BaseFieldArray";
15
14
  import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
15
+ import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
16
16
  import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
17
17
  import * as _digigov_form_Fieldset from "@digigov/form/Fieldset";
18
18
  import * as _digigov_form_Fieldset_types from "@digigov/form/Fieldset/types";
@@ -25,15 +25,19 @@ 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_ArrayItemDisplay from "@digigov/form/FieldArray/FormDialog/ArrayItemDisplay";
38
+ import * as _digigov_form_FieldArray_FormDialog_ArrayItemHeader from "@digigov/form/FieldArray/FormDialog/ArrayItemHeader";
39
+ import * as _digigov_form_FieldArray_FormDialog_ArrayItemModal from "@digigov/form/FieldArray/FormDialog/ArrayItemModal";
40
+ import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
37
41
  import * as _digigov_form_Questions_Step_ReviewStep from "@digigov/form/Questions/Step/ReviewStep";
38
42
  import * as _digigov_form_Questions_Step_Step from "@digigov/form/Questions/Step/Step";
39
43
  import * as _digigov_form_Questions_Step_StepArrayReview from "@digigov/form/Questions/Step/StepArrayReview";
@@ -45,14 +49,13 @@ import * as _digigov_form_Questions_Step_StepTitle from "@digigov/form/Questions
45
49
  import * as _digigov_form_Questions_Step_getAddMoreFields from "@digigov/form/Questions/Step/getAddMoreFields";
46
50
  import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
47
51
  import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
48
- import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
49
52
  import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
53
+ import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
50
54
  import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
51
55
  import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
52
- import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
53
56
  import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
57
+ import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
54
58
  import * as _digigov_form_inputs_Input from "@digigov/form/inputs/Input";
55
- import * as _digigov_form_inputs_Input_inputsInputScenarios from "@digigov/form/inputs/Input/inputsInputScenarios";
56
59
  import * as _digigov_form_inputs_Label from "@digigov/form/inputs/Label";
57
60
  import * as _digigov_form_inputs_OtpInput from "@digigov/form/inputs/OtpInput";
58
61
  import * as _digigov_form_inputs_Radio from "@digigov/form/inputs/Radio";
@@ -102,9 +105,9 @@ export default {
102
105
  '@digigov/form/Field/FieldConditional': lazyImport(_digigov_form_Field_FieldConditional),
103
106
  '@digigov/form/Field': lazyImport(_digigov_form_Field),
104
107
  '@digigov/form/Field/types': lazyImport(_digigov_form_Field_types),
105
- '@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
106
- '@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
108
+ '@digigov/form/FieldArray/BaseFieldArray': lazyImport(_digigov_form_FieldArray_BaseFieldArray),
107
109
  '@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
110
+ '@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
108
111
  '@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
109
112
  '@digigov/form/Fieldset': lazyImport(_digigov_form_Fieldset),
110
113
  '@digigov/form/Fieldset/types': lazyImport(_digigov_form_Fieldset_types),
@@ -117,15 +120,19 @@ export default {
117
120
  '@digigov/form/Questions/getNextStep': lazyImport(_digigov_form_Questions_getNextStep),
118
121
  '@digigov/form/Questions': lazyImport(_digigov_form_Questions),
119
122
  '@digigov/form/Questions/types': lazyImport(_digigov_form_Questions_types),
123
+ '@digigov/form/hooks/useFieldFocusManager': lazyImport(_digigov_form_hooks_useFieldFocusManager),
124
+ '@digigov/form/hooks/utils': lazyImport(_digigov_form_hooks_utils),
120
125
  '@digigov/form/inputs': lazyImport(_digigov_form_inputs),
121
- '@digigov/form/inputs/inputsScenarios': lazyImport(_digigov_form_inputs_inputsScenarios),
122
- '@digigov/form/locales/el': lazyImport(_digigov_form_locales_el),
126
+ '@digigov/form/inputs/registry': lazyImport(_digigov_form_inputs_registry),
123
127
  '@digigov/form/validators': lazyImport(_digigov_form_validators),
124
128
  '@digigov/form/validators/types': lazyImport(_digigov_form_validators_types),
125
- '@digigov/form/Field/utils/calculateField': lazyImport(_digigov_form_Field_utils_calculateField),
126
129
  '@digigov/form/Field/utils/evaluateFieldWithConditions': lazyImport(_digigov_form_Field_utils_evaluateFieldWithConditions),
127
- '@digigov/form/Field/utils': lazyImport(_digigov_form_Field_utils),
130
+ '@digigov/form/Field/utils/resolveField': lazyImport(_digigov_form_Field_utils_resolveField),
128
131
  '@digigov/form/Field/utils/useField': lazyImport(_digigov_form_Field_utils_useField),
132
+ '@digigov/form/FieldArray/FormDialog/ArrayItemDisplay': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayItemDisplay),
133
+ '@digigov/form/FieldArray/FormDialog/ArrayItemHeader': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayItemHeader),
134
+ '@digigov/form/FieldArray/FormDialog/ArrayItemModal': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayItemModal),
135
+ '@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
129
136
  '@digigov/form/Questions/Step/ReviewStep': lazyImport(_digigov_form_Questions_Step_ReviewStep),
130
137
  '@digigov/form/Questions/Step/Step': lazyImport(_digigov_form_Questions_Step_Step),
131
138
  '@digigov/form/Questions/Step/StepArrayReview': lazyImport(_digigov_form_Questions_Step_StepArrayReview),
@@ -137,14 +144,13 @@ export default {
137
144
  '@digigov/form/Questions/Step/getAddMoreFields': lazyImport(_digigov_form_Questions_Step_getAddMoreFields),
138
145
  '@digigov/form/Questions/Step': lazyImport(_digigov_form_Questions_Step),
139
146
  '@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
140
- '@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
141
147
  '@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
148
+ '@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
142
149
  '@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
143
150
  '@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
144
- '@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
145
151
  '@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
152
+ '@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
146
153
  '@digigov/form/inputs/Input': lazyImport(_digigov_form_inputs_Input),
147
- '@digigov/form/inputs/Input/inputsInputScenarios': lazyImport(_digigov_form_inputs_Input_inputsInputScenarios),
148
154
  '@digigov/form/inputs/Label': lazyImport(_digigov_form_inputs_Label),
149
155
  '@digigov/form/inputs/OtpInput': lazyImport(_digigov_form_inputs_OtpInput),
150
156
  '@digigov/form/inputs/Radio': lazyImport(_digigov_form_inputs_Radio),
@@ -1,13 +1,13 @@
1
1
  import React, { createContext, useEffect, useState } from 'react';
2
- import { ErrorOption } from 'react-hook-form';
3
- import { FieldLabelProps } from '@digigov/form/Field/types';
2
+ import type { ErrorOption } from 'react-hook-form';
3
+ import type { FieldLabelProps } from '@digigov/form/Field/types';
4
4
  import { List, ListItem } from '@digigov/ui/content/List';
5
5
  import { ErrorSummary } from '@digigov/ui/feedback/ErrorSummary';
6
6
  import { useTranslation } from '@digigov/ui/i18n';
7
7
  import { Link } from '@digigov/ui/navigation/Link';
8
8
  import { Heading } from '@digigov/ui/typography/Heading';
9
9
  import { Base } from '@digigov/ui/utils/Base';
10
- import { Breakpoints } from '@digigov/ui/utils/hooks/useScreen';
10
+ import type { Breakpoints } from '@digigov/ui/utils/hooks/useScreen';
11
11
  interface ErrorGroupContextType {
12
12
  setError: (
13
13
  name?: string,
@@ -2,7 +2,7 @@ import React, { useContext, useEffect } from 'react';
2
2
  import { Controller } from 'react-hook-form';
3
3
  import { ErrorGroupContext } from '@digigov/form/Field/ErrorGroup';
4
4
  import FieldBaseContainer from '@digigov/form/Field/FieldBaseContainer';
5
- import { FieldBaseProps } from '@digigov/form/Field/types';
5
+ import type { FieldBaseProps } from '@digigov/form/Field/types';
6
6
 
7
7
  export const FieldBase: React.FC<FieldBaseProps> = ({
8
8
  required,
@@ -39,10 +39,12 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
39
39
  <FieldBaseContainer
40
40
  label={label}
41
41
  layout={layout}
42
+ register={register}
42
43
  error={errorGroupContext ? undefined : error}
43
44
  hasError={!!error}
44
45
  wrapper={wrapper}
45
46
  name={name}
47
+ controlled={controlled}
46
48
  >
47
49
  <Controller
48
50
  control={control}
@@ -52,8 +54,7 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
52
54
  <Component
53
55
  {...field}
54
56
  control={control}
55
- ref={undefined}
56
- defaultValue={defaultValue}
57
+ defaultValue={defaultValue ?? field.value}
57
58
  extra={extra}
58
59
  error={!!error}
59
60
  type={type}
@@ -74,6 +75,7 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
74
75
  <FieldBaseContainer
75
76
  label={label}
76
77
  layout={layout}
78
+ register={register}
77
79
  error={errorGroupContext ? undefined : error}
78
80
  hasError={!!error}
79
81
  wrapper={wrapper}
@@ -90,6 +92,7 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
90
92
  aria-describedby={error && `${name}-error`}
91
93
  required={required}
92
94
  disabled={editable === false}
95
+ defaultValue={defaultValue}
93
96
  {...componentProps}
94
97
  />
95
98
  ) : (
@@ -100,11 +103,11 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
100
103
  error={!!error}
101
104
  extra={extra}
102
105
  type={type}
106
+ defaultValue={defaultValue}
103
107
  aria-required={!!required}
104
108
  aria-describedby={error && `${name}-error`}
105
109
  required={required}
106
110
  disabled={editable === false}
107
- ref={undefined}
108
111
  {...componentProps}
109
112
  />
110
113
  )}
@@ -1,60 +1,81 @@
1
+ import type { ComponentRef } from 'react';
1
2
  import React from 'react';
2
- import { FieldContainerProps } from '@digigov/form/Field/types';
3
+ import type { FieldContainerProps } from '@digigov/form/Field/types';
3
4
  import Label from '@digigov/form/inputs/Label';
4
5
  import { ErrorMessage } from '@digigov/react-core/ErrorMessage';
5
6
  import FieldContainer from '@digigov/react-core/FieldContainer';
6
- import CoreFieldset from '@digigov/react-core/Fieldset';
7
+ import Fieldset from '@digigov/react-core/Fieldset';
7
8
  import FieldsetLegend from '@digigov/react-core/FieldsetLegend';
8
9
  import LabelContainer from '@digigov/react-core/LabelContainer';
9
10
  import { useTranslation } from '@digigov/ui/i18n';
10
11
  import { Hint } from '@digigov/ui/typography/Hint';
11
12
 
12
- export const FieldBaseContainer: React.FC<FieldContainerProps> = ({
13
- name,
14
- wrapper,
15
- label,
16
- children,
17
- error,
18
- hasError,
19
- layout,
20
- }) => {
21
- const { t } = useTranslation();
22
- const errorMessage = error?.message.key
23
- ? error.message.key
24
- : error?.message || '';
25
- const errorContext = error?.message.context || {};
26
- if (wrapper === 'fieldset') {
27
- return (
28
- <FieldContainer error={hasError} {...layout}>
29
- <CoreFieldset>
30
- <FieldsetLegend size="sm">{label && label.primary}</FieldsetLegend>
31
- {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
32
- {error && (
33
- <ErrorMessage id={`${name}-error`}>
34
- {t(errorMessage, errorContext)}
35
- </ErrorMessage>
36
- )}
37
- {children}
38
- {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
39
- </CoreFieldset>
40
- </FieldContainer>
41
- );
42
- } else {
43
- return (
44
- <FieldContainer error={hasError} {...layout}>
45
- <LabelContainer>
46
- {label && <Label label={label} />}
47
- {error && (
48
- <ErrorMessage id={`${name}-error`}>
49
- {t(errorMessage, errorContext)}
50
- </ErrorMessage>
51
- )}
52
- {children}
53
- {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
54
- </LabelContainer>
55
- </FieldContainer>
56
- );
13
+ export const FieldBaseContainer = React.forwardRef<
14
+ ComponentRef<typeof Fieldset>,
15
+ FieldContainerProps
16
+ >(
17
+ (
18
+ {
19
+ name,
20
+ wrapper,
21
+ label,
22
+ children,
23
+ error,
24
+ hasError,
25
+ layout,
26
+ controlled,
27
+ labelSize = 'sm',
28
+ },
29
+ ref
30
+ ) => {
31
+ const { t } = useTranslation();
32
+ const errorMessage = error?.message.key
33
+ ? error.message.key
34
+ : error?.message || '';
35
+ const errorContext = error?.message.context || {};
36
+ if (wrapper === 'fieldset') {
37
+ return (
38
+ <FieldContainer error={hasError} {...layout}>
39
+ <Fieldset
40
+ ref={ref}
41
+ className="outline-none"
42
+ {...(controlled && {
43
+ tabIndex: -1,
44
+ })}
45
+ >
46
+ <FieldsetLegend size={labelSize}>
47
+ {label && label.primary}
48
+ </FieldsetLegend>
49
+ {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
50
+ {error && (
51
+ <ErrorMessage id={`${name}-error`}>
52
+ {t(errorMessage, errorContext)}
53
+ </ErrorMessage>
54
+ )}
55
+ {children}
56
+ {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
57
+ </Fieldset>
58
+ </FieldContainer>
59
+ );
60
+ } else {
61
+ return (
62
+ <FieldContainer error={hasError} {...layout}>
63
+ <LabelContainer>
64
+ {label && <Label label={label} />}
65
+ {error && (
66
+ <ErrorMessage id={`${name}-error`}>
67
+ {t(errorMessage, errorContext)}
68
+ </ErrorMessage>
69
+ )}
70
+ {children}
71
+ {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
72
+ </LabelContainer>
73
+ </FieldContainer>
74
+ );
75
+ }
57
76
  }
58
- };
77
+ );
78
+
79
+ FieldBaseContainer.displayName = 'FieldBaseContainer';
59
80
 
60
81
  export default FieldBaseContainer;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { useWatch } from 'react-hook-form';
3
3
  import { FieldBase } from '@digigov/form/Field/FieldBase';
4
- import {
4
+ import type {
5
5
  ChildFieldMemoProps,
6
6
  FieldConditionalProps,
7
7
  } from '@digigov/form/Field/types';
@@ -13,6 +13,7 @@ const ChildFieldMemo = React.memo(
13
13
  field,
14
14
  control,
15
15
  reset,
16
+ resetField,
16
17
  register,
17
18
  error,
18
19
  Field,
@@ -27,6 +28,7 @@ const ChildFieldMemo = React.memo(
27
28
  Field={Field}
28
29
  name={newField.key}
29
30
  reset={reset}
31
+ resetField={resetField}
30
32
  control={control}
31
33
  register={register}
32
34
  error={error}
@@ -54,6 +56,7 @@ export const FieldConditional: React.FC<FieldConditionalProps> = ({
54
56
  field,
55
57
  register,
56
58
  reset,
59
+ resetField,
57
60
  error,
58
61
  Field,
59
62
  }) => {
@@ -76,6 +79,7 @@ export const FieldConditional: React.FC<FieldConditionalProps> = ({
76
79
  control={control}
77
80
  register={register}
78
81
  reset={reset}
82
+ resetField={resetField}
79
83
  error={error}
80
84
  Field={Field}
81
85
  />
@@ -1,22 +1,13 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { FieldBase } from '@digigov/form/Field/FieldBase';
3
3
  import FieldConditional from '@digigov/form/Field/FieldConditional';
4
- import {
5
- FieldWithCondition,
6
- CalculatedField,
7
- FieldProps,
8
- } from '@digigov/form/Field/types';
9
- import {
10
- FIELD_COMPONENTS,
11
- ALTERNATIVE_COMPONENTS,
12
- } from '@digigov/form/Field/utils';
13
- import { calculateField } from '@digigov/form/Field/utils/calculateField';
4
+ import type { FieldWithCondition, FieldProps } from '@digigov/form/Field/types';
5
+ import { resolveField } from '@digigov/form/Field/utils/resolveField';
14
6
  import { useField } from '@digigov/form/Field/utils/useField';
15
7
  import FieldArray from '@digigov/form/FieldArray';
16
8
  import Multiplicity from '@digigov/form/MultiplicityField';
17
9
  export const Field: React.FC<FieldProps> = ({
18
10
  name,
19
- disabled,
20
11
  children,
21
12
  ...customField
22
13
  }) => {
@@ -25,6 +16,7 @@ export const Field: React.FC<FieldProps> = ({
25
16
  control,
26
17
  register,
27
18
  reset,
19
+ resetField,
28
20
  error,
29
21
  componentRegistry,
30
22
  formState,
@@ -33,56 +25,49 @@ export const Field: React.FC<FieldProps> = ({
33
25
  unregister,
34
26
  trigger,
35
27
  clearErrors,
28
+ registerFieldFocus,
36
29
  } = useField(name, customField?.type ? customField : null);
37
- const calculatedField: CalculatedField = useMemo(
38
- () =>
39
- calculateField(
40
- children,
41
- field,
42
- {
43
- ...FIELD_COMPONENTS,
44
- ...componentRegistry,
45
- },
46
- ALTERNATIVE_COMPONENTS
47
- ),
30
+ const resolvedField = useMemo(
31
+ () => resolveField(children, field, componentRegistry),
48
32
  [field]
49
33
  );
50
-
51
- if (calculatedField.condition) {
34
+ if (resolvedField.condition) {
52
35
  return (
53
36
  <FieldConditional
54
37
  control={control}
55
38
  reset={reset}
39
+ resetField={resetField}
56
40
  register={register}
57
- field={calculatedField as FieldWithCondition}
41
+ field={resolvedField as FieldWithCondition}
58
42
  error={error}
59
43
  Field={Field}
60
44
  />
61
45
  );
62
46
  }
63
- if (calculatedField.type === 'array' && !calculatedField.multiplicity) {
64
- calculatedField.name = name;
47
+ if (resolvedField.type === 'array' && !resolvedField.multiplicity) {
48
+ resolvedField.name = name;
65
49
  return (
66
50
  <FieldArray
67
51
  control={control}
68
52
  trigger={trigger}
69
53
  register={register}
70
54
  clearErrors={clearErrors}
71
- error={error}
55
+ error={
56
+ formState.isSubmitted && !formState.isSubmitting ? error : undefined
57
+ }
72
58
  getValues={getValues}
73
59
  setValue={setValue}
74
60
  formState={formState}
75
61
  Field={Field}
76
62
  reset={reset}
77
- {...calculatedField}
63
+ resetField={resetField}
64
+ registerFieldFocus={registerFieldFocus}
65
+ {...resolvedField}
78
66
  />
79
67
  );
80
68
  }
81
- if (
82
- calculatedField.type === 'array' &&
83
- calculatedField.multiplicity === true
84
- ) {
85
- calculatedField.name = name;
69
+ if (resolvedField.type === 'array' && resolvedField.multiplicity === true) {
70
+ resolvedField.name = name;
86
71
  return (
87
72
  <Multiplicity
88
73
  control={control}
@@ -94,20 +79,27 @@ export const Field: React.FC<FieldProps> = ({
94
79
  setValue={setValue}
95
80
  getValues={getValues}
96
81
  unregister={unregister}
82
+ resetField={resetField}
97
83
  Field={Field}
98
- {...calculatedField}
84
+ {...resolvedField}
99
85
  />
100
86
  );
101
87
  }
88
+ const editable =
89
+ customField.editable === false || customField.disabled === true
90
+ ? false
91
+ : true;
92
+ const customError = error ? error : formState?.errors[name];
102
93
  return (
103
94
  <FieldBase
104
- {...calculatedField}
95
+ {...resolvedField}
96
+ editable={editable}
105
97
  name={name}
106
- disabled={disabled}
107
98
  control={control}
108
99
  register={register}
109
100
  reset={reset}
110
- error={error}
101
+ error={customError}
102
+ resetField={resetField}
111
103
  Field={Field}
112
104
  />
113
105
  );
@@ -1,7 +1,10 @@
1
- import React from 'react';
2
- import { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';
3
- import { ValidatorSchema } from '@digigov/form/validators/types';
4
- import { GridProps } from '@digigov/ui/layouts/Grid';
1
+ import type React from 'react';
2
+ import type { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';
3
+ import type { FieldComponentRegistry } from '@digigov/form/inputs/registry';
4
+ import type { registerFieldFocus } from '@digigov/form/types';
5
+ import type { ValidatorSchema } from '@digigov/form/validators/types';
6
+ import type { FieldsetLegendProps } from '@digigov/ui/form/FieldContainer';
7
+ import type { GridProps } from '@digigov/ui/layouts/Grid';
5
8
 
6
9
  export interface FieldLabelProps {
7
10
  primary?: string;
@@ -46,7 +49,7 @@ export interface FieldSpec {
46
49
  variant?: 'inline' | 'dialog';
47
50
  required?: boolean;
48
51
  enabled?: boolean;
49
- disabled?: boolean;
52
+ disabled?: boolean; // TODO: keep disabled or editable
50
53
  layout?: Record<
51
54
  string,
52
55
  | GridProps['xs']
@@ -72,7 +75,7 @@ export interface ChildFieldMemoProps extends FieldConditionalProps {
72
75
  }
73
76
  export type FormData = UseFormProps['defaultValues'];
74
77
 
75
- export interface FieldWithCondition extends Omit<CalculatedField, 'condition'> {
78
+ export interface FieldWithCondition extends Omit<ResolvedField, 'condition'> {
76
79
  condition: Record<string, FieldCondition>;
77
80
  }
78
81
 
@@ -81,6 +84,7 @@ export interface FieldConditionalProps {
81
84
  control: UseFormReturn['control'];
82
85
  register: UseFormReturn['register'];
83
86
  reset: UseFormReturn['reset'];
87
+ resetField?: UseFormReturn['resetField'];
84
88
  error?: ErrorOption;
85
89
  Field: React.FC<FieldProps>;
86
90
  }
@@ -94,18 +98,17 @@ export interface FieldComponentItem {
94
98
 
95
99
  export interface FieldContainerProps {
96
100
  name?: FieldSpec['key'];
101
+ register: FieldBaseProps['register'];
97
102
  layout?: FieldSpec['layout'];
98
103
  label?: FieldSpec['label'];
99
104
  error?: ErrorOption | Record<string, any>;
100
105
  hasError?: boolean;
101
106
  children?: React.ReactNode;
107
+ controlled?: boolean;
102
108
  wrapper?: FieldSpec['wrapper'];
109
+ labelSize?: FieldsetLegendProps['size'];
103
110
  }
104
111
 
105
- export type FieldComponentRegistry = Record<string, FieldComponentItem>;
106
-
107
- export type OmittedFieldSpec = Omit<FieldSpec, 'component'>;
108
-
109
112
  export type UnknownValue = never | never[];
110
113
 
111
114
  export interface ControlledFieldProps {
@@ -118,7 +121,7 @@ export interface ControlledFieldProps {
118
121
  error?: boolean;
119
122
  name?: string;
120
123
  disabled?: boolean;
121
- Field: React.FC<FieldProps>;
124
+ Field?: React.FC<FieldProps>;
122
125
  }
123
126
 
124
127
  export interface UncontrolledFieldProps {
@@ -132,7 +135,7 @@ export interface UncontrolledFieldProps {
132
135
  Field: React.FC<FieldProps>;
133
136
  }
134
137
 
135
- export interface CalculatedField extends OmittedFieldSpec {
138
+ export interface ResolvedField extends Omit<FieldSpec, 'component'> {
136
139
  name: string;
137
140
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
138
141
  component: any;
@@ -142,11 +145,12 @@ export interface CalculatedField extends OmittedFieldSpec {
142
145
  multiplicity?: boolean;
143
146
  }
144
147
 
145
- export interface FieldBaseProps extends CalculatedField {
148
+ export interface FieldBaseProps extends ResolvedField {
146
149
  control: UseFormReturn['control'];
147
150
  register: UseFormReturn['register'];
148
151
  reset: UseFormReturn['reset'];
149
- Field: React.FC<FieldProps>;
152
+ resetField?: UseFormReturn['resetField'];
153
+ Field?: React.FC<FieldProps>;
150
154
  }
151
155
 
152
156
  export interface FieldProps extends FieldSpec {
@@ -159,6 +163,7 @@ export interface UseFieldProps {
159
163
  control: FieldBaseProps['control'];
160
164
  register: FieldBaseProps['register'];
161
165
  reset: FieldBaseProps['reset'];
166
+ resetField: FieldBaseProps['resetField'];
162
167
  watch: UseFormReturn['watch'];
163
168
  formState: UseFormReturn['formState'];
164
169
  getFieldState: UseFormReturn['getFieldState'];
@@ -168,5 +173,6 @@ export interface UseFieldProps {
168
173
  trigger: UseFormReturn['trigger'];
169
174
  clearErrors: UseFormReturn['clearErrors'];
170
175
  error?: ErrorOption;
176
+ registerFieldFocus: registerFieldFocus;
171
177
  componentRegistry?: FieldComponentRegistry;
172
178
  }
@@ -1,9 +1,12 @@
1
- import { FieldWithCondition, CalculatedField } from '@digigov/form/Field/types';
1
+ import type {
2
+ FieldWithCondition,
3
+ ResolvedField,
4
+ } from '@digigov/form/Field/types';
2
5
 
3
6
  export function evaluateFieldWithConditions(
4
7
  field: FieldWithCondition,
5
8
  variables: FormData
6
- ): CalculatedField {
9
+ ): ResolvedField {
7
10
  const newField = { ...field };
8
11
  if (variables) {
9
12
  for (const key in variables) {