@digigov/form 2.0.0-298cfc51 → 2.0.0-2a26e869

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 (455) hide show
  1. package/Field/ErrorGroup/index.js +48 -0
  2. package/{Form.stories → 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 +30 -22
  6. package/Field/FieldBase.js.map +2 -2
  7. package/Field/FieldBaseContainer/index.js +3 -2
  8. package/Field/FieldBaseContainer.js.map +2 -2
  9. package/Field/FieldConditional.js.map +1 -1
  10. package/Field/types.d.ts +7 -7
  11. package/FieldArray/index.js +2 -2
  12. package/FieldArray/index.js.map +2 -2
  13. package/FormBuilder/FormBuilder.stories.d.ts +2 -0
  14. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
  15. package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
  16. package/FormBuilder/index.js +83 -4
  17. package/FormBuilder/index.js.map +2 -2
  18. package/FormBuilder/interaction.test.d.ts +1 -0
  19. package/FormContext.js.map +2 -2
  20. package/MultiplicityField/add-objects/index.js +4 -2
  21. package/MultiplicityField/add-objects.js.map +2 -2
  22. package/MultiplicityField/index.js +1 -0
  23. package/MultiplicityField/index.js.map +2 -2
  24. package/MultiplicityField/types.d.ts +1 -2
  25. package/Questions/Questions/index.js +5 -4
  26. package/Questions/Questions.js.map +2 -2
  27. package/Questions/Step/StepArrayReview.js.map +2 -2
  28. package/cjs/Field/ErrorGroup/index.js +82 -0
  29. package/cjs/Field/ErrorGroup.js.map +7 -0
  30. package/cjs/Field/FieldBase/index.js +29 -21
  31. package/cjs/Field/FieldBase.js.map +2 -2
  32. package/cjs/Field/FieldBaseContainer/index.js +3 -2
  33. package/cjs/Field/FieldBaseContainer.js.map +2 -2
  34. package/cjs/Field/FieldConditional.js.map +1 -1
  35. package/cjs/Field/types.js.map +1 -1
  36. package/cjs/FieldArray/index.js +2 -2
  37. package/cjs/FieldArray/index.js.map +3 -3
  38. package/cjs/FormBuilder/index.js +83 -4
  39. package/cjs/FormBuilder/index.js.map +2 -2
  40. package/cjs/FormContext/index.js +2 -2
  41. package/cjs/FormContext.js.map +3 -3
  42. package/cjs/MultiplicityField/add-objects/index.js +4 -2
  43. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  44. package/cjs/MultiplicityField/index.js +1 -0
  45. package/cjs/MultiplicityField/index.js.map +2 -2
  46. package/cjs/MultiplicityField/types.js.map +1 -1
  47. package/cjs/Questions/Questions/index.js +5 -4
  48. package/cjs/Questions/Questions.js.map +2 -2
  49. package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
  50. package/cjs/inputs/AutoCompleteInput/index.js +2 -2
  51. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  52. package/cjs/inputs/Checkboxes/index.js.map +1 -1
  53. package/cjs/inputs/DateInput/index.js +4 -4
  54. package/cjs/inputs/DateInput/index.js.map +2 -2
  55. package/cjs/inputs/FileInput/index.js +1 -1
  56. package/cjs/inputs/FileInput/index.js.map +2 -2
  57. package/cjs/inputs/ImageInput/index.js +1 -1
  58. package/cjs/inputs/ImageInput/index.js.map +2 -2
  59. package/cjs/inputs/Input/index.js +2 -1
  60. package/cjs/inputs/Input/index.js.map +2 -2
  61. package/cjs/inputs/Input/inputsInputScenarios.js.map +2 -2
  62. package/cjs/inputs/Label/index.js.map +2 -2
  63. package/cjs/inputs/OtpInput/index.js.map +2 -2
  64. package/cjs/inputs/Radio/index.js.map +1 -1
  65. package/cjs/inputs/Select/index.js.map +2 -2
  66. package/cjs/inputs/inputsScenarios/index.js +4 -10
  67. package/cjs/inputs/inputsScenarios.js.map +2 -2
  68. package/cjs/lazy/index.js +40 -38
  69. package/cjs/lazy.js.map +3 -3
  70. package/cjs/locales/el.js.map +1 -1
  71. package/cjs/registry/index.js +64 -62
  72. package/cjs/registry.js.map +3 -3
  73. package/cjs/types.js.map +1 -1
  74. package/cjs/utils/index.js +2 -1
  75. package/cjs/utils.js.map +2 -2
  76. package/cjs/validators/index.js +19 -13
  77. package/cjs/validators/index.js.map +2 -2
  78. package/cjs/validators/utils/file.js.map +2 -2
  79. package/cjs/validators/utils/int/index.js +1 -1
  80. package/cjs/validators/utils/int.js.map +2 -2
  81. package/cjs/validators/utils/number/index.js +1 -1
  82. package/cjs/validators/utils/number.js.map +2 -2
  83. package/cjs/validators/utils/phone.js.map +2 -2
  84. package/cjs/validators/utils/postal_code.js.map +1 -1
  85. package/cjs/validators/utils/uuid4.js.map +2 -2
  86. package/index.js +1 -1
  87. package/inputs/AutoCompleteInput/index.d.ts +1 -1
  88. package/inputs/AutoCompleteInput/index.js +2 -2
  89. package/inputs/AutoCompleteInput/index.js.map +2 -2
  90. package/inputs/Checkboxes/index.d.ts +1 -1
  91. package/inputs/Checkboxes/index.js.map +1 -1
  92. package/inputs/DateInput/index.d.ts +1 -2
  93. package/inputs/DateInput/index.js +4 -4
  94. package/inputs/DateInput/index.js.map +2 -2
  95. package/inputs/FileInput/index.js +1 -1
  96. package/inputs/FileInput/index.js.map +2 -2
  97. package/inputs/ImageInput/index.js +1 -1
  98. package/inputs/ImageInput/index.js.map +2 -2
  99. package/inputs/Input/Input.stories.d.ts +1 -0
  100. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
  101. package/inputs/Input/index.js +2 -1
  102. package/inputs/Input/index.js.map +2 -2
  103. package/inputs/Input/inputsInputScenarios.js.map +2 -2
  104. package/inputs/Label/index.d.ts +0 -2
  105. package/inputs/Label/index.js.map +2 -2
  106. package/inputs/OtpInput/index.js.map +2 -2
  107. package/inputs/Radio/index.d.ts +1 -1
  108. package/inputs/Radio/index.js.map +1 -1
  109. package/inputs/Select/index.d.ts +1 -1
  110. package/inputs/Select/index.js +4 -1
  111. package/inputs/Select/index.js.map +2 -2
  112. package/inputs/inputsScenarios/index.js +4 -10
  113. package/inputs/inputsScenarios.js.map +2 -2
  114. package/lazy/index.js +68 -70
  115. package/locales/el.js.map +1 -1
  116. package/package.json +4 -4
  117. package/registry/index.js +109 -108
  118. package/src/Field/ErrorGroup.tsx +84 -0
  119. package/src/Field/FieldBase.tsx +33 -22
  120. package/src/Field/FieldBaseContainer.tsx +4 -3
  121. package/src/Field/FieldConditional.tsx +2 -2
  122. package/src/Field/types.tsx +26 -26
  123. package/src/FieldArray/index.tsx +2 -2
  124. package/src/FormBuilder/FormBuilder.stories.js +2 -0
  125. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
  126. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
  127. package/src/FormBuilder/index.test.tsx +19 -10
  128. package/src/FormBuilder/index.tsx +92 -7
  129. package/src/FormBuilder/interaction.test.tsx +32 -0
  130. package/src/FormBuilder/scenarios.test.tsx +112 -5
  131. package/src/FormContext.tsx +1 -2
  132. package/src/MultiplicityField/add-objects.tsx +4 -3
  133. package/src/MultiplicityField/index.tsx +1 -0
  134. package/src/MultiplicityField/types.ts +1 -2
  135. package/src/Questions/Questions.tsx +4 -4
  136. package/src/Questions/Step/StepArrayReview.tsx +1 -1
  137. package/src/Questions/__snapshots__/index.spec.tsx.snap +2 -1
  138. package/src/Questions/index.spec.tsx +14 -2
  139. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +2 -10
  140. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -7
  141. package/src/inputs/AutoCompleteInput/index.tsx +3 -5
  142. package/src/inputs/Checkboxes/index.tsx +1 -1
  143. package/src/inputs/DateInput/__stories__/Default.tsx +7 -12
  144. package/src/inputs/DateInput/index.tsx +4 -4
  145. package/src/inputs/FileInput/index.tsx +2 -2
  146. package/src/inputs/ImageInput/ImageInput.stories.js +0 -1
  147. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +2 -2
  148. package/src/inputs/ImageInput/index.tsx +1 -4
  149. package/src/inputs/Input/Input.stories.js +1 -0
  150. package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
  151. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
  152. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
  153. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
  154. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
  155. package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -0
  156. package/src/inputs/Input/index.test.tsx +4 -0
  157. package/src/inputs/Input/index.tsx +2 -1
  158. package/src/inputs/Input/inputsInputScenarios.ts +244 -245
  159. package/src/inputs/Label/index.tsx +0 -3
  160. package/src/inputs/OtpInput/index.tsx +2 -1
  161. package/src/inputs/Radio/index.tsx +1 -1
  162. package/src/inputs/Select/index.tsx +5 -2
  163. package/src/inputs/inputsScenarios.ts +36 -42
  164. package/src/lazy.js +68 -67
  165. package/src/locales/el.ts +1 -1
  166. package/src/registry.js +101 -101
  167. package/src/types.tsx +2 -2
  168. package/src/utils.ts +2 -2
  169. package/src/validators/index.ts +41 -14
  170. package/src/validators/utils/file.ts +5 -3
  171. package/src/validators/utils/int.ts +1 -1
  172. package/src/validators/utils/number.ts +1 -1
  173. package/src/validators/utils/phone.ts +1 -1
  174. package/src/validators/utils/postal_code.ts +1 -1
  175. package/src/validators/utils/uuid4.ts +2 -1
  176. package/src/validators/validators.spec.ts +3 -3
  177. package/types.d.ts +2 -2
  178. package/types.js.map +1 -1
  179. package/utils/index.js +2 -1
  180. package/utils.js.map +2 -2
  181. package/validators/index.js +19 -13
  182. package/validators/index.js.map +2 -2
  183. package/validators/utils/file.js.map +2 -2
  184. package/validators/utils/int/index.js +1 -1
  185. package/validators/utils/int.js.map +2 -2
  186. package/validators/utils/number/index.js +1 -1
  187. package/validators/utils/number.js.map +2 -2
  188. package/validators/utils/phone.d.ts +1 -1
  189. package/validators/utils/phone.js.map +2 -2
  190. package/validators/utils/postal_code.d.ts +1 -1
  191. package/validators/utils/postal_code.js.map +1 -1
  192. package/validators/utils/uuid4.js.map +2 -2
  193. package/FieldArray/FieldArray.stories/index.js +0 -14
  194. package/FieldArray/FieldArray.stories/package.json +0 -6
  195. package/FieldArray/FieldArray.stories.js.map +0 -7
  196. package/FieldArray/__stories__/Default/index.js +0 -95
  197. package/FieldArray/__stories__/Default/package.json +0 -6
  198. package/FieldArray/__stories__/Default.js.map +0 -7
  199. package/FieldArray/__stories__/WithExactLength/index.js +0 -95
  200. package/FieldArray/__stories__/WithExactLength/package.json +0 -6
  201. package/FieldArray/__stories__/WithExactLength.js.map +0 -7
  202. package/Form.stories/index.js +0 -7
  203. package/Form.stories.js.map +0 -7
  204. package/FormBuilder/FormBuilder.stories/index.js +0 -12
  205. package/FormBuilder/FormBuilder.stories/package.json +0 -6
  206. package/FormBuilder/FormBuilder.stories.js.map +0 -7
  207. package/FormBuilder/__stories__/Default/index.js +0 -32
  208. package/FormBuilder/__stories__/Default/package.json +0 -6
  209. package/FormBuilder/__stories__/Default.js.map +0 -7
  210. package/MultiplicityField/MultiplicityField.stories/index.js +0 -22
  211. package/MultiplicityField/MultiplicityField.stories/package.json +0 -6
  212. package/MultiplicityField/MultiplicityField.stories.js.map +0 -7
  213. package/MultiplicityField/__stories__/Default/index.js +0 -100
  214. package/MultiplicityField/__stories__/Default/package.json +0 -6
  215. package/MultiplicityField/__stories__/Default.js.map +0 -7
  216. package/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -70
  217. package/MultiplicityField/__stories__/PreviewDisplay/package.json +0 -6
  218. package/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
  219. package/MultiplicityField/__stories__/WithExactLength/index.js +0 -97
  220. package/MultiplicityField/__stories__/WithExactLength/package.json +0 -6
  221. package/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
  222. package/MultiplicityField/__stories__/WithMaxLength/index.js +0 -100
  223. package/MultiplicityField/__stories__/WithMaxLength/package.json +0 -6
  224. package/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
  225. package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -101
  226. package/MultiplicityField/__stories__/WithMinAndMaxLength/package.json +0 -6
  227. package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
  228. package/MultiplicityField/__stories__/WithMinLength/index.js +0 -100
  229. package/MultiplicityField/__stories__/WithMinLength/package.json +0 -6
  230. package/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
  231. package/Questions/Questions.stories/index.js +0 -12
  232. package/Questions/Questions.stories/package.json +0 -6
  233. package/Questions/Questions.stories.js.map +0 -7
  234. package/Questions/__stories__/Default/index.js +0 -108
  235. package/Questions/__stories__/Default/package.json +0 -6
  236. package/Questions/__stories__/Default.js.map +0 -7
  237. package/cjs/FieldArray/FieldArray.stories/index.js +0 -48
  238. package/cjs/FieldArray/FieldArray.stories.js.map +0 -7
  239. package/cjs/FieldArray/__stories__/Default/index.js +0 -128
  240. package/cjs/FieldArray/__stories__/Default.js.map +0 -7
  241. package/cjs/FieldArray/__stories__/WithExactLength/index.js +0 -128
  242. package/cjs/FieldArray/__stories__/WithExactLength.js.map +0 -7
  243. package/cjs/Form.stories/index.js +0 -26
  244. package/cjs/Form.stories.js.map +0 -7
  245. package/cjs/FormBuilder/FormBuilder.stories/index.js +0 -45
  246. package/cjs/FormBuilder/FormBuilder.stories.js.map +0 -7
  247. package/cjs/FormBuilder/__stories__/Default/index.js +0 -65
  248. package/cjs/FormBuilder/__stories__/Default.js.map +0 -7
  249. package/cjs/MultiplicityField/MultiplicityField.stories/index.js +0 -60
  250. package/cjs/MultiplicityField/MultiplicityField.stories.js.map +0 -7
  251. package/cjs/MultiplicityField/__stories__/Default/index.js +0 -133
  252. package/cjs/MultiplicityField/__stories__/Default.js.map +0 -7
  253. package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -86
  254. package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
  255. package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +0 -130
  256. package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
  257. package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +0 -133
  258. package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
  259. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -134
  260. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
  261. package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +0 -133
  262. package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
  263. package/cjs/Questions/Questions.stories/index.js +0 -45
  264. package/cjs/Questions/Questions.stories.js.map +0 -7
  265. package/cjs/Questions/__stories__/Default/index.js +0 -136
  266. package/cjs/Questions/__stories__/Default.js.map +0 -7
  267. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -48
  268. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
  269. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -83
  270. package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
  271. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -83
  272. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
  273. package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +0 -51
  274. package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
  275. package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +0 -133
  276. package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
  277. package/cjs/inputs/Checkboxes/__stories__/Default/index.js +0 -77
  278. package/cjs/inputs/Checkboxes/__stories__/Default.js.map +0 -7
  279. package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -78
  280. package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
  281. package/cjs/inputs/DateInput/DateInput.stories/index.js +0 -45
  282. package/cjs/inputs/DateInput/DateInput.stories.js.map +0 -7
  283. package/cjs/inputs/DateInput/__stories__/Default/index.js +0 -61
  284. package/cjs/inputs/DateInput/__stories__/Default.js.map +0 -7
  285. package/cjs/inputs/FileInput/FileInput.stories/index.js +0 -45
  286. package/cjs/inputs/FileInput/FileInput.stories.js.map +0 -7
  287. package/cjs/inputs/FileInput/__stories__/Default/index.js +0 -61
  288. package/cjs/inputs/FileInput/__stories__/Default.js.map +0 -7
  289. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +0 -51
  290. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +0 -7
  291. package/cjs/inputs/ImageInput/__stories__/Default/index.js +0 -63
  292. package/cjs/inputs/ImageInput/__stories__/Default.js.map +0 -7
  293. package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +0 -69
  294. package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
  295. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -72
  296. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
  297. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -68
  298. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
  299. package/cjs/inputs/Input/Input.stories/index.js +0 -72
  300. package/cjs/inputs/Input/Input.stories.js.map +0 -7
  301. package/cjs/inputs/Input/__stories__/AFM/index.js +0 -63
  302. package/cjs/inputs/Input/__stories__/AFM.js.map +0 -7
  303. package/cjs/inputs/Input/__stories__/Boolean/index.js +0 -64
  304. package/cjs/inputs/Input/__stories__/Boolean.js.map +0 -7
  305. package/cjs/inputs/Input/__stories__/IBAN/index.js +0 -64
  306. package/cjs/inputs/Input/__stories__/IBAN.js.map +0 -7
  307. package/cjs/inputs/Input/__stories__/Integer/index.js +0 -78
  308. package/cjs/inputs/Input/__stories__/Integer.js.map +0 -7
  309. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +0 -68
  310. package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
  311. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +0 -68
  312. package/cjs/inputs/Input/__stories__/MobilePhone.js.map +0 -7
  313. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +0 -67
  314. package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
  315. package/cjs/inputs/Input/__stories__/PostalCode/index.js +0 -65
  316. package/cjs/inputs/Input/__stories__/PostalCode.js.map +0 -7
  317. package/cjs/inputs/Input/__stories__/String/index.js +0 -64
  318. package/cjs/inputs/Input/__stories__/String.js.map +0 -7
  319. package/cjs/inputs/Input/__stories__/TextWithLimit/index.js +0 -64
  320. package/cjs/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
  321. package/cjs/inputs/Label/Label.stories/index.js +0 -45
  322. package/cjs/inputs/Label/Label.stories.js.map +0 -7
  323. package/cjs/inputs/Label/__stories__/Default/index.js +0 -72
  324. package/cjs/inputs/Label/__stories__/Default.js.map +0 -7
  325. package/cjs/inputs/OtpInput/OtpInput.stories/index.js +0 -45
  326. package/cjs/inputs/OtpInput/OtpInput.stories.js.map +0 -7
  327. package/cjs/inputs/OtpInput/__stories__/Default/index.js +0 -64
  328. package/cjs/inputs/OtpInput/__stories__/Default.js.map +0 -7
  329. package/cjs/inputs/Radio/Radio.stories/index.js +0 -51
  330. package/cjs/inputs/Radio/Radio.stories.js.map +0 -7
  331. package/cjs/inputs/Radio/__stories__/Conditional/index.js +0 -133
  332. package/cjs/inputs/Radio/__stories__/Conditional.js.map +0 -7
  333. package/cjs/inputs/Radio/__stories__/Default/index.js +0 -81
  334. package/cjs/inputs/Radio/__stories__/Default.js.map +0 -7
  335. package/cjs/inputs/Radio/__stories__/WithDivider/index.js +0 -82
  336. package/cjs/inputs/Radio/__stories__/WithDivider.js.map +0 -7
  337. package/cjs/inputs/Select/Select.stories/index.js +0 -45
  338. package/cjs/inputs/Select/Select.stories.js.map +0 -7
  339. package/cjs/inputs/Select/__stories__/Default/index.js +0 -86
  340. package/cjs/inputs/Select/__stories__/Default.js.map +0 -7
  341. package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -14
  342. package/inputs/AutoCompleteInput/AutoComplete.stories/package.json +0 -6
  343. package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
  344. package/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -50
  345. package/inputs/AutoCompleteInput/__stories__/Default/package.json +0 -6
  346. package/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
  347. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -50
  348. package/inputs/AutoCompleteInput/__stories__/Multiple/package.json +0 -6
  349. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
  350. package/inputs/Checkboxes/Checkboxes.stories/index.js +0 -16
  351. package/inputs/Checkboxes/Checkboxes.stories/package.json +0 -6
  352. package/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
  353. package/inputs/Checkboxes/__stories__/Conditional/index.js +0 -100
  354. package/inputs/Checkboxes/__stories__/Conditional/package.json +0 -6
  355. package/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
  356. package/inputs/Checkboxes/__stories__/Default/index.js +0 -44
  357. package/inputs/Checkboxes/__stories__/Default/package.json +0 -6
  358. package/inputs/Checkboxes/__stories__/Default.js.map +0 -7
  359. package/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -45
  360. package/inputs/Checkboxes/__stories__/WithDivider/package.json +0 -6
  361. package/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
  362. package/inputs/DateInput/DateInput.stories/index.js +0 -12
  363. package/inputs/DateInput/DateInput.stories/package.json +0 -6
  364. package/inputs/DateInput/DateInput.stories.js.map +0 -7
  365. package/inputs/DateInput/__stories__/Default/index.js +0 -28
  366. package/inputs/DateInput/__stories__/Default/package.json +0 -6
  367. package/inputs/DateInput/__stories__/Default.js.map +0 -7
  368. package/inputs/FileInput/FileInput.stories/index.js +0 -12
  369. package/inputs/FileInput/FileInput.stories/package.json +0 -6
  370. package/inputs/FileInput/FileInput.stories.js.map +0 -7
  371. package/inputs/FileInput/__stories__/Default/index.js +0 -28
  372. package/inputs/FileInput/__stories__/Default/package.json +0 -6
  373. package/inputs/FileInput/__stories__/Default.js.map +0 -7
  374. package/inputs/ImageInput/ImageInput.stories/index.js +0 -16
  375. package/inputs/ImageInput/ImageInput.stories/package.json +0 -6
  376. package/inputs/ImageInput/ImageInput.stories.js.map +0 -7
  377. package/inputs/ImageInput/__stories__/Default/index.js +0 -30
  378. package/inputs/ImageInput/__stories__/Default/package.json +0 -6
  379. package/inputs/ImageInput/__stories__/Default.js.map +0 -7
  380. package/inputs/ImageInput/__stories__/MaxSize/index.js +0 -36
  381. package/inputs/ImageInput/__stories__/MaxSize/package.json +0 -6
  382. package/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
  383. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -39
  384. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/package.json +0 -6
  385. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
  386. package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -35
  387. package/inputs/ImageInput/__stories__/WithInvalidImageSize/package.json +0 -6
  388. package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
  389. package/inputs/Input/Input.stories/index.js +0 -30
  390. package/inputs/Input/Input.stories/package.json +0 -6
  391. package/inputs/Input/Input.stories.js.map +0 -7
  392. package/inputs/Input/__stories__/AFM/index.js +0 -30
  393. package/inputs/Input/__stories__/AFM/package.json +0 -6
  394. package/inputs/Input/__stories__/AFM.js.map +0 -7
  395. package/inputs/Input/__stories__/Boolean/index.js +0 -31
  396. package/inputs/Input/__stories__/Boolean/package.json +0 -6
  397. package/inputs/Input/__stories__/Boolean.js.map +0 -7
  398. package/inputs/Input/__stories__/IBAN/index.js +0 -31
  399. package/inputs/Input/__stories__/IBAN/package.json +0 -6
  400. package/inputs/Input/__stories__/IBAN.js.map +0 -7
  401. package/inputs/Input/__stories__/Integer/index.js +0 -45
  402. package/inputs/Input/__stories__/Integer/package.json +0 -6
  403. package/inputs/Input/__stories__/Integer.js.map +0 -7
  404. package/inputs/Input/__stories__/LandlineNumber/index.js +0 -35
  405. package/inputs/Input/__stories__/LandlineNumber/package.json +0 -6
  406. package/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
  407. package/inputs/Input/__stories__/MobilePhone/index.js +0 -35
  408. package/inputs/Input/__stories__/MobilePhone/package.json +0 -6
  409. package/inputs/Input/__stories__/MobilePhone.js.map +0 -7
  410. package/inputs/Input/__stories__/PhoneNumber/index.js +0 -34
  411. package/inputs/Input/__stories__/PhoneNumber/package.json +0 -6
  412. package/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
  413. package/inputs/Input/__stories__/PostalCode/index.js +0 -32
  414. package/inputs/Input/__stories__/PostalCode/package.json +0 -6
  415. package/inputs/Input/__stories__/PostalCode.js.map +0 -7
  416. package/inputs/Input/__stories__/String/index.js +0 -31
  417. package/inputs/Input/__stories__/String/package.json +0 -6
  418. package/inputs/Input/__stories__/String.js.map +0 -7
  419. package/inputs/Input/__stories__/TextWithLimit/index.js +0 -31
  420. package/inputs/Input/__stories__/TextWithLimit/package.json +0 -6
  421. package/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
  422. package/inputs/Label/Label.stories/index.js +0 -12
  423. package/inputs/Label/Label.stories/package.json +0 -6
  424. package/inputs/Label/Label.stories.js.map +0 -7
  425. package/inputs/Label/__stories__/Default/index.js +0 -39
  426. package/inputs/Label/__stories__/Default/package.json +0 -6
  427. package/inputs/Label/__stories__/Default.js.map +0 -7
  428. package/inputs/OtpInput/OtpInput.stories/index.js +0 -12
  429. package/inputs/OtpInput/OtpInput.stories/package.json +0 -6
  430. package/inputs/OtpInput/OtpInput.stories.js.map +0 -7
  431. package/inputs/OtpInput/__stories__/Default/index.js +0 -31
  432. package/inputs/OtpInput/__stories__/Default/package.json +0 -6
  433. package/inputs/OtpInput/__stories__/Default.js.map +0 -7
  434. package/inputs/Radio/Radio.stories/index.js +0 -16
  435. package/inputs/Radio/Radio.stories/package.json +0 -6
  436. package/inputs/Radio/Radio.stories.js.map +0 -7
  437. package/inputs/Radio/__stories__/Conditional/index.js +0 -100
  438. package/inputs/Radio/__stories__/Conditional/package.json +0 -6
  439. package/inputs/Radio/__stories__/Conditional.js.map +0 -7
  440. package/inputs/Radio/__stories__/Default/index.js +0 -48
  441. package/inputs/Radio/__stories__/Default/package.json +0 -6
  442. package/inputs/Radio/__stories__/Default.js.map +0 -7
  443. package/inputs/Radio/__stories__/WithDivider/index.js +0 -49
  444. package/inputs/Radio/__stories__/WithDivider/package.json +0 -6
  445. package/inputs/Radio/__stories__/WithDivider.js.map +0 -7
  446. package/inputs/Select/Select.stories/index.js +0 -12
  447. package/inputs/Select/Select.stories/package.json +0 -6
  448. package/inputs/Select/Select.stories.js.map +0 -7
  449. package/inputs/Select/__stories__/Default/index.js +0 -53
  450. package/inputs/Select/__stories__/Default/package.json +0 -6
  451. package/inputs/Select/__stories__/Default.js.map +0 -7
  452. package/lazy.d.ts +0 -80
  453. package/lazy.js.map +0 -7
  454. package/registry.d.ts +0 -71
  455. package/registry.js.map +0 -7
@@ -469,7 +469,11 @@ const expectErrorMessages = async (formBuilder, scenarioExpect, expect) => {
469
469
  );
470
470
  }
