@digigov/form 2.0.0-2a26e869 → 2.0.0-32ae417f

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 (372) hide show
  1. package/Field/FieldBase/index.js +7 -3
  2. package/Field/FieldBase.js.map +2 -2
  3. package/Field/FieldBaseContainer/index.js +37 -18
  4. package/Field/FieldBaseContainer.d.ts +1 -1
  5. package/Field/FieldBaseContainer.js.map +2 -2
  6. package/Field/FieldConditional/index.js +4 -0
  7. package/Field/FieldConditional.js.map +2 -2
  8. package/Field/index.js +15 -4
  9. package/Field/index.js.map +2 -2
  10. package/Field/types.d.ts +13 -3
  11. package/Field/utils/index.js +9 -1
  12. package/Field/utils/index.js.map +2 -2
  13. package/Field/utils/useField/index.js +14 -1
  14. package/Field/utils/useField.js.map +2 -2
  15. package/FieldArray/FieldArray.stories.d.ts +1 -0
  16. package/FieldArray/FormDialog/index.js +397 -0
  17. package/{inputs/Input/inputsInputScenarios → FieldArray/FormDialog}/package.json +1 -1
  18. package/FieldArray/FormDialog.d.ts +66 -0
  19. package/FieldArray/FormDialog.js.map +7 -0
  20. package/FieldArray/__stories__/Default.d.ts +1 -1
  21. package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
  22. package/FieldArray/__stories__/WithModal.d.ts +2 -0
  23. package/FieldArray/index.d.ts +6 -0
  24. package/FieldArray/index.js +82 -24
  25. package/FieldArray/index.js.map +2 -2
  26. package/FieldObject/index.d.ts +5 -0
  27. package/FieldObject/index.js +30 -15
  28. package/FieldObject/index.js.map +2 -2
  29. package/FormBuilder/FormBuilder.stories.d.ts +2 -0
  30. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +1 -1
  31. package/FormBuilder/__stories__/Default.d.ts +1 -1
  32. package/FormBuilder/__stories__/ErrorGrouping.d.ts +1 -1
  33. package/FormBuilder/index.d.ts +1 -1
  34. package/FormBuilder/index.js +11 -7
  35. package/FormBuilder/index.js.map +2 -2
  36. package/FormContext/index.js +6 -2
  37. package/FormContext.d.ts +1 -0
  38. package/FormContext.js.map +2 -2
  39. package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
  40. package/MultiplicityField/__stories__/Default.d.ts +1 -1
  41. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
  42. package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
  43. package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
  44. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
  45. package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
  46. package/MultiplicityField/add-objects/index.js +2 -0
  47. package/MultiplicityField/add-objects.js.map +2 -2
  48. package/MultiplicityField/index.js +4 -1
  49. package/MultiplicityField/index.js.map +2 -2
  50. package/MultiplicityField/types.d.ts +1 -0
  51. package/Questions/Questions.stories.d.ts +2 -0
  52. package/Questions/__stories__/Default.d.ts +1 -1
  53. package/cjs/Field/FieldBase/index.js +7 -3
  54. package/cjs/Field/FieldBase.js.map +2 -2
  55. package/cjs/Field/FieldBaseContainer/index.js +36 -17
  56. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  57. package/cjs/Field/FieldConditional/index.js +4 -0
  58. package/cjs/Field/FieldConditional.js.map +2 -2
  59. package/cjs/Field/index.js +15 -4
  60. package/cjs/Field/index.js.map +2 -2
  61. package/cjs/Field/types.js.map +1 -1
  62. package/cjs/Field/utils/index.js +9 -1
  63. package/cjs/Field/utils/index.js.map +3 -3
  64. package/cjs/Field/utils/useField/index.js +14 -1
  65. package/cjs/Field/utils/useField.js.map +2 -2
  66. package/cjs/FieldArray/FormDialog/index.js +416 -0
  67. package/cjs/FieldArray/FormDialog.js.map +7 -0
  68. package/cjs/FieldArray/index.js +81 -23
  69. package/cjs/FieldArray/index.js.map +2 -2
  70. package/cjs/FieldObject/index.js +30 -15
  71. package/cjs/FieldObject/index.js.map +2 -2
  72. package/cjs/FormBuilder/index.js +11 -7
  73. package/cjs/FormBuilder/index.js.map +2 -2
  74. package/cjs/FormContext/index.js +7 -2
  75. package/cjs/FormContext.js.map +2 -2
  76. package/cjs/MultiplicityField/add-objects/index.js +2 -0
  77. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  78. package/cjs/MultiplicityField/index.js +4 -1
  79. package/cjs/MultiplicityField/index.js.map +2 -2
  80. package/cjs/MultiplicityField/types.js.map +1 -1
  81. package/cjs/inputs/AutoCompleteInput/index.js +2 -1
  82. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  83. package/cjs/inputs/Checkboxes/index.js +3 -1
  84. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  85. package/cjs/inputs/DateInput/index.js +44 -14
  86. package/cjs/inputs/DateInput/index.js.map +2 -2
  87. package/cjs/inputs/DateTimeInput/index.js +245 -0
  88. package/cjs/inputs/DateTimeInput/index.js.map +7 -0
  89. package/cjs/inputs/FileInput/index.js +68 -30
  90. package/cjs/inputs/FileInput/index.js.map +2 -2
  91. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  92. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  93. package/cjs/inputs/ImageInput/index.js +48 -11
  94. package/cjs/inputs/ImageInput/index.js.map +2 -2
  95. package/cjs/inputs/Input/index.js +8 -1
  96. package/cjs/inputs/Input/index.js.map +2 -2
  97. package/cjs/inputs/OtpInput/index.js +1 -0
  98. package/cjs/inputs/OtpInput/index.js.map +2 -2
  99. package/cjs/inputs/Radio/index.js +1 -0
  100. package/cjs/inputs/Radio/index.js.map +2 -2
  101. package/cjs/inputs/Select/index.js +9 -2
  102. package/cjs/inputs/Select/index.js.map +2 -2
  103. package/cjs/inputs/inputsScenarios/index.js +2 -2
  104. package/cjs/inputs/inputsScenarios.js.map +2 -2
  105. package/cjs/{lazy/index.js → lazy.js} +10 -1
  106. package/cjs/lazy.js.map +2 -2
  107. package/cjs/{registry/index.js → registry.js} +12 -6
  108. package/cjs/registry.js.map +2 -2
  109. package/cjs/types.js.map +1 -1
  110. package/cjs/utils/index.js +20 -6
  111. package/cjs/utils.js.map +2 -2
  112. package/cjs/validators/index.js +21 -7
  113. package/cjs/validators/index.js.map +2 -2
  114. package/cjs/validators/utils/amka/index.js +60 -0
  115. package/cjs/validators/utils/amka.js.map +7 -0
  116. package/cjs/validators/utils/date/index.js +27 -4
  117. package/cjs/validators/utils/date.js.map +2 -2
  118. package/cjs/validators/utils/datetime/index.js +245 -0
  119. package/cjs/validators/utils/datetime.js.map +7 -0
  120. package/cjs/validators/utils/file/index.js +30 -17
  121. package/cjs/validators/utils/file.js.map +2 -2
  122. package/cjs/validators/utils/index.js +8 -2
  123. package/cjs/validators/utils/index.js.map +2 -2
  124. package/index.js +1 -1
  125. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
  126. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
  127. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
  128. package/inputs/AutoCompleteInput/index.js +2 -1
  129. package/inputs/AutoCompleteInput/index.js.map +2 -2
  130. package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
  131. package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
  132. package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
  133. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
  134. package/inputs/Checkboxes/index.js +3 -1
  135. package/inputs/Checkboxes/index.js.map +2 -2
  136. package/inputs/DateInput/DateInput.stories.d.ts +6 -0
  137. package/inputs/DateInput/__stories__/Default.d.ts +1 -1
  138. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  139. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  140. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  141. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  142. package/inputs/DateInput/index.js +45 -15
  143. package/inputs/DateInput/index.js.map +2 -2
  144. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +14 -0
  145. package/inputs/DateTimeInput/__stories__/Default.d.ts +3 -0
  146. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  147. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  148. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  149. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  150. package/inputs/DateTimeInput/index.d.ts +13 -0
  151. package/inputs/DateTimeInput/index.js +215 -0
  152. package/inputs/DateTimeInput/index.js.map +7 -0
  153. package/inputs/DateTimeInput/index.test.d.ts +1 -0
  154. package/inputs/DateTimeInput/package.json +6 -0
  155. package/inputs/FileInput/FileInput.stories.d.ts +3 -0
  156. package/inputs/FileInput/__stories__/Default.d.ts +1 -1
  157. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  158. package/inputs/FileInput/index.d.ts +17 -1
  159. package/inputs/FileInput/index.js +73 -32
  160. package/inputs/FileInput/index.js.map +2 -2
  161. package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
  162. package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
  163. package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
  164. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  165. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
  166. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  167. package/inputs/ImageInput/__stories__/logo.d/package.json +6 -0
  168. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  169. package/inputs/ImageInput/index.d.ts +9 -1
  170. package/inputs/ImageInput/index.js +49 -12
  171. package/inputs/ImageInput/index.js.map +2 -2
  172. package/inputs/Input/Input.stories.d.ts +4 -0
  173. package/inputs/Input/__stories__/AFM.d.ts +1 -1
  174. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  175. package/inputs/Input/__stories__/Boolean.d.ts +1 -1
  176. package/inputs/Input/__stories__/Email.d.ts +3 -0
  177. package/inputs/Input/__stories__/IBAN.d.ts +1 -1
  178. package/inputs/Input/__stories__/Integer.d.ts +1 -1
  179. package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
  180. package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
  181. package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
  182. package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
  183. package/inputs/Input/__stories__/String.d.ts +1 -1
  184. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +1 -1
  185. package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
  186. package/inputs/Input/index.d.ts +2 -1
  187. package/inputs/Input/index.js +8 -1
  188. package/inputs/Input/index.js.map +2 -2
  189. package/inputs/Label/Label.stories.d.ts +2 -0
  190. package/inputs/Label/__stories__/Default.d.ts +1 -1
  191. package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
  192. package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
  193. package/inputs/OtpInput/index.js +1 -0
  194. package/inputs/OtpInput/index.js.map +2 -2
  195. package/inputs/Radio/Radio.stories.d.ts +2 -0
  196. package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
  197. package/inputs/Radio/__stories__/Default.d.ts +1 -1
  198. package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
  199. package/inputs/Radio/index.js +1 -0
  200. package/inputs/Radio/index.js.map +2 -2
  201. package/inputs/Select/Select.stories.d.ts +2 -0
  202. package/inputs/Select/__stories__/Default.d.ts +1 -1
  203. package/inputs/Select/index.d.ts +2 -1
  204. package/inputs/Select/index.js +9 -2
  205. package/inputs/Select/index.js.map +2 -2
  206. package/inputs/inputsScenarios/index.js +2 -2
  207. package/inputs/inputsScenarios.d.ts +1 -1
  208. package/inputs/inputsScenarios.js.map +2 -2
  209. package/lazy/index.js +10 -1
  210. package/package.json +8 -8
  211. package/registry/index.js +12 -6
  212. package/src/Field/FieldBase.tsx +6 -2
  213. package/src/Field/FieldBaseContainer.tsx +68 -46
  214. package/src/Field/FieldConditional.tsx +4 -0
  215. package/src/Field/doc.mdx +202 -1
  216. package/src/Field/index.tsx +20 -5
  217. package/src/Field/types.tsx +15 -3
  218. package/src/Field/utils/index.ts +8 -0
  219. package/src/Field/utils/useField.ts +14 -2
  220. package/src/FieldArray/FieldArray.stories.js +1 -0
  221. package/src/FieldArray/FormDialog.tsx +565 -0
  222. package/src/FieldArray/__stories__/Default.tsx +2 -1
  223. package/src/FieldArray/__stories__/WithExactLength.tsx +2 -1
  224. package/src/FieldArray/__stories__/WithModal.tsx +160 -0
  225. package/src/FieldArray/index.test.tsx +8 -0
  226. package/src/FieldArray/index.tsx +112 -48
  227. package/src/FieldObject/index.tsx +39 -18
  228. package/src/FormBuilder/FormBuilder.stories.js +3 -0
  229. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +1 -1
  230. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  231. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +1 -1
  232. package/src/FormBuilder/doc.mdx +9 -4
  233. package/src/FormBuilder/index.test.tsx +20 -17
  234. package/src/FormBuilder/index.tsx +12 -7
  235. package/src/FormBuilder/interaction.test.tsx +8 -0
  236. package/src/FormBuilder/scenarios.test.tsx +771 -6
  237. package/src/FormContext.tsx +5 -1
  238. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  239. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  240. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
  241. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  242. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  243. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  244. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  245. package/src/MultiplicityField/add-objects.tsx +2 -0
  246. package/src/MultiplicityField/doc.mdx +101 -83
  247. package/src/MultiplicityField/index.test.tsx +4 -0
  248. package/src/MultiplicityField/index.tsx +3 -0
  249. package/src/MultiplicityField/types.ts +1 -0
  250. package/src/Questions/Questions.stories.js +3 -0
  251. package/src/Questions/__snapshots__/index.spec.tsx.snap +2 -1
  252. package/src/Questions/__stories__/Default.tsx +1 -1
  253. package/src/Questions/doc.mdx +21 -41
  254. package/src/Questions/index.test.tsx +4 -0
  255. package/src/doc.mdx +26 -11
  256. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  257. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
  258. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
  259. package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
  260. package/src/inputs/AutoCompleteInput/index.tsx +1 -0
  261. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  262. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  263. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  264. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  265. package/src/inputs/Checkboxes/index.test.tsx +4 -0
  266. package/src/inputs/Checkboxes/index.tsx +3 -5
  267. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  268. package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
  269. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  270. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  271. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  272. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  273. package/src/inputs/DateInput/index.test.tsx +20 -0
  274. package/src/inputs/DateInput/index.tsx +49 -14
  275. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +14 -0
  276. package/src/inputs/DateTimeInput/__stories__/Default.tsx +25 -0
  277. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  278. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  279. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  280. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  281. package/src/inputs/DateTimeInput/doc.mdx +16 -0
  282. package/src/inputs/DateTimeInput/index.test.tsx +40 -0
  283. package/src/inputs/DateTimeInput/index.tsx +233 -0
  284. package/src/inputs/FileInput/FileInput.stories.js +4 -0
  285. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  286. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  287. package/src/inputs/FileInput/index.test.tsx +8 -0
  288. package/src/inputs/FileInput/index.tsx +104 -38
  289. package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
  290. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  291. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
  292. package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → WithInitialValues.tsx} +12 -3
  293. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
  294. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  295. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  296. package/src/inputs/ImageInput/index.test.tsx +8 -4
  297. package/src/inputs/ImageInput/index.tsx +100 -42
  298. package/src/inputs/Input/Input.stories.js +5 -0
  299. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  300. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  301. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  302. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  303. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  304. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  305. package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
  306. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
  307. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
  308. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
  309. package/src/inputs/Input/__stories__/String.tsx +1 -1
  310. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +1 -1
  311. package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -1
  312. package/src/inputs/Input/index.test.tsx +12 -0
  313. package/src/inputs/Input/index.tsx +11 -2
  314. package/src/inputs/Label/Label.stories.js +3 -0
  315. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  316. package/src/inputs/Label/index.test.tsx +4 -0
  317. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  318. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  319. package/src/inputs/OtpInput/index.test.tsx +4 -0
  320. package/src/inputs/OtpInput/index.tsx +1 -0
  321. package/src/inputs/Radio/Radio.stories.js +3 -0
  322. package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
  323. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  324. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  325. package/src/inputs/Radio/index.test.tsx +4 -0
  326. package/src/inputs/Radio/index.tsx +1 -0
  327. package/src/inputs/Select/Select.stories.js +3 -0
  328. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  329. package/src/inputs/Select/index.test.tsx +4 -0
  330. package/src/inputs/Select/index.tsx +13 -4
  331. package/src/inputs/inputsScenarios.ts +2 -2
  332. package/src/lazy.js +10 -1
  333. package/src/registry.js +12 -6
  334. package/src/types.tsx +2 -1
  335. package/src/utils.ts +27 -6
  336. package/src/validators/index.ts +30 -7
  337. package/src/validators/utils/amka.ts +39 -0
  338. package/src/validators/utils/date.ts +29 -5
  339. package/src/validators/utils/datetime.ts +228 -0
  340. package/src/validators/utils/file.ts +33 -19
  341. package/src/validators/utils/index.ts +5 -1
  342. package/types.d.ts +2 -1
  343. package/types.js.map +1 -1
  344. package/utils/index.js +20 -6
  345. package/utils.d.ts +2 -0
  346. package/utils.js.map +2 -2
  347. package/validators/index.d.ts +1 -1
  348. package/validators/index.js +26 -8
  349. package/validators/index.js.map +2 -2
  350. package/validators/utils/amka/index.js +36 -0
  351. package/validators/utils/amka/package.json +6 -0
  352. package/validators/utils/amka.d.ts +6 -0
  353. package/validators/utils/amka.js.map +7 -0
  354. package/validators/utils/date/index.js +27 -4
  355. package/validators/utils/date.d.ts +1 -1
  356. package/validators/utils/date.js.map +2 -2
  357. package/validators/utils/datetime/index.js +210 -0
  358. package/validators/utils/datetime/package.json +6 -0
  359. package/validators/utils/datetime.d.ts +9 -0
  360. package/validators/utils/datetime.js.map +7 -0
  361. package/validators/utils/file/index.js +30 -17
  362. package/validators/utils/file.js.map +2 -2
  363. package/validators/utils/index.d.ts +2 -0
  364. package/validators/utils/index.js +5 -1
  365. package/validators/utils/index.js.map +2 -2
  366. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  367. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  368. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
  369. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  370. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  371. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  372. package/src/inputs/Input/inputsInputScenarios.ts +0 -404
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import FormBuilder, { Field } from '@digigov/form';
3
3
  import { Button } from '@digigov/ui/form/Button';
