@digigov/form 2.0.0-d0adc9fb → 2.0.0-d2ffc726

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 (625) hide show
  1. package/Field/ErrorGroup/index.js +48 -0
  2. package/{inputs/inputsScenarios → Field/ErrorGroup}/package.json +1 -1
  3. package/Field/ErrorGroup.d.ts +15 -0
  4. package/Field/ErrorGroup.js.map +7 -0
  5. package/Field/FieldBase/index.js +37 -26
  6. package/Field/FieldBase.d.ts +1 -1
  7. package/Field/FieldBase.js.map +2 -2
  8. package/Field/FieldBaseContainer/index.js +37 -17
  9. package/Field/FieldBaseContainer.d.ts +2 -2
  10. package/Field/FieldBaseContainer.js.map +2 -2
  11. package/Field/FieldConditional/index.js +4 -0
  12. package/Field/FieldConditional.d.ts +1 -1
  13. package/Field/FieldConditional.js.map +2 -2
  14. package/Field/index.d.ts +1 -1
  15. package/Field/index.js +24 -28
  16. package/Field/index.js.map +2 -2
  17. package/Field/types.d.ts +23 -12
  18. package/Field/utils/evaluateFieldWithConditions.d.ts +2 -2
  19. package/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  20. package/Field/utils/resolveField/index.js +35 -0
  21. package/Field/utils/{calculateField → resolveField}/package.json +1 -1
  22. package/Field/utils/resolveField.d.ts +3 -0
  23. package/Field/utils/resolveField.js.map +7 -0
  24. package/Field/utils/useField/index.js +12 -3
  25. package/Field/utils/useField.d.ts +1 -1
  26. package/Field/utils/useField.js.map +2 -2
  27. package/FieldArray/BaseFieldArray/index.js +76 -0
  28. package/FieldArray/BaseFieldArray/package.json +6 -0
  29. package/FieldArray/BaseFieldArray.d.ts +5 -0
  30. package/FieldArray/BaseFieldArray.js.map +7 -0
  31. package/FieldArray/FieldArray.stories.d.ts +2 -0
  32. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +23 -0
  33. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/package.json +6 -0
  34. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.d.ts +9 -0
  35. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  36. package/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.d.ts +13 -0
  37. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +184 -0
  38. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/package.json +6 -0
  39. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.d.ts +26 -0
  40. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  41. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/index.js +11 -0
  42. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/package.json +6 -0
  43. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.d.ts +5 -0
  44. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  45. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.d.ts +2 -0
  46. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.d.ts +2 -0
  47. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.d.ts +2 -0
  48. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.d.ts +2 -0
  49. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.d.ts +2 -0
  50. package/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.d.ts +2 -0
  51. package/FieldArray/FormDialog/ArrayDisplay/index.d.ts +15 -0
  52. package/FieldArray/FormDialog/ArrayDisplay/index.js +57 -0
  53. package/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  54. package/{inputs/Input/inputsInputScenarios → FieldArray/FormDialog/ArrayDisplay}/package.json +1 -1
  55. package/FieldArray/FormDialog/ArrayEditModal/index.js +158 -0
  56. package/FieldArray/FormDialog/ArrayEditModal/package.json +6 -0
  57. package/FieldArray/FormDialog/ArrayEditModal.d.ts +26 -0
  58. package/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  59. package/FieldArray/FormDialog/index.d.ts +19 -0
  60. package/FieldArray/FormDialog/index.js +213 -257
  61. package/FieldArray/FormDialog/index.js.map +7 -0
  62. package/FieldArray/__stories__/CardsWithError.d.ts +15 -0
  63. package/FieldArray/__stories__/Default.d.ts +1 -1
  64. package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
  65. package/FieldArray/__stories__/WithModal.d.ts +2 -0
  66. package/FieldArray/index.d.ts +5 -2
  67. package/FieldArray/index.js +41 -57
  68. package/FieldArray/index.js.map +2 -2
  69. package/FieldObject/index.d.ts +7 -4
  70. package/FieldObject/index.js +30 -27
  71. package/FieldObject/index.js.map +2 -2
  72. package/Fieldset/FieldsetWithContext.js.map +1 -1
  73. package/Fieldset/index.d.ts +1 -1
  74. package/Fieldset/index.js.map +1 -1
  75. package/Fieldset/types.d.ts +2 -2
  76. package/FormBuilder/FormBuilder.stories.d.ts +4 -0
  77. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
  78. package/FormBuilder/__stories__/Default.d.ts +1 -1
  79. package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
  80. package/FormBuilder/index.d.ts +2 -2
  81. package/FormBuilder/index.js +186 -80
  82. package/FormBuilder/index.js.map +2 -2
  83. package/FormContext/index.js +6 -2
  84. package/FormContext.d.ts +3 -2
  85. package/FormContext.js.map +2 -2
  86. package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
  87. package/MultiplicityField/__stories__/Default.d.ts +1 -1
  88. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
  89. package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
  90. package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
  91. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
  92. package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
  93. package/MultiplicityField/add-objects/index.js +12 -19
  94. package/MultiplicityField/add-objects.d.ts +1 -1
  95. package/MultiplicityField/add-objects.js.map +2 -2
  96. package/MultiplicityField/index.d.ts +2 -2
  97. package/MultiplicityField/index.js +6 -2
  98. package/MultiplicityField/index.js.map +2 -2
  99. package/MultiplicityField/types.d.ts +3 -2
  100. package/Questions/Questions.d.ts +1 -1
  101. package/Questions/Questions.js.map +1 -1
  102. package/Questions/Questions.stories.d.ts +2 -0
  103. package/Questions/QuestionsContext.d.ts +1 -1
  104. package/Questions/QuestionsContext.js.map +1 -1
  105. package/Questions/Step/Step.d.ts +1 -1
  106. package/Questions/Step/Step.js.map +1 -1
  107. package/Questions/Step/StepArrayReview.d.ts +1 -1
  108. package/Questions/Step/StepArrayReview.js.map +1 -1
  109. package/Questions/Step/StepContext.d.ts +1 -1
  110. package/Questions/Step/StepContext.js.map +1 -1
  111. package/Questions/Step/StepDescription.d.ts +1 -1
  112. package/Questions/Step/StepDescription.js.map +2 -2
  113. package/Questions/Step/StepForm.d.ts +2 -2
  114. package/Questions/Step/StepForm.js.map +1 -1
  115. package/Questions/Step/StepQuote.d.ts +1 -1
  116. package/Questions/Step/StepQuote.js.map +2 -2
  117. package/Questions/Step/StepTitle.d.ts +1 -1
  118. package/Questions/Step/StepTitle.js.map +2 -2
  119. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  120. package/Questions/Step/getAddMoreFields.js.map +1 -1
  121. package/Questions/Step/types.d.ts +1 -1
  122. package/Questions/__stories__/Default.d.ts +1 -1
  123. package/Questions/getNextStep.d.ts +1 -1
  124. package/Questions/getNextStep.js.map +1 -1
  125. package/Questions/types.d.ts +1 -1
  126. package/cjs/Field/ErrorGroup/index.js +82 -0
  127. package/cjs/Field/ErrorGroup.js.map +7 -0
  128. package/cjs/Field/FieldBase/index.js +36 -25
  129. package/cjs/Field/FieldBase.js.map +2 -2
  130. package/cjs/Field/FieldBaseContainer/index.js +36 -16
  131. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  132. package/cjs/Field/FieldConditional/index.js +4 -0
  133. package/cjs/Field/FieldConditional.js.map +2 -2
  134. package/cjs/Field/index.js +24 -25
  135. package/cjs/Field/index.js.map +2 -2
  136. package/cjs/Field/types.js.map +1 -1
  137. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  138. package/cjs/Field/utils/resolveField/index.js +55 -0
  139. package/cjs/Field/utils/resolveField.js.map +7 -0
  140. package/cjs/Field/utils/useField/index.js +12 -3
  141. package/cjs/Field/utils/useField.js.map +2 -2
  142. package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
  143. package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
  144. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +56 -0
  145. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  146. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +209 -0
  147. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  148. package/cjs/{locales/el → FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader}/index.js +16 -7
  149. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  150. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js +90 -0
  151. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  152. package/cjs/FieldArray/FormDialog/ArrayEditModal/index.js +186 -0
  153. package/cjs/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  154. package/cjs/FieldArray/FormDialog/index.js +204 -243
  155. package/cjs/FieldArray/FormDialog/index.js.map +7 -0
  156. package/cjs/FieldArray/index.js +40 -56
  157. package/cjs/FieldArray/index.js.map +3 -3
  158. package/cjs/FieldObject/index.js +30 -24
  159. package/cjs/FieldObject/index.js.map +2 -2
  160. package/cjs/Fieldset/FieldsetWithContext.js.map +1 -1
  161. package/cjs/Fieldset/index.js.map +1 -1
  162. package/cjs/Fieldset/types.js.map +1 -1
  163. package/cjs/FormBuilder/index.js +188 -82
  164. package/cjs/FormBuilder/index.js.map +3 -3
  165. package/cjs/FormContext/index.js +7 -2
  166. package/cjs/FormContext.js.map +2 -2
  167. package/cjs/MultiplicityField/add-objects/index.js +11 -13
  168. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  169. package/cjs/MultiplicityField/index.js +6 -2
  170. package/cjs/MultiplicityField/index.js.map +2 -2
  171. package/cjs/MultiplicityField/types.js.map +1 -1
  172. package/cjs/Questions/Questions.js.map +1 -1
  173. package/cjs/Questions/QuestionsContext.js.map +1 -1
  174. package/cjs/Questions/Step/Step.js.map +1 -1
  175. package/cjs/Questions/Step/StepArrayReview.js.map +1 -1
  176. package/cjs/Questions/Step/StepContext.js.map +1 -1
  177. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  178. package/cjs/Questions/Step/StepForm.js.map +1 -1
  179. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  180. package/cjs/Questions/Step/StepTitle.js.map +2 -2
  181. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  182. package/cjs/Questions/Step/types.js.map +1 -1
  183. package/cjs/Questions/getNextStep.js.map +1 -1
  184. package/cjs/Questions/types.js.map +1 -1
  185. package/cjs/hooks/useFieldFocusManager/index.js +135 -0
  186. package/cjs/hooks/useFieldFocusManager.js.map +7 -0
  187. package/cjs/hooks/utils/index.js +98 -0
  188. package/cjs/hooks/utils.js.map +7 -0
  189. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  190. package/cjs/inputs/Checkboxes/index.js +67 -62
  191. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  192. package/cjs/inputs/DateInput/index.js +54 -19
  193. package/cjs/inputs/DateInput/index.js.map +2 -2
  194. package/cjs/inputs/DateTimeInput/index.js +83 -39
  195. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  196. package/cjs/inputs/FileInput/index.js +68 -30
  197. package/cjs/inputs/FileInput/index.js.map +2 -2
  198. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  199. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  200. package/cjs/inputs/ImageInput/index.js +42 -10
  201. package/cjs/inputs/ImageInput/index.js.map +2 -2
  202. package/cjs/inputs/Input/index.js +55 -55
  203. package/cjs/inputs/Input/index.js.map +2 -2
  204. package/cjs/inputs/Label/index.js.map +1 -1
  205. package/cjs/inputs/OtpInput/index.js +36 -30
  206. package/cjs/inputs/OtpInput/index.js.map +2 -2
  207. package/cjs/inputs/Radio/index.js +5 -4
  208. package/cjs/inputs/Radio/index.js.map +3 -3
  209. package/cjs/inputs/Select/index.js +5 -3
  210. package/cjs/inputs/Select/index.js.map +2 -2
  211. package/cjs/{Field/utils → inputs/registry}/index.js +7 -5
  212. package/cjs/inputs/registry.js.map +7 -0
  213. package/cjs/lazy/index.js +16 -10
  214. package/cjs/lazy.js.map +2 -2
  215. package/cjs/registry/index.js +31 -15
  216. package/cjs/registry.js.map +2 -2
  217. package/cjs/types.js.map +1 -1
  218. package/cjs/utils/index.js +20 -6
  219. package/cjs/utils.js.map +2 -2
  220. package/cjs/validators/index.js +33 -19
  221. package/cjs/validators/index.js.map +2 -2
  222. package/cjs/validators/types.js.map +1 -1
  223. package/cjs/validators/utils/amka/index.js +60 -0
  224. package/cjs/validators/utils/amka.js.map +7 -0
  225. package/cjs/validators/utils/date/index.js +26 -3
  226. package/cjs/validators/utils/date.js.map +2 -2
  227. package/cjs/validators/utils/datetime/index.js +118 -24
  228. package/cjs/validators/utils/datetime.js.map +2 -2
  229. package/cjs/validators/utils/email/index.js +39 -0
  230. package/cjs/validators/utils/email.js.map +7 -0
  231. package/cjs/validators/utils/file/index.js +30 -17
  232. package/cjs/validators/utils/file.js.map +2 -2
  233. package/cjs/validators/utils/iban.js.map +1 -1
  234. package/cjs/validators/utils/image.js.map +1 -1
  235. package/cjs/validators/utils/index.js +5 -1
  236. package/cjs/validators/utils/index.js.map +2 -2
  237. package/cjs/validators/utils/int/index.js +1 -1
  238. package/cjs/validators/utils/int.js.map +2 -2
  239. package/cjs/validators/utils/number/index.js +1 -1
  240. package/cjs/validators/utils/number.js.map +2 -2
  241. package/cjs/validators/utils/otp.js.map +1 -1
  242. package/cjs/validators/utils/phone.js.map +1 -1
  243. package/cjs/validators/utils/postal_code.js.map +1 -1
  244. package/cjs/validators/utils/text_limit.js.map +1 -1
  245. package/hooks/useFieldFocusManager/index.js +116 -0
  246. package/hooks/useFieldFocusManager/package.json +6 -0
  247. package/hooks/useFieldFocusManager.d.ts +25 -0
  248. package/hooks/useFieldFocusManager.js.map +7 -0
  249. package/hooks/utils/index.js +73 -0
  250. package/{Field → hooks}/utils/package.json +1 -1
  251. package/hooks/utils.d.ts +18 -0
  252. package/hooks/utils.js.map +7 -0
  253. package/index.js +1 -1
  254. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
  255. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
  256. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
  257. package/inputs/AutoCompleteInput/index.d.ts +3 -3
  258. package/inputs/AutoCompleteInput/index.js +1 -3
  259. package/inputs/AutoCompleteInput/index.js.map +2 -2
  260. package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
  261. package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
  262. package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
  263. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
  264. package/inputs/Checkboxes/index.d.ts +3 -3
  265. package/inputs/Checkboxes/index.js +67 -62
  266. package/inputs/Checkboxes/index.js.map +2 -2
  267. package/inputs/DateInput/DateInput.stories.d.ts +6 -0
  268. package/inputs/DateInput/__stories__/Default.d.ts +1 -1
  269. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  270. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  271. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  272. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  273. package/inputs/DateInput/index.d.ts +2 -5
  274. package/inputs/DateInput/index.js +55 -20
  275. package/inputs/DateInput/index.js.map +2 -2
  276. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +10 -3
  277. package/inputs/DateTimeInput/__stories__/Default.d.ts +1 -1
  278. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  279. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  280. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  281. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  282. package/inputs/DateTimeInput/index.d.ts +2 -5
  283. package/inputs/DateTimeInput/index.js +84 -40
  284. package/inputs/DateTimeInput/index.js.map +2 -2
  285. package/inputs/FileInput/FileInput.stories.d.ts +3 -0
  286. package/inputs/FileInput/__stories__/Default.d.ts +1 -1
  287. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  288. package/inputs/FileInput/index.d.ts +18 -2
  289. package/inputs/FileInput/index.js +69 -31
  290. package/inputs/FileInput/index.js.map +2 -2
  291. package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
  292. package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
  293. package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
  294. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  295. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
  296. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  297. package/inputs/ImageInput/__stories__/logo.d/package.json +6 -0
  298. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  299. package/inputs/ImageInput/index.d.ts +10 -2
  300. package/inputs/ImageInput/index.js +43 -11
  301. package/inputs/ImageInput/index.js.map +2 -2
  302. package/inputs/Input/Input.stories.d.ts +5 -0
  303. package/inputs/Input/__stories__/AFM.d.ts +1 -1
  304. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  305. package/inputs/Input/__stories__/Boolean.d.ts +1 -1
  306. package/inputs/Input/__stories__/Email.d.ts +3 -0
  307. package/inputs/Input/__stories__/IBAN.d.ts +1 -1
  308. package/inputs/Input/__stories__/Integer.d.ts +1 -1
  309. package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
  310. package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
  311. package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
  312. package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
  313. package/inputs/Input/__stories__/String.d.ts +1 -1
  314. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
  315. package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
  316. package/inputs/Input/index.d.ts +4 -3
  317. package/inputs/Input/index.js +55 -55
  318. package/inputs/Input/index.js.map +2 -2
  319. package/inputs/Label/Label.stories.d.ts +2 -0
  320. package/inputs/Label/__stories__/Default.d.ts +1 -1
  321. package/inputs/Label/index.d.ts +1 -1
  322. package/inputs/Label/index.js.map +1 -1
  323. package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
  324. package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
  325. package/inputs/OtpInput/index.d.ts +1 -5
  326. package/inputs/OtpInput/index.js +36 -30
  327. package/inputs/OtpInput/index.js.map +2 -2
  328. package/inputs/Radio/Radio.stories.d.ts +2 -0
  329. package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
  330. package/inputs/Radio/__stories__/Default.d.ts +1 -1
  331. package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
  332. package/inputs/Radio/index.d.ts +4 -4
  333. package/inputs/Radio/index.js +5 -4
  334. package/inputs/Radio/index.js.map +3 -3
  335. package/inputs/Select/Select.stories.d.ts +2 -0
  336. package/inputs/Select/__stories__/Default.d.ts +1 -1
  337. package/inputs/Select/index.d.ts +4 -3
  338. package/inputs/Select/index.js +5 -3
  339. package/inputs/Select/index.js.map +2 -2
  340. package/{Field/utils → inputs/registry}/index.js +4 -2
  341. package/{locales/el → inputs/registry}/package.json +1 -1
  342. package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
  343. package/inputs/registry.js.map +7 -0
  344. package/lazy/index.js +16 -10
  345. package/package.json +8 -8
  346. package/registry/index.js +31 -15
  347. package/src/Field/ErrorGroup.tsx +84 -0
  348. package/src/Field/FieldBase.tsx +40 -26
  349. package/src/Field/FieldBaseContainer.tsx +69 -47
  350. package/src/Field/FieldConditional.tsx +5 -1
  351. package/src/Field/doc.mdx +202 -1
  352. package/src/Field/index.tsx +27 -37
  353. package/src/Field/types.tsx +24 -14
  354. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  355. package/src/Field/utils/resolveField.ts +58 -0
  356. package/src/Field/utils/useField.ts +12 -2
  357. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  358. package/src/FieldArray/FieldArray.stories.js +2 -0
  359. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.tsx +45 -0
  360. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +14 -0
  361. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +335 -0
  362. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
  363. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.tsx +88 -0
  364. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
  365. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
  366. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.tsx +75 -0
  367. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
  368. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.tsx +88 -0
  369. package/src/FieldArray/FormDialog/ArrayDisplay/index.test.tsx +44 -0
  370. package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +67 -0
  371. package/src/FieldArray/FormDialog/ArrayEditModal.tsx +243 -0
  372. package/src/FieldArray/FormDialog/index.tsx +304 -0
  373. package/src/FieldArray/__stories__/CardsWithError.tsx +124 -0
  374. package/src/FieldArray/__stories__/Default.tsx +1 -1
  375. package/src/FieldArray/__stories__/WithExactLength.tsx +15 -78
  376. package/src/FieldArray/__stories__/WithModal.tsx +160 -0
  377. package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
  378. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
  379. package/src/FieldArray/__tests__/multiplicity-optional.spec.tsx +232 -0
  380. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +170 -0
  381. package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
  382. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  383. package/src/FieldArray/index.spec.tsx +355 -0
  384. package/src/FieldArray/index.test.tsx +12 -0
  385. package/src/FieldArray/index.tsx +49 -72
  386. package/src/FieldObject/index.tsx +40 -34
  387. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  388. package/src/Fieldset/index.tsx +1 -1
  389. package/src/Fieldset/types.tsx +2 -2
  390. package/src/FormBuilder/FormBuilder.stories.js +5 -0
  391. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
  392. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  393. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
  394. package/src/FormBuilder/doc.mdx +9 -4
  395. package/src/FormBuilder/index.test.tsx +12 -0
  396. package/src/FormBuilder/index.tsx +223 -89
  397. package/src/FormBuilder/interaction.test.tsx +40 -0
  398. package/src/FormBuilder/scenarios.test.tsx +1002 -129
  399. package/src/FormContext.tsx +7 -2
  400. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  401. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  402. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
  403. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  404. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  405. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  406. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  407. package/src/MultiplicityField/add-objects.tsx +14 -21
  408. package/src/MultiplicityField/doc.mdx +101 -83
  409. package/src/MultiplicityField/index.test.tsx +4 -0
  410. package/src/MultiplicityField/index.tsx +8 -3
  411. package/src/MultiplicityField/types.ts +6 -2
  412. package/src/Questions/Questions.stories.js +3 -0
  413. package/src/Questions/Questions.tsx +2 -2
  414. package/src/Questions/QuestionsContext.tsx +1 -1
  415. package/src/Questions/Step/Step.tsx +1 -1
  416. package/src/Questions/Step/StepArrayReview.tsx +2 -2
  417. package/src/Questions/Step/StepContext.tsx +1 -1
  418. package/src/Questions/Step/StepDescription.tsx +2 -1
  419. package/src/Questions/Step/StepForm.tsx +2 -2
  420. package/src/Questions/Step/StepQuote.tsx +2 -1
  421. package/src/Questions/Step/StepTitle.tsx +2 -1
  422. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  423. package/src/Questions/Step/types.tsx +1 -1
  424. package/src/Questions/__snapshots__/index.spec.tsx.snap +3 -1
  425. package/src/Questions/__stories__/Default.tsx +1 -1
  426. package/src/Questions/doc.mdx +21 -41
  427. package/src/Questions/getNextStep.tsx +1 -1
  428. package/src/Questions/index.spec.tsx +8 -0
  429. package/src/Questions/index.test.tsx +4 -0
  430. package/src/Questions/types.tsx +1 -1
  431. package/src/doc.mdx +26 -11
  432. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  433. package/src/hooks/__tests__/utils.spec.ts +568 -0
  434. package/src/hooks/useFieldFocusManager.ts +162 -0
  435. package/src/hooks/utils.ts +122 -0
  436. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  437. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
  438. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
  439. package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
  440. package/src/inputs/AutoCompleteInput/index.tsx +4 -6
  441. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  442. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  443. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  444. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  445. package/src/inputs/Checkboxes/index.test.tsx +4 -0
  446. package/src/inputs/Checkboxes/index.tsx +95 -90
  447. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  448. package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
  449. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  450. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  451. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  452. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  453. package/src/inputs/DateInput/index.test.tsx +20 -0
  454. package/src/inputs/DateInput/index.tsx +68 -20
  455. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +12 -6
  456. package/src/inputs/DateTimeInput/__stories__/Default.tsx +1 -1
  457. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  458. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  459. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  460. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  461. package/src/inputs/DateTimeInput/index.test.tsx +27 -5
  462. package/src/inputs/DateTimeInput/index.tsx +97 -40
  463. package/src/inputs/FileInput/FileInput.stories.js +4 -0
  464. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  465. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  466. package/src/inputs/FileInput/index.test.tsx +8 -0
  467. package/src/inputs/FileInput/index.tsx +106 -38
  468. package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
  469. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  470. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
  471. package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → WithInitialValues.tsx} +12 -3
  472. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
  473. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  474. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  475. package/src/inputs/ImageInput/index.test.tsx +8 -4
  476. package/src/inputs/ImageInput/index.tsx +101 -48
  477. package/src/inputs/Input/Input.stories.js +6 -0
  478. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  479. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  480. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  481. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  482. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  483. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  484. package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
  485. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
  486. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
  487. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
  488. package/src/inputs/Input/__stories__/String.tsx +1 -1
  489. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
  490. package/src/inputs/Input/__stories__/TextWithLimit.tsx +2 -1
  491. package/src/inputs/Input/index.test.tsx +16 -0
  492. package/src/inputs/Input/index.tsx +76 -71
  493. package/src/inputs/Label/Label.stories.js +3 -0
  494. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  495. package/src/inputs/Label/index.test.tsx +4 -0
  496. package/src/inputs/Label/index.tsx +1 -1
  497. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  498. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  499. package/src/inputs/OtpInput/index.test.tsx +4 -0
  500. package/src/inputs/OtpInput/index.tsx +43 -33
  501. package/src/inputs/Radio/Radio.stories.js +3 -0
  502. package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
  503. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  504. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  505. package/src/inputs/Radio/index.test.tsx +4 -0
  506. package/src/inputs/Radio/index.tsx +29 -21
  507. package/src/inputs/Select/Select.stories.js +3 -0
  508. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  509. package/src/inputs/Select/index.test.tsx +4 -0
  510. package/src/inputs/Select/index.tsx +10 -6
  511. package/src/{Field/utils/index.ts → inputs/registry.ts} +5 -1
  512. package/src/lazy.js +16 -10
  513. package/src/registry.js +31 -15
  514. package/src/types.tsx +14 -5
  515. package/src/utils.ts +30 -8
  516. package/src/validators/index.ts +68 -28
  517. package/src/validators/types.ts +1 -1
  518. package/src/validators/utils/amka.ts +39 -0
  519. package/src/validators/utils/date.ts +30 -6
  520. package/src/validators/utils/datetime.ts +123 -31
  521. package/src/validators/utils/email.ts +11 -0
  522. package/src/validators/utils/file.ts +35 -21
  523. package/src/validators/utils/iban.ts +2 -2
  524. package/src/validators/utils/image.ts +2 -2
  525. package/src/validators/utils/index.ts +6 -3
  526. package/src/validators/utils/int.ts +2 -2
  527. package/src/validators/utils/number.ts +2 -2
  528. package/src/validators/utils/otp.ts +2 -2
  529. package/src/validators/utils/phone.ts +2 -2
  530. package/src/validators/utils/postal_code.ts +2 -2
  531. package/src/validators/utils/text_limit.ts +2 -2
  532. package/types.d.ts +10 -4
  533. package/types.js.map +1 -1
  534. package/utils/index.js +20 -6
  535. package/utils.d.ts +3 -1
  536. package/utils.js.map +2 -2
  537. package/validators/index.d.ts +6 -6
  538. package/validators/index.js +34 -19
  539. package/validators/index.js.map +2 -2
  540. package/validators/types.d.ts +1 -1
  541. package/validators/utils/amka/index.js +36 -0
  542. package/validators/utils/amka/package.json +6 -0
  543. package/validators/utils/amka.d.ts +6 -0
  544. package/validators/utils/amka.js.map +7 -0
  545. package/validators/utils/date/index.js +26 -3
  546. package/validators/utils/date.d.ts +3 -3
  547. package/validators/utils/date.js.map +2 -2
  548. package/validators/utils/datetime/index.js +118 -24
  549. package/validators/utils/datetime.d.ts +3 -3
  550. package/validators/utils/datetime.js.map +2 -2
  551. package/validators/utils/email/index.js +16 -0
  552. package/validators/utils/email/package.json +6 -0
  553. package/validators/utils/email.d.ts +5 -0
  554. package/validators/utils/email.js.map +7 -0
  555. package/validators/utils/file/index.js +30 -17
  556. package/validators/utils/file.d.ts +2 -2
  557. package/validators/utils/file.js.map +2 -2
  558. package/validators/utils/iban.d.ts +2 -2
  559. package/validators/utils/iban.js.map +1 -1
  560. package/validators/utils/image.d.ts +2 -2
  561. package/validators/utils/image.js.map +1 -1
  562. package/validators/utils/index.d.ts +3 -2
  563. package/validators/utils/index.js +4 -1
  564. package/validators/utils/index.js.map +2 -2
  565. package/validators/utils/int/index.js +1 -1
  566. package/validators/utils/int.d.ts +1 -1
  567. package/validators/utils/int.js.map +2 -2
  568. package/validators/utils/number/index.js +1 -1
  569. package/validators/utils/number.d.ts +1 -1
  570. package/validators/utils/number.js.map +2 -2
  571. package/validators/utils/otp.d.ts +2 -2
  572. package/validators/utils/otp.js.map +1 -1
  573. package/validators/utils/phone.d.ts +2 -2
  574. package/validators/utils/phone.js.map +1 -1
  575. package/validators/utils/postal_code.d.ts +2 -2
  576. package/validators/utils/postal_code.js.map +1 -1
  577. package/validators/utils/text_limit.d.ts +2 -2
  578. package/validators/utils/text_limit.js.map +1 -1
  579. package/Field/utils/calculateField/index.js +0 -27
  580. package/Field/utils/calculateField.d.ts +0 -2
  581. package/Field/utils/calculateField.js.map +0 -7
  582. package/Field/utils/index.js.map +0 -7
  583. package/FieldArray/FormDialog.d.ts +0 -53
  584. package/FieldArray/FormDialog.js.map +0 -7
  585. package/FormBuilder/index.test.d.ts +0 -1
  586. package/FormBuilder/scenarios.test.d.ts +0 -88
  587. package/MultiplicityField/index.test.d.ts +0 -1
  588. package/Questions/index.spec.d.ts +0 -1
  589. package/Questions/index.test.d.ts +0 -1
  590. package/cjs/Field/utils/calculateField/index.js +0 -50
  591. package/cjs/Field/utils/calculateField.js.map +0 -7
  592. package/cjs/Field/utils/index.js.map +0 -7
  593. package/cjs/FieldArray/FormDialog.js.map +0 -7
  594. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  595. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  596. package/cjs/inputs/inputsScenarios/index.js +0 -533
  597. package/cjs/inputs/inputsScenarios.js.map +0 -7
  598. package/cjs/locales/el.js.map +0 -7
  599. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  600. package/inputs/Checkboxes/index.test.d.ts +0 -1
  601. package/inputs/DateInput/index.test.d.ts +0 -1
  602. package/inputs/DateTimeInput/index.test.d.ts +0 -1
  603. package/inputs/FileInput/index.test.d.ts +0 -1
  604. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
  605. package/inputs/ImageInput/index.test.d.ts +0 -1
  606. package/inputs/Input/index.test.d.ts +0 -1
  607. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  608. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  609. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  610. package/inputs/Label/index.test.d.ts +0 -1
  611. package/inputs/OtpInput/index.test.d.ts +0 -1
  612. package/inputs/Radio/index.test.d.ts +0 -1
  613. package/inputs/Select/index.test.d.ts +0 -1
  614. package/inputs/inputsScenarios/index.js +0 -499
  615. package/inputs/inputsScenarios.d.ts +0 -296
  616. package/inputs/inputsScenarios.js.map +0 -7
  617. package/locales/el/index.js +0 -6
  618. package/locales/el.d.ts +0 -2
  619. package/locales/el.js.map +0 -7
  620. package/src/Field/utils/calculateField.ts +0 -49
  621. package/src/FieldArray/FormDialog.tsx +0 -379
  622. package/src/inputs/Input/inputsInputScenarios.ts +0 -404
  623. package/src/inputs/inputsScenarios.ts +0 -496
  624. package/src/locales/el.ts +0 -3
  625. /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
