@digigov/form 2.0.0-555d1027 → 2.0.0-5e7a6790

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 (396) hide show
  1. package/Field/ErrorGroup.d.ts +3 -3
  2. package/Field/ErrorGroup.js.map +1 -1
  3. package/Field/FieldBase/index.js +0 -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 +15 -25
  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/FormDialog/ArrayDisplay/ArrayDisplay.stories.d.ts +10 -0
  29. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +97 -0
  30. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/package.json +6 -0
  31. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.d.ts +22 -0
  32. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  33. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/index.js +11 -0
  34. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/package.json +6 -0
  35. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.d.ts +5 -0
  36. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  37. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.d.ts +2 -0
  38. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.d.ts +2 -0
  39. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.d.ts +2 -0
  40. package/FieldArray/FormDialog/ArrayDisplay/index.d.ts +14 -0
  41. package/FieldArray/FormDialog/ArrayDisplay/index.js +51 -0
  42. package/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  43. package/FieldArray/FormDialog/ArrayDisplay/package.json +6 -0
  44. package/FieldArray/FormDialog/ArrayEditModal/index.js +149 -0
  45. package/FieldArray/FormDialog/ArrayEditModal/package.json +6 -0
  46. package/FieldArray/FormDialog/ArrayEditModal.d.ts +26 -0
  47. package/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  48. package/FieldArray/FormDialog/index.d.ts +19 -0
  49. package/FieldArray/FormDialog/index.js +139 -348
  50. package/FieldArray/FormDialog/index.js.map +7 -0
  51. package/FieldArray/index.d.ts +4 -2
  52. package/FieldArray/index.js +28 -54
  53. package/FieldArray/index.js.map +2 -2
  54. package/FieldObject/index.d.ts +4 -4
  55. package/FieldObject/index.js +5 -12
  56. package/FieldObject/index.js.map +2 -2
  57. package/Fieldset/FieldsetWithContext.js.map +1 -1
  58. package/Fieldset/index.d.ts +1 -1
  59. package/Fieldset/index.js.map +1 -1
  60. package/Fieldset/types.d.ts +2 -2
  61. package/FormBuilder/index.d.ts +1 -1
  62. package/FormBuilder/index.js +155 -130
  63. package/FormBuilder/index.js.map +2 -2
  64. package/FormContext.d.ts +2 -2
  65. package/FormContext.js.map +2 -2
  66. package/MultiplicityField/add-objects/index.js +10 -19
  67. package/MultiplicityField/add-objects.d.ts +1 -1
  68. package/MultiplicityField/add-objects.js.map +2 -2
  69. package/MultiplicityField/index.d.ts +2 -2
  70. package/MultiplicityField/index.js.map +2 -2
  71. package/MultiplicityField/types.d.ts +2 -2
  72. package/Questions/Questions.d.ts +1 -1
  73. package/Questions/Questions.js.map +1 -1
  74. package/Questions/QuestionsContext.d.ts +1 -1
  75. package/Questions/QuestionsContext.js.map +1 -1
  76. package/Questions/Step/Step.d.ts +1 -1
  77. package/Questions/Step/Step.js.map +1 -1
  78. package/Questions/Step/StepArrayReview.d.ts +1 -1
  79. package/Questions/Step/StepArrayReview.js.map +1 -1
  80. package/Questions/Step/StepContext.d.ts +1 -1
  81. package/Questions/Step/StepContext.js.map +1 -1
  82. package/Questions/Step/StepDescription.d.ts +1 -1
  83. package/Questions/Step/StepDescription.js.map +2 -2
  84. package/Questions/Step/StepForm.d.ts +2 -2
  85. package/Questions/Step/StepForm.js.map +1 -1
  86. package/Questions/Step/StepQuote.d.ts +1 -1
  87. package/Questions/Step/StepQuote.js.map +2 -2
  88. package/Questions/Step/StepTitle.d.ts +1 -1
  89. package/Questions/Step/StepTitle.js.map +2 -2
  90. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  91. package/Questions/Step/getAddMoreFields.js.map +1 -1
  92. package/Questions/Step/types.d.ts +1 -1
  93. package/Questions/getNextStep.d.ts +1 -1
  94. package/Questions/getNextStep.js.map +1 -1
  95. package/Questions/types.d.ts +1 -1
  96. package/cjs/Field/ErrorGroup.js.map +1 -1
  97. package/cjs/Field/FieldBase/index.js +0 -1
  98. package/cjs/Field/FieldBase.js.map +2 -2
  99. package/cjs/Field/FieldBaseContainer/index.js +36 -34
  100. package/cjs/Field/FieldBaseContainer.js.map +2 -2
  101. package/cjs/Field/FieldConditional.js.map +1 -1
  102. package/cjs/Field/index.js +15 -22
  103. package/cjs/Field/index.js.map +2 -2
  104. package/cjs/Field/types.js.map +1 -1
  105. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  106. package/cjs/Field/utils/resolveField/index.js +55 -0
  107. package/cjs/Field/utils/resolveField.js.map +7 -0
  108. package/cjs/Field/utils/useField/index.js +4 -2
  109. package/cjs/Field/utils/useField.js.map +2 -2
  110. package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
  111. package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
  112. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +130 -0
  113. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  114. package/cjs/{locales/el → FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader}/index.js +16 -7
  115. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  116. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js +84 -0
  117. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  118. package/cjs/FieldArray/FormDialog/ArrayEditModal/index.js +177 -0
  119. package/cjs/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  120. package/cjs/FieldArray/FormDialog/index.js +130 -331
  121. package/cjs/FieldArray/FormDialog/index.js.map +7 -0
  122. package/cjs/FieldArray/index.js +27 -53
  123. package/cjs/FieldArray/index.js.map +3 -3
  124. package/cjs/FieldObject/index.js +5 -9
  125. package/cjs/FieldObject/index.js.map +2 -2
  126. package/cjs/Fieldset/FieldsetWithContext.js.map +1 -1
  127. package/cjs/Fieldset/index.js.map +1 -1
  128. package/cjs/Fieldset/types.js.map +1 -1
  129. package/cjs/FormBuilder/index.js +156 -131
  130. package/cjs/FormBuilder/index.js.map +3 -3
  131. package/cjs/FormContext.js.map +2 -2
  132. package/cjs/MultiplicityField/add-objects/index.js +9 -13
  133. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  134. package/cjs/MultiplicityField/index.js.map +2 -2
  135. package/cjs/MultiplicityField/types.js.map +1 -1
  136. package/cjs/Questions/Questions.js.map +1 -1
  137. package/cjs/Questions/QuestionsContext.js.map +1 -1
  138. package/cjs/Questions/Step/Step.js.map +1 -1
  139. package/cjs/Questions/Step/StepArrayReview.js.map +1 -1
  140. package/cjs/Questions/Step/StepContext.js.map +1 -1
  141. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  142. package/cjs/Questions/Step/StepForm.js.map +1 -1
  143. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  144. package/cjs/Questions/Step/StepTitle.js.map +2 -2
  145. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  146. package/cjs/Questions/Step/types.js.map +1 -1
  147. package/cjs/Questions/getNextStep.js.map +1 -1
  148. package/cjs/Questions/types.js.map +1 -1
  149. package/cjs/hooks/useFieldFocusManager/index.js +135 -0
  150. package/cjs/hooks/useFieldFocusManager.js.map +7 -0
  151. package/cjs/hooks/utils/index.js +98 -0
  152. package/cjs/hooks/utils.js.map +7 -0
  153. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  154. package/cjs/inputs/Checkboxes/index.js +67 -63
  155. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  156. package/cjs/inputs/DateInput/index.js +10 -5
  157. package/cjs/inputs/DateInput/index.js.map +2 -2
  158. package/cjs/inputs/DateTimeInput/index.js +10 -5
  159. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  160. package/cjs/inputs/FileInput/index.js.map +2 -2
  161. package/cjs/inputs/ImageInput/index.js.map +1 -1
  162. package/cjs/inputs/Input/index.js +54 -56
  163. package/cjs/inputs/Input/index.js.map +2 -2
  164. package/cjs/inputs/Label/index.js.map +1 -1
  165. package/cjs/inputs/OtpInput/index.js +36 -31
  166. package/cjs/inputs/OtpInput/index.js.map +2 -2
  167. package/cjs/inputs/Radio/index.js +5 -4
  168. package/cjs/inputs/Radio/index.js.map +3 -3
  169. package/cjs/inputs/Select/index.js.map +1 -1
  170. package/cjs/{Field/utils → inputs/registry}/index.js +4 -4
  171. package/cjs/inputs/registry.js.map +7 -0
  172. package/cjs/{lazy/index.js → lazy.js} +10 -9
  173. package/cjs/lazy.js.map +2 -2
  174. package/cjs/{registry/index.js → registry.js} +23 -13
  175. package/cjs/registry.js.map +2 -2
  176. package/cjs/types.js.map +1 -1
  177. package/cjs/utils.js.map +2 -2
  178. package/cjs/validators/index.js.map +2 -2
  179. package/cjs/validators/types.js.map +1 -1
  180. package/cjs/validators/utils/date/index.js +6 -1
  181. package/cjs/validators/utils/date.js.map +2 -2
  182. package/cjs/validators/utils/datetime/index.js +6 -1
  183. package/cjs/validators/utils/datetime.js.map +2 -2
  184. package/cjs/validators/utils/file.js.map +1 -1
  185. package/cjs/validators/utils/iban.js.map +1 -1
  186. package/cjs/validators/utils/image.js.map +1 -1
  187. package/cjs/validators/utils/index.js.map +1 -1
  188. package/cjs/validators/utils/int.js.map +1 -1
  189. package/cjs/validators/utils/number.js.map +1 -1
  190. package/cjs/validators/utils/otp.js.map +1 -1
  191. package/cjs/validators/utils/phone.js.map +1 -1
  192. package/cjs/validators/utils/postal_code.js.map +1 -1
  193. package/cjs/validators/utils/text_limit.js.map +1 -1
  194. package/hooks/useFieldFocusManager/index.js +116 -0
  195. package/hooks/useFieldFocusManager/package.json +6 -0
  196. package/hooks/useFieldFocusManager.d.ts +25 -0
  197. package/hooks/useFieldFocusManager.js.map +7 -0
  198. package/hooks/utils/index.js +73 -0
  199. package/{Field → hooks}/utils/package.json +1 -1
  200. package/hooks/utils.d.ts +18 -0
  201. package/hooks/utils.js.map +7 -0
  202. package/index.js +1 -1
  203. package/inputs/AutoCompleteInput/index.d.ts +3 -3
  204. package/inputs/AutoCompleteInput/index.js +1 -3
  205. package/inputs/AutoCompleteInput/index.js.map +2 -2
  206. package/inputs/Checkboxes/index.d.ts +3 -3
  207. package/inputs/Checkboxes/index.js +67 -63
  208. package/inputs/Checkboxes/index.js.map +2 -2
  209. package/inputs/DateInput/index.d.ts +2 -5
  210. package/inputs/DateInput/index.js +10 -5
  211. package/inputs/DateInput/index.js.map +2 -2
  212. package/inputs/DateTimeInput/index.d.ts +2 -5
  213. package/inputs/DateTimeInput/index.js +10 -5
  214. package/inputs/DateTimeInput/index.js.map +2 -2
  215. package/inputs/FileInput/index.d.ts +4 -4
  216. package/inputs/FileInput/index.js +1 -4
  217. package/inputs/FileInput/index.js.map +2 -2
  218. package/inputs/ImageInput/index.d.ts +2 -2
  219. package/inputs/ImageInput/index.js.map +1 -1
  220. package/inputs/Input/index.d.ts +2 -2
  221. package/inputs/Input/index.js +54 -56
  222. package/inputs/Input/index.js.map +2 -2
  223. package/inputs/Label/index.d.ts +1 -1
  224. package/inputs/Label/index.js.map +1 -1
  225. package/inputs/OtpInput/index.d.ts +1 -5
  226. package/inputs/OtpInput/index.js +36 -31
  227. package/inputs/OtpInput/index.js.map +2 -2
  228. package/inputs/Radio/index.d.ts +4 -4
  229. package/inputs/Radio/index.js +5 -4
  230. package/inputs/Radio/index.js.map +3 -3
  231. package/inputs/Select/index.d.ts +2 -2
  232. package/inputs/Select/index.js.map +1 -1
  233. package/{Field/utils → inputs/registry}/index.js +1 -1
  234. package/{locales/el → inputs/registry}/package.json +1 -1
  235. package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
  236. package/inputs/registry.js.map +7 -0
  237. package/lazy/index.js +10 -9
  238. package/package.json +4 -4
  239. package/registry/index.js +23 -13
  240. package/src/Field/ErrorGroup.tsx +3 -3
  241. package/src/Field/FieldBase.tsx +1 -2
  242. package/src/Field/FieldBaseContainer.tsx +68 -58
  243. package/src/Field/FieldConditional.tsx +1 -1
  244. package/src/Field/index.tsx +15 -33
  245. package/src/Field/types.tsx +11 -12
  246. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  247. package/src/Field/utils/resolveField.ts +58 -0
  248. package/src/Field/utils/useField.ts +3 -1
  249. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  250. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +11 -0
  251. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +165 -0
  252. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
  253. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
  254. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
  255. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
  256. package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +75 -0
  257. package/src/FieldArray/FormDialog/ArrayEditModal.tsx +233 -0
  258. package/src/FieldArray/FormDialog/index.tsx +247 -0
  259. package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
  260. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
  261. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +131 -0
  262. package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
  263. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  264. package/src/FieldArray/index.spec.tsx +355 -0
  265. package/src/FieldArray/index.tsx +34 -61
  266. package/src/FieldObject/index.tsx +9 -17
  267. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  268. package/src/Fieldset/index.tsx +1 -1
  269. package/src/Fieldset/types.tsx +2 -2
  270. package/src/FormBuilder/index.tsx +188 -142
  271. package/src/FormBuilder/scenarios.test.tsx +759 -1
  272. package/src/FormContext.tsx +3 -2
  273. package/src/MultiplicityField/add-objects.tsx +12 -21
  274. package/src/MultiplicityField/index.tsx +3 -2
  275. package/src/MultiplicityField/types.ts +5 -2
  276. package/src/Questions/Questions.tsx +2 -2
  277. package/src/Questions/QuestionsContext.tsx +1 -1
  278. package/src/Questions/Step/Step.tsx +1 -1
  279. package/src/Questions/Step/StepArrayReview.tsx +2 -2
  280. package/src/Questions/Step/StepContext.tsx +1 -1
  281. package/src/Questions/Step/StepDescription.tsx +2 -1
  282. package/src/Questions/Step/StepForm.tsx +2 -2
  283. package/src/Questions/Step/StepQuote.tsx +2 -1
  284. package/src/Questions/Step/StepTitle.tsx +2 -1
  285. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  286. package/src/Questions/Step/types.tsx +1 -1
  287. package/src/Questions/getNextStep.tsx +1 -1
  288. package/src/Questions/types.tsx +1 -1
  289. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  290. package/src/hooks/__tests__/utils.spec.ts +568 -0
  291. package/src/hooks/useFieldFocusManager.ts +162 -0
  292. package/src/hooks/utils.ts +122 -0
  293. package/src/inputs/AutoCompleteInput/index.tsx +4 -6
  294. package/src/inputs/Checkboxes/index.tsx +95 -87
  295. package/src/inputs/DateInput/index.tsx +19 -6
  296. package/src/inputs/DateTimeInput/index.tsx +19 -6
  297. package/src/inputs/FileInput/index.tsx +9 -7
  298. package/src/inputs/ImageInput/index.tsx +2 -2
  299. package/src/inputs/Input/index.tsx +72 -71
  300. package/src/inputs/Label/index.tsx +1 -1
  301. package/src/inputs/OtpInput/index.tsx +43 -34
  302. package/src/inputs/Radio/index.tsx +29 -21
  303. package/src/inputs/Select/index.tsx +2 -2
  304. package/src/{Field/utils/index.ts → inputs/registry.ts} +3 -1
  305. package/src/lazy.js +10 -9
  306. package/src/registry.js +23 -13
  307. package/src/types.tsx +12 -5
  308. package/src/utils.ts +3 -2
  309. package/src/validators/index.ts +10 -9
  310. package/src/validators/types.ts +1 -1
  311. package/src/validators/utils/date.ts +8 -3
  312. package/src/validators/utils/datetime.ts +8 -3
  313. package/src/validators/utils/file.ts +2 -2
  314. package/src/validators/utils/iban.ts +2 -2
  315. package/src/validators/utils/image.ts +2 -2
  316. package/src/validators/utils/index.ts +2 -2
  317. package/src/validators/utils/int.ts +1 -1
  318. package/src/validators/utils/number.ts +1 -1
  319. package/src/validators/utils/otp.ts +2 -2
  320. package/src/validators/utils/phone.ts +2 -2
  321. package/src/validators/utils/postal_code.ts +2 -2
  322. package/src/validators/utils/text_limit.ts +2 -2
  323. package/types.d.ts +8 -4
  324. package/types.js.map +1 -1
  325. package/utils.d.ts +1 -1
  326. package/utils.js.map +2 -2
  327. package/validators/index.d.ts +5 -5
  328. package/validators/index.js.map +2 -2
  329. package/validators/types.d.ts +1 -1
  330. package/validators/utils/date/index.js +6 -1
  331. package/validators/utils/date.d.ts +2 -2
  332. package/validators/utils/date.js.map +2 -2
  333. package/validators/utils/datetime/index.js +6 -1
  334. package/validators/utils/datetime.d.ts +2 -2
  335. package/validators/utils/datetime.js.map +2 -2
  336. package/validators/utils/file.d.ts +2 -2
  337. package/validators/utils/file.js.map +1 -1
  338. package/validators/utils/iban.d.ts +2 -2
  339. package/validators/utils/iban.js.map +1 -1
  340. package/validators/utils/image.d.ts +2 -2
  341. package/validators/utils/image.js.map +1 -1
  342. package/validators/utils/index.d.ts +2 -2
  343. package/validators/utils/index.js.map +1 -1
  344. package/validators/utils/int.d.ts +1 -1
  345. package/validators/utils/int.js.map +1 -1
  346. package/validators/utils/number.d.ts +1 -1
  347. package/validators/utils/number.js.map +1 -1
  348. package/validators/utils/otp.d.ts +2 -2
  349. package/validators/utils/otp.js.map +1 -1
  350. package/validators/utils/phone.d.ts +2 -2
  351. package/validators/utils/phone.js.map +1 -1
  352. package/validators/utils/postal_code.d.ts +2 -2
  353. package/validators/utils/postal_code.js.map +1 -1
  354. package/validators/utils/text_limit.d.ts +2 -2
  355. package/validators/utils/text_limit.js.map +1 -1
  356. package/Field/utils/calculateField/index.js +0 -27
  357. package/Field/utils/calculateField.d.ts +0 -2
  358. package/Field/utils/calculateField.js.map +0 -7
  359. package/Field/utils/index.js.map +0 -7
  360. package/FieldArray/FormDialog.d.ts +0 -67
  361. package/FieldArray/FormDialog.js.map +0 -7
  362. package/FormBuilder/index.test.d.ts +0 -1
  363. package/FormBuilder/interaction.test.d.ts +0 -1
  364. package/FormBuilder/scenarios.test.d.ts +0 -88
  365. package/MultiplicityField/index.test.d.ts +0 -1
  366. package/Questions/index.spec.d.ts +0 -1
  367. package/Questions/index.test.d.ts +0 -1
  368. package/cjs/Field/utils/calculateField/index.js +0 -50
  369. package/cjs/Field/utils/calculateField.js.map +0 -7
  370. package/cjs/Field/utils/index.js.map +0 -7
  371. package/cjs/FieldArray/FormDialog.js.map +0 -7
  372. package/cjs/inputs/inputsScenarios/index.js +0 -533
  373. package/cjs/inputs/inputsScenarios.js.map +0 -7
  374. package/cjs/locales/el.js.map +0 -7
  375. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  376. package/inputs/Checkboxes/index.test.d.ts +0 -1
  377. package/inputs/DateInput/index.test.d.ts +0 -1
  378. package/inputs/DateTimeInput/index.test.d.ts +0 -1
  379. package/inputs/FileInput/index.test.d.ts +0 -1
  380. package/inputs/ImageInput/index.test.d.ts +0 -1
  381. package/inputs/Input/index.test.d.ts +0 -1
  382. package/inputs/Label/index.test.d.ts +0 -1
  383. package/inputs/OtpInput/index.test.d.ts +0 -1
  384. package/inputs/Radio/index.test.d.ts +0 -1
  385. package/inputs/Select/index.test.d.ts +0 -1
  386. package/inputs/inputsScenarios/index.js +0 -499
  387. package/inputs/inputsScenarios.d.ts +0 -296
  388. package/inputs/inputsScenarios.js.map +0 -7
  389. package/locales/el/index.js +0 -6
  390. package/locales/el.d.ts +0 -2
  391. package/locales/el.js.map +0 -7
  392. package/src/Field/utils/calculateField.ts +0 -49
  393. package/src/FieldArray/FormDialog.tsx +0 -568
  394. package/src/inputs/inputsScenarios.ts +0 -496
  395. package/src/locales/el.ts +0 -3
  396. /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
