@digigov/form 2.0.0-76ec20a0 → 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 (459) 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 +20 -12
  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/FieldArray/BaseFieldArray/package.json +6 -0
  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/index.d.ts +5 -2
  45. package/FieldArray/index.js +36 -57
  46. package/FieldArray/index.js.map +2 -2
  47. package/FieldObject/index.d.ts +7 -4
  48. package/FieldObject/index.js +29 -25
  49. package/FieldObject/index.js.map +2 -2
  50. package/Fieldset/FieldsetWithContext.js.map +1 -1
  51. package/Fieldset/index.d.ts +1 -1
  52. package/Fieldset/index.js.map +1 -1
  53. package/Fieldset/types.d.ts +2 -2
  54. package/FormBuilder/index.d.ts +2 -2
  55. package/FormBuilder/index.js +163 -134
  56. package/FormBuilder/index.js.map +2 -2
  57. package/FormContext/index.js +6 -2
  58. package/FormContext.d.ts +3 -2
  59. package/FormContext.js.map +2 -2
  60. package/MultiplicityField/add-objects/index.js +12 -19
  61. package/MultiplicityField/add-objects.d.ts +1 -1
  62. package/MultiplicityField/add-objects.js.map +2 -2
  63. package/MultiplicityField/index.d.ts +2 -2
  64. package/MultiplicityField/index.js +4 -1
  65. package/MultiplicityField/index.js.map +2 -2
  66. package/MultiplicityField/types.d.ts +3 -2
  67. package/Questions/Questions.d.ts +1 -1
  68. package/Questions/Questions.js.map +1 -1
  69. package/Questions/QuestionsContext.d.ts +1 -1
  70. package/Questions/QuestionsContext.js.map +1 -1
  71. package/Questions/Step/Step.d.ts +1 -1
  72. package/Questions/Step/Step.js.map +1 -1
  73. package/Questions/Step/StepArrayReview.d.ts +1 -1
  74. package/Questions/Step/StepArrayReview.js.map +1 -1
  75. package/Questions/Step/StepContext.d.ts +1 -1
  76. package/Questions/Step/StepContext.js.map +1 -1
  77. package/Questions/Step/StepDescription.d.ts +1 -1
  78. package/Questions/Step/StepDescription.js.map +2 -2
  79. package/Questions/Step/StepForm.d.ts +2 -2
  80. package/Questions/Step/StepForm.js.map +1 -1
  81. package/Questions/Step/StepQuote.d.ts +1 -1
  82. package/Questions/Step/StepQuote.js.map +2 -2
  83. package/Questions/Step/StepTitle.d.ts +1 -1
  84. package/Questions/Step/StepTitle.js.map +2 -2
  85. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  86. package/Questions/Step/getAddMoreFields.js.map +1 -1
  87. package/Questions/Step/types.d.ts +1 -1
  88. package/Questions/getNextStep.d.ts +1 -1
  89. package/Questions/getNextStep.js.map +1 -1
  90. package/Questions/types.d.ts +1 -1
  91. package/cjs/Field/ErrorGroup.js.map +1 -1
  92. package/cjs/Field/FieldBase/index.js +7 -4
  93. package/cjs/Field/FieldBase.js.map +2 -2
  94. package/cjs/Field/FieldBaseContainer/index.js +36 -17
  95. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  96. package/cjs/Field/FieldConditional/index.js +4 -0
  97. package/cjs/Field/FieldConditional.js.map +2 -2
  98. package/cjs/Field/index.js +25 -26
  99. package/cjs/Field/index.js.map +2 -2
  100. package/cjs/Field/types.js.map +1 -1
  101. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  102. package/cjs/Field/utils/resolveField/index.js +55 -0
  103. package/cjs/Field/utils/resolveField.js.map +7 -0
  104. package/cjs/Field/utils/useField/index.js +12 -3
  105. package/cjs/Field/utils/useField.js.map +2 -2
  106. package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
  107. package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
  108. package/cjs/FieldArray/FormDialog/ArrayItemDisplay/index.js +130 -0
  109. package/cjs/FieldArray/FormDialog/ArrayItemDisplay.js.map +7 -0
  110. package/cjs/{locales/el → FieldArray/FormDialog/ArrayItemHeader}/index.js +16 -7
  111. package/cjs/FieldArray/FormDialog/ArrayItemHeader.js.map +7 -0
  112. package/cjs/FieldArray/FormDialog/ArrayItemModal/index.js +186 -0
  113. package/cjs/FieldArray/FormDialog/ArrayItemModal.js.map +7 -0
  114. package/cjs/FieldArray/FormDialog/index.js +148 -243
  115. package/cjs/FieldArray/FormDialog/index.js.map +7 -0
  116. package/cjs/FieldArray/index.js +35 -56
  117. package/cjs/FieldArray/index.js.map +3 -3
  118. package/cjs/FieldObject/index.js +29 -22
  119. package/cjs/FieldObject/index.js.map +2 -2
  120. package/cjs/Fieldset/FieldsetWithContext.js.map +1 -1
  121. package/cjs/Fieldset/index.js.map +1 -1
  122. package/cjs/Fieldset/types.js.map +1 -1
  123. package/cjs/FormBuilder/index.js +164 -135
  124. package/cjs/FormBuilder/index.js.map +3 -3
  125. package/cjs/FormContext/index.js +7 -2
  126. package/cjs/FormContext.js.map +2 -2
  127. package/cjs/MultiplicityField/add-objects/index.js +11 -13
  128. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  129. package/cjs/MultiplicityField/index.js +4 -1
  130. package/cjs/MultiplicityField/index.js.map +2 -2
  131. package/cjs/MultiplicityField/types.js.map +1 -1
  132. package/cjs/Questions/Questions.js.map +1 -1
  133. package/cjs/Questions/QuestionsContext.js.map +1 -1
  134. package/cjs/Questions/Step/Step.js.map +1 -1
  135. package/cjs/Questions/Step/StepArrayReview.js.map +1 -1
  136. package/cjs/Questions/Step/StepContext.js.map +1 -1
  137. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  138. package/cjs/Questions/Step/StepForm.js.map +1 -1
  139. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  140. package/cjs/Questions/Step/StepTitle.js.map +2 -2
  141. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  142. package/cjs/Questions/Step/types.js.map +1 -1
  143. package/cjs/Questions/getNextStep.js.map +1 -1
  144. package/cjs/Questions/types.js.map +1 -1
  145. package/cjs/hooks/useFieldFocusManager/index.js +135 -0
  146. package/cjs/hooks/useFieldFocusManager.js.map +7 -0
  147. package/cjs/hooks/utils/index.js +98 -0
  148. package/cjs/hooks/utils.js.map +7 -0
  149. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  150. package/cjs/inputs/Checkboxes/index.js +67 -63
  151. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  152. package/cjs/inputs/DateInput/index.js +51 -19
  153. package/cjs/inputs/DateInput/index.js.map +2 -2
  154. package/cjs/inputs/DateTimeInput/index.js +78 -39
  155. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  156. package/cjs/inputs/FileInput/index.js +52 -29
  157. package/cjs/inputs/FileInput/index.js.map +2 -2
  158. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  159. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  160. package/cjs/inputs/ImageInput/index.js +41 -10
  161. package/cjs/inputs/ImageInput/index.js.map +2 -2
  162. package/cjs/inputs/Input/index.js +55 -57
  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 +4 -3
  170. package/cjs/inputs/Select/index.js.map +2 -2
  171. package/cjs/{Field/utils → inputs/registry}/index.js +7 -5
  172. package/cjs/inputs/registry.js.map +7 -0
  173. package/cjs/lazy/index.js +10 -9
  174. package/cjs/lazy.js.map +2 -2
  175. package/cjs/registry/index.js +26 -18
  176. package/cjs/registry.js.map +2 -2
  177. package/cjs/types.js.map +1 -1
  178. package/cjs/utils/index.js +20 -6
  179. package/cjs/utils.js.map +2 -2
  180. package/cjs/validators/index.js +11 -6
  181. package/cjs/validators/index.js.map +2 -2
  182. package/cjs/validators/types.js.map +1 -1
  183. package/cjs/validators/utils/amka/index.js +60 -0
  184. package/cjs/validators/utils/amka.js.map +7 -0
  185. package/cjs/validators/utils/date/index.js +26 -3
  186. package/cjs/validators/utils/date.js.map +2 -2
  187. package/cjs/validators/utils/datetime/index.js +118 -24
  188. package/cjs/validators/utils/datetime.js.map +2 -2
  189. package/cjs/validators/utils/file/index.js +30 -17
  190. package/cjs/validators/utils/file.js.map +2 -2
  191. package/cjs/validators/utils/iban.js.map +1 -1
  192. package/cjs/validators/utils/image.js.map +1 -1
  193. package/cjs/validators/utils/index.js +5 -1
  194. package/cjs/validators/utils/index.js.map +2 -2
  195. package/cjs/validators/utils/int.js.map +1 -1
  196. package/cjs/validators/utils/number.js.map +1 -1
  197. package/cjs/validators/utils/otp.js.map +1 -1
  198. package/cjs/validators/utils/phone.js.map +1 -1
  199. package/cjs/validators/utils/postal_code.js.map +1 -1
  200. package/cjs/validators/utils/text_limit.js.map +1 -1
  201. package/hooks/useFieldFocusManager/index.js +116 -0
  202. package/hooks/useFieldFocusManager/package.json +6 -0
  203. package/hooks/useFieldFocusManager.d.ts +25 -0
  204. package/hooks/useFieldFocusManager.js.map +7 -0
  205. package/hooks/utils/index.js +73 -0
  206. package/{Field → hooks}/utils/package.json +1 -1
  207. package/hooks/utils.d.ts +18 -0
  208. package/hooks/utils.js.map +7 -0
  209. package/index.js +1 -1
  210. package/inputs/AutoCompleteInput/index.d.ts +3 -3
  211. package/inputs/AutoCompleteInput/index.js +1 -3
  212. package/inputs/AutoCompleteInput/index.js.map +2 -2
  213. package/inputs/Checkboxes/index.d.ts +3 -3
  214. package/inputs/Checkboxes/index.js +67 -63
  215. package/inputs/Checkboxes/index.js.map +2 -2
  216. package/inputs/DateInput/DateInput.stories.d.ts +4 -0
  217. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  218. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  219. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  220. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  221. package/inputs/DateInput/index.d.ts +2 -5
  222. package/inputs/DateInput/index.js +52 -20
  223. package/inputs/DateInput/index.js.map +2 -2
  224. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +8 -3
  225. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  226. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  227. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  228. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  229. package/inputs/DateTimeInput/index.d.ts +2 -5
  230. package/inputs/DateTimeInput/index.js +79 -40
  231. package/inputs/DateTimeInput/index.js.map +2 -2
  232. package/inputs/FileInput/FileInput.stories.d.ts +1 -0
  233. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  234. package/inputs/FileInput/index.d.ts +12 -5
  235. package/inputs/FileInput/index.js +53 -30
  236. package/inputs/FileInput/index.js.map +2 -2
  237. package/inputs/ImageInput/ImageInput.stories.d.ts +2 -1
  238. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  239. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  240. package/inputs/ImageInput/__stories__/logo.d/package.json +6 -0
  241. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  242. package/inputs/ImageInput/index.d.ts +10 -2
  243. package/inputs/ImageInput/index.js +42 -11
  244. package/inputs/ImageInput/index.js.map +2 -2
  245. package/inputs/Input/Input.stories.d.ts +2 -0
  246. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  247. package/inputs/Input/__stories__/Email.d.ts +3 -0
  248. package/inputs/Input/index.d.ts +4 -3
  249. package/inputs/Input/index.js +55 -57
  250. package/inputs/Input/index.js.map +2 -2
  251. package/inputs/Label/index.d.ts +1 -1
  252. package/inputs/Label/index.js.map +1 -1
  253. package/inputs/OtpInput/index.d.ts +1 -5
  254. package/inputs/OtpInput/index.js +36 -31
  255. package/inputs/OtpInput/index.js.map +2 -2
  256. package/inputs/Radio/index.d.ts +4 -4
  257. package/inputs/Radio/index.js +5 -4
  258. package/inputs/Radio/index.js.map +3 -3
  259. package/inputs/Select/index.d.ts +4 -3
  260. package/inputs/Select/index.js +4 -3
  261. package/inputs/Select/index.js.map +2 -2
  262. package/{Field/utils → inputs/registry}/index.js +4 -2
  263. package/{locales/el → inputs/registry}/package.json +1 -1
  264. package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
  265. package/inputs/registry.js.map +7 -0
  266. package/lazy/index.js +10 -9
  267. package/package.json +8 -8
  268. package/registry/index.js +26 -18
  269. package/src/Field/ErrorGroup.tsx +3 -3
  270. package/src/Field/FieldBase.tsx +7 -4
  271. package/src/Field/FieldBaseContainer.tsx +69 -48
  272. package/src/Field/FieldConditional.tsx +5 -1
  273. package/src/Field/index.tsx +30 -38
  274. package/src/Field/types.tsx +21 -14
  275. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  276. package/src/Field/utils/resolveField.ts +58 -0
  277. package/src/Field/utils/useField.ts +12 -2
  278. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  279. package/src/FieldArray/FormDialog/ArrayItemDisplay.tsx +165 -0
  280. package/src/FieldArray/FormDialog/ArrayItemHeader.tsx +15 -0
  281. package/src/FieldArray/FormDialog/ArrayItemModal.tsx +223 -0
  282. package/src/FieldArray/FormDialog/index.tsx +233 -0
  283. package/src/FieldArray/__stories__/WithModal.tsx +3 -2
  284. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +219 -0
  285. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +131 -0
  286. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  287. package/src/FieldArray/index.spec.tsx +355 -0
  288. package/src/FieldArray/index.tsx +41 -72
  289. package/src/FieldObject/index.tsx +36 -31
  290. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  291. package/src/Fieldset/index.tsx +1 -1
  292. package/src/Fieldset/types.tsx +2 -2
  293. package/src/FormBuilder/index.tsx +197 -146
  294. package/src/FormBuilder/scenarios.test.tsx +763 -5
  295. package/src/FormContext.tsx +7 -2
  296. package/src/MultiplicityField/add-objects.tsx +14 -21
  297. package/src/MultiplicityField/index.tsx +6 -2
  298. package/src/MultiplicityField/types.ts +6 -2
  299. package/src/Questions/Questions.tsx +2 -2
  300. package/src/Questions/QuestionsContext.tsx +1 -1
  301. package/src/Questions/Step/Step.tsx +1 -1
  302. package/src/Questions/Step/StepArrayReview.tsx +2 -2
  303. package/src/Questions/Step/StepContext.tsx +1 -1
  304. package/src/Questions/Step/StepDescription.tsx +2 -1
  305. package/src/Questions/Step/StepForm.tsx +2 -2
  306. package/src/Questions/Step/StepQuote.tsx +2 -1
  307. package/src/Questions/Step/StepTitle.tsx +2 -1
  308. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  309. package/src/Questions/Step/types.tsx +1 -1
  310. package/src/Questions/getNextStep.tsx +1 -1
  311. package/src/Questions/types.tsx +1 -1
  312. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  313. package/src/hooks/__tests__/utils.spec.ts +568 -0
  314. package/src/hooks/useFieldFocusManager.ts +162 -0
  315. package/src/hooks/utils.ts +122 -0
  316. package/src/inputs/AutoCompleteInput/index.tsx +4 -6
  317. package/src/inputs/Checkboxes/index.tsx +95 -91
  318. package/src/inputs/DateInput/DateInput.stories.js +4 -0
  319. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  320. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  321. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  322. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  323. package/src/inputs/DateInput/index.test.tsx +16 -0
  324. package/src/inputs/DateInput/index.tsx +65 -20
  325. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +9 -6
  326. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  327. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  328. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  329. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  330. package/src/inputs/DateTimeInput/index.test.tsx +16 -0
  331. package/src/inputs/DateTimeInput/index.tsx +92 -40
  332. package/src/inputs/FileInput/FileInput.stories.js +1 -0
  333. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  334. package/src/inputs/FileInput/index.test.tsx +4 -0
  335. package/src/inputs/FileInput/index.tsx +91 -47
  336. package/src/inputs/ImageInput/ImageInput.stories.js +2 -1
  337. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +2 -1
  338. package/src/inputs/ImageInput/__stories__/WithInitialValues.tsx +45 -0
  339. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  340. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  341. package/src/inputs/ImageInput/index.test.tsx +21 -17
  342. package/src/inputs/ImageInput/index.tsx +101 -49
  343. package/src/inputs/Input/Input.stories.js +2 -0
  344. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  345. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  346. package/src/inputs/Input/index.test.tsx +8 -0
  347. package/src/inputs/Input/index.tsx +76 -73
  348. package/src/inputs/Label/index.tsx +1 -1
  349. package/src/inputs/OtpInput/index.tsx +43 -34
  350. package/src/inputs/Radio/index.tsx +29 -21
  351. package/src/inputs/Select/index.tsx +9 -6
  352. package/src/{Field/utils/index.ts → inputs/registry.ts} +5 -1
  353. package/src/lazy.js +10 -9
  354. package/src/registry.js +26 -18
  355. package/src/types.tsx +13 -5
  356. package/src/utils.ts +30 -8
  357. package/src/validators/index.ts +27 -15
  358. package/src/validators/types.ts +1 -1
  359. package/src/validators/utils/amka.ts +39 -0
  360. package/src/validators/utils/date.ts +30 -6
  361. package/src/validators/utils/datetime.ts +123 -31
  362. package/src/validators/utils/file.ts +35 -21
  363. package/src/validators/utils/iban.ts +2 -2
  364. package/src/validators/utils/image.ts +2 -2
  365. package/src/validators/utils/index.ts +6 -3
  366. package/src/validators/utils/int.ts +1 -1
  367. package/src/validators/utils/number.ts +1 -1
  368. package/src/validators/utils/otp.ts +2 -2
  369. package/src/validators/utils/phone.ts +2 -2
  370. package/src/validators/utils/postal_code.ts +2 -2
  371. package/src/validators/utils/text_limit.ts +2 -2
  372. package/types.d.ts +9 -4
  373. package/types.js.map +1 -1
  374. package/utils/index.js +20 -6
  375. package/utils.d.ts +3 -1
  376. package/utils.js.map +2 -2
  377. package/validators/index.d.ts +6 -6
  378. package/validators/index.js +12 -6
  379. package/validators/index.js.map +2 -2
  380. package/validators/types.d.ts +1 -1
  381. package/validators/utils/amka/index.js +36 -0
  382. package/{inputs/inputsScenarios → validators/utils/amka}/package.json +1 -1
  383. package/validators/utils/amka.d.ts +6 -0
  384. package/validators/utils/amka.js.map +7 -0
  385. package/validators/utils/date/index.js +26 -3
  386. package/validators/utils/date.d.ts +3 -3
  387. package/validators/utils/date.js.map +2 -2
  388. package/validators/utils/datetime/index.js +118 -24
  389. package/validators/utils/datetime.d.ts +3 -3
  390. package/validators/utils/datetime.js.map +2 -2
  391. package/validators/utils/file/index.js +30 -17
  392. package/validators/utils/file.d.ts +2 -2
  393. package/validators/utils/file.js.map +2 -2
  394. package/validators/utils/iban.d.ts +2 -2
  395. package/validators/utils/iban.js.map +1 -1
  396. package/validators/utils/image.d.ts +2 -2
  397. package/validators/utils/image.js.map +1 -1
  398. package/validators/utils/index.d.ts +3 -2
  399. package/validators/utils/index.js +4 -1
  400. package/validators/utils/index.js.map +2 -2
  401. package/validators/utils/int.d.ts +1 -1
  402. package/validators/utils/int.js.map +1 -1
  403. package/validators/utils/number.d.ts +1 -1
  404. package/validators/utils/number.js.map +1 -1
  405. package/validators/utils/otp.d.ts +2 -2
  406. package/validators/utils/otp.js.map +1 -1
  407. package/validators/utils/phone.d.ts +2 -2
  408. package/validators/utils/phone.js.map +1 -1
  409. package/validators/utils/postal_code.d.ts +2 -2
  410. package/validators/utils/postal_code.js.map +1 -1
  411. package/validators/utils/text_limit.d.ts +2 -2
  412. package/validators/utils/text_limit.js.map +1 -1
  413. package/Field/utils/calculateField/index.js +0 -27
  414. package/Field/utils/calculateField.d.ts +0 -2
  415. package/Field/utils/calculateField.js.map +0 -7
  416. package/Field/utils/index.js.map +0 -7
  417. package/FieldArray/FormDialog.d.ts +0 -53
  418. package/FieldArray/FormDialog.js.map +0 -7
  419. package/FormBuilder/index.test.d.ts +0 -1
  420. package/FormBuilder/interaction.test.d.ts +0 -1
  421. package/FormBuilder/scenarios.test.d.ts +0 -88
  422. package/MultiplicityField/index.test.d.ts +0 -1
  423. package/Questions/index.spec.d.ts +0 -1
  424. package/Questions/index.test.d.ts +0 -1
  425. package/cjs/Field/utils/calculateField/index.js +0 -50
  426. package/cjs/Field/utils/calculateField.js.map +0 -7
  427. package/cjs/Field/utils/index.js.map +0 -7
  428. package/cjs/FieldArray/FormDialog.js.map +0 -7
  429. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  430. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  431. package/cjs/inputs/inputsScenarios/index.js +0 -533
  432. package/cjs/inputs/inputsScenarios.js.map +0 -7
  433. package/cjs/locales/el.js.map +0 -7
  434. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  435. package/inputs/Checkboxes/index.test.d.ts +0 -1
  436. package/inputs/DateInput/index.test.d.ts +0 -1
  437. package/inputs/DateTimeInput/index.test.d.ts +0 -1
  438. package/inputs/FileInput/index.test.d.ts +0 -1
  439. package/inputs/ImageInput/index.test.d.ts +0 -1
  440. package/inputs/Input/index.test.d.ts +0 -1
  441. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  442. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  443. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  444. package/inputs/Label/index.test.d.ts +0 -1
  445. package/inputs/OtpInput/index.test.d.ts +0 -1
  446. package/inputs/Radio/index.test.d.ts +0 -1
  447. package/inputs/Select/index.test.d.ts +0 -1
  448. package/inputs/inputsScenarios/index.js +0 -499
  449. package/inputs/inputsScenarios.d.ts +0 -296
  450. package/inputs/inputsScenarios.js.map +0 -7
  451. package/locales/el/index.js +0 -6
  452. package/locales/el.d.ts +0 -2
  453. package/locales/el.js.map +0 -7
  454. package/src/Field/utils/calculateField.ts +0 -49
  455. package/src/FieldArray/FormDialog.tsx +0 -378
  456. package/src/inputs/Input/inputsInputScenarios.ts +0 -404
  457. package/src/inputs/inputsScenarios.ts +0 -496
  458. package/src/locales/el.ts +0 -3
  459. /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