@@ -77,6 +77,29 @@ const fillDateInput = async ({ formBuilder, fill }) => {
77
77
  await yearInput.fill(value?.year || '');
78
78
  };
79
79
 
80
+ const fillDateTimeInput = async ({ formBuilder, fill }) => {
81
+ const { fieldKey, value } = fill;
82
+
83
+ const dayInput = await getLocator(formBuilder, 'name', `${fieldKey}-day`);
84
+ await dayInput.fill(value?.day || '');
85
+
86
+ const monthInput = await getLocator(formBuilder, 'name', `${fieldKey}-month`);
87
+ await monthInput.fill(value?.month || '');
88
+
89
+ const yearInput = await getLocator(formBuilder, 'name', `${fieldKey}-year`);
90
+ await yearInput.fill(value?.year || '');
91
+
92
+ const hourInput = await getLocator(formBuilder, 'name', `${fieldKey}-hours`);
93
+ await hourInput.fill(value?.hours || '');
94
+
95
+ const minuteInput = await getLocator(
96
+ formBuilder,
97
+ 'name',
98
+ `${fieldKey}-minutes`
99
+ );
100
+ await minuteInput.fill(value?.minutes || '');
101
+ };
102
+
80
103
  const fillChoiceMultiple = async ({ formBuilder, fill, field }) => {
81
104
  const { fieldKey, value } = fill;
82
105
 
@@ -412,6 +435,7 @@ const fillActionPerType = {
412
435
  phone_number: fillSimpleInput,
413
436
 
414
437
  date: fillDateInput,
438
+ datetime: fillDateTimeInput,
415
439
  otp: fillOtpInput,
416
440
  image: fillImageInput,
417
441
  file: fillFileInput,
@@ -469,7 +493,11 @@ const expectErrorMessages = async (formBuilder, scenarioExpect, expect) => {
469
493
  );
470
494
  }
471
495
  }