package/registry/index.js CHANGED
@@ -10,7 +10,7 @@ import * as _digigov_form_Field_FieldBaseContainer from "@digigov/form/Field/Fie
10
10
  import * as _digigov_form_Field_FieldConditional from "@digigov/form/Field/FieldConditional";
11
11
  import * as _digigov_form_Field from "@digigov/form/Field";
12
12
  import * as _digigov_form_Field_types from "@digigov/form/Field/types";
13
- import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
13
+ import * as _digigov_form_FieldArray_BaseFieldArray from "@digigov/form/FieldArray/BaseFieldArray";
14
14
  import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
15
15
  import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
16
16
  import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
@@ -25,15 +25,17 @@ import * as _digigov_form_Questions_QuestionsContext from "@digigov/form/Questio
25
25
  import * as _digigov_form_Questions_getNextStep from "@digigov/form/Questions/getNextStep";
26
26
  import * as _digigov_form_Questions from "@digigov/form/Questions";
27
27
  import * as _digigov_form_Questions_types from "@digigov/form/Questions/types";
28
+ import * as _digigov_form_hooks_useFieldFocusManager from "@digigov/form/hooks/useFieldFocusManager";
29
+ import * as _digigov_form_hooks_utils from "@digigov/form/hooks/utils";
28
30
  import * as _digigov_form_inputs from "@digigov/form/inputs";