4
4
 
5
- export const String = () => (
5
+ export const String = (_: any) => (
6
6
  <FormBuilder
7
7
  onSubmit={(data) => {
8
8
  console.log(data);
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import FormBuilder, { Field } from '@digigov/form';
3
3
  import { Button } from '@digigov/ui/form/Button';
4
4
 
5
- export const StringWithTrimValidation = () => (
5
+ export const StringWithTrimValidation = (_: any) => (
6
6
  <FormBuilder
7
7
  onSubmit={(data) => {
8
8
  console.log(data);
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import FormBuilder, { Field } from '@digigov/form';
3
3
  import { Button } from '@digigov/ui/form';
4
4
 
5
- export const TextWithLimit = () => (
5
+ export const TextWithLimit = (_: any) => (
6
6
  <FormBuilder
7
7
  onSubmit={(data) => {
8
8
  console.log(data);
@@ -2,7 +2,9 @@ import React from 'react';
2
2
  import { test, expect } from '@playwright/experimental-ct-react';
3
3
  import TestVariant from '@digigov/ui/utils/TestVariant'
4
4
  import { AFM } from '@digigov/form/inputs/Input/__stories__/AFM';
5
+ import { AMKA } from '@digigov/form/inputs/Input/__stories__/AMKA';
5
6
  import { Boolean } from '@digigov/form/inputs/Input/__stories__/Boolean';
7
+ import { Email } from '@digigov/form/inputs/Input/__stories__/Email';
6
8
  import { IBAN } from '@digigov/form/inputs/Input/__stories__/IBAN';
7
9
  import { Integer } from '@digigov/form/inputs/Input/__stories__/Integer';
8
10
  import { LandlineNumber } from '@digigov/form/inputs/Input/__stories__/LandlineNumber';
@@ -20,9 +22,15 @@ test('renders the All Input variants', async ({ mount, page }) => {
20
22
  <TestVariant title="AFM">
21
23
  <AFM />
22
24
  </TestVariant>
25
+ <TestVariant title="AMKA">
26
+ <AMKA />
27
+ </TestVariant>
23
28
  <TestVariant title="Boolean">
24
29
  <Boolean />
25
30
  </TestVariant>
31
+ <TestVariant title="Email">
32
+ <Email />
33
+ </TestVariant>
26
34
  <TestVariant title="IBAN">
27
35
  <IBAN />
28
36
  </TestVariant>
@@ -54,6 +62,10 @@ test('renders the All Input variants', async ({ mount, page }) => {
54
62
  )
55
63
  await page.evaluate(() => document.fonts.ready);
56
64
 
65
+ // Move the mouse to the top-left corner to avoid random hover issues
66
+ await page.mouse.move(0, 0);
67
+
68
+
57
69
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
58
70
  expect(screenshot).toMatchSnapshot();
59
71
  });
@@ -8,12 +8,14 @@ import { Hint } from '@digigov/ui/typography/Hint';
8
8
 
9
9
  const TYPES_MAP = {
10
10
  string: 'text',
11
+ password: 'password',
11
12
  int: 'text',
12
13
  text: 'text',
13
14
  date: 'date',
14
15
  };
15
16
 
16
- export interface InputProps extends Omit<UncontrolledFieldProps, 'extra'> {
17
+ export interface InputProps
18
+ extends Omit<UncontrolledFieldProps, 'extra' | 'Field'> {
17
19
  extra?: {
18
20
  fullWidth?: boolean;
19
21
  multiline?: boolean;
@@ -25,10 +27,12 @@ export interface InputProps extends Omit<UncontrolledFieldProps, 'extra'> {
25
27
  max?: number;
26
28
  };
27
29
  };
30
+ Field?: UncontrolledFieldProps['Field'];
28
31
  }
29
32
 
30
33
  export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
31
34
  function WrappedInput({ name, control, type, extra, ...props }, ref: never) {
35
+ delete props['Field'];
32
36
  // eslint-disable-next-line prefer-const
33
37
  let { multiline = false, rows, limit } = extra || {};
34
38
  const { className } = extra || {};
@@ -69,6 +73,7 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
69
73
  className={className}
70
74
  rows={rows}
71
75
  ref={ref}
76
+ id={name}
72
77
  {...{
73
78
  ...props,
74
79
  reset: undefined,
@@ -97,7 +102,11 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
97
102
  data-type={type}
98
103
  className={className}
99
104
  ref={ref}
100
- {...{ ...props, reset: undefined, required: undefined }}
105
+ {...{
106
+ ...props,
107
+ reset: undefined,
108
+ required: undefined,
109
+ }}
101
110
  />
102
111
  );
103
112
  }
@@ -1,7 +1,10 @@
1
1
  import Label from '@digigov/form/inputs/Label';
2
+ import doc from './doc.mdx?raw';
2
3
  export default {
3
4
  title: 'Digigov Form/inputs/Label',
4
5
  component: Label,
6
+ tags: ['autodocs'],
7
+ markdown: doc,
5
8
  displayName: 'Label',
6
9
  };
7
10
  export { Default } from '@digigov/form/inputs/Label/__stories__/Default';
@@ -4,7 +4,7 @@ import Field from '@digigov/form/Field';
4
4
  import Label from '@digigov/form/inputs/Label';
5
5
  import { Button } from '@digigov/ui/form/Button';
6
6
 
7
- export const Default = () => (
7
+ export const Default = (_: any) => (
8
8
  <FormBuilder
9
9
  onSubmit={(data) => {
10
10
  console.log(data);
@@ -14,6 +14,10 @@ test('renders the All Label variants', async ({ mount, page }) => {
14
14
  )
15
15
  await page.evaluate(() => document.fonts.ready);
16
16
 
17
+ // Move the mouse to the top-left corner to avoid random hover issues
18
+ await page.mouse.move(0, 0);
19
+
20
+
17
21
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
18
22
  expect(screenshot).toMatchSnapshot();
19
23
  });
@@ -1,7 +1,10 @@
1
1
  import OtpInput from '@digigov/form/inputs/OtpInput';
2
+ import doc from './doc.mdx?raw';
2
3
  export default {
3
4
  title: 'Digigov Form/inputs/OtpInput',
4
5
  component: OtpInput,
6
+ tags: ['autodocs'],
7
+ markdown: doc,
5
8
  displayName: 'OtpInput',
6
9
  };
7
10
  export { Default } from '@digigov/form/inputs/OtpInput/__stories__/Default';
@@ -14,7 +14,7 @@ const FIELDS: FieldSpec[] = [
14
14
  },
15
15
  ];
16
16
 
17
- export const Default = () => (
17
+ export const Default = (_: any) => (
18
18
  <FormBuilder
19
19
  fields={FIELDS}
20
20
  onSubmit={(data) => {
@@ -14,6 +14,10 @@ test('renders the All OtpInput variants', async ({ mount, page }) => {
14
14
  )
15
15
  await page.evaluate(() => document.fonts.ready);
16
16
 
17
+ // Move the mouse to the top-left corner to avoid random hover issues
18
+ await page.mouse.move(0, 0);
19
+
20
+
17
21
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
18
22
  expect(screenshot).toMatchSnapshot();
19
23
  });
@@ -131,6 +131,7 @@ export const OtpInput = ({ name, maxLength = 6, ...props }) => {
131
131
  {otp.otpValues.map((digit, idx) => (
132
132
  <SingleCharacterInputPart
133
133
  name={`${name}-${idx}`}
134
+ id={`${name}-${idx}`}
134
135
  type="text"
135
136
  key={idx}
136
137
  autoComplete="one-time-code"
@@ -1,7 +1,10 @@
1
1
  import Radio from '@digigov/form/inputs/Radio';
2
+ import doc from './doc.mdx?raw';
2
3
  export default {
3
4
  title: 'Digigov Form/inputs/Radio',
4
5
  component: Radio,
6
+ tags: ['autodocs'],
7
+ markdown: doc,
5
8
  displayName: 'Radio',
6
9
  };
7
10
  export { Default } from '@digigov/form/inputs/Radio/__stories__/Default';
@@ -85,7 +85,7 @@ const fields: FieldSpec[] = [
85
85
  },
86
86
  ];
87
87
 
88
- export const Conditional = () => (
88
+ export const Conditional = (_: any) => (
89
89
  <FormBuilder
90
90
  onSubmit={(data) => {
91
91
  console.log(data);
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import FormBuilder, { Field } from '@digigov/form';
3
3
  import { Button } from '@digigov/ui/form/Button';
4
4
 
5
- export const Default = () => (
5
+ export const Default = (_: any) => (
6
6
  <FormBuilder
7
7
  onSubmit={(data) => {
8
8
  console.log(data);
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import FormBuilder, { Field } from '@digigov/form';
3
3
  import { Button } from '@digigov/ui/form/Button';
4
4
 
5
- export const WithDivider = () => (
5
+ export const WithDivider = (_: any) => (
6
6
  <FormBuilder
7
7
  onSubmit={(data) => {
8
8
  console.log(data);
@@ -22,6 +22,10 @@ test('renders the All Radio variants', async ({ mount, page }) => {
22
22
  )
23
23
  await page.evaluate(() => document.fonts.ready);
24
24
 
25
+ // Move the mouse to the top-left corner to avoid random hover issues
26
+ await page.mouse.move(0, 0);
27
+
28
+
25
29
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
26
30
  expect(screenshot).toMatchSnapshot();
27
31
  });
@@ -118,6 +118,7 @@ export const ControlledRadioButtonsGroup: React.FC<
118
118
  reset: undefined,
119
119
  required: undefined,
120
120
  error: undefined,
121
+ Field: undefined,
121
122
  'aria-describedby': undefined,
122
123
  type: 'radio',
123
124
  }}
@@ -1,7 +1,10 @@
1
1
  import Select from '@digigov/form/inputs/Select';
2
+ import doc from './doc.mdx?raw';
2
3
  export default {
3
4
  title: 'Digigov Form/inputs/Select',
4
5
  component: Select,
6
+ tags: ['autodocs'],
7
+ markdown: doc,
5
8
  displayName: 'Select',
6
9
  };
7
10
  export { Default } from '@digigov/form/inputs/Select/__stories__/Default';
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import FormBuilder, { Field } from '@digigov/form';
3
3
  import { Button } from '@digigov/ui/form/Button';
4
4
 
5
- export const Default = () => (
5
+ export const Default = (_: any) => (
6
6
  <FormBuilder
7
7
  onSubmit={(data) => {
8
8
  console.log(data);
@@ -14,6 +14,10 @@ test('renders the All Select variants', async ({ mount, page }) => {
14
14
  )
15
15
  await page.evaluate(() => document.fonts.ready);
16
16
 
17
+ // Move the mouse to the top-left corner to avoid random hover issues
18
+ await page.mouse.move(0, 0);
19
+
20
+
17
21
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
18
22
  expect(screenshot).toMatchSnapshot();
19
23
  });
@@ -6,11 +6,13 @@ import {
6
6
  SelectOption,
7
7
  } from '@digigov/ui/form/SelectContainer';
8
8
 
9
- export interface SelectProps extends Omit<UncontrolledFieldProps, 'extra'> {
9
+ export interface SelectProps
10
+ extends Omit<UncontrolledFieldProps, 'extra' | 'Field'> {
10
11
  extra: {
11
12
  className?: string;
12
13
  options: FieldOptionProps[];
13
14
  };
15
+ Field?: UncontrolledFieldProps['Field'];
14
16
  }
15
17
 
16
18
  export const Select: React.ExoticComponent<SelectProps> = React.forwardRef(
@@ -18,16 +20,23 @@ export const Select: React.ExoticComponent<SelectProps> = React.forwardRef(
18
20
  { name, extra: { options, className }, disabled, ...props },
19
21
  ref: never
20
22
  ) {
23
+ delete props.Field;
21
24
  return (
22
25
  <SelectContainer
23
26
  className={className}
24
27
  ref={ref}
25
28
  name={name}
29
+ id={name}
26
30
  disabled={disabled}
27
- {...{ ...props, reset: undefined, required: undefined }}
31
+ {...{
32
+ ...props,
33
+ reset: undefined,
34
+ error: undefined,
35
+ required: undefined,
36
+ }}
28
37
  >
29
- {options.map(({ value, label }) => (
30
- <SelectOption key={value} value={value}>
38
+ {options.map(({ value, label }, index) => (
39
+ <SelectOption key={index} value={value}>
31
40
  {label && label.primary ? label.primary : value}
32
41
  </SelectOption>
33
42
  ))}
@@ -432,7 +432,7 @@ export const scenarios = [
432
432
  type: 'error',
433
433
  fieldKey: 'image',
434
434
  args: {
435
- maxSizeToMb: 0.0003,
435
+ maxSize: 0.0003,
436
436
  },
437
437
  text: el.form.error.file_size,
438
438
  },
@@ -440,7 +440,7 @@ export const scenarios = [
440
440
  type: 'error',
441
441
  fieldKey: 'file',
442
442
  args: {
443
- maxSizeToMb: 0.0003,
443
+ maxSize: 0.0003,
444
444
  },
445
445
  text: el.form.error.file_size,
446
446
  },
package/src/lazy.js CHANGED
@@ -9,8 +9,12 @@ export default {
9
9
  'FieldBase': lazy(() => import('@digigov/form/Field/FieldBase').then((module) => ({ default: module['FieldBase'] }))),
10
10
  'FieldBaseContainer': lazy(() => import('@digigov/form/Field/FieldBaseContainer').then((module) => ({ default: module['FieldBaseContainer'] }))),
11
11
  'FieldConditional': lazy(() => import('@digigov/form/Field/FieldConditional').then((module) => ({ default: module['FieldConditional'] }))),
12
- 'FieldObject': lazy(() => import('@digigov/form/FieldObject').then((module) => ({ default: module['FieldObject'] }))),
12
+ 'FormDialog': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['FormDialog'] }))),
13
+ 'ArrayItemModal': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemModal'] }))),
14
+ 'ArrayItemHeader': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemHeader'] }))),
15
+ 'ArrayItemDisplay': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemDisplay'] }))),
13
16
  'FieldArray': lazy(() => import('@digigov/form/FieldArray').then((module) => ({ default: module['FieldArray'] }))),
17
+ 'FieldObject': lazy(() => import('@digigov/form/FieldObject').then((module) => ({ default: module['FieldObject'] }))),
14
18
  'FieldsetWithContext': lazy(() => import('@digigov/form/Fieldset/FieldsetWithContext').then((module) => ({ default: module['FieldsetWithContext'] }))),
15
19
  'FieldsetLabel': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetLabel'] }))),
16
20
  'FieldsetCaption': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetCaption'] }))),
@@ -46,15 +50,20 @@ export default {
46
50
  'ALTERNATIVE_COMPONENTS': lazy(() => import('@digigov/form/Field/utils').then((module) => ({ default: module['ALTERNATIVE_COMPONENTS'] }))),
47
51
  'CONTROLLED_FIELD_COMPONENTS': lazy(() => import('@digigov/form/Field/utils').then((module) => ({ default: module['CONTROLLED_FIELD_COMPONENTS'] }))),
48
52
  'AutoCompleteInput': lazy(() => import('@digigov/form/inputs/AutoCompleteInput').then((module) => ({ default: module['AutoCompleteInput'] }))),
53
+ 'DateTimeInput': lazy(() => import('@digigov/form/inputs/DateTimeInput').then((module) => ({ default: module['DateTimeInput'] }))),
49
54
  'Image': lazy(() => import('@digigov/form/inputs/ImageInput').then((module) => ({ default: module['Image'] }))),
50
55
  'RE_DIGIT': lazy(() => import('@digigov/form/inputs/OtpInput').then((module) => ({ default: module['RE_DIGIT'] }))),
51
56
  'REMOVE_SPACES': lazy(() => import('@digigov/form/inputs/OtpInput').then((module) => ({ default: module['REMOVE_SPACES'] }))),
52
57
  'RadioButtonsGroup': lazy(() => import('@digigov/form/inputs/Radio').then((module) => ({ default: module['RadioButtonsGroup'] }))),
53
58
  'ControlledRadioButtonsGroup': lazy(() => import('@digigov/form/inputs/Radio').then((module) => ({ default: module['ControlledRadioButtonsGroup'] }))),
54
59
  'AFM_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['AFM_VALIDATOR'] }))),
60
+ 'AMKA_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['AMKA_VALIDATOR'] }))),
55
61
  'LATER_THAN_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['LATER_THAN_VALIDATOR'] }))),
56
62
  'EARLIER_THAN_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['EARLIER_THAN_VALIDATOR'] }))),
57
63
  'DATE_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['DATE_VALIDATOR'] }))),
64
+ 'LATER_THAN_DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['LATER_THAN_DATETIME_VALIDATOR'] }))),
65
+ 'EARLIER_THAN_DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['EARLIER_THAN_DATETIME_VALIDATOR'] }))),
66
+ 'DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['DATETIME_VALIDATOR'] }))),
58
67
  'FILE_MAX_SIZE_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['FILE_MAX_SIZE_VALIDATOR'] }))),
59
68
  'IBAN_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['IBAN_VALIDATOR'] }))),
60
69
  'IMAGE_DIMENSION_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['IMAGE_DIMENSION_VALIDATOR'] }))),
package/src/registry.js CHANGED
@@ -10,8 +10,9 @@ import * as _digigov_form_Field_FieldBaseContainer from "@digigov/form/Field/Fie
10
10
  import * as _digigov_form_Field_FieldConditional from "@digigov/form/Field/FieldConditional";
11
11
  import * as _digigov_form_Field from "@digigov/form/Field";
12
12
  import * as _digigov_form_Field_types from "@digigov/form/Field/types";
13
- import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
13
+ import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
14
14
  import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
15
+ import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
15
16
  import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
16
17
  import * as _digigov_form_Fieldset from "@digigov/form/Fieldset";
17
18
  import * as _digigov_form_Fieldset_types from "@digigov/form/Fieldset/types";
@@ -46,17 +47,19 @@ import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
46
47
  import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
47
48
  import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
48
49
  import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
49
- import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
50
50
  import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
51
51
  import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
52
+ import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
53
+ import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
52
54
  import * as _digigov_form_inputs_Input from "@digigov/form/inputs/Input";
53
- import * as _digigov_form_inputs_Input_inputsInputScenarios from "@digigov/form/inputs/Input/inputsInputScenarios";
54
55
  import * as _digigov_form_inputs_Label from "@digigov/form/inputs/Label";
55
56
  import * as _digigov_form_inputs_OtpInput from "@digigov/form/inputs/OtpInput";
56
57
  import * as _digigov_form_inputs_Radio from "@digigov/form/inputs/Radio";
57
58
  import * as _digigov_form_inputs_Select from "@digigov/form/inputs/Select";
58
59
  import * as _digigov_form_validators_utils_afm from "@digigov/form/validators/utils/afm";
60
+ import * as _digigov_form_validators_utils_amka from "@digigov/form/validators/utils/amka";
59
61
  import * as _digigov_form_validators_utils_date from "@digigov/form/validators/utils/date";
62
+ import * as _digigov_form_validators_utils_datetime from "@digigov/form/validators/utils/datetime";
60
63
  import * as _digigov_form_validators_utils_file from "@digigov/form/validators/utils/file";
61
64
  import * as _digigov_form_validators_utils_iban from "@digigov/form/validators/utils/iban";
62
65
  import * as _digigov_form_validators_utils_image from "@digigov/form/validators/utils/image";
@@ -98,8 +101,9 @@ export default {
98
101
  '@digigov/form/Field/FieldConditional': lazyImport(_digigov_form_Field_FieldConditional),
99
102
  '@digigov/form/Field': lazyImport(_digigov_form_Field),
100
103
  '@digigov/form/Field/types': lazyImport(_digigov_form_Field_types),
101
- '@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
104
+ '@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
102
105
  '@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
106
+ '@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
103
107
  '@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
104
108
  '@digigov/form/Fieldset': lazyImport(_digigov_form_Fieldset),
105
109
  '@digigov/form/Fieldset/types': lazyImport(_digigov_form_Fieldset_types),
@@ -134,17 +138,19 @@ export default {
134
138
  '@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
135
139
  '@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
136
140
  '@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
137
- '@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
138
141
  '@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
139
142
  '@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
143
+ '@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
144
+ '@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
140
145
  '@digigov/form/inputs/Input': lazyImport(_digigov_form_inputs_Input),
141
- '@digigov/form/inputs/Input/inputsInputScenarios': lazyImport(_digigov_form_inputs_Input_inputsInputScenarios),
142
146
  '@digigov/form/inputs/Label': lazyImport(_digigov_form_inputs_Label),
143
147
  '@digigov/form/inputs/OtpInput': lazyImport(_digigov_form_inputs_OtpInput),
144
148
  '@digigov/form/inputs/Radio': lazyImport(_digigov_form_inputs_Radio),
145
149
  '@digigov/form/inputs/Select': lazyImport(_digigov_form_inputs_Select),
146
150
  '@digigov/form/validators/utils/afm': lazyImport(_digigov_form_validators_utils_afm),
151
+ '@digigov/form/validators/utils/amka': lazyImport(_digigov_form_validators_utils_amka),
147
152
  '@digigov/form/validators/utils/date': lazyImport(_digigov_form_validators_utils_date),
153
+ '@digigov/form/validators/utils/datetime': lazyImport(_digigov_form_validators_utils_datetime),
148
154
  '@digigov/form/validators/utils/file': lazyImport(_digigov_form_validators_utils_file),
149
155
  '@digigov/form/validators/utils/iban': lazyImport(_digigov_form_validators_utils_iban),
150
156
  '@digigov/form/validators/utils/image': lazyImport(_digigov_form_validators_utils_image),
package/src/types.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import { UseFormReturn, UseFormProps } from 'react-hook-form';
1
+ import { UseFormReturn, UseFormProps, ErrorOption } from 'react-hook-form';
2
2
  import {
3
3
  FieldComponentRegistry,
4
4
  FieldLabelProps,
@@ -54,6 +54,7 @@ export interface FormBuilderProps {
54
54
  componentRegistry?: FieldComponentRegistry;
55
55
  grid?: boolean;
56
56
  controlledFieldsOnly?: boolean;
57
+ errors?: ErrorOption;
57
58
  }
58
59
 
59
60
  export interface FormBaseProps
package/src/utils.ts CHANGED
@@ -13,6 +13,7 @@ const parseErrorSchema = (
13
13
  return (error.inner || []).reduce<Record<string, FieldError>>(
14
14
  (previous, error) => {
15
15
  error.path = error.path?.replace(/\[([0-9]+)\]/g, '.$1');
16
+ // error.path = error.path?.replace(/\["(.*?)"\]/g, '$1');
16
17
  if (!previous[error.path!]) {
17
18
  previous[error.path!] = { message: error.message, type: error.type! };
18
19
  }
@@ -37,6 +38,26 @@ const parseErrorSchema = (
37
38
  {}
38
39
  );
39
40
  };
41
+ function isPlainObject(obj) {
42
+ return (
43
+ typeof obj === 'object' &&
44
+ obj !== null &&
45
+ Object.prototype.toString.call(obj) === '[object Object]'
46
+ );
47
+ }
48
+ function flattenObject(obj, prefix = '') {
49
+ return Object.keys(obj).reduce((acc, key) => {
50
+ const prefixedKey = prefix ? `${prefix}.${key}` : key;
51
+
52
+ if (isPlainObject(obj[key])) {
53
+ Object.assign(acc, flattenObject(obj[key], prefixedKey));
54
+ } else {
55
+ acc[prefixedKey] = obj[key];
56
+ }
57
+
58
+ return acc;
59
+ }, {});
60
+ }
40
61
 
41
62
  export const yupResolver =
42
63
  (schema: any, schemaOptions: any = {}, resolverOptions: any = {}) =>
@@ -51,7 +72,7 @@ export const yupResolver =
51
72
  const result = await schema[
52
73
  resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'
53
74
  ](
54
- values,
75
+ flattenObject(values),
55
76
  Object.assign({ abortEarly: false }, schemaOptions, { context })
56
77
  );
57
78
 
@@ -67,13 +88,13 @@ export const yupResolver =
67
88
  throw e;
68
89
  }
69
90
 
70
- const parsed = parseErrorSchema(
71
- e,
72
- !options.shouldUseNativeValidation && options.criteriaMode === 'all'
73
- );
74
91
  return {
75
92
  values: {},
76
- errors: parsed,
93
+ errors: parseErrorSchema(
94
+ e,
95
+ !options.shouldUseNativeValidation && options.criteriaMode === 'all'
96
+ ),
97
+ options,
77
98
  };
78
99
  }
79
100
  };
@@ -11,6 +11,7 @@ import { ValidatorSchema } from '@digigov/form/validators/types';
11
11
  import {
12
12
  getYupObjectShape,
13
13
  AFM_VALIDATOR,
14
+ AMKA_VALIDATOR,
14
15
  FILE_MAX_SIZE_VALIDATOR,
15
16
  IBAN_VALIDATOR,
16
17
  OTP_VALIDATOR,
@@ -23,17 +24,22 @@ import {
23
24
  DATE_VALIDATOR,
24
25
  LATER_THAN_VALIDATOR,
25
26
  EARLIER_THAN_VALIDATOR,
27
+ DATETIME_VALIDATOR,
28
+ LATER_THAN_DATETIME_VALIDATOR,
29
+ EARLIER_THAN_DATETIME_VALIDATOR,
26
30
  } from '@digigov/form/validators/utils';
27
31
  import { INT_VALIDATOR } from '@digigov/form/validators/utils/int';
28
32
  import { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';
29
33
 
30
- export const getYUPTypeMap = (): Record<string, any> => {
34
+ export const getYUPTypeMap = (
35
+ validatorRegistry?: Record<string, any>
36
+ ): Record<string, any> => {
31
37
  const yupTypeMap = {
32
38
  file: (field): MixedSchema => {
33
39
  return yup
34
40
  .mixed()
35
41
  .transform((value) => {
36
- if (!value.length) {
42
+ if (!value || value.length === 0) {
37
43
  return null;
38
44
  }
39
45
  return value;
@@ -43,7 +49,7 @@ export const getYUPTypeMap = (): Record<string, any> => {
43
49
  },
44
50
  string: (field): yup.StringSchema => {
45
51
  if (field.trim) {
46
- return yup.string().trim().required(field.required);
52
+ return yup.string().trim();
47
53
  } else {
48
54
  return yup.string();
49
55
  }
@@ -78,10 +84,13 @@ export const getYUPTypeMap = (): Record<string, any> => {
78
84
  if (typeof field.extra.of === 'object') {
79
85
  // else if the field is an object then it is a scalar type
80
86
  // eg. number, string etc.
87
+ if (field.required) {
88
+ field.extra.min = 1;
89
+ }
81
90
  let arrayValidator = yup
82
91
  .array()
83
- .of(yupTypeMap[field.extra.of.type](field.extra.of))
84
- .required(field.required);
92
+ .nullable()
93
+ .of(yupTypeMap[field.extra.of.type](field.extra.of));
85
94
  if (field.extra.length)
86
95
  arrayValidator = arrayValidator.length(field.extra.length, {
87
96
  key: 'form.error.array.length',
@@ -130,6 +139,10 @@ export const getYUPTypeMap = (): Record<string, any> => {
130
139
  field.trim
131
140
  ? yup.string().trim().test(AFM_VALIDATOR)
132
141
  : yup.string().test(AFM_VALIDATOR),
142
+ amka: (field): yup.StringSchema =>
143
+ field.trim
144
+ ? yup.string().trim().test(AMKA_VALIDATOR)
145
+ : yup.string().test(AMKA_VALIDATOR),
133
146
  uuid4: (field): yup.StringSchema =>
134
147
  field.trim
135
148
  ? yup.string().trim().test(UUID4_VALIDATOR)
@@ -203,6 +216,16 @@ export const getYUPTypeMap = (): Record<string, any> => {
203
216
  }
204
217
  return schema;
205
218
  },
219
+ datetime: (field): yup.StringSchema => {
220
+ if (field?.extra?.min) {
221
+ return yup.string().test(LATER_THAN_DATETIME_VALIDATOR(field));
222
+ }
223
+ if (field?.extra?.max) {
224
+ return yup.string().test(EARLIER_THAN_DATETIME_VALIDATOR(field));
225
+ }
226
+ return yup.string().test(DATETIME_VALIDATOR);
227
+ },
228
+ ...validatorRegistry,
206
229
  };
207
230
  return yupTypeMap;
208
231
  };
@@ -214,7 +237,7 @@ export function useValidationSchema(
214
237
  validatorRegistry?: Record<string, ValidatorSchema[]>
215
238
  ): Lazy<any, unknown> | AnyObjectSchema | void {
216
239
  return useMemo(() => {
217
- const yupTypeMap = getYUPTypeMap();
240
+ const yupTypeMap = getYUPTypeMap(validatorRegistry);
218
241
  return getYupObjectShape(fields, yupTypeMap, validatorRegistry);
219
- }, []);
242
+ }, [fields, validatorRegistry]);
220
243
  }