472
- await expect(labelLocator).toHaveText(expectText);
496
+ if (expectObj.textAssertion === 'toContainText') {
497
+ await expect(labelLocator).toContainText(expectText);
498
+ } else {
499
+ await expect(labelLocator).toHaveText(expectText);
500
+ }
473
501
  }
474
502
  }
475
503
  };
@@ -628,6 +656,7 @@ const generateScenarios = (
628
656
  fields: scenarioFields,
629
657
  fill: scenarioFill,
630
658
  expect: scenarioExpect,
659
+ delay: ['multiplicity', 'fieldArray'].includes(fieldKey) ? 500 : 0,
631
660
  });
632
661
  }
633
662
  return generatedScenarios;
@@ -639,6 +668,8 @@ const el = {
639
668
  day: 'Ημέρα',
640
669
  month: 'Μήνας',
641
670
  year: 'Έτος',
671
+ hours: 'Ώρα',
672
+ minutes: 'Λεπτά',
642
673
  },
643
674
  error: {
644
675
  required: 'Το πεδίο είναι υποχρεωτικό.',
@@ -647,10 +678,11 @@ const el = {
647
678
  string: 'Το πεδίο πρέπει να είναι string',
648
679
  email: 'Συμπληρώστε μια έγκυρη ηλεκτρονική διεύθυνση (e-mail).',
649
680
  afm: 'Ο Α.Φ.Μ που πληκτρολογήσατε είναι λανθασμένος.',
681
+ amka: 'Ο ΑΜΚΑ που συμπληρώσατε δεν είναι έγκυρος.',
650
682
  file_size:
651
- 'Το μέγεθος του αρχείου είναι μεγαλύτερο απο το επιτρεπόμενο ({{maxSizeToMb}}Mb).',
683
+ 'Το μέγεθος του αρχείου είναι μεγαλύτερο από το επιτρεπόμενο ({{maxSize}} Bytes).',
652
684
  image_size:
653
- 'Το μέγεθος της φωτογραφίας είναι μεγαλύτερο απο το επιτρεπόμενο ({{maxSizeToMb}}Mb).',
685
+ 'Το μέγεθος της φωτογραφίας είναι μεγαλύτερο από το επιτρεπόμενο ({{maxSize}} Bytes).',
654
686
  mobile_phone: 'Συμπληρώστε έναν έγκυρο αριθμό κινητού τηλεφώνου.',
655
687
  phone_number: 'Συμπληρώστε έναν έγκυρο αριθμό τηλεφώνου.',
656
688
  landline: 'Συμπληρώστε έναν έγκυρο αριθμό σταθερού τηλεφώνου.',
@@ -666,8 +698,87 @@ const el = {
666
698
  },
667
699
  date: {
668
700
  invalid: 'Η ημερομηνία πρέπει να είναι έγκυρη.',
701
+ invalid_month_year:
702
+ 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα και το έτος.',
703
+ invalid_day_year:
704
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα και το έτος.',
705
+ invalid_day_month:
706
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα και τον μήνα.',
707
+ invalid_day: 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα.',
708
+ invalid_month: 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα.',
709
+ invalid_year: 'Η ημερομηνία πρέπει να περιλαμβάνει το ετος.',
669
710
  earlier_than: 'Συμπληρώστε μια ημερομηνία προγενέστερη της {{maxDate}}',
670
711
  later_than: 'Συμπληρώστε μια ημερομηνία μεταγενέστερη της {{minDate}}',
712
+ invalid_day_range: 'Η ήμέρα πρέπει να είναι μεταξύ 1 και {{maxDay}}.',
713
+ invalid_month_range: 'Ο μήνας πρέπει να είναι μεταξύ 1 και 12.',
714
+ },
715
+ datetime: {
716
+ invalid: 'Η ημερομηνία και ώρα πρέπει να είναι έγκυρη.',
717
+ invalid_month_year_hours_minutes:
718
+ 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα, το έτος, την ώρα και τα λεπτά.',
719
+ invalid_day_year_hours_minutes:
720
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, το έτος, την ώρα και τα λεπτά.',
721
+ invalid_day_month_hours_minutes:
722
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, τον μήνα, την ώρα και τα λεπτά.',
723
+ invalid_year_hours_minutes:
724
+ 'Η ημερομηνία πρέπει να περιλαμβάνει το έτος, την ώρα και τα λεπτά.',
725
+ invalid_month_hours_minutes:
726
+ 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα, την ώρα και τα λεπτά.',
727
+ invalid_day_hours_minutes:
728
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, την ώρα και τα λεπτά.',
729
+ invalid__hours_minutes:
730
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ώρα και τα λεπτά.',
731
+ invalid_minutes: 'Η ημερομηνία πρέπει να περιλαμβάνει τα λεπτά.',
732
+ invalid_hours: 'Η ημερομηνία πρέπει να περιλαμβάνει την ώρα.',
733
+ invalid_month_year_minutes:
734
+ 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα, το έτος και τα λεπτά.',
735
+ invalid_month_year_hours:
736
+ 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα, το έτος και την ώρα.',
737
+ invalid_month_year:
738
+ 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα και το έτος.',
739
+ invalid_day_year_minutes:
740
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, το έτος και τα λεπτά.',
741
+ invalid_day_year_hours:
742
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, το έτος και την ώρα.',
743
+ invalid_day_month_year:
744
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, τον μήνα και το έτος.',
745
+ invalid_day_month_year_hours:
746
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, τον μήνα, το έτος και την ώρα.',
747
+ invalid_day_year:
748
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα και το έτος.',
749
+ invalid_day_month_minutes:
750
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, τον μήνα και τα λεπτά.',
751
+ invalid_day_month_hours:
752
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα, τον μήνα και την ώρα.',
753
+ invalid_day_month:
754
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα και τον μήνα.',
755
+ invalid_year_minutes:
756
+ 'Η ημερομηνία πρέπει να περιλαμβάνει το έτος και τα λεπτά.',
757
+ invalid_year_hours:
758
+ 'Η ημερομηνία πρέπει να περιλαμβάνει το έτος και την ώρα.',
759
+ invalid_year: 'Η ημερομηνία πρέπει να περιλαμβάνει το έτος.',
760
+ invalid_month_minutes:
761
+ 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα και τα λεπτά.',
762
+ invalid_month_hours:
763
+ 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα και την ώρα.',
764
+ invalid_month: 'Η ημερομηνία πρέπει να περιλαμβάνει τον μήνα.',
765
+ invalid_day_minutes:
766
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα και τα λεπτά.',
767
+ invalid_day_hours:
768
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα και την ώρα.',
769
+ invalid_day: 'Η ημερομηνία πρέπει να περιλαμβάνει την ημέρα.',
770
+ invalid_hours_range: 'Η ώρα πρέπει να είναι μεταξύ 0 και 23.',
771
+ invalid_minutes_range: 'Τα λεπτά πρέπει να είναι μεταξύ 0 και 59.',
772
+ invalid_day_range: 'Η ημέρα πρέπει να είναι μεταξύ 1 και {{maxDay}}.',
773
+ invalid_month_range: 'Ο μήνας πρέπει να είναι μεταξύ 1 και 12.',
774
+ invalid_day_month_year_minutes:
775
+ 'Η ημερομηννία πρέπει να περιλαμβάνει την ημέρα, τον μήνα και το έτος κ τα λεπτά.',
776
+ invalid_hours_minutes:
777
+ 'Η ημερομηνία πρέπει να περιλαμβάνει την ώρα και τα λεπτά.',
778
+ earlier_than:
779
+ 'Συμπληρώστε ημερομηνία και ώρα προγενέστερη της {{maxDateTime}}.',
780
+ later_than:
781
+ 'Συμπληρώστε ημερομηνία και ώρα μεταγενέστερη της {{minDateTime}}.',
671
782
  },
672
783
  otp: {
673
784
  invalid: 'Ο κωδικός που έχετε εισάγει είναι λάθος.',
@@ -695,6 +806,33 @@ export const INPUTS_FIELDS = [
695
806
  secondary: 'Για παράδειγμα, 05 11 2020',
696
807
  },
697
808
  },
809
+ {
810
+ key: 'date-example-2',
811
+ type: 'date',
812
+ required: true,
813
+ label: {
814
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
815
+ secondary: 'Για παράδειγμα, 05 11 2020',
816
+ },
817
+ },
818
+ {
819
+ key: 'datetime-example',
820
+ type: 'datetime',
821
+ required: true,
822
+ label: {
823
+ primary: 'Πότε εκδόθηκε το διαβατήριο σας;',
824
+ secondary: 'Για παράδειγμα, 05 11 2020 13:30',
825
+ },
826
+ },
827
+ {
828
+ key: 'datetime-example-2',
829
+ type: 'datetime',
830
+ required: true,
831
+ label: {
832
+ primary: 'Πότε εκδόθηκε το διαβατήριο σας;',
833
+ secondary: 'Για παράδειγμα, 05 11 2020 13:30',
834
+ },
835
+ },
698
836
  {
699
837
  key: 'otp',
700
838
  type: 'otp',
@@ -854,6 +992,34 @@ const inputsScenarios = [
854
992
  year: '2020',
855
993
  },
856
994
  },
995
+ {
996
+ fieldKey: 'date-example-2',
997
+ value: {
998
+ day: '2',
999
+ month: '1',
1000
+ year: '2020',
1001
+ },
1002
+ },
1003
+ {
1004
+ fieldKey: 'datetime-example',
1005
+ value: {
1006
+ day: '22',
1007
+ month: '11',
1008
+ year: '2020',
1009
+ hours: '22',
1010
+ minutes: '22',
1011
+ },
1012
+ },
1013
+ {
1014
+ fieldKey: 'datetime-example-2',
1015
+ value: {
1016
+ day: '2',
1017
+ month: '1',
1018
+ year: '2020',
1019
+ hours: '2',
1020
+ minutes: '2',
1021
+ },
1022
+ },
857
1023
  {
858
1024
  fieldKey: 'otp',
859
1025
  value: {
@@ -908,6 +1074,21 @@ const inputsScenarios = [
908
1074
  fieldKey: 'date-example',
909
1075
  text: el.form.error.date.invalid,
910
1076
  },
1077
+ {
1078
+ type: 'success',
1079
+ fieldKey: 'date-example-2',
1080
+ text: el.form.error.date.invalid,
1081
+ },
1082
+ {
1083
+ type: 'success',
1084
+ fieldKey: 'datetime-example',
1085
+ text: el.form.error.required,
1086
+ },
1087
+ {
1088
+ type: 'success',
1089
+ fieldKey: 'datetime-example-2',
1090
+ text: el.form.error.required,
1091
+ },
911
1092
  {
912
1093
  type: 'success',
913
1094
  fieldKey: 'otp',
@@ -964,6 +1145,11 @@ const inputsScenarios = [
964
1145
  fieldKey: 'date-example',
965
1146
  text: el.form.error.required,
966
1147
  },
1148
+ {
1149
+ type: 'error',
1150
+ fieldKey: 'datetime-example',
1151
+ text: el.form.error.required,
1152
+ },
967
1153
  {
968
1154
  type: 'error',
969
1155
  fieldKey: 'otp',
@@ -1020,178 +1206,755 @@ const inputsScenarios = [
1020
1206
  },
1021
1207
  },
1022
1208
  {
1023
- key: 'otp',
1024
- type: 'otp',
1025
- maxLength: 6,
1209
+ key: 'date-example-2',
1210
+ type: 'date',
1211
+ required: true,
1026
1212
  label: {
1027
- primary: 'Συμπληρώστε τον κωδικό επιβεβαίωσης',
1213
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1214
+ secondary: 'Για παράδειγμα, 05 11 2020',
1028
1215
  },
1216
+ },
1217
+ {
1218
+ key: 'date-example-3',
1219
+ type: 'date',
1029
1220
  required: true,
1221
+ label: {
1222
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1223
+ secondary: 'Για παράδειγμα, 05 11 2020',
1224
+ },
1030
1225
  },
1031
- ],
1032
- fill: [
1033
1226
  {
1034
- fieldKey: 'date-example',
1035
- value: {
1036
- day: 'a2',
1037
- month: '11',
1038
- year: '2020',
1227
+ key: 'date-example-4',
1228
+ type: 'date',
1229
+ required: true,
1230
+ label: {
1231
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1232
+ secondary: 'Για παράδειγμα, 05 11 2020',
1039
1233
  },
1040
1234
  },
1041
1235
  {
1042
- fieldKey: 'otp',
1043
- value: {
1044
- '0': 'a',
1045
- '1': '4',
1046
- '2': '4',
1047
- '3': '4',
1048
- '4': '4',
1049
- '5': '4',
1236
+ key: 'date-example-5',
1237
+ type: 'date',
1238
+ required: true,
1239
+ label: {
1240
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1241
+ secondary: 'Για παράδειγμα, 05 11 2020',
1050
1242
  },
1051
1243
  },
1052
- ],
1053
- expect: [
1054
1244
  {
1055
- type: 'error',
1056
- fieldKey: 'date-example',
1057
- text: el.form.error.date.invalid,
1245
+ key: 'date-example-6',
1246
+ type: 'date',
1247
+ required: true,
1248
+ label: {
1249
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1250
+ secondary: 'Για παράδειγμα, 05 11 2020',
1251
+ },
1058
1252
  },
1059
1253
  {
1060
- type: 'error',
1061
- fieldKey: 'otp',
1062
- args: {
1063
- maxLength: 6,
1254
+ key: 'date-example-7',
1255
+ type: 'date',
1256
+ required: true,
1257
+ label: {
1258
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1259
+ secondary: 'Για παράδειγμα, 05 11 2020',
1064
1260
  },
1065
- text: el.form.error.otp.less_than,
1066
1261
  },
1067
- ],
1068
- },
1069
- {
1070
- title: 'wrong sizes for ImageInput and FileInput',
1071
- describe: 'inputs scenario',
1072
- fields: [
1073
1262
  {
1074
- key: 'image',
1075
- type: 'image',
1263
+ key: 'datetime-example-1',
1264
+ type: 'datetime',
1076
1265
  required: true,
1077
1266
  label: {
1078
- primary: 'Ανεβάστε τη φωτογραφία του προστίμου',
1267
+ primary: 'Ποιά είναι η ημερομηνία και ώρα του ραντεβού;',
1268
+ secondary: 'Για παράδειγμα, 05/11/2020 14:30',
1079
1269
  },
1080
- extra: {
1081
- limit: {
1082
- maxSize: 300,
1083
- },
1270
+ },
1271
+ {
1272
+ key: 'datetime-example-2',
1273
+ type: 'datetime',
1274
+ required: true,
1275
+ label: {
1276
+ primary: 'Ποιά είναι η ημερομηνία και ώρα του ραντεβού;',
1277
+ secondary: 'Για παράδειγμα, 05/11/2020 14:30',
1084
1278
  },
1085
1279
  },
1086
1280
  {
1087
- key: 'file',
1088
- type: 'file',
1281
+ key: 'datetime-example-3',
1282
+ type: 'datetime',
1089
1283
  required: true,
1090
1284
  label: {
1091
- primary: 'Ανεβάστε το αρχείο της απόδειξης',
1285
+ primary: 'Ποιά είναι η ημερομηνία και ώρα του ραντεβού;',
1286
+ secondary: 'Για παράδειγμα, 05/11/2020 14:30',
1092
1287
  },
1093
- extra: {
1094
- limit: {
1095
- maxSize: 300,
1096
- },
1288
+ },
1289
+ {
1290
+ key: 'datetime-example-4',
1291
+ type: 'datetime',
1292
+ required: true,
1293
+ label: {
1294
+ primary: 'Ποιά είναι η ημερομηνία και ώρα του ραντεβού;',
1295
+ secondary: 'Για παράδειγμα, 05/11/2020 14:30',
1097
1296
  },
1098
1297
  },
1099
- ],
1100
- fill: [
1101
1298
  {
1102
- fieldKey: 'image',
1103
- value: {
1104
- fileName: 'green_image.png',
1105
- size: 300,
1299
+ key: 'datetime-example-5',
1300
+ type: 'datetime',
1301
+ required: true,
1302
+ label: {
1303
+ primary: 'Ποιά είναι η ημερομηνία και ώρα του ραντεβού;',
1304
+ secondary: 'Για παράδειγμα, 05/11/2020 14:30',
1106
1305
  },
1107
1306
  },
1307
+
1108
1308
  {
1109
- fieldKey: 'file',
1110
- value: {
1111
- fileName: 'file.txt',
1112
- size: 200,
1309
+ key: 'datetime-example-6',
1310
+ type: 'datetime',
1311
+ required: true,
1312
+ label: {
1313
+ primary: 'Ποιά είναι η ημερομηνία και ώρα του ραντεβού;',
1314
+ secondary: 'Για παράδειγμα, 05/11/2020 14:30',
1113
1315
  },
1114
1316
  },
1115
- ],
1116
- expect: [
1117
1317
  {
1118
- type: 'error',
1119
- fieldKey: 'image',
1120
- args: {
1121
- maxSizeToMb: 0.0003,
1318
+ key: 'datetime-example-7',
1319
+ type: 'datetime',
1320
+ required: true,
1321
+ label: {
1322
+ primary: 'Ποιά είναι η ημερομηνία και ώρα του ραντεβού;',
1323
+ secondary: 'Για παράδειγμα, 05/11/2020 14:30',
1122
1324
  },
1123
- text: el.form.error.image_size,
1124
1325
  },
1125
1326
  {
1126
- type: 'error',
1127
- fieldKey: 'file',
1128
- args: {
1129
- maxSizeToMb: 0.0003,
1327
+ key: 'datetime-example-8',
1328
+ type: 'datetime',
1329
+ required: true,
1330
+ label: {
1331
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1332
+ secondary: 'Για παράδειγμα, 05 11 2020',
1130
1333
  },
1131
- text: el.form.error.file_size,
1132
1334
  },
1133
- ],
1134
- },
1135
- {
1136
- title: 'wrong dimensions for ImageInput',
1137
- describe: 'inputs scenario',
1138
- fields: [
1139
1335
  {
1140
- key: 'image',
1141
- type: 'image',
1336
+ key: 'datetime-example-9',
1337
+ type: 'datetime',
1142
1338
  required: true,
1143
1339
  label: {
1144
- primary: 'Ανεβάστε τη φωτογραφία του προστίμου',
1340
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1341
+ secondary: 'Για παράδειγμα, 05 11 2020',
1145
1342
  },
1146
- extra: {
1147
- limit: {
1148
- maxHeight: 400,
1149
- maxWidth: 400,
1150
- minHeight: 100,
1151
- minWidth: 100,
1152
- },
1343
+ },
1344
+ {
1345
+ key: 'datetime-example-10',
1346
+ type: 'datetime',
1347
+ required: true,
1348
+ label: {
1349
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1350
+ secondary: 'Για παράδειγμα, 05 11 2020',
1153
1351
  },
1154
1352
  },
1155
- ],
1156
- fill: [
1157
1353
  {
1158
- fieldKey: 'image',
1159
- value: {
1160
- fileName: 'green_image.png',
1161
- width: 500,
1162
- height: 500,
1354
+ key: 'datetime-example-11',
1355
+ type: 'datetime',
1356
+ required: true,
1357
+ label: {
1358
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1359
+ secondary: 'Για παράδειγμα, 05 11 2020',
1163
1360
  },
1164
1361
  },
1165
- ],
1166
- expect: [
1167
1362
  {
1168
- type: 'error',
1169
- fieldKey: 'image',
1170
- args: {
1171
- minWidth: 100,
1172
- minHeight: 100,
1173
- maxWidth: 400,
1174
- maxHeight: 400,
1363
+ key: 'datetime-example-12',
1364
+ type: 'datetime',
1365
+ required: true,
1366
+ label: {
1367
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1368
+ secondary: 'Για παράδειγμα, 05 11 2020',
1175
1369
  },
1176
- text: el.form.error.image.image_dimension_size,
1177
1370
  },
1178
- ],
1179
- },
1180
- ];
1181
-
1182
- const INPUTS_INPUT_FIELDS = [
1183
- {
1184
- key: 'location',
1185
- type: 'string',
1186
- label: {
1187
- primary: 'Συμπληρώστε τον τόπο κατοικίας σας',
1188
- },
1189
- required: true,
1190
- },
1191
- {
1192
- key: 'text',
1193
- type: 'text',
1194
- required: true,
1371
+ {
1372
+ key: 'datetime-example-13',
1373
+ type: 'datetime',
1374
+ required: true,
1375
+ label: {
1376
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1377
+ secondary: 'Για παράδειγμα, 05 11 2020',
1378
+ },
1379
+ },
1380
+ {
1381
+ key: 'datetime-example-14',
1382
+ type: 'datetime',
1383
+ required: true,
1384
+ label: {
1385
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1386
+ secondary: 'Για παράδειγμα, 05 11 2020',
1387
+ },
1388
+ },
1389
+ {
1390
+ key: 'datetime-example-15',
1391
+ type: 'datetime',
1392
+ required: true,
1393
+ label: {
1394
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1395
+ secondary: 'Για παράδειγμα, 05 11 2020',
1396
+ },
1397
+ },
1398
+ {
1399
+ key: 'datetime-example-16',
1400
+ type: 'datetime',
1401
+ required: true,
1402
+ label: {
1403
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1404
+ secondary: 'Για παράδειγμα, 05 11 2020',
1405
+ },
1406
+ },
1407
+ {
1408
+ key: 'datetime-example-17',
1409
+ type: 'datetime',
1410
+ required: true,
1411
+ label: {
1412
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1413
+ secondary: 'Για παράδειγμα, 05 11 2020',
1414
+ },
1415
+ },
1416
+ {
1417
+ key: 'datetime-example-18',
1418
+ type: 'datetime',
1419
+ required: true,
1420
+ label: {
1421
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1422
+ secondary: 'Για παράδειγμα, 05 11 2020',
1423
+ },
1424
+ },
1425
+ {
1426
+ key: 'datetime-example-19',
1427
+ type: 'datetime',
1428
+ required: true,
1429
+ label: {
1430
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1431
+ secondary: 'Για παράδειγμα, 05 11 2020',
1432
+ },
1433
+ },
1434
+ {
1435
+ key: 'datetime-example-20',
1436
+ type: 'datetime',
1437
+ required: true,
1438
+ label: {
1439
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1440
+ secondary: 'Για παράδειγμα, 05 11 2020',
1441
+ },
1442
+ },
1443
+ {
1444
+ key: 'datetime-example-21',
1445
+ type: 'datetime',
1446
+ required: true,
1447
+ label: {
1448
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1449
+ secondary: 'Για παράδειγμα, 05 11 2020',
1450
+ },
1451
+ },
1452
+ {
1453
+ key: 'datetime-example-22',
1454
+ type: 'datetime',
1455
+ required: true,
1456
+ label: {
1457
+ primary: 'Ποιά είναι η ημερομηνία γέννησής σας;',
1458
+ secondary: 'Για παράδειγμα, 05 11 2020',
1459
+ },
1460
+ },
1461
+ {
1462
+ key: 'otp',
1463
+ type: 'otp',
1464
+ maxLength: 6,
1465
+ label: {
1466
+ primary: 'Συμπληρώστε τον κωδικό επιβεβαίωσης',
1467
+ },
1468
+ required: true,
1469
+ },
1470
+ ],
1471
+ fill: [
1472
+ {
1473
+ fieldKey: 'date-example',
1474
+ value: {
1475
+ day: 'a2',
1476
+ month: '11',
1477
+ year: '2020',
1478
+ },
1479
+ },
1480
+ {
1481
+ fieldKey: 'date-example-2',
1482
+ value: {
1483
+ day: '',
1484
+ month: '11',
1485
+ year: '2020',
1486
+ },
1487
+ },
1488
+ {
1489
+ fieldKey: 'date-example-3',
1490
+ value: {
1491
+ day: '11',
1492
+ month: '',
1493
+ year: '2020',
1494
+ },
1495
+ },
1496
+ {
1497
+ fieldKey: 'date-example-4',
1498
+ value: {
1499
+ day: '11',
1500
+ month: '11',
1501
+ year: '',
1502
+ },
1503
+ },
1504
+ {
1505
+ fieldKey: 'date-example-5',
1506
+ value: {
1507
+ day: '',
1508
+ month: '',
1509
+ year: '2020',
1510
+ },
1511
+ },
1512
+ {
1513
+ fieldKey: 'date-example-6',
1514
+ value: {
1515
+ day: '',
1516
+ month: '11',
1517
+ year: '',
1518
+ },
1519
+ },
1520
+ {
1521
+ fieldKey: 'date-example-7',
1522
+ value: {
1523
+ day: '11',
1524
+ month: '',
1525
+ year: '',
1526
+ },
1527
+ },
1528
+ {
1529
+ fieldKey: 'datetime-example-1',
1530
+ value: {
1531
+ day: 'a2',
1532
+ month: '11',
1533
+ year: '2024',
1534
+ hours: '15',
1535
+ minutes: '15',
1536
+ },
1537
+ },
1538
+ {
1539
+ fieldKey: 'datetime-example-2',
1540
+ value: { day: '12', month: '', year: '', hours: '', minutes: '' },
1541
+ },
1542
+ {
1543
+ fieldKey: 'datetime-example-3',
1544
+ value: { day: '', month: '12', year: '', hours: '', minutes: '' },
1545
+ },
1546
+ {
1547
+ fieldKey: 'datetime-example-4',
1548
+ value: { day: '', month: '', year: '2024', hours: '', minutes: '' },
1549
+ },
1550
+ {
1551
+ fieldKey: 'datetime-example-5',
1552
+ value: { day: '', month: '', year: '', hours: '13', minutes: '' },
1553
+ },
1554
+ {
1555
+ fieldKey: 'datetime-example-6',
1556
+ value: { day: '', month: '', year: '', hours: '', minutes: '45' },
1557
+ },
1558
+ {
1559
+ fieldKey: 'datetime-example-7',
1560
+ value: { day: '12', month: '11', year: '', hours: '', minutes: '' },
1561
+ },
1562
+ {
1563
+ fieldKey: 'datetime-example-8',
1564
+ value: { day: '12', month: '', year: '2024', hours: '', minutes: '' },
1565
+ },
1566
+ {
1567
+ fieldKey: 'datetime-example-9',
1568
+ value: { day: '', month: '11', year: '2024', hours: '', minutes: '' },
1569
+ },
1570
+ {
1571
+ fieldKey: 'datetime-example-10',
1572
+ value: { day: '12', month: '11', year: '2024', hours: '', minutes: '' },
1573
+ },
1574
+ {
1575
+ fieldKey: 'datetime-example-11',
1576
+ value: {
1577
+ day: '12',
1578
+ month: '11',
1579
+ year: '2024',
1580
+ hours: '15',
1581
+ minutes: '',
1582
+ },
1583
+ },
1584
+ {
1585
+ fieldKey: 'datetime-example-12',
1586
+ value: {
1587
+ day: '12',
1588
+ month: '11',
1589
+ year: '2024',
1590
+ hours: '',
1591
+ minutes: '15',
1592
+ },
1593
+ },
1594
+ {
1595
+ fieldKey: 'datetime-example-13',
1596
+ value: { day: '12', month: '', year: '', hours: '15', minutes: '' },
1597
+ },
1598
+ {
1599
+ fieldKey: 'datetime-example-14',
1600
+ value: { day: '12', month: '', year: '', hours: '', minutes: '15' },
1601
+ },
1602
+ {
1603
+ fieldKey: 'datetime-example-15',
1604
+ value: { day: '12', month: '', year: '', hours: '15', minutes: '15' },
1605
+ },
1606
+ {
1607
+ fieldKey: 'datetime-example-16',
1608
+ value: { day: '', month: '12', year: '', hours: '15', minutes: '' },
1609
+ },
1610
+ {
1611
+ fieldKey: 'datetime-example-17',
1612
+ value: { day: '', month: '12', year: '', hours: '', minutes: '15' },
1613
+ },
1614
+ {
1615
+ fieldKey: 'datetime-example-18',
1616
+ value: { day: '', month: '12', year: '', hours: '15', minutes: '15' },
1617
+ },
1618
+ {
1619
+ fieldKey: 'datetime-example-19',
1620
+ value: { day: '', month: '', year: '2024', hours: '15', minutes: '' },
1621
+ },
1622
+ {
1623
+ fieldKey: 'datetime-example-20',
1624
+ value: { day: '', month: '', year: '2024', hours: '', minutes: '15' },
1625
+ },
1626
+ {
1627
+ fieldKey: 'datetime-example-21',
1628
+ value: { day: '', month: '', year: '2024', hours: '15', minutes: '15' },
1629
+ },
1630
+ {
1631
+ fieldKey: 'datetime-example-22',
1632
+ value: { day: '', month: '', year: '', hours: '15', minutes: '15' },
1633
+ },
1634
+ {
1635
+ fieldKey: 'otp',
1636
+ value: {
1637
+ '0': 'a',
1638
+ '1': '4',
1639
+ '2': '4',
1640
+ '3': '4',
1641
+ '4': '4',
1642
+ '5': '4',
1643
+ },
1644
+ },
1645
+ ],
1646
+ expect: [
1647
+ {
1648
+ type: 'error',
1649
+ fieldKey: 'date-example',
1650
+ text: el.form.error.date.invalid,
1651
+ },
1652
+ {
1653
+ type: 'error',
1654
+ fieldKey: 'date-example-2',
1655
+ text: el.form.error.date.invalid_day,
1656
+ },
1657
+ {
1658
+ type: 'error',
1659
+ fieldKey: 'date-example-3',
1660
+ text: el.form.error.date.invalid_month,
1661
+ },
1662
+ {
1663
+ type: 'error',
1664
+ fieldKey: 'date-example-4',
1665
+ text: el.form.error.date.invalid_year,
1666
+ },
1667
+ {
1668
+ type: 'error',
1669
+ fieldKey: 'date-example-5',
1670
+ text: el.form.error.date.invalid_day_month,
1671
+ },
1672
+ {
1673
+ type: 'error',
1674
+ fieldKey: 'date-example-6',
1675
+ text: el.form.error.date.invalid_day_year,
1676
+ },
1677
+ {
1678
+ type: 'error',
1679
+ fieldKey: 'date-example-7',
1680
+ text: el.form.error.date.invalid_month_year,
1681
+ },
1682
+ {
1683
+ type: 'error',
1684
+ fieldKey: 'date-example-2',
1685
+ text: el.form.error.date.invalid_day,
1686
+ },
1687
+ {
1688
+ type: 'error',
1689
+ fieldKey: 'date-example-3',
1690
+ text: el.form.error.date.invalid_month,
1691
+ },
1692
+ {
1693
+ type: 'error',
1694
+ fieldKey: 'date-example-4',
1695
+ text: el.form.error.date.invalid_year,
1696
+ },
1697
+ {
1698
+ type: 'error',
1699
+ fieldKey: 'date-example-5',
1700
+ text: el.form.error.date.invalid_day_month,
1701
+ },
1702
+ {
1703
+ type: 'error',
1704
+ fieldKey: 'date-example-6',
1705
+ text: el.form.error.date.invalid_day_year,
1706
+ },
1707
+ {
1708
+ type: 'error',
1709
+ fieldKey: 'date-example-7',
1710
+ text: el.form.error.date.invalid_month_year,
1711
+ },
1712
+ {
1713
+ type: 'error',
1714
+ fieldKey: 'datetime-example-1',
1715
+ text: el.form.error.datetime.invalid,
1716
+ },
1717
+ {
1718
+ type: 'error',
1719
+ fieldKey: 'datetime-example-2',
1720
+ text: el.form.error.datetime.invalid_month_year_hours_minutes,
1721
+ },
1722
+ {
1723
+ type: 'error',
1724
+ fieldKey: 'datetime-example-3',
1725
+ text: el.form.error.datetime.invalid_day_year_hours_minutes,
1726
+ },
1727
+ {
1728
+ type: 'error',
1729
+ fieldKey: 'datetime-example-4',
1730
+ text: el.form.error.datetime.invalid_day_month_hours_minutes,
1731
+ },
1732
+ {
1733
+ type: 'error',
1734
+ fieldKey: 'datetime-example-5',
1735
+ text: el.form.error.datetime.invalid_day_month_year_minutes,
1736
+ },
1737
+ {
1738
+ type: 'error',
1739
+ fieldKey: 'datetime-example-6',
1740
+ text: el.form.error.datetime.invalid_day_month_year_hours,
1741
+ },
1742
+ {
1743
+ type: 'error',
1744
+ fieldKey: 'datetime-example-7',
1745
+ text: el.form.error.datetime.invalid_year_hours_minutes,
1746
+ },
1747
+ {
1748
+ type: 'error',
1749
+ fieldKey: 'datetime-example-8',
1750
+ text: el.form.error.datetime.invalid_month_hours_minutes,
1751
+ },
1752
+ {
1753
+ type: 'error',
1754
+ fieldKey: 'datetime-example-9',
1755
+ text: el.form.error.datetime.invalid_day_hours_minutes,
1756
+ },
1757
+ {
1758
+ type: 'error',
1759
+ fieldKey: 'datetime-example-10',
1760
+ text: el.form.error.datetime.invalid_hours_minutes,
1761
+ },
1762
+ {
1763
+ type: 'error',
1764
+ fieldKey: 'datetime-example-11',
1765
+ text: el.form.error.datetime.invalid_minutes,
1766
+ },
1767
+ {
1768
+ type: 'error',
1769
+ fieldKey: 'datetime-example-12',
1770
+ text: el.form.error.datetime.invalid_hours,
1771
+ },
1772
+ {
1773
+ type: 'error',
1774
+ fieldKey: 'datetime-example-13',
1775
+ text: el.form.error.datetime.invalid_month_year_minutes,
1776
+ },
1777
+ {
1778
+ type: 'error',
1779
+ fieldKey: 'datetime-example-14',
1780
+ text: el.form.error.datetime.invalid_month_year_hours,
1781
+ },
1782
+ {
1783
+ type: 'error',
1784
+ fieldKey: 'datetime-example-15',
1785
+ text: el.form.error.datetime.invalid_month_year,
1786
+ },
1787
+ {
1788
+ type: 'error',
1789
+ fieldKey: 'datetime-example-16',
1790
+ text: el.form.error.datetime.invalid_day_year_minutes,
1791
+ },
1792
+ {
1793
+ type: 'error',
1794
+ fieldKey: 'datetime-example-17',
1795
+ text: el.form.error.datetime.invalid_day_year_hours,
1796
+ },
1797
+ {
1798
+ type: 'error',
1799
+ fieldKey: 'datetime-example-18',
1800
+ text: el.form.error.datetime.invalid_day_year,
1801
+ },
1802
+ {
1803
+ type: 'error',
1804
+ fieldKey: 'datetime-example-19',
1805
+ text: el.form.error.datetime.invalid_day_month_minutes,
1806
+ },
1807
+ {
1808
+ type: 'error',
1809
+ fieldKey: 'datetime-example-20',
1810
+ text: el.form.error.datetime.invalid_day_month_hours,
1811
+ },
1812
+ {
1813
+ type: 'error',
1814
+ fieldKey: 'datetime-example-21',
1815
+ text: el.form.error.datetime.invalid_day_month,
1816
+ },
1817
+ {
1818
+ type: 'error',
1819
+ fieldKey: 'datetime-example-22',
1820
+ text: el.form.error.datetime.invalid_day_month_year,
1821
+ },
1822
+ {
1823
+ type: 'error',
1824
+ fieldKey: 'otp',
1825
+ args: {
1826
+ maxLength: 6,
1827
+ },
1828
+ text: el.form.error.otp.less_than,
1829
+ },
1830
+ ],
1831
+ },
1832
+ {
1833
+ title: 'wrong sizes for ImageInput and FileInput',
1834
+ describe: 'inputs scenario',
1835
+ fields: [
1836
+ {
1837
+ key: 'image',
1838
+ type: 'image',
1839
+ required: true,
1840
+ label: {
1841
+ primary: 'Ανεβάστε τη φωτογραφία του προστίμου',
1842
+ },
1843
+ extra: {
1844
+ limit: {
1845
+ maxSize: 300,
1846
+ },
1847
+ },
1848
+ },
1849
+ {
1850
+ key: 'file',
1851
+ type: 'file',
1852
+ required: true,
1853
+ label: {
1854
+ primary: 'Ανεβάστε το αρχείο της απόδειξης',
1855
+ },
1856
+ extra: {
1857
+ limit: {
1858
+ maxSize: 300,
1859
+ },
1860
+ },
1861
+ },
1862
+ ],
1863
+ fill: [
1864
+ {
1865
+ fieldKey: 'image',
1866
+ value: {
1867
+ fileName: 'green_image.png',
1868
+ size: 300,
1869
+ },
1870
+ },
1871
+ {
1872
+ fieldKey: 'file',
1873
+ value: {
1874
+ fileName: 'file.txt',
1875
+ size: 200,
1876
+ },
1877
+ },
1878
+ ],
1879
+ expect: [
1880
+ {
1881
+ type: 'error',
1882
+ fieldKey: 'image',
1883
+ args: {
1884
+ maxSize: 300,
1885
+ },
1886
+ text: el.form.error.image_size,
1887
+ },
1888
+ {
1889
+ type: 'error',
1890
+ fieldKey: 'file',
1891
+ args: {
1892
+ maxSize: 300,
1893
+ },
1894
+ text: el.form.error.file_size,
1895
+ },
1896
+ ],
1897
+ },
1898
+ {
1899
+ title: 'wrong dimensions for ImageInput',
1900
+ describe: 'inputs scenario',
1901
+ fields: [
1902
+ {
1903
+ key: 'image',
1904
+ type: 'image',
1905
+ required: true,
1906
+ label: {
1907
+ primary: 'Ανεβάστε τη φωτογραφία του προστίμου',
1908
+ },
1909
+ extra: {
1910
+ limit: {
1911
+ maxHeight: 400,
1912
+ maxWidth: 400,
1913
+ minHeight: 100,
1914
+ minWidth: 100,
1915
+ },
1916
+ },
1917
+ },
1918
+ ],
1919
+ fill: [
1920
+ {
1921
+ fieldKey: 'image',
1922
+ value: {
1923
+ fileName: 'green_image.png',
1924
+ width: 500,
1925
+ height: 500,
1926
+ },
1927
+ },
1928
+ ],
1929
+ expect: [
1930
+ {
1931
+ type: 'error',
1932
+ fieldKey: 'image',
1933
+ args: {
1934
+ minWidth: 100,
1935
+ minHeight: 100,
1936
+ maxWidth: 400,
1937
+ maxHeight: 400,
1938
+ },
1939
+ text: el.form.error.image.image_dimension_size,
1940
+ },
1941
+ ],
1942
+ },
1943
+ ];
1944
+
1945
+ const INPUTS_INPUT_FIELDS = [
1946
+ {
1947
+ key: 'location',
1948
+ type: 'string',
1949
+ label: {
1950
+ primary: 'Συμπληρώστε τον τόπο κατοικίας σας',
1951
+ },
1952
+ required: true,
1953
+ },
1954
+ {
1955
+ key: 'text',
1956
+ type: 'text',
1957
+ required: true,
1195
1958
  label: {
1196
1959
  primary: 'Συμπληρώστε το αίτημά σας',
1197
1960
  },
@@ -1289,6 +2052,54 @@ const INPUTS_INPUT_FIELDS = [
1289
2052
  },
1290
2053
  ];
1291
2054
 
2055
+ const ERROR_GROUPING_FIELDS = [
2056
+ {
2057
+ key: 'address',
2058
+ type: 'string',
2059
+ required: true,
2060
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
2061
+ label: {
2062
+ primary: 'Οδός',
2063
+ },
2064
+ },
2065
+ {
2066
+ key: 'address_number',
2067
+ type: 'int',
2068
+ required: true,
2069
+ layout: { xl: 2, lg: 2, md: 2, xs: 6 },
2070
+ label: {
2071
+ primary: 'Αριθμός',
2072
+ },
2073
+ },
2074
+ {
2075
+ key: 'postal_code',
2076
+ type: 'postal_code',
2077
+ required: true,
2078
+ layout: { xl: 4, lg: 4, md: 4, xs: 6 },
2079
+ label: {
2080
+ primary: 'Ταχ. Κώδικας',
2081
+ },
2082
+ },
2083
+ {
2084
+ key: 'town',
2085
+ type: 'string',
2086
+ required: true,
2087
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
2088
+ label: {
2089
+ primary: 'Πόλη',
2090
+ },
2091
+ },
2092
+ {
2093
+ key: 'country',
2094
+ type: 'string',
2095
+ required: true,
2096
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
2097
+ label: {
2098
+ primary: 'Χώρα',
2099
+ },
2100
+ },
2101
+ ];
2102
+
1292
2103
  const inputsInputScenarios = [
1293
2104
  {
1294
2105
  title: 'success fill for inputs Input',
@@ -1410,7 +2221,8 @@ const inputsInputScenarios = [
1410
2221
  {
1411
2222
  title: 'empty fill for inputs Input',
1412
2223
  describe: 'inputs Input scenario',
1413
- fields: INPUTS_INPUT_FIELDS,
2224
+ delay: 5_000,
2225
+ fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
1414
2226
  fill: [],
1415
2227
  expect: [
1416
2228
  {
@@ -1468,12 +2280,42 @@ const inputsInputScenarios = [
1468
2280
  fieldKey: 'uuid4',
1469
2281
  text: el.form.error.required,
1470
2282
  },
2283
+ {
2284
+ type: 'error',
2285
+ fieldKey: 'address',
2286
+ text: el.form.error.required,
2287
+ textAssertion: 'toContainText',
2288
+ },
2289
+ {
2290
+ type: 'error',
2291
+ fieldKey: 'address_number',
2292
+ text: el.form.error.required,
2293
+ textAssertion: 'toContainText',
2294
+ },
2295
+ {
2296
+ type: 'error',
2297
+ fieldKey: 'postal_code',
2298
+ text: el.form.error.required,
2299
+ textAssertion: 'toContainText',
2300
+ },
2301
+ {
2302
+ type: 'error',
2303
+ fieldKey: 'town',
2304
+ text: el.form.error.required,
2305
+ textAssertion: 'toContainText',
2306
+ },
2307
+ {
2308
+ type: 'error',
2309
+ fieldKey: 'country',
2310
+ text: el.form.error.required,
2311
+ textAssertion: 'toContainText',
2312
+ },
1471
2313
  ],
1472
2314
  },
1473
2315
  {
1474
2316
  title: 'incorrect types for inputs Input',
1475
2317
  describe: 'inputs Input scenario',
1476
- fields: INPUTS_INPUT_FIELDS,
2318
+ fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
1477
2319
  fill: [
1478
2320
  {
1479
2321
  fieldKey: 'age',
@@ -1481,7 +2323,7 @@ const inputsInputScenarios = [
1481
2323
  },
1482
2324
  {
1483
2325
  fieldKey: 'email',
1484
- value: '23232',
2326
+ value: 'example@mail.',
1485
2327
  },
1486
2328
  {
1487
2329
  fieldKey: 'location',
@@ -1519,6 +2361,14 @@ const inputsInputScenarios = [
1519
2361
  fieldKey: 'uuid4',
1520
2362
  value: 'aaaaaa',
1521
2363
  },
2364
+ {
2365
+ fieldKey: 'address_number',
2366
+ value: 'aa',
2367
+ },
2368
+ {
2369
+ fieldKey: 'postal_code',
2370
+ value: 'aaaaa',
2371
+ },
1522
2372
  ],
1523
2373
  expect: [
1524
2374
  {
@@ -1576,6 +2426,18 @@ const inputsInputScenarios = [
1576
2426
  fieldKey: 'uuid4',
1577
2427
  text: el.form.error.uuid4,
1578
2428
  },
2429
+ {
2430
+ type: 'error',
2431
+ fieldKey: 'address_number',
2432
+ text: el.form.error.number,
2433
+ textAssertion: 'toContainText',
2434
+ },
2435
+ {
2436
+ type: 'error',
2437
+ fieldKey: 'postal_code',
2438
+ text: el.form.error.postalCode,
2439
+ textAssertion: 'toContainText',
2440
+ },
1579
2441
  ],
1580
2442
  },
1581
2443
  ];
@@ -1726,6 +2588,7 @@ const fieldArrayScenarioTitles = [
1726
2588
  const fieldArrayFieldsTemplate = {
1727
2589
  key: 'fieldArray',
1728
2590
  type: 'array',
2591
+ editable: true,
1729
2592
  label: {
1730
2593
  primary: 'Εξαρτώμενα μέλη',
1731
2594
  secondary:
@@ -1744,6 +2607,7 @@ const fieldArrayFieldsTemplate = {
1744
2607
  no: 'Όχι',
1745
2608
  },
1746
2609
  },
2610
+ border: 'border',
1747
2611
  of: {
1748
2612
  type: 'object',
1749
2613
  label: {
@@ -1842,16 +2706,25 @@ const scenarios = [
1842
2706
  ...inputsInputScenarios,
1843
2707
  ];
1844
2708
 
2709
+ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
2710
+
1845
2711
  for (const scenario of scenarios) {
1846
2712
  test.describe(scenario.describe, () => {
1847
2713
  test(scenario.title, async ({ mount, page }) => {
1848
2714
  const formBuilder = await mount(
1849
2715
  // @ts-ignore
1850
- <FormBuilder auto={true} fields={scenario.fields} onSubmit={() => {}} />
2716
+ <FormBuilder
2717
+ auto={true}
2718
+ grid={true}
2719
+ fields={scenario.fields}
2720
+ onSubmit={() => {}}
2721
+ />
1851
2722
  );
1852
2723
  await fillFields(page, formBuilder, scenario);
1853
2724
  await submitForm(formBuilder);
1854
-
2725
+ if (scenario.delay) {
2726
+ await delay(scenario.delay);
2727
+ }
1855
2728
  const screenshot = await page.screenshot({
1856
2729
  fullPage: true,
1857
2730
  animations: 'disabled',