29
- import * as _digigov_form_inputs_inputsScenarios from "@digigov/form/inputs/inputsScenarios";
30
- import * as _digigov_form_locales_el from "@digigov/form/locales/el";
31
+ import * as _digigov_form_inputs_registry from "@digigov/form/inputs/registry";
31
32
  import * as _digigov_form_validators from "@digigov/form/validators";
32
33
  import * as _digigov_form_validators_types from "@digigov/form/validators/types";
33
- import * as _digigov_form_Field_utils_calculateField from "@digigov/form/Field/utils/calculateField";
34
34
  import * as _digigov_form_Field_utils_evaluateFieldWithConditions from "@digigov/form/Field/utils/evaluateFieldWithConditions";
35
- import * as _digigov_form_Field_utils from "@digigov/form/Field/utils";
35
+ import * as _digigov_form_Field_utils_resolveField from "@digigov/form/Field/utils/resolveField";
36
36
  import * as _digigov_form_Field_utils_useField from "@digigov/form/Field/utils/useField";
37
+ import * as _digigov_form_FieldArray_FormDialog_ArrayEditModal from "@digigov/form/FieldArray/FormDialog/ArrayEditModal";
38
+ import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
37
39
  import * as _digigov_form_Questions_Step_ReviewStep from "@digigov/form/Questions/Step/ReviewStep";