471
471
  }
472
- await expect(labelLocator).toHaveText(expectText);
472
+ if (expectObj.textAssertion === 'toContainText') {
473
+ await expect(labelLocator).toContainText(expectText);
474
+ } else {
475
+ await expect(labelLocator).toHaveText(expectText);
476
+ }
473
477
  }
474
478
  }
475
479
  };
@@ -589,7 +593,7 @@ const generateScenarios = (
589
593
  };
590
594
  scenarioFill.push(finalScenarioFill);
591
595
  for (const multiplicityField of fillTemplate?.value?.of?.extra
592
- ?.fields) {
596
+ ?.fields ?? []) {
593
597
  scenarioExpect.push({
594
598
  type: 'success',
595
599
  fieldKey: `${fillTemplate.fieldKey}\\.${i}\\.${multiplicityField.fieldKey}`,
@@ -1289,6 +1293,54 @@ const INPUTS_INPUT_FIELDS = [
1289
1293
  },
1290
1294
  ];
1291
1295
 
1296
+ const ERROR_GROUPING_FIELDS = [
1297
+ {
1298
+ key: 'address',
1299
+ type: 'string',
1300
+ required: true,
1301
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
1302
+ label: {
1303
+ primary: 'Οδός',
1304
+ },
1305
+ },
1306
+ {
1307
+ key: 'address_number',
1308
+ type: 'int',
1309
+ required: true,
1310
+ layout: { xl: 2, lg: 2, md: 2, xs: 6 },
1311
+ label: {
1312
+ primary: 'Αριθμός',
1313
+ },
1314
+ },
1315
+ {
1316
+ key: 'postal_code',
1317
+ type: 'postal_code',
1318
+ required: true,
1319
+ layout: { xl: 4, lg: 4, md: 4, xs: 6 },
1320
+ label: {
1321
+ primary: 'Ταχ. Κώδικας',
1322
+ },
1323
+ },
1324
+ {
1325
+ key: 'town',
1326
+ type: 'string',
1327
+ required: true,
1328
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
1329
+ label: {
1330
+ primary: 'Πόλη',
1331
+ },
1332
+ },
1333
+ {
1334
+ key: 'country',
1335
+ type: 'string',
1336
+ required: true,
1337
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
1338
+ label: {
1339
+ primary: 'Χώρα',
1340
+ },
1341
+ },
1342
+ ];
1343
+
1292
1344
  const inputsInputScenarios = [
1293
1345
  {
1294
1346
  title: 'success fill for inputs Input',
@@ -1410,7 +1462,7 @@ const inputsInputScenarios = [
1410
1462
  {
1411
1463
  title: 'empty fill for inputs Input',
1412
1464
  describe: 'inputs Input scenario',
1413
- fields: INPUTS_INPUT_FIELDS,
1465
+ fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
1414
1466
  fill: [],
1415
1467
  expect: [
1416
1468
  {
@@ -1468,12 +1520,42 @@ const inputsInputScenarios = [
1468
1520
  fieldKey: 'uuid4',
1469
1521
  text: el.form.error.required,
1470
1522
  },
1523
+ {
1524
+ type: 'error',
1525
+ fieldKey: 'address',
1526
+ text: el.form.error.required,
1527
+ textAssertion: 'toContainText',
1528
+ },
1529
+ {
1530
+ type: 'error',
1531
+ fieldKey: 'address_number',
1532
+ text: el.form.error.required,
1533
+ textAssertion: 'toContainText',
1534
+ },
1535
+ {
1536
+ type: 'error',
1537
+ fieldKey: 'postal_code',
1538
+ text: el.form.error.required,
1539
+ textAssertion: 'toContainText',
1540
+ },
1541
+ {
1542
+ type: 'error',
1543
+ fieldKey: 'town',
1544
+ text: el.form.error.required,
1545
+ textAssertion: 'toContainText',
1546
+ },
1547
+ {
1548
+ type: 'error',
1549
+ fieldKey: 'country',
1550
+ text: el.form.error.required,
1551
+ textAssertion: 'toContainText',
1552
+ },
1471
1553
  ],
1472
1554
  },
1473
1555
  {
1474
1556
  title: 'incorrect types for inputs Input',
1475
1557
  describe: 'inputs Input scenario',
1476
- fields: INPUTS_INPUT_FIELDS,
1558
+ fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
1477
1559
  fill: [
1478
1560
  {
1479
1561
  fieldKey: 'age',
@@ -1519,6 +1601,14 @@ const inputsInputScenarios = [
1519
1601
  fieldKey: 'uuid4',
1520
1602
  value: 'aaaaaa',
1521
1603
  },
1604
+ {
1605
+ fieldKey: 'address_number',
1606
+ value: 'aa',
1607
+ },
1608
+ {
1609
+ fieldKey: 'postal_code',
1610
+ value: 'aaaaa',
1611
+ },
1522
1612
  ],
1523
1613
  expect: [
1524
1614
  {
@@ -1576,6 +1666,18 @@ const inputsInputScenarios = [
1576
1666
  fieldKey: 'uuid4',
1577
1667
  text: el.form.error.uuid4,
1578
1668
  },
1669
+ {
1670
+ type: 'error',
1671
+ fieldKey: 'address_number',
1672
+ text: el.form.error.number,
1673
+ textAssertion: 'toContainText',
1674
+ },
1675
+ {
1676
+ type: 'error',
1677
+ fieldKey: 'postal_code',
1678
+ text: el.form.error.postalCode,
1679
+ textAssertion: 'toContainText',
1680
+ },
1579
1681
  ],
1580
1682
  },
1581
1683
  ];
@@ -1847,7 +1949,12 @@ for (const scenario of scenarios) {
1847
1949
  test(scenario.title, async ({ mount, page }) => {
1848
1950
  const formBuilder = await mount(
1849
1951
  // @ts-ignore
1850
- <FormBuilder auto={true} fields={scenario.fields} onSubmit={() => { }} />
1952
+ <FormBuilder
1953
+ auto={true}
1954
+ grid={true}
1955
+ fields={scenario.fields}
1956
+ onSubmit={() => {}}
1957
+ />
1851
1958
  );
1852
1959
  await fillFields(page, formBuilder, scenario);
1853
1960
  await submitForm(formBuilder);
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
- import { createContext } from 'react';
1
+ import React, { createContext } from 'react';
3
2
  import { FormContextProps } from '@digigov/form/types';
4
3
 
5
4
  export const FormContext: React.Context<FormContextProps> = createContext({
@@ -1,4 +1,3 @@
1
- /* eslint-disable react/prop-types */
2
1
  import React, { useEffect, useMemo } from 'react';
3
2
  import {
4
3
  ErrorOption,
@@ -106,8 +105,10 @@ export const AddObjects: React.FC<AddObjectsProps> = ({
106
105
  (f) => `${currentName}.${f.key}`
107
106
  );
108
107
  const result = await trigger(nestedFields);
109
- result && setValue('needs-more', '');
110
- result && onStash(getValues(currentName));
108
+ if (result) {
109
+ setValue('needs-more', '');
110
+ onStash(getValues(currentName));
111
+ }
111
112
  }}
112
113
  >
113
114
  {extra?.label.object.add}
@@ -57,6 +57,7 @@ export const Multiplicity: React.FC<MultiplicityProps> = ({
57
57
  ? error
58
58
  : undefined
59
59
  }
60
+ hasError={formState.isSubmitted && !formState.isSubmitting && !!error}
60
61
  wrapper="fieldset"
61
62
  name={name}
62
63
  >
@@ -1,6 +1,5 @@
1
1
  import { ErrorOption, UseFormReturn } from 'react-hook-form';
2
- import { FieldSpec } from '@digigov/form/Field/types';
3
- import { ControlledFieldProps } from '@digigov/form/Field/types';
2
+ import { FieldSpec, ControlledFieldProps } from '@digigov/form/Field/types';
4
3
 
5
4
  export interface MultiplicityProps
6
5
  extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'error' | 'extra'> {
@@ -31,7 +31,7 @@ export const Questions: React.FC<QuestionsInterface> = ({
31
31
  useEffect(() => {
32
32
  if (forceStepName !== currentStep.name) {
33
33
  const forceStep = steps.find(({ name }) => name === forceStepName);
34
- forceStep && setCurrentStep(forceStep);
34
+ if (forceStep) setCurrentStep(forceStep);
35
35
  }
36
36
  }, [forceStepName]);
37
37
  const localData =
@@ -42,16 +42,16 @@ export const Questions: React.FC<QuestionsInterface> = ({
42
42
  const submitStep = (stepName, stepData): void => {
43
43
  data[stepName] = stepData;
44
44
  if (localDraft) {
45
- isBrowser &&
45
+ if (isBrowser)
46
46
  window.localStorage.setItem(`questions-${name}`, JSON.stringify(data));
47
47
  }
48
48
  if (onChange) {
49
- onChange && onChange(data);
49
+ onChange(data);
50
50
  }
51
51
  setData(data);
52
52
  const nextStep = getNextStep(currentStep, steps, data);
53
53
  if (nextStep) {
54
- onActiveStep && onActiveStep(nextStep);
54
+ if (onActiveStep) onActiveStep(nextStep);
55
55
  setCurrentStep(nextStep);
56
56
  } else {
57
57
  onSubmit(data);
@@ -37,7 +37,7 @@ export const StepArrayReview: React.FC<StepArrayReviewInterface> = (props) => {
37
37
  </PageTitleContainer>
38
38
  <SummaryList>
39
39
  {props.array.map(
40
- (item: { [x: string]: React.ReactNode }, idx: number) => (
40
+ (item: Record<string, React.ReactNode>, idx: number) => (
41
41
  <SummaryListItem key={idx}>
42
42
  <SummaryListItemKey>
43
43
  {t(primaryField.label.primary)}
@@ -45,7 +45,7 @@ exports[`renders the Questions 1`] = `
45
45
  class="ds-form"
46
46
  >
47
47
  <div
48
- class="ds-field xs:ds-grid__col-span-12"
48
+ class="ds-field xs:ds-grid__col-span-12 sm:ds-grid__col-span-12 md:ds-grid__col-span-12 lg:ds-grid__col-span-12 xl:ds-grid__col-span-12"
49
49
  >
50
50
  <label
51
51
  class="ds-label"
@@ -64,6 +64,7 @@ exports[`renders the Questions 1`] = `
64
64
  aria-required="true"
65
65
  class="ds-input"
66
66
  data-type="string"
67
+ id="name"
67
68
  name="name"
68
69
  type="text"
69
70
  />
@@ -2,8 +2,12 @@ import * as React from 'react';
2
2
  import { render } from '@testing-library/react';
3
3
 
4
4
  import { Field } from '@digigov/form';
5
- import { Step, StepForm, StepQuote, StepTitle } from '@digigov/form/Questions';
6
- import Questions from '@digigov/form/Questions';
5
+ import Questions, {
6
+ Step,
7
+ StepForm,
8
+ StepQuote,
9
+ StepTitle,
10
+ } from '@digigov/form/Questions';
7
11
 
8
12
  const steps = [
9
13
  {
@@ -42,6 +46,14 @@ const steps = [
42
46
  },
43
47
  ];
44
48
 
49
+ beforeAll(() => {
50
+ global.ResizeObserver = class ResizeObserver {
51
+ observe() {}
52
+ unobserve() {}
53
+ disconnect() {}
54
+ };
55
+ });
56
+
45
57
  it('renders the Questions', () => {
46
58
  expect(
47
59
  render(
@@ -4,13 +4,7 @@ import FormBuilder from '@digigov/form/FormBuilder';
4
4
  import { FieldSpec } from '@digigov/form/types';
5
5
  import Button from '@digigov/ui/form/Button';
6
6
 
7
- const results = [
8
- 'Αμερική',
9
- 'Ασία',
10
- 'Αυστραλία',
11
- 'Αφρική',
12
- 'Ευρώπη',
13
- ];
7
+ const results = ['Αμερική', 'Ασία', 'Αυστραλία', 'Αφρική', 'Ευρώπη'];
14
8
 
15
9
  const fields: FieldSpec[] = [
16
10
  {
@@ -36,7 +30,6 @@ const fields: FieldSpec[] = [
36
30
  const initialValues = {};
37
31
 
38
32
  export const Default = () => (
39
-
40
33
  <FormBuilder
41
34
  fields={fields}
42
35
  onSubmit={(data) => {
@@ -49,6 +42,5 @@ export const Default = () => (
49
42
  ))}
50
43
  <Button type="submit">Submit</Button>
51
44
  </FormBuilder>
52
-
53
45
  );
54
- export default Default;
46
+ export default Default;
@@ -4,13 +4,7 @@ import FormBuilder from '@digigov/form/FormBuilder';
4
4
  import { FieldSpec } from '@digigov/form/types';
5
5
  import Button from '@digigov/ui/form/Button';
6
6
 
7
- const results = [
8
- 'Αμερική',
9
- 'Ασία',
10
- 'Αυστραλία',
11
- 'Αφρική',
12
- 'Ευρώπη',
13
- ];
7
+ const results = ['Αμερική', 'Ασία', 'Αυστραλία', 'Αφρική', 'Ευρώπη'];
14
8
 
15
9
  const fields: FieldSpec[] = [
16
10
  {
@@ -17,7 +17,7 @@ export interface AutoCompleteInputExtra
17
17
  | 'onConfirm'
18
18
  | 'dropdownArrow'
19
19
  > {
20
- options: Array<FieldOptionProps>;
20
+ options: FieldOptionProps[];
21
21
  }
22
22
 
23
23
  export interface AutoCompleteInputProps
@@ -33,7 +33,6 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
33
33
  extra: { options },
34
34
  onChange,
35
35
  value,
36
- error,
37
36
  ...props
38
37
  }) => {
39
38
  const suggest = useCallback(
@@ -65,9 +64,8 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
65
64
  onConfirm={(value) => {
66
65
  if (Array.isArray(value)) {
67
66
  const selectedValues = value.map((item) => item.value);
68
- selectedValues.length > 0
69
- ? onChange(selectedValues)
70
- : onChange(undefined);
67
+ if (selectedValues.length > 0) onChange(selectedValues);
68
+ else onChange(undefined);
71
69
  } else {
72
70
  onChange(value.value);
73
71
  }
@@ -14,7 +14,7 @@ export interface CheckboxesProps
14
14
  value?: string[];
15
15
  extra: {
16
16
  className?: string;
17
- options: Array<FieldOptionProps>;
17
+ options: FieldOptionProps[];
18
18
  };
19
19
  fieldComponent: React.FC<Omit<ControlledFieldProps, 'value' | 'onChange'>>;
20
20
  }
@@ -9,21 +9,16 @@ const fields = [
9
9
  required: true,
10
10
  label: {
11
11
  primary: 'Πότε εκδόθηκε το διαβατήριο σας;',
12
- secondary:
13
- 'Για παράδειγμα, 05 11 2020',
14
- }
15
- },
16
- ]
12
+ secondary: 'Για παράδειγμα, 05 11 2020',
13
+ },
14
+ } as const,
15
+ ];
17
16
 
18
17
  export const Default = () => (
19
18
  <FormBuilder onSubmit={() => console.log('kati')}>
20
- {fields.map((field) => {
21
- return (
22
- // @ts-ignore
23
- <Field {...field} name={field.key} />
24
- )
25
- }
26
- )}
19
+ {fields.map(({ key, ...field }) => {
20
+ return <Field {...field} name={key} key={key} />;
21
+ })}
27
22
  <Button type="submit">Συνέχεια</Button>
28
23
  </FormBuilder>
29
24
  );
@@ -36,12 +36,12 @@ function useDate(value, onChange) {
36
36
  }
37
37
 
38
38
  function setYear(evt) {
39
- const val = evt.target.value;
39
+ const val = evt.target.value.trim();
40
40
  set(val, month, day);
41
41
  }
42
42
 
43
43
  function setMonth(evt, cast) {
44
- let val = evt.target.value;
44
+ let val = evt.target.value.trim();
45
45
  if (cast && val && val.length === 1) {
46
46
  val = '0' + val;
47
47
  }
@@ -49,7 +49,7 @@ function useDate(value, onChange) {
49
49
  }
50
50
 
51
51
  function setDay(evt, cast) {
52
- let val = evt.target.value;
52
+ let val = evt.target.value.trim();
53
53
  if (cast && val && val.length === 1) {
54
54
  val = '0' + val;
55
55
  }
@@ -80,7 +80,7 @@ const DatePart = ({ label, ...props }) => {
80
80
  return <DateInputItem {...props}>{label}</DateInputItem>;
81
81
  };
82
82
 
83
- export const DateInput = ({ name, type, ...props }) => {
83
+ export const DateInput = ({ name, ...props }) => {
84
84
  const { t } = useTranslation();
85
85
  const [initial] = useState(props.value);
86
86
  const value = useMemo(() => {
@@ -18,11 +18,11 @@ export interface FileInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
18
18
 
19
19
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
20
  export const FileInput: React.FC<any> = React.forwardRef(function FileInput(
21
- { name, extra = {}, disabled, reset, onChange, ...props },
21
+ { name, disabled, reset, onChange, ...props },
22
22
  ref: any
23
23
  ) {
24
24
  const { t } = useTranslation();
25
- const [files, setFiles] = useState<Array<string> | undefined>([]);
25
+ const [files, setFiles] = useState<string[] | undefined>([]);
26
26
  const handleChange = (e) => {
27
27
  const target = e.target as HTMLInputElement;
28
28
  const selectedFiles = Array.from(
@@ -7,4 +7,3 @@ export default {
7
7
  export { Default } from '@digigov/form/inputs/ImageInput/__stories__/Default';
8
8
  export { WithInvalidImageDimension } from '@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageDimension';
9
9
  export { MaxSize } from '@digigov/form/inputs/ImageInput/__stories__/MaxSize';
10
-
@@ -15,7 +15,7 @@ const FIELDS: FieldSpec[] = [
15
15
  limit: {
16
16
  maxSize: 1000,
17
17
  },
18
- }
18
+ },
19
19
  },
20
20
  ];
21
21
 
@@ -28,7 +28,7 @@ export const MaxSize = () => (
28
28
  >
29
29
  <Fieldset>
30
30
  {FIELDS.map((field) => (
31
- <Field key={field.key} name={field.key} />
31
+ <Field key={field.key} name={field.key} />
32
32
  ))}
33
33
  </Fieldset>
34
34
  <Button type="submit">Συνέχεια</Button>
@@ -33,10 +33,7 @@ export interface ImageInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
33
33
  }
34
34
 
35
35
  export const ImageInput: React.FC<ImageInputProps> = React.forwardRef(
36
- function ImageInput(
37
- { name, extra = {}, disabled, onChange, reset, ...props },
38
- ref: any
39
- ) {
36
+ function ImageInput({ name, disabled, onChange, reset, ...props }, ref: any) {
40
37
  const { t } = useTranslation();
41
38
  const [selectedImage, setSelectedImage] = useState<File | null>(null);
42
39
  const [imageUrl, setImageUrl] = useState<string | null>(null);
@@ -5,6 +5,7 @@ export default {
5
5
  displayName: 'Input',
6
6
  };
7
7
  export { String } from '@digigov/form/inputs/Input/__stories__/String';
8
+ export { StringWithTrimValidation } from '@digigov/form/inputs/Input/__stories__/StringWithTrimValidation';
8
9
  export { Integer } from '@digigov/form/inputs/Input/__stories__/Integer';
9
10
  export { Boolean } from '@digigov/form/inputs/Input/__stories__/Boolean';
10
11
  export { PhoneNumber } from '@digigov/form/inputs/Input/__stories__/PhoneNumber';
@@ -12,7 +12,7 @@ export const LandlineNumber = () => (
12
12
  key="phone-number"
13
13
  name="phone-number"
14
14
  type="phone_number"
15
- autoComplete='tel'
15
+ autoComplete="tel"
16
16
  label={{
17
17
  primary: 'Σταθερό τηλέφωνο',
18
18
  }}
@@ -12,7 +12,7 @@ export const MobilePhone = () => (
12
12
  key="mobile-phone"
13
13
  name="mobile-phone"
14
14
  type="mobile_phone"
15
- autoComplete='tel'
15
+ autoComplete="tel"
16
16
  label={{
17
17
  primary: 'Κινητό τηλέφωνο',
18
18
  }}
@@ -12,7 +12,7 @@ export const PhoneNumber = () => (
12
12
  key="phone-number"
13
13
  name="phone-number"
14
14
  type="phone_number"
15
- autoComplete='tel'
15
+ autoComplete="tel"
16
16
  label={{
17
17
  primary: 'Tηλέφωνο',
18
18
  }}
@@ -12,7 +12,7 @@ export const PostalCode = () => (
12
12
  key="postal-code"
13
13
  name="postal-code"
14
14
  type="postal_code"
15
- autoComplete='postal-code'
15
+ autoComplete="postal-code"
16
16
  label={{
17
17
  primary: 'Ταχυδρομικός κωδικός',
18
18
  }}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import FormBuilder, { Field } from '@digigov/form';
3
+ import { Button } from '@digigov/ui/form/Button';
4
+
5
+ export const StringWithTrimValidation = () => (
6
+ <FormBuilder
7
+ onSubmit={(data) => {
8
+ console.log(data);
9
+ }}
10
+ >
11
+ <Field
12
+ key="business-title"
13
+ name="business-title"
14
+ type="string"
15
+ trim={true}
16
+ label={{
17
+ primary: 'Όνομα επιχείρησης',
18
+ secondary:
19
+ 'Εισάγετε μια σειρά από χαρακτήρες και αριθμούς (το πειδίο δεν δέχεται κενά στην αρχή της πρότασης)',
20
+ }}
21
+ required
22
+ />
23
+ <Button type="submit">Συνέχεια</Button>
24
+ </FormBuilder>
25
+ );
26
+ export default StringWithTrimValidation;
@@ -12,6 +12,7 @@ export const TextWithLimit = () => (
12
12
  key="text"
13
13
  name="text"
14
14
  type="text"
15
+ trim
15
16
  label={{
16
17
  primary: 'Μπορείτε να δώσετε περισσότερες πληροφορίες;',
17
18
  }}
@@ -10,6 +10,7 @@ import { MobilePhone } from '@digigov/form/inputs/Input/__stories__/MobilePhone'
10
10
  import { PhoneNumber } from '@digigov/form/inputs/Input/__stories__/PhoneNumber';
11
11
  import { PostalCode } from '@digigov/form/inputs/Input/__stories__/PostalCode';
12
12
  import { String } from '@digigov/form/inputs/Input/__stories__/String';
13
+ import { StringWithTrimValidation } from '@digigov/form/inputs/Input/__stories__/StringWithTrimValidation';
13
14
  import { TextWithLimit } from '@digigov/form/inputs/Input/__stories__/TextWithLimit';
14
15
 
15
16
  test('renders the All Input variants', async ({ mount, page }) => {
@@ -43,6 +44,9 @@ test('renders the All Input variants', async ({ mount, page }) => {
43
44
  <TestVariant title="String">
44
45
  <String />
45
46
  </TestVariant>
47
+ <TestVariant title="StringWithTrimValidation">
48
+ <StringWithTrimValidation />
49
+ </TestVariant>
46
50
  <TestVariant title="TextWithLimit">
47
51
  <TextWithLimit />
48
52
  </TestVariant>
@@ -28,7 +28,7 @@ export interface InputProps extends Omit<UncontrolledFieldProps, 'extra'> {
28
28
  }
29
29
 
30
30
  export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
31
- function WrappedInput({ name, control, type, extra, Field, ...props }, ref: never) {
31
+ function WrappedInput({ name, control, type, extra, ...props }, ref: never) {
32
32
  // eslint-disable-next-line prefer-const
33
33
  let { multiline = false, rows, limit } = extra || {};
34
34
  const { className } = extra || {};
@@ -92,6 +92,7 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
92
92
  return (
93
93
  <TextInput
94
94
  name={name}
95
+ id={name}
95
96
  type={fieldType}
96
97
  data-type={type}
97
98
  className={className}