@@ -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,165 @@
1
+ import React from 'react';
2
+ import type { UseFieldArrayMove } from 'react-hook-form';
3
+ import { TableDataCell, TableRow } from '@digigov/ui/content';
4
+ import { Button } from '@digigov/ui/form/Button';
5
+ import type { StackProps } from '@digigov/ui/layouts';
6
+ import { Grid, Stack } from '@digigov/ui/layouts';
7
+ import Heading from '@digigov/ui/typography/Heading';
8
+
9
+ export interface ArrayItemDisplayProps {
10
+ data: any;
11
+ name: string;
12
+ edit: (name: string) => void;
13
+ remove: (name: string) => void;
14
+ disabledEdit?: boolean;
15
+ disabledDelete?: boolean;
16
+ disabled?: boolean;
17
+ sortable: boolean;
18
+ index: number;
19
+ isFirst: boolean;
20
+ isLast: boolean;
21
+ move: UseFieldArrayMove;
22
+ valueDisplay?: (value) => React.ReactNode;
23
+ border: boolean;
24
+ wordBreak?: 'break-all' | 'none';
25
+ stackProps?: StackProps;
26
+ }
27
+
28
+ export const ArrayItemDisplay = ({
29
+ name,
30
+ data,
31
+ edit,
32
+ remove,
33
+ disabledEdit,
34
+ disabledDelete,
35
+ disabled,
36
+ sortable,
37
+ index,
38
+ isFirst,
39
+ isLast,
40
+ move,
41
+ valueDisplay,
42
+ border = true,
43
+ wordBreak = 'break-all',
44
+ stackProps = {
45
+ spacing: 4,
46
+ alignItems: 'flex-end',
47
+ justifyContent: 'flex-end',
48
+ direction: 'column',
49
+ },
50
+ }: ArrayItemDisplayProps) => {
51
+ if (data === undefined || data === null) {
52
+ return null;
53
+ }
54
+ if (
55
+ Object.keys(data).length === 0 ||
56
+ (Object.keys(data).length === 1 && data.id)
57
+ ) {
58
+ return null;
59
+ }
60
+ delete data.id;
61
+ const values: (string | Record<string, any>)[] =
62
+ typeof data === 'string' ? [data] : Object.values(data || {});
63
+ const borderVariant = border === false || sortable ? 'none' : 'border';
64
+ return (
65
+ <>
66
+ <TableRow>
67
+ {values?.map?.((value, valueIndex) => {
68
+ return (
69
+ <TableDataCell
70
+ key={valueIndex}
71
+ variant={borderVariant}
72
+ wordBreak={wordBreak}
73
+ pb={sortable ? 0 : undefined}
74
+ pt={sortable ? 4 : undefined}
75
+ >
76
+ {sortable && valueIndex === 0 && (
77
+ <Heading size="sm" className="mb-2">
78
+ Επιλογή #{index + 1}
79
+ </Heading>
80
+ )}
81
+ {(value as Record<string, any>)?.name ||
82
+ (Array.isArray(value)
83
+ ? value.join('\n')
84
+ : valueDisplay
85
+ ? valueDisplay(value)
86
+ : value) ||
87
+ ''}
88
+ </TableDataCell>
89
+ );
90
+ })}
91
+ {disabled === true ||
92
+ (disabledEdit === true && disabledDelete === true) ? null : (
93
+ <TableDataCell variant={borderVariant}>
94
+ <Stack {...stackProps}>
95
+ {disabledEdit !== true && (
96
+ <Button
97
+ variant="link"
98
+ type="button"
99
+ onClick={() => {
100
+ edit(name);
101
+ }}
102
+ >
103
+ Επεξεργασία
104
+ </Button>
105
+ )}
106
+ {disabledDelete !== true && (
107
+ <Button
108
+ variant="link"
109
+ type="button"
110
+ onClick={() => remove(name)}
111
+ >
112
+ Διαγραφή
113
+ </Button>
114
+ )}
115
+ </Stack>
116
+ </TableDataCell>
117
+ )}
118
+ </TableRow>
119
+ {sortable && (
120
+ <TableRow>
121
+ <TableDataCell
122
+ variant={isLast ? 'none' : 'border'}
123
+ colSpan={
124
+ disabled === true ||
125
+ (disabledEdit === true && disabledDelete === true)
126
+ ? values.length
127
+ : values.length + 1
128
+ }
129
+ >
130
+ {sortable && !disabled && !(isFirst && isLast) && (
131
+ <Grid xs={12} mt={2}>
132
+ Μετακίνηση{' '}
133
+ {!isFirst && (
134
+ <>
135
+ προς τα{' '}
136
+ <Button
137
+ type="button"
138
+ variant="link"
139
+ onClick={() => move(index, index - 1)}
140
+ >
141
+ πάνω
142
+ </Button>
143
+ </>
144
+ )}
145
+ {!isFirst && !isLast && ' ή '}
146
+ {!isLast && (
147
+ <>
148
+ προς τα{' '}
149
+ <Button
150
+ type="button"
151
+ variant="link"
152
+ onClick={() => move(index, index + 1)}
153
+ >
154
+ κάτω
155
+ </Button>
156
+ </>
157
+ )}
158
+ </Grid>
159
+ )}
160
+ </TableDataCell>
161
+ </TableRow>
162
+ )}
163
+ </>
164
+ );
165
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { TableHead, TableHeadCell, TableRow } from '@digigov/ui/content';
3
+
4
+ export const ArrayItemHeader = ({ labels, disabled }) => {
5
+ return (
6
+ <TableHead>
7
+ <TableRow>
8
+ {labels.map((label, index) => {
9
+ return <TableHeadCell key={index}>{label}</TableHeadCell>;
10
+ })}
11
+ {!disabled && <TableHeadCell>Ενέργειες</TableHeadCell>}
12
+ </TableRow>
13
+ </TableHead>
14
+ );
15
+ };
@@ -0,0 +1,223 @@
1
+ import React, { useCallback, useEffect, useMemo, useRef } from 'react';
2
+ import { createPortal } from 'react-dom';
3
+ import type { ErrorOption, UseFormProps } from 'react-hook-form';
4
+ import { useForm } from 'react-hook-form';
5
+ import type { FieldProps, FormData } from '@digigov/form/Field/types';
6
+ import { FieldObject } from '@digigov/form/FieldObject';
7
+ import { Fieldset } from '@digigov/form/Fieldset';
8
+ import { FormContext, useFormContext } from '@digigov/form/FormContext';
9
+ import { yupResolver } from '@digigov/form/utils';
10
+ import { useValidationSchema } from '@digigov/form/validators';
11
+ import type { ModalProps } from '@digigov/ui/app/Modal';
12
+ import {
13
+ Modal,
14
+ ModalAction,
15
+ ModalContent,
16
+ ModalHeading,
17
+ } from '@digigov/ui/app/Modal';
18
+ import { Button } from '@digigov/ui/form/Button';
19
+ import { Hint } from '@digigov/ui/typography/Hint';
20
+
21
+ export interface ArrayItemModalProps extends Omit<ModalProps, 'children'> {
22
+ type: 'append' | 'edit';
23
+ name: string;
24
+ title?: string;
25
+ hint?: string;
26
+ editOrAppend: (data: FormData) => void;
27
+ cancel: () => void;
28
+ addTitle?: string;
29
+ editLabel?: string;
30
+ editProps?: any;
31
+ appendLabel?: string;
32
+ appendProps?: any;
33
+ cancelLabel?: string;
34
+ cancelProps?: any;
35
+ ofField?: any;
36
+ arrayItemName: string;
37
+ defaultValue?: any;
38
+ Field: React.FC<FieldProps>;
39
+ error?: ErrorOption;
40
+ currentIndex: number;
41
+ }
42
+
43
+ export const ArrayItemModal = React.forwardRef<
44
+ HTMLDivElement,
45
+ ArrayItemModalProps
46
+ >(function ArrayItemModal(
47
+ {
48
+ type,
49
+ title,
50
+ hint,
51
+ defaultValue,
52
+ editOrAppend,
53
+ cancel,
54
+ addTitle,
55
+ editLabel,
56
+ editProps,
57
+ appendLabel,
58
+ appendProps,
59
+ cancelLabel,
60
+ cancelProps,
61
+ ofField,
62
+ error,
63
+ Field,
64
+ currentIndex,
65
+ ...modalProps
66
+ },
67
+ ref
68
+ ) {
69
+ const parentCtx = useFormContext();
70
+ const schema = useValidationSchema(
71
+ ofField.type === 'object' && ofField.extra.fields
72
+ ? Object.values(ofField.extra.fields)
73
+ : [ofField]
74
+ );
75
+
76
+ const resolver: UseFormProps['resolver'] = useMemo(() => {
77
+ if (!schema) return;
78
+
79
+ return yupResolver(schema);
80
+ }, [schema]);
81
+
82
+ const form = useForm({
83
+ resolver,
84
+ mode: 'onSubmit',
85
+ reValidateMode: 'onSubmit',
86
+ shouldFocusError: true,
87
+ criteriaMode: 'all',
88
+ shouldUnregister: true,
89
+ });
90
+
91
+ const { setValue, reset } = form;
92
+
93
+ // Set the default values of the form when the component mounts
94
+ useEffect(() => {
95
+ if (!defaultValue) {
96
+ reset(undefined, {
97
+ keepDefaultValues: false,
98
+ keepValues: false,
99
+ });
100
+ return;
101
+ }
102
+
103
+ Object.entries(defaultValue).forEach(([key, value]) => {
104
+ setValue(key, value);
105
+ });
106
+ // modalProps.open is used to reset the form when the modal opens
107
+ }, [defaultValue, reset, setValue, modalProps.open]);
108
+
109
+ const onSubmit = useCallback(
110
+ (data: FormData): void => {
111
+ editOrAppend(data);
112
+ },
113
+ [editOrAppend]
114
+ );
115
+
116
+ const handleSubmitWithoutPropagation = (e: any) => {
117
+ e.preventDefault();
118
+ e.stopPropagation();
119
+ return form.handleSubmit(onSubmit)(e);
120
+ };
121
+
122
+ const formRef = useRef(null);
123
+
124
+ const ctx = {
125
+ ...parentCtx,
126
+ // fieldsMap: {},
127
+ // fieldsetsMap: {},
128
+ control: form.control,
129
+ register: form.register,
130
+ watch: form.watch,
131
+ resetField: form.resetField,
132
+ registerField: () => {}, // If we use parent registerField, validation breaks
133
+ registerFieldFocus: () => {
134
+ return () => {};
135
+ },
136
+ errors: form.formState.errors,
137
+ formState: form.formState,
138
+ reset: form.reset,
139
+ trigger: form.trigger,
140
+ getFieldState: form.getFieldState,
141
+ setValue: form.setValue,
142
+ clearErrors: form.clearErrors,
143
+ getValues: form.getValues,
144
+ getValuesFromParentForm: parentCtx.getValues,
145
+ unregister: form.unregister,
146
+ setError: form.setError,
147
+ formRef,
148
+ submit: form.handleSubmit(onSubmit),
149
+ };
150
+
151
+ const disabled = false;
152
+ // const disabled = value === undefined || value === null || value === '';
153
+ return (
154
+ <ModalPortal {...modalProps} ref={ref} aria-labelledby="modal-label">
155
+ <FormContext.Provider value={ctx}>
156
+ <form onSubmit={handleSubmitWithoutPropagation} ref={formRef}>
157
+ <ModalHeading id="modal-label">
158
+ {title
159
+ ? title
160
+ : type === 'edit'
161
+ ? 'Επεξεργασία'
162
+ : addTitle || 'Προσθήκη'}
163
+ </ModalHeading>
164
+ <ModalContent>
165
+ {hint && <Hint>{hint}</Hint>}
166
+ <Fieldset>
167
+ {ofField?.type === 'object' ? (
168
+ <FieldObject
169
+ {...ofField}
170
+ defaultValue={defaultValue || undefined}
171
+ error={error && error[currentIndex]}
172
+ formState={form.formState}
173
+ register={form.register}
174
+ control={form.control}
175
+ name={undefined}
176
+ Field={Field}
177
+ />
178
+ ) : (
179
+ <Field error={error && error[currentIndex]} {...ofField} />
180
+ )}
181
+ </Fieldset>
182
+ </ModalContent>
183
+ <ModalAction>
184
+ {type === 'edit' ? (
185
+ <Button
186
+ color="secondary"
187
+ {...editProps}
188
+ type="submit"
189
+ disabled={disabled}
190
+ >
191
+ {editLabel || 'Αποθήκευση'}
192
+ </Button>
193
+ ) : (
194
+ <Button
195
+ color="primary"
196
+ {...appendProps}
197
+ type="submit"
198
+ disabled={disabled}
199
+ >
200
+ {appendLabel || 'Προσθήκη'}
201
+ </Button>
202
+ )}
203
+ <Button
204
+ variant="link"
205
+ type="button"
206
+ {...cancelProps}
207
+ onClick={(e) => {
208
+ e.preventDefault();
209
+ cancel();
210
+ }}
211
+ >
212
+ {cancelLabel || 'Ακύρωση'}
213
+ </Button>
214
+ </ModalAction>
215
+ </form>
216
+ </FormContext.Provider>
217
+ </ModalPortal>
218
+ );
219
+ });
220
+
221
+ const ModalPortal = (props: any) => {
222
+ return createPortal(<Modal {...props} />, document.body);
223
+ };