38
40
  import * as _digigov_form_Questions_Step_Step from "@digigov/form/Questions/Step/Step";
39
41
  import * as _digigov_form_Questions_Step_StepArrayReview from "@digigov/form/Questions/Step/StepArrayReview";
@@ -45,8 +47,8 @@ import * as _digigov_form_Questions_Step_StepTitle from "@digigov/form/Questions
45
47
  import * as _digigov_form_Questions_Step_getAddMoreFields from "@digigov/form/Questions/Step/getAddMoreFields";
46
48
  import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
47
49
  import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
48
- import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
49
50
  import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
51
+ import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
50
52
  import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
51
53
  import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
52
54
  import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
@@ -71,6 +73,9 @@ import * as _digigov_form_validators_utils_phone from "@digigov/form/validators/
71
73
  import * as _digigov_form_validators_utils_postal_code from "@digigov/form/validators/utils/postal_code";
72
74
  import * as _digigov_form_validators_utils_text_limit from "@digigov/form/validators/utils/text_limit";
73
75
  import * as _digigov_form_validators_utils_uuid4 from "@digigov/form/validators/utils/uuid4";
76
+ import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemDisplay from "@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay";
77
+ import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemHeader from "@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader";
78
+ import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay from "@digigov/form/FieldArray/FormDialog/ArrayDisplay";
74
79
  function lazyImport(pkgImport) {
75
80
  return new Proxy(
76
81
  {},
@@ -101,7 +106,7 @@ export default {
101
106
  '@digigov/form/Field/FieldConditional': lazyImport(_digigov_form_Field_FieldConditional),
102
107
  '@digigov/form/Field': lazyImport(_digigov_form_Field),
103
108
  '@digigov/form/Field/types': lazyImport(_digigov_form_Field_types),
104
- '@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
109
+ '@digigov/form/FieldArray/BaseFieldArray': lazyImport(_digigov_form_FieldArray_BaseFieldArray),
105
110
  '@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
106
111
  '@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
107
112
  '@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
@@ -116,15 +121,17 @@ export default {
116
121
  '@digigov/form/Questions/getNextStep': lazyImport(_digigov_form_Questions_getNextStep),
117
122
  '@digigov/form/Questions': lazyImport(_digigov_form_Questions),
118
123
  '@digigov/form/Questions/types': lazyImport(_digigov_form_Questions_types),
124
+ '@digigov/form/hooks/useFieldFocusManager': lazyImport(_digigov_form_hooks_useFieldFocusManager),
125
+ '@digigov/form/hooks/utils': lazyImport(_digigov_form_hooks_utils),
119
126
  '@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),
127
+ '@digigov/form/inputs/registry': lazyImport(_digigov_form_inputs_registry),
122
128
  '@digigov/form/validators': lazyImport(_digigov_form_validators),
123
129
  '@digigov/form/validators/types': lazyImport(_digigov_form_validators_types),
124
- '@digigov/form/Field/utils/calculateField': lazyImport(_digigov_form_Field_utils_calculateField),
125
130
  '@digigov/form/Field/utils/evaluateFieldWithConditions': lazyImport(_digigov_form_Field_utils_evaluateFieldWithConditions),
126
- '@digigov/form/Field/utils': lazyImport(_digigov_form_Field_utils),
131
+ '@digigov/form/Field/utils/resolveField': lazyImport(_digigov_form_Field_utils_resolveField),
127
132
  '@digigov/form/Field/utils/useField': lazyImport(_digigov_form_Field_utils_useField),
133
+ '@digigov/form/FieldArray/FormDialog/ArrayEditModal': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayEditModal),
134
+ '@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
128
135
  '@digigov/form/Questions/Step/ReviewStep': lazyImport(_digigov_form_Questions_Step_ReviewStep),
129
136
  '@digigov/form/Questions/Step/Step': lazyImport(_digigov_form_Questions_Step_Step),
130
137
  '@digigov/form/Questions/Step/StepArrayReview': lazyImport(_digigov_form_Questions_Step_StepArrayReview),
@@ -136,8 +143,8 @@ export default {
136
143
  '@digigov/form/Questions/Step/getAddMoreFields': lazyImport(_digigov_form_Questions_Step_getAddMoreFields),
137
144
  '@digigov/form/Questions/Step': lazyImport(_digigov_form_Questions_Step),
138
145
  '@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
139
- '@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
140
146
  '@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
147
+ '@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
141
148
  '@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
142
149
  '@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
143
150
  '@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
@@ -161,5 +168,8 @@ export default {
161
168
  '@digigov/form/validators/utils/phone': lazyImport(_digigov_form_validators_utils_phone),
162
169
  '@digigov/form/validators/utils/postal_code': lazyImport(_digigov_form_validators_utils_postal_code),
163
170
  '@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)
171
+ '@digigov/form/validators/utils/uuid4': lazyImport(_digigov_form_validators_utils_uuid4),
172
+ '@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemDisplay),
173
+ '@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemHeader),
174
+ '@digigov/form/FieldArray/FormDialog/ArrayDisplay': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay)
165
175
  };
@@ -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,
@@ -54,7 +54,6 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
54
54
  <Component
55
55
  {...field}
56
56
  control={control}
57
- ref={undefined}
58
57
  defaultValue={defaultValue ?? field.value}
59
58
  extra={extra}
60
59
  error={!!error}
@@ -1,5 +1,6 @@
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';
@@ -9,63 +10,72 @@ 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
- register,
15
- wrapper,
16
- label,
17
- children,
18
- error,
19
- hasError,
20
- layout,
21
- controlled,
22
- labelSize = 'sm',
23
- }) => {
24
- const { t } = useTranslation();
25
- const errorMessage = error?.message.key
26
- ? error.message.key
27
- : error?.message || '';
28
- const errorContext = error?.message.context || {};
29
- if (wrapper === 'fieldset') {
30
- return (
31
- <FieldContainer error={hasError} {...layout}>
32
- <Fieldset
33
- className="outline-none"
34
- {...(controlled && {
35
- tabIndex: -1,
36
- ...(register(name || '') as any),
37
- })}
38
- >
39
- <FieldsetLegend size={labelSize}>
40
- {label && label.primary}
41
- </FieldsetLegend>
42
- {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
43
- {error && (
44
- <ErrorMessage id={`${name}-error`}>
45
- {t(errorMessage, errorContext)}
46
- </ErrorMessage>
47
- )}
48
- {children}
49
- {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
50
- </Fieldset>
51
- </FieldContainer>
52
- );
53
- } else {
54
- return (
55
- <FieldContainer error={hasError} {...layout}>
56
- <LabelContainer>
57
- {label && <Label label={label} />}
58
- {error && (
59
- <ErrorMessage id={`${name}-error`}>
60
- {t(errorMessage, errorContext)}
61
- </ErrorMessage>
62
- )}
63
- {children}
64
- {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
65
- </LabelContainer>
66
- </FieldContainer>
67
- );
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
+ }
68
76
  }
69
- };
77
+ );
78
+
79
+ FieldBaseContainer.displayName = 'FieldBaseContainer';
70
80
 
71
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';
@@ -1,16 +1,8 @@
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';
@@ -33,35 +25,27 @@ 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
- if (calculatedField.condition) {
34
+ if (resolvedField.condition) {
51
35
  return (
52
36
  <FieldConditional
53
37
  control={control}
54
38
  reset={reset}
55
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}
@@ -77,15 +61,13 @@ export const Field: React.FC<FieldProps> = ({
77
61
  Field={Field}
78
62
  reset={reset}
79
63
  resetField={resetField}
80
- {...calculatedField}
64
+ registerFieldFocus={registerFieldFocus}
65
+ {...resolvedField}
81
66
  />
82
67
  );
83
68
  }
84
- if (
85
- calculatedField.type === 'array' &&
86
- calculatedField.multiplicity === true
87
- ) {
88
- calculatedField.name = name;
69
+ if (resolvedField.type === 'array' && resolvedField.multiplicity === true) {
70
+ resolvedField.name = name;
89
71
  return (
90
72
  <Multiplicity
91
73
  control={control}
@@ -99,7 +81,7 @@ export const Field: React.FC<FieldProps> = ({
99
81
  unregister={unregister}
100
82
  resetField={resetField}
101
83
  Field={Field}
102
- {...calculatedField}
84
+ {...resolvedField}
103
85
  />
104
86
  );
105
87
  }
@@ -110,7 +92,7 @@ export const Field: React.FC<FieldProps> = ({
110
92
  const customError = error ? error : formState?.errors[name];
111
93
  return (
112
94
  <FieldBase
113
- {...calculatedField}
95
+ {...resolvedField}
114
96
  editable={editable}
115
97
  name={name}
116
98
  control={control}
@@ -1,8 +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 { FieldsetLegendProps } from '@digigov/ui/form/FieldContainer';
5
- 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';
6
8
 
7
9
  export interface FieldLabelProps {
8
10
  primary?: string;
@@ -73,7 +75,7 @@ export interface ChildFieldMemoProps extends FieldConditionalProps {
73
75
  }
74
76
  export type FormData = UseFormProps['defaultValues'];
75
77
 
76
- export interface FieldWithCondition extends Omit<CalculatedField, 'condition'> {
78
+ export interface FieldWithCondition extends Omit<ResolvedField, 'condition'> {
77
79
  condition: Record<string, FieldCondition>;
78
80
  }
79
81
 
@@ -107,10 +109,6 @@ export interface FieldContainerProps {
107
109
  labelSize?: FieldsetLegendProps['size'];
108
110
  }
109
111
 
110
- export type FieldComponentRegistry = Record<string, FieldComponentItem>;
111
-
112
- export type OmittedFieldSpec = Omit<FieldSpec, 'component'>;
113
-
114
112
  export type UnknownValue = never | never[];
115
113
 
116
114
  export interface ControlledFieldProps {
@@ -137,7 +135,7 @@ export interface UncontrolledFieldProps {
137
135
  Field: React.FC<FieldProps>;
138
136
  }
139
137
 
140
- export interface CalculatedField extends OmittedFieldSpec {
138
+ export interface ResolvedField extends Omit<FieldSpec, 'component'> {
141
139
  name: string;
142
140
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
143
141
  component: any;
@@ -147,7 +145,7 @@ export interface CalculatedField extends OmittedFieldSpec {
147
145
  multiplicity?: boolean;
148
146
  }
149
147
 
150
- export interface FieldBaseProps extends CalculatedField {
148
+ export interface FieldBaseProps extends ResolvedField {
151
149
  control: UseFormReturn['control'];
152
150
  register: UseFormReturn['register'];
153
151
  reset: UseFormReturn['reset'];
@@ -175,5 +173,6 @@ export interface UseFieldProps {
175
173
  trigger: UseFormReturn['trigger'];
176
174
  clearErrors: UseFormReturn['clearErrors'];
177
175
  error?: ErrorOption;
176
+ registerFieldFocus: registerFieldFocus;
178
177
  componentRegistry?: FieldComponentRegistry;
179
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) {
@@ -0,0 +1,58 @@
1
+ import type {
2
+ FieldProps,
3
+ FieldSpec,
4
+ ResolvedField,
5
+ } from '@digigov/form/Field/types';
6
+ import {
7
+ ALTERNATIVE_COMPONENTS,
8
+ FIELD_COMPONENTS,
9
+ type FieldComponentRegistry,
10
+ } from '@digigov/form/inputs/registry';
11
+
12
+ export function resolveField(
13
+ children: FieldProps['children'],
14
+ field: FieldSpec,
15
+ customComponentRegistry?: FieldComponentRegistry
16
+ ): ResolvedField {
17
+ const fieldComponentRegistry = {
18
+ ...FIELD_COMPONENTS,
19
+ ...(customComponentRegistry ?? {}),
20
+ };
21
+
22
+ const resolvedField = { ...field };
23
+
24
+ if (children) {
25
+ resolvedField.component = children;
26
+ resolvedField.controlled = true;
27
+ } else if (typeof field.component === 'function') {
28
+ // leave as is
29
+ } else if (!field.component && !field.type) {
30
+ resolvedField.component = fieldComponentRegistry.string.component;
31
+ resolvedField.controlled =
32
+ fieldComponentRegistry.string?.controlled || false;
33
+ } else if (
34
+ typeof field?.extra?.component === 'string' &&
35
+ ALTERNATIVE_COMPONENTS[field.extra.component]
36
+ ) {
37
+ resolvedField.controlled =
38
+ ALTERNATIVE_COMPONENTS[field.extra.component]?.controlled || false;
39
+ resolvedField.component =
40
+ ALTERNATIVE_COMPONENTS[field.extra.component].component;
41
+ resolvedField.wrapper =
42
+ ALTERNATIVE_COMPONENTS[field.extra.component].wrapper;
43
+ } else if (
44
+ !field.component &&
45
+ field.type &&
46
+ fieldComponentRegistry[field.type]
47
+ ) {
48
+ resolvedField.component = fieldComponentRegistry[field.type].component;
49
+ resolvedField.wrapper = fieldComponentRegistry[field.type].wrapper;
50
+ resolvedField.controlled =
51
+ fieldComponentRegistry[field.type]?.controlled || false;
52
+ } else {
53
+ resolvedField.component = fieldComponentRegistry.string.component;
54
+ resolvedField.controlled =
55
+ fieldComponentRegistry.string?.controlled || false;
56
+ }
57
+ return resolvedField as ResolvedField;
58
+ }
@@ -1,5 +1,5 @@
1
1
  import { useContext, useMemo } from 'react';
2
- import { FieldSpec, UseFieldProps } from '@digigov/form/Field/types';
2
+ import type { FieldSpec, UseFieldProps } from '@digigov/form/Field/types';
3
3
  import { FormContext } from '@digigov/form/FormContext';
4
4
 
5
5
  export const useField = (
@@ -23,6 +23,7 @@ export const useField = (
23
23
  getValues,
24
24
  unregister,
25
25
  formState,
26
+ registerFieldFocus,
26
27
  } = useContext(FormContext);
27
28
  if (!registerField) {
28
29
  throw new Error(`
@@ -62,5 +63,6 @@ export const useField = (
62
63
  unregister,
63
64
  formState,
64
65
  error,
66
+ registerFieldFocus,
65
67
  };
66
68
  };
@@ -0,0 +1,97 @@
1
+ import React from 'react';
2
+ import { useFieldArray } from 'react-hook-form';
3
+ import type { FieldArrayProps } from '@digigov/form/FieldArray';
4
+ import { FieldObject } from '@digigov/form/FieldObject';
5
+ import { FieldsetLabel, Fieldset } from '@digigov/form/Fieldset';
6
+ import { Card } from '@digigov/ui/content/Card';
7
+ import { Button } from '@digigov/ui/form/Button';
8
+
9
+ type BaseFieldArrayProps = Omit<
10
+ FieldArrayProps,
11
+ | 'registerFieldFocus'
12
+ | 'trigger'
13
+ | 'clearErrors'
14
+ | 'setValue'
15
+ | 'reset'
16
+ | 'resetField'
17
+ >;
18
+ export const BaseFieldArray = React.forwardRef<
19
+ HTMLButtonElement,
20
+ BaseFieldArrayProps
21
+ >(
22
+ (
23
+ {
24
+ name,
25
+ register,
26
+ control,
27
+ formState,
28
+ error,
29
+ getValues,
30
+ Field,
31
+ ...customField
32
+ },
33
+ ref
34
+ ) => {
35
+ const { append, remove } = useFieldArray({
36
+ control,
37
+ name,
38
+ });
39
+ const fields = getValues(name) || [];
40
+
41
+ return (
42
+ <>
43
+ {fields.map((field, index) => (
44
+ <Card
45
+ variant={customField.extra?.border ? 'border' : 'divider'}
46
+ key={field.id || index}
47
+ >
48
+ <Fieldset>
49
+ <FieldsetLabel>
50
+ {`${customField.extra?.label.object.title}${!customField.extra?.noIndex ? ' ' + String(index + 1) : ''}`}
51
+ </FieldsetLabel>
52
+ <FieldObject
53
+ name={`${name}.${index}`}
54
+ error={Array.isArray(error) && error[index]}
55
+ formState={formState}
56
+ register={register}
57
+ control={control}
58
+ {...customField.extra?.of}
59
+ Field={Field}
60
+ />
61
+ <Button
62
+ name={`${name}-object-remove`}
63
+ variant={customField.extra?.label.object?.deleteButtonVariant}
64
+ type="button"
65
+ color="warning"
66
+ onClick={() => remove(index)}
67
+ disabled={!customField?.editable}
68
+ >
69
+ {customField.extra?.label.object?.delete}
70
+ </Button>
71
+ </Fieldset>
72
+ </Card>
73
+ ))}
74
+ {customField.editable && (
75
+ <Button
76
+ ref={ref}
77
+ type="button"
78
+ name={`${name}-add-object`}
79
+ color="secondary"
80
+ variant={customField.extra?.label.object?.addButtonVariant}
81
+ onClick={(ev) => {
82
+ ev.preventDefault();
83
+ append({});
84
+ }}
85
+ disabled={!customField?.editable}
86
+ >
87
+ {customField.extra?.label.object?.add}
88
+ </Button>
89
+ )}
90
+ </>
91
+ );
92
+ }
93
+ );
94
+
95
+ BaseFieldArray.displayName = 'BaseFieldArray';
96
+
97
+ export default BaseFieldArray;
@@ -0,0 +1,11 @@
1
+ import ArrayDisplay from '@digigov/form/FieldArray/FormDialog/ArrayDisplay';
2
+
3
+ export default {
4
+ title: 'Digigov Form/FieldArray/FormDialog/ArrayDisplay',
5
+ component: ArrayDisplay,
6
+ displayName: 'ArrayDisplay',
7
+ };
8
+
9
+ export { Default } from '@digigov/form/FieldArray/FormDialog/ArrayDisplay/__stories__/Default';
10
+ export { Sortable } from '@digigov/form/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable';
11
+ export { ReadOnly } from '@digigov/form/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly';