@digigov/form 2.0.0-7d9a8d86 → 2.0.0-834daea4

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 (733) hide show
  1. package/Field/FieldBase/index.js +73 -51
  2. package/Field/FieldBase.js.map +2 -2
  3. package/Field/FieldBaseContainer/index.js +6 -20
  4. package/Field/FieldBaseContainer.js.map +2 -2
  5. package/Field/FieldConditional/index.js +61 -42
  6. package/Field/FieldConditional.js.map +2 -2
  7. package/Field/index.js +70 -36
  8. package/Field/index.js.map +2 -2
  9. package/Field/types.d.ts +40 -3
  10. package/Field/utils/calculateField/index.js +27 -0
  11. package/{inputs/Input/__stories__/Default → Field/utils/calculateField}/package.json +1 -1
  12. package/Field/utils/calculateField.d.ts +2 -0
  13. package/Field/utils/calculateField.js.map +7 -0
  14. package/Field/utils/evaluateFieldWithConditions/index.js +26 -0
  15. package/Field/utils/evaluateFieldWithConditions/package.json +6 -0
  16. package/Field/utils/evaluateFieldWithConditions.d.ts +2 -0
  17. package/Field/utils/evaluateFieldWithConditions.js.map +7 -0
  18. package/Field/utils/index.d.ts +4 -0
  19. package/Field/utils/index.js +20 -94
  20. package/Field/utils/index.js.map +7 -0
  21. package/Field/utils/useField/index.js +51 -0
  22. package/{FormBuilder/FormBuilder → Field/utils/useField}/package.json +1 -1
  23. package/Field/utils/useField.d.ts +2 -0
  24. package/Field/utils/useField.js.map +7 -0
  25. package/FieldArray/FieldArray.stories/index.js +4 -2
  26. package/FieldArray/FieldArray.stories.d.ts +2 -2
  27. package/FieldArray/FieldArray.stories.js.map +2 -2
  28. package/FieldArray/__stories__/Default/index.js +15 -17
  29. package/FieldArray/__stories__/Default.d.ts +2 -2
  30. package/FieldArray/__stories__/Default.js.map +1 -1
  31. package/FieldArray/__stories__/WithExactLength/index.js +15 -17
  32. package/FieldArray/__stories__/WithExactLength.d.ts +2 -2
  33. package/FieldArray/__stories__/WithExactLength.js.map +1 -1
  34. package/FieldArray/index.d.ts +1 -0
  35. package/FieldArray/index.js +55 -35
  36. package/FieldArray/index.js.map +2 -2
  37. package/FieldArray/index.test.d.ts +1 -0
  38. package/FieldObject/index.d.ts +3 -0
  39. package/FieldObject/index.js +46 -30
  40. package/FieldObject/index.js.map +2 -2
  41. package/Fieldset/FieldsetWithContext/index.js +12 -13
  42. package/Fieldset/FieldsetWithContext.js.map +1 -1
  43. package/Fieldset/index.d.ts +1 -1
  44. package/Fieldset/index.js +9 -18
  45. package/Fieldset/index.js.map +2 -2
  46. package/Fieldset/types.d.ts +3 -2
  47. package/Form.stories.js.map +1 -1
  48. package/FormBuilder/FormBuilder.stories/index.js +2 -1
  49. package/FormBuilder/FormBuilder.stories.d.ts +1 -1
  50. package/FormBuilder/FormBuilder.stories.js.map +2 -2
  51. package/FormBuilder/__stories__/Default/index.js +21 -15
  52. package/FormBuilder/__stories__/Default.d.ts +2 -2
  53. package/FormBuilder/__stories__/Default.js.map +1 -1
  54. package/FormBuilder/index.d.ts +8 -1
  55. package/FormBuilder/index.js +154 -2
  56. package/FormBuilder/index.js.map +3 -3
  57. package/FormBuilder/index.test.d.ts +1 -0
  58. package/FormBuilder/scenarios.test.d.ts +88 -0
  59. package/FormContext/index.js +1 -1
  60. package/FormContext.js.map +1 -1
  61. package/MultiplicityField/MultiplicityField.stories/index.js +12 -6
  62. package/MultiplicityField/MultiplicityField.stories.d.ts +6 -6
  63. package/MultiplicityField/MultiplicityField.stories.js.map +2 -2
  64. package/MultiplicityField/__stories__/Default/index.js +15 -19
  65. package/MultiplicityField/__stories__/Default.d.ts +2 -2
  66. package/MultiplicityField/__stories__/Default.js.map +1 -1
  67. package/MultiplicityField/__stories__/PreviewDisplay/index.js +6 -27
  68. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +2 -2
  69. package/MultiplicityField/__stories__/PreviewDisplay.js.map +2 -2
  70. package/MultiplicityField/__stories__/WithExactLength/index.js +15 -19
  71. package/MultiplicityField/__stories__/WithExactLength.d.ts +2 -2
  72. package/MultiplicityField/__stories__/WithExactLength.js.map +2 -2
  73. package/MultiplicityField/__stories__/WithMaxLength/index.js +15 -19
  74. package/MultiplicityField/__stories__/WithMaxLength.d.ts +2 -2
  75. package/MultiplicityField/__stories__/WithMaxLength.js.map +2 -2
  76. package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +15 -19
  77. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +2 -2
  78. package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +2 -2
  79. package/MultiplicityField/__stories__/WithMinLength/index.js +15 -19
  80. package/MultiplicityField/__stories__/WithMinLength.d.ts +2 -2
  81. package/MultiplicityField/__stories__/WithMinLength.js.map +2 -2
  82. package/MultiplicityField/add-objects/index.js +78 -44
  83. package/MultiplicityField/add-objects.d.ts +2 -1
  84. package/MultiplicityField/add-objects.js.map +2 -2
  85. package/MultiplicityField/index.d.ts +2 -19
  86. package/MultiplicityField/index.js +74 -63
  87. package/MultiplicityField/index.js.map +2 -2
  88. package/MultiplicityField/index.test.d.ts +1 -0
  89. package/MultiplicityField/types/index.js +1 -0
  90. package/{validators/validators.spec → MultiplicityField/types}/package.json +1 -1
  91. package/MultiplicityField/types.d.ts +19 -0
  92. package/MultiplicityField/types.js.map +7 -0
  93. package/Questions/Questions/index.js +21 -15
  94. package/Questions/Questions.js.map +2 -2
  95. package/Questions/Questions.stories/index.js +2 -1
  96. package/Questions/Questions.stories.d.ts +1 -1
  97. package/Questions/Questions.stories.js.map +2 -2
  98. package/Questions/QuestionsContext/index.js +2 -2
  99. package/Questions/QuestionsContext.d.ts +0 -1
  100. package/Questions/QuestionsContext.js.map +1 -1
  101. package/Questions/Step/ReviewStep/index.js +20 -26
  102. package/Questions/Step/ReviewStep.js.map +1 -1
  103. package/Questions/Step/Step/index.js +24 -18
  104. package/Questions/Step/Step.js.map +2 -2
  105. package/Questions/Step/StepArrayReview/index.js +20 -25
  106. package/Questions/Step/StepArrayReview.js.map +1 -1
  107. package/Questions/Step/StepContext/index.js +3 -3
  108. package/Questions/Step/StepContext.d.ts +0 -1
  109. package/Questions/Step/StepContext.js.map +1 -1
  110. package/Questions/Step/StepDescription/index.js +7 -12
  111. package/Questions/Step/StepDescription.js.map +1 -1
  112. package/Questions/Step/StepForm/index.js +16 -19
  113. package/Questions/Step/StepForm.js.map +1 -1
  114. package/Questions/Step/StepQuote/index.js +2 -4
  115. package/Questions/Step/StepQuote.js.map +1 -1
  116. package/Questions/Step/StepTitle/index.js +21 -18
  117. package/Questions/Step/StepTitle.d.ts +2 -1
  118. package/Questions/Step/StepTitle.js.map +2 -2
  119. package/Questions/Step/getAddMoreFields.js.map +1 -1
  120. package/Questions/Step/index.d.ts +0 -1
  121. package/Questions/Step/index.js +0 -1
  122. package/Questions/Step/index.js.map +2 -2
  123. package/Questions/Step/types.d.ts +1 -0
  124. package/Questions/__stories__/Default/index.js +31 -38
  125. package/Questions/__stories__/Default.d.ts +2 -2
  126. package/Questions/__stories__/Default.js.map +1 -1
  127. package/Questions/getNextStep/index.js +3 -1
  128. package/Questions/getNextStep.js.map +1 -1
  129. package/Questions/index.js +1 -1
  130. package/Questions/index.js.map +1 -1
  131. package/Questions/index.test.d.ts +1 -0
  132. package/Questions/types.d.ts +1 -0
  133. package/cjs/Field/FieldBase/index.js +96 -68
  134. package/cjs/Field/FieldBase.js.map +3 -3
  135. package/cjs/Field/FieldBaseContainer/index.js +33 -41
  136. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  137. package/cjs/Field/FieldConditional/index.js +83 -58
  138. package/cjs/Field/FieldConditional.js.map +3 -3
  139. package/cjs/Field/index.js +92 -55
  140. package/cjs/Field/index.js.map +3 -3
  141. package/cjs/Field/types/index.js +14 -2
  142. package/cjs/Field/types.js.map +2 -2
  143. package/cjs/Field/utils/calculateField/index.js +50 -0
  144. package/cjs/Field/utils/calculateField.js.map +7 -0
  145. package/cjs/Field/utils/evaluateFieldWithConditions/index.js +49 -0
  146. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +7 -0
  147. package/cjs/Field/utils/index.js +51 -119
  148. package/cjs/Field/utils/index.js.map +7 -0
  149. package/cjs/Field/utils/useField/index.js +74 -0
  150. package/cjs/Field/utils/useField.js.map +7 -0
  151. package/cjs/FieldArray/FieldArray.stories/index.js +30 -19
  152. package/cjs/FieldArray/FieldArray.stories.js.map +3 -3
  153. package/cjs/FieldArray/__stories__/Default/index.js +37 -33
  154. package/cjs/FieldArray/__stories__/Default.js.map +2 -2
  155. package/cjs/FieldArray/__stories__/WithExactLength/index.js +37 -33
  156. package/cjs/FieldArray/__stories__/WithExactLength.js.map +2 -2
  157. package/cjs/FieldArray/index.js +77 -51
  158. package/cjs/FieldArray/index.js.map +3 -3
  159. package/cjs/FieldObject/index.js +64 -45
  160. package/cjs/FieldObject/index.js.map +3 -3
  161. package/cjs/Fieldset/FieldsetWithContext/index.js +35 -30
  162. package/cjs/Fieldset/FieldsetWithContext.js.map +2 -2
  163. package/cjs/Fieldset/index.js +33 -36
  164. package/cjs/Fieldset/index.js.map +3 -3
  165. package/cjs/Fieldset/types/index.js +14 -2
  166. package/cjs/Fieldset/types.js.map +2 -2
  167. package/cjs/Form.stories/index.js +16 -6
  168. package/cjs/Form.stories.js.map +1 -1
  169. package/cjs/FormBuilder/FormBuilder.stories/index.js +27 -18
  170. package/cjs/FormBuilder/FormBuilder.stories.js.map +3 -3
  171. package/cjs/FormBuilder/__stories__/Default/index.js +43 -31
  172. package/cjs/FormBuilder/__stories__/Default.js.map +2 -2
  173. package/cjs/FormBuilder/index.js +181 -18
  174. package/cjs/FormBuilder/index.js.map +3 -3
  175. package/cjs/FormContext/index.js +14 -18
  176. package/cjs/FormContext.js.map +2 -2
  177. package/cjs/MultiplicityField/MultiplicityField.stories/index.js +42 -23
  178. package/cjs/MultiplicityField/MultiplicityField.stories.js.map +3 -3
  179. package/cjs/MultiplicityField/__stories__/Default/index.js +37 -35
  180. package/cjs/MultiplicityField/__stories__/Default.js.map +2 -2
  181. package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +32 -47
  182. package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +3 -3
  183. package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +37 -35
  184. package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +3 -3
  185. package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +37 -35
  186. package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +3 -3
  187. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +37 -35
  188. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +3 -3
  189. package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +37 -35
  190. package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +3 -3
  191. package/cjs/MultiplicityField/add-objects/index.js +97 -60
  192. package/cjs/MultiplicityField/add-objects.js.map +3 -3
  193. package/cjs/MultiplicityField/index.js +90 -78
  194. package/cjs/MultiplicityField/index.js.map +3 -3
  195. package/cjs/MultiplicityField/types/index.js +16 -0
  196. package/cjs/MultiplicityField/types.js.map +7 -0
  197. package/cjs/Questions/Questions/index.js +42 -30
  198. package/cjs/Questions/Questions.js.map +2 -2
  199. package/cjs/Questions/Questions.stories/index.js +27 -18
  200. package/cjs/Questions/Questions.stories.js.map +3 -3
  201. package/cjs/Questions/QuestionsContext/index.js +15 -19
  202. package/cjs/Questions/QuestionsContext.js.map +1 -1
  203. package/cjs/Questions/Step/ReviewStep/index.js +43 -43
  204. package/cjs/Questions/Step/ReviewStep.js.map +2 -2
  205. package/cjs/Questions/Step/Step/index.js +45 -33
  206. package/cjs/Questions/Step/Step.js.map +2 -2
  207. package/cjs/Questions/Step/StepArrayReview/index.js +46 -45
  208. package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
  209. package/cjs/Questions/Step/StepContext/index.js +16 -20
  210. package/cjs/Questions/Step/StepContext.js.map +1 -1
  211. package/cjs/Questions/Step/StepDescription/index.js +29 -28
  212. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  213. package/cjs/Questions/Step/StepForm/index.js +41 -38
  214. package/cjs/Questions/Step/StepForm.js.map +2 -2
  215. package/cjs/Questions/Step/StepQuote/index.js +25 -21
  216. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  217. package/cjs/Questions/Step/StepTitle/index.js +42 -34
  218. package/cjs/Questions/Step/StepTitle.js.map +3 -3
  219. package/cjs/Questions/Step/getAddMoreFields/index.js +16 -4
  220. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  221. package/cjs/Questions/Step/index.js +45 -28
  222. package/cjs/Questions/Step/index.js.map +3 -3
  223. package/cjs/Questions/Step/types/index.js +14 -2
  224. package/cjs/Questions/Step/types.js.map +2 -2
  225. package/cjs/Questions/__stories__/Default/index.js +59 -60
  226. package/cjs/Questions/__stories__/Default.js.map +2 -2
  227. package/cjs/Questions/getNextStep/index.js +19 -5
  228. package/cjs/Questions/getNextStep.js.map +1 -1
  229. package/cjs/Questions/index.js +19 -20
  230. package/cjs/Questions/index.js.map +1 -1
  231. package/cjs/Questions/types/index.js +14 -2
  232. package/cjs/Questions/types.js.map +2 -2
  233. package/cjs/index.js +35 -18
  234. package/cjs/index.js.map +3 -3
  235. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +30 -19
  236. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +3 -3
  237. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +46 -36
  238. package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +3 -3
  239. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +50 -39
  240. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +3 -3
  241. package/cjs/inputs/AutoCompleteInput/index.js +69 -42
  242. package/cjs/inputs/AutoCompleteInput/index.js.map +3 -3
  243. package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +33 -20
  244. package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +3 -3
  245. package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +35 -29
  246. package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +2 -2
  247. package/cjs/inputs/Checkboxes/__stories__/Default/index.js +58 -46
  248. package/cjs/inputs/Checkboxes/__stories__/Default.js.map +2 -2
  249. package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +59 -47
  250. package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +2 -2
  251. package/cjs/inputs/Checkboxes/index.js +68 -62
  252. package/cjs/inputs/Checkboxes/index.js.map +3 -3
  253. package/cjs/inputs/DateInput/DateInput.stories/index.js +27 -18
  254. package/cjs/inputs/DateInput/DateInput.stories.js.map +3 -3
  255. package/cjs/inputs/DateInput/__stories__/Default/index.js +41 -32
  256. package/cjs/inputs/DateInput/__stories__/Default.js.map +3 -3
  257. package/cjs/inputs/DateInput/index.js +72 -60
  258. package/cjs/inputs/DateInput/index.js.map +3 -3
  259. package/cjs/inputs/FileInput/FileInput.stories/index.js +27 -18
  260. package/cjs/inputs/FileInput/FileInput.stories.js.map +3 -3
  261. package/cjs/inputs/FileInput/__stories__/Default/index.js +43 -29
  262. package/cjs/inputs/FileInput/__stories__/Default.js.map +2 -2
  263. package/cjs/inputs/FileInput/index.js +55 -42
  264. package/cjs/inputs/FileInput/index.js.map +3 -3
  265. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +33 -20
  266. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +3 -3
  267. package/cjs/inputs/ImageInput/__stories__/Default/index.js +35 -29
  268. package/cjs/inputs/ImageInput/__stories__/Default.js.map +2 -2
  269. package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +69 -0
  270. package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
  271. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +37 -30
  272. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +3 -3
  273. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +35 -29
  274. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +2 -2
  275. package/cjs/inputs/ImageInput/index.js +72 -66
  276. package/cjs/inputs/ImageInput/index.js.map +3 -3
  277. package/cjs/inputs/Input/Input.stories/index.js +54 -27
  278. package/cjs/inputs/Input/Input.stories.js.map +3 -3
  279. package/cjs/inputs/Input/__stories__/AFM/index.js +44 -32
  280. package/cjs/inputs/Input/__stories__/AFM.js.map +2 -2
  281. package/cjs/inputs/Input/__stories__/Boolean/index.js +45 -33
  282. package/cjs/inputs/Input/__stories__/Boolean.js.map +2 -2
  283. package/cjs/inputs/Input/__stories__/IBAN/index.js +45 -33
  284. package/cjs/inputs/Input/__stories__/IBAN.js.map +2 -2
  285. package/cjs/inputs/Input/__stories__/Integer/index.js +57 -41
  286. package/cjs/inputs/Input/__stories__/Integer.js.map +2 -2
  287. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +48 -36
  288. package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +2 -2
  289. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +48 -36
  290. package/cjs/inputs/Input/__stories__/MobilePhone.js.map +2 -2
  291. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +47 -35
  292. package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +2 -2
  293. package/cjs/inputs/Input/__stories__/PostalCode/index.js +45 -33
  294. package/cjs/inputs/Input/__stories__/PostalCode.js.map +2 -2
  295. package/cjs/inputs/Input/__stories__/String/index.js +64 -0
  296. package/cjs/inputs/Input/__stories__/String.js.map +7 -0
  297. package/cjs/inputs/Input/__stories__/TextWithLimit/index.js +64 -0
  298. package/cjs/inputs/Input/__stories__/TextWithLimit.js.map +7 -0
  299. package/cjs/inputs/Input/index.js +77 -52
  300. package/cjs/inputs/Input/index.js.map +3 -3
  301. package/cjs/inputs/Input/inputsInputScenarios/index.js +439 -0
  302. package/cjs/inputs/Input/inputsInputScenarios.js.map +7 -0
  303. package/cjs/inputs/Label/Label.stories/index.js +27 -18
  304. package/cjs/inputs/Label/Label.stories.js.map +3 -3
  305. package/cjs/inputs/Label/__stories__/Default/index.js +54 -36
  306. package/cjs/inputs/Label/__stories__/Default.js.map +3 -3
  307. package/cjs/inputs/Label/index.js +28 -28
  308. package/cjs/inputs/Label/index.js.map +3 -3
  309. package/cjs/inputs/OtpInput/OtpInput.stories/index.js +27 -18
  310. package/cjs/inputs/OtpInput/OtpInput.stories.js.map +3 -3
  311. package/cjs/inputs/OtpInput/__stories__/Default/index.js +35 -29
  312. package/cjs/inputs/OtpInput/__stories__/Default.js.map +2 -2
  313. package/cjs/inputs/OtpInput/index.js +118 -94
  314. package/cjs/inputs/OtpInput/index.js.map +3 -3
  315. package/cjs/inputs/Radio/Radio.stories/index.js +33 -20
  316. package/cjs/inputs/Radio/Radio.stories.js.map +3 -3
  317. package/cjs/inputs/Radio/__stories__/Conditional/index.js +35 -29
  318. package/cjs/inputs/Radio/__stories__/Conditional.js.map +3 -3
  319. package/cjs/inputs/Radio/__stories__/Default/index.js +62 -50
  320. package/cjs/inputs/Radio/__stories__/Default.js.map +2 -2
  321. package/cjs/inputs/Radio/__stories__/WithDivider/index.js +63 -51
  322. package/cjs/inputs/Radio/__stories__/WithDivider.js.map +2 -2
  323. package/cjs/inputs/Radio/index.js +107 -55
  324. package/cjs/inputs/Radio/index.js.map +3 -3
  325. package/cjs/inputs/Select/Select.stories/index.js +27 -18
  326. package/cjs/inputs/Select/Select.stories.js.map +3 -3
  327. package/cjs/inputs/Select/__stories__/Default/index.js +67 -55
  328. package/cjs/inputs/Select/__stories__/Default.js.map +2 -2
  329. package/cjs/inputs/Select/index.js +38 -30
  330. package/cjs/inputs/Select/index.js.map +3 -3
  331. package/cjs/inputs/index.js +30 -24
  332. package/cjs/inputs/index.js.map +1 -1
  333. package/cjs/inputs/inputsScenarios/index.js +539 -0
  334. package/cjs/inputs/inputsScenarios.js.map +7 -0
  335. package/cjs/internal/index.js +24 -77
  336. package/cjs/internal.js.map +2 -2
  337. package/cjs/lazy/index.js +87 -74
  338. package/cjs/lazy.js.map +3 -3
  339. package/cjs/locales/el/index.js +35 -0
  340. package/cjs/locales/el.js.map +7 -0
  341. package/cjs/registry/index.js +109 -88
  342. package/cjs/registry.js.map +2 -2
  343. package/cjs/types/index.js +20 -2
  344. package/cjs/types.js.map +2 -2
  345. package/cjs/utils/index.js +47 -34
  346. package/cjs/utils.js.map +3 -3
  347. package/cjs/validators/index.js +33 -88
  348. package/cjs/validators/index.js.map +2 -2
  349. package/cjs/validators/types/index.js +14 -2
  350. package/cjs/validators/types.js.map +1 -1
  351. package/cjs/validators/utils/afm/index.js +16 -4
  352. package/cjs/validators/utils/afm.js.map +1 -1
  353. package/cjs/validators/utils/date/index.js +138 -0
  354. package/cjs/validators/utils/date.js.map +7 -0
  355. package/cjs/validators/utils/file/index.js +25 -13
  356. package/cjs/validators/utils/file.js.map +2 -2
  357. package/cjs/validators/utils/iban/index.js +16 -4
  358. package/cjs/validators/utils/iban.js.map +1 -1
  359. package/cjs/validators/utils/image/index.js +18 -6
  360. package/cjs/validators/utils/image.js.map +1 -1
  361. package/cjs/validators/utils/index.js +54 -28
  362. package/cjs/validators/utils/index.js.map +2 -2
  363. package/cjs/validators/utils/int/index.js +16 -4
  364. package/cjs/validators/utils/int.js.map +1 -1
  365. package/cjs/validators/utils/number/index.js +16 -4
  366. package/cjs/validators/utils/number.js.map +1 -1
  367. package/cjs/validators/utils/otp/index.js +16 -4
  368. package/cjs/validators/utils/otp.js.map +1 -1
  369. package/cjs/validators/utils/phone/index.js +25 -6
  370. package/cjs/validators/utils/phone.js.map +2 -2
  371. package/cjs/validators/utils/postal_code/index.js +16 -4
  372. package/cjs/validators/utils/postal_code.js.map +1 -1
  373. package/cjs/validators/utils/text_limit/index.js +18 -6
  374. package/cjs/validators/utils/text_limit.js.map +1 -1
  375. package/cjs/validators/utils/uuid4/index.js +16 -4
  376. package/cjs/validators/utils/uuid4.js.map +1 -1
  377. package/index.d.ts +4 -1
  378. package/index.js +7 -2
  379. package/index.js.map +3 -3
  380. package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +4 -2
  381. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -2
  382. package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +2 -2
  383. package/inputs/AutoCompleteInput/__stories__/Default/index.js +22 -18
  384. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +2 -2
  385. package/inputs/AutoCompleteInput/__stories__/Default.js.map +2 -2
  386. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +26 -21
  387. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +3 -2
  388. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
  389. package/inputs/AutoCompleteInput/index.d.ts +1 -1
  390. package/inputs/AutoCompleteInput/index.js +50 -27
  391. package/inputs/AutoCompleteInput/index.js.map +3 -3
  392. package/inputs/AutoCompleteInput/index.test.d.ts +1 -0
  393. package/inputs/Checkboxes/Checkboxes.stories/index.js +6 -3
  394. package/inputs/Checkboxes/Checkboxes.stories.d.ts +3 -3
  395. package/inputs/Checkboxes/Checkboxes.stories.js.map +2 -2
  396. package/inputs/Checkboxes/__stories__/Conditional/index.js +13 -13
  397. package/inputs/Checkboxes/__stories__/Conditional.d.ts +2 -2
  398. package/inputs/Checkboxes/__stories__/Conditional.js.map +1 -1
  399. package/inputs/Checkboxes/__stories__/Default/index.js +36 -30
  400. package/inputs/Checkboxes/__stories__/Default.d.ts +2 -2
  401. package/inputs/Checkboxes/__stories__/Default.js.map +1 -1
  402. package/inputs/Checkboxes/__stories__/WithDivider/index.js +37 -31
  403. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +2 -2
  404. package/inputs/Checkboxes/__stories__/WithDivider.js.map +1 -1
  405. package/inputs/Checkboxes/index.d.ts +1 -0
  406. package/inputs/Checkboxes/index.js +51 -47
  407. package/inputs/Checkboxes/index.js.map +2 -2
  408. package/inputs/Checkboxes/index.test.d.ts +1 -0
  409. package/inputs/DateInput/DateInput.stories/index.js +2 -1
  410. package/inputs/DateInput/DateInput.stories.d.ts +1 -1
  411. package/inputs/DateInput/DateInput.stories.js.map +2 -2
  412. package/inputs/DateInput/__stories__/Default/index.js +19 -16
  413. package/inputs/DateInput/__stories__/Default.d.ts +2 -2
  414. package/inputs/DateInput/__stories__/Default.js.map +2 -2
  415. package/inputs/DateInput/index.d.ts +2 -2
  416. package/inputs/DateInput/index.js +52 -43
  417. package/inputs/DateInput/index.js.map +3 -3
  418. package/inputs/DateInput/index.test.d.ts +1 -0
  419. package/inputs/FileInput/FileInput.stories/index.js +2 -1
  420. package/inputs/FileInput/FileInput.stories.d.ts +1 -1
  421. package/inputs/FileInput/FileInput.stories.js.map +2 -2
  422. package/inputs/FileInput/__stories__/Default/index.js +21 -13
  423. package/inputs/FileInput/__stories__/Default.d.ts +2 -2
  424. package/inputs/FileInput/__stories__/Default.js.map +1 -1
  425. package/inputs/FileInput/index.js +34 -27
  426. package/inputs/FileInput/index.js.map +3 -3
  427. package/inputs/FileInput/index.test.d.ts +1 -0
  428. package/inputs/ImageInput/ImageInput.stories/index.js +6 -3
  429. package/inputs/ImageInput/ImageInput.stories.d.ts +3 -3
  430. package/inputs/ImageInput/ImageInput.stories.js.map +2 -2
  431. package/inputs/ImageInput/__stories__/Default/index.js +13 -13
  432. package/inputs/ImageInput/__stories__/Default.d.ts +2 -2
  433. package/inputs/ImageInput/__stories__/Default.js.map +1 -1
  434. package/inputs/ImageInput/__stories__/MaxSize/index.js +36 -0
  435. package/inputs/ImageInput/__stories__/MaxSize/package.json +6 -0
  436. package/inputs/ImageInput/__stories__/MaxSize.d.ts +3 -0
  437. package/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
  438. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +15 -14
  439. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +2 -2
  440. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +2 -2
  441. package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +13 -13
  442. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +2 -2
  443. package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +1 -1
  444. package/inputs/ImageInput/index.js +51 -51
  445. package/inputs/ImageInput/index.js.map +3 -3
  446. package/inputs/ImageInput/index.test.d.ts +1 -0
  447. package/inputs/Input/Input.stories/index.js +20 -10
  448. package/inputs/Input/Input.stories.d.ts +10 -10
  449. package/inputs/Input/Input.stories.js.map +2 -2
  450. package/inputs/Input/__stories__/AFM/index.js +22 -16
  451. package/inputs/Input/__stories__/AFM.d.ts +2 -2
  452. package/inputs/Input/__stories__/AFM.js.map +1 -1
  453. package/inputs/Input/__stories__/Boolean/index.js +23 -17
  454. package/inputs/Input/__stories__/Boolean.d.ts +2 -2
  455. package/inputs/Input/__stories__/Boolean.js.map +1 -1
  456. package/inputs/Input/__stories__/IBAN/index.js +23 -17
  457. package/inputs/Input/__stories__/IBAN.d.ts +2 -2
  458. package/inputs/Input/__stories__/IBAN.js.map +1 -1
  459. package/inputs/Input/__stories__/Integer/index.js +35 -25
  460. package/inputs/Input/__stories__/Integer.d.ts +2 -2
  461. package/inputs/Input/__stories__/Integer.js.map +1 -1
  462. package/inputs/Input/__stories__/LandlineNumber/index.js +26 -20
  463. package/inputs/Input/__stories__/LandlineNumber.d.ts +2 -2
  464. package/inputs/Input/__stories__/LandlineNumber.js.map +1 -1
  465. package/inputs/Input/__stories__/MobilePhone/index.js +26 -20
  466. package/inputs/Input/__stories__/MobilePhone.d.ts +2 -2
  467. package/inputs/Input/__stories__/MobilePhone.js.map +1 -1
  468. package/inputs/Input/__stories__/PhoneNumber/index.js +25 -19
  469. package/inputs/Input/__stories__/PhoneNumber.d.ts +2 -2
  470. package/inputs/Input/__stories__/PhoneNumber.js.map +1 -1
  471. package/inputs/Input/__stories__/PostalCode/index.js +23 -17
  472. package/inputs/Input/__stories__/PostalCode.d.ts +2 -2
  473. package/inputs/Input/__stories__/PostalCode.js.map +1 -1
  474. package/inputs/Input/__stories__/String/index.js +31 -0
  475. package/inputs/Input/__stories__/String/package.json +6 -0
  476. package/inputs/Input/__stories__/String.d.ts +3 -0
  477. package/inputs/Input/__stories__/String.js.map +7 -0
  478. package/inputs/Input/__stories__/TextWithLimit/index.js +31 -0
  479. package/inputs/Input/__stories__/TextWithLimit/package.json +6 -0
  480. package/inputs/Input/__stories__/TextWithLimit.d.ts +3 -0
  481. package/inputs/Input/__stories__/TextWithLimit.js.map +7 -0
  482. package/inputs/Input/index.js +55 -36
  483. package/inputs/Input/index.js.map +3 -3
  484. package/inputs/Input/index.test.d.ts +1 -0
  485. package/inputs/Input/inputsInputScenarios/index.js +406 -0
  486. package/inputs/Input/inputsInputScenarios/package.json +6 -0
  487. package/inputs/Input/inputsInputScenarios.d.ts +57 -0
  488. package/inputs/Input/inputsInputScenarios.js.map +7 -0
  489. package/inputs/Label/Label.stories/index.js +2 -1
  490. package/inputs/Label/Label.stories.d.ts +1 -1
  491. package/inputs/Label/Label.stories.js.map +2 -2
  492. package/inputs/Label/__stories__/Default/index.js +32 -20
  493. package/inputs/Label/__stories__/Default.d.ts +2 -2
  494. package/inputs/Label/__stories__/Default.js.map +2 -2
  495. package/inputs/Label/index.d.ts +1 -1
  496. package/inputs/Label/index.js +6 -12
  497. package/inputs/Label/index.js.map +2 -2
  498. package/inputs/Label/index.test.d.ts +1 -0
  499. package/inputs/OtpInput/OtpInput.stories/index.js +2 -1
  500. package/inputs/OtpInput/OtpInput.stories.d.ts +1 -1
  501. package/inputs/OtpInput/OtpInput.stories.js.map +2 -2
  502. package/inputs/OtpInput/__stories__/Default/index.js +13 -13
  503. package/inputs/OtpInput/__stories__/Default.d.ts +2 -2
  504. package/inputs/OtpInput/__stories__/Default.js.map +1 -1
  505. package/inputs/OtpInput/index.d.ts +9 -2
  506. package/inputs/OtpInput/index.js +94 -77
  507. package/inputs/OtpInput/index.js.map +2 -2
  508. package/inputs/OtpInput/index.test.d.ts +1 -0
  509. package/inputs/Radio/Radio.stories/index.js +6 -3
  510. package/inputs/Radio/Radio.stories.d.ts +3 -3
  511. package/inputs/Radio/Radio.stories.js.map +2 -2
  512. package/inputs/Radio/__stories__/Conditional/index.js +13 -13
  513. package/inputs/Radio/__stories__/Conditional.d.ts +2 -2
  514. package/inputs/Radio/__stories__/Conditional.js.map +2 -2
  515. package/inputs/Radio/__stories__/Default/index.js +40 -34
  516. package/inputs/Radio/__stories__/Default.d.ts +2 -2
  517. package/inputs/Radio/__stories__/Default.js.map +1 -1
  518. package/inputs/Radio/__stories__/WithDivider/index.js +41 -35
  519. package/inputs/Radio/__stories__/WithDivider.d.ts +2 -2
  520. package/inputs/Radio/__stories__/WithDivider.js.map +1 -1
  521. package/inputs/Radio/index.d.ts +5 -0
  522. package/inputs/Radio/index.js +88 -39
  523. package/inputs/Radio/index.js.map +2 -2
  524. package/inputs/Radio/index.test.d.ts +1 -0
  525. package/inputs/Select/Select.stories/index.js +2 -1
  526. package/inputs/Select/Select.stories.d.ts +1 -1
  527. package/inputs/Select/Select.stories.js.map +2 -2
  528. package/inputs/Select/__stories__/Default/index.js +45 -39
  529. package/inputs/Select/__stories__/Default.d.ts +2 -2
  530. package/inputs/Select/__stories__/Default.js.map +1 -1
  531. package/inputs/Select/index.js +16 -14
  532. package/inputs/Select/index.js.map +2 -2
  533. package/inputs/Select/index.test.d.ts +1 -0
  534. package/inputs/index.js +9 -9
  535. package/inputs/index.js.map +2 -2
  536. package/inputs/inputsScenarios/index.js +505 -0
  537. package/inputs/inputsScenarios/package.json +6 -0
  538. package/inputs/inputsScenarios.d.ts +296 -0
  539. package/inputs/inputsScenarios.js.map +7 -0
  540. package/internal/index.js +4 -45
  541. package/internal.d.ts +2 -31
  542. package/internal.js.map +2 -2
  543. package/lazy/index.js +66 -57
  544. package/lazy.d.ts +41 -29
  545. package/lazy.js.map +2 -2
  546. package/locales/el/index.js +6 -0
  547. package/{Questions/index.spec → locales/el}/package.json +1 -1
  548. package/locales/el.d.ts +2 -0
  549. package/locales/el.js.map +7 -0
  550. package/package.json +7 -7
  551. package/registry/index.js +28 -11
  552. package/registry.d.ts +8 -1
  553. package/registry.js.map +2 -2
  554. package/src/Field/FieldBase.tsx +2 -0
  555. package/src/Field/FieldBaseContainer.tsx +4 -2
  556. package/src/Field/FieldConditional.tsx +5 -1
  557. package/src/Field/index.tsx +22 -3
  558. package/src/Field/types.tsx +68 -3
  559. package/src/Field/utils/calculateField.ts +49 -0
  560. package/src/Field/utils/evaluateFieldWithConditions.ts +30 -0
  561. package/src/Field/utils/index.ts +76 -0
  562. package/src/Field/utils/useField.ts +54 -0
  563. package/src/FieldArray/FieldArray.stories.js +2 -2
  564. package/src/FieldArray/index.test.tsx +24 -0
  565. package/src/FieldArray/index.tsx +20 -8
  566. package/src/FieldObject/index.tsx +18 -5
  567. package/src/Fieldset/index.tsx +5 -5
  568. package/src/Fieldset/types.tsx +5 -3
  569. package/src/FormBuilder/FormBuilder.stories.js +1 -1
  570. package/src/FormBuilder/{FormBuilder.mdx → doc.mdx} +20 -33
  571. package/src/FormBuilder/index.test.tsx +20 -0
  572. package/src/FormBuilder/index.tsx +178 -1
  573. package/src/FormBuilder/scenarios.test.tsx +1864 -0
  574. package/src/MultiplicityField/MultiplicityField.stories.js +6 -6
  575. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +2 -2
  576. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  577. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  578. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  579. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  580. package/src/MultiplicityField/add-objects.tsx +27 -12
  581. package/src/MultiplicityField/{MultiplicityField.mdx → doc.mdx} +12 -16
  582. package/src/MultiplicityField/index.test.tsx +40 -0
  583. package/src/MultiplicityField/index.tsx +20 -34
  584. package/src/MultiplicityField/types.ts +22 -0
  585. package/src/Questions/Questions.stories.js +1 -1
  586. package/src/Questions/Step/StepTitle.tsx +5 -3
  587. package/src/Questions/Step/index.ts +0 -1
  588. package/src/Questions/Step/types.tsx +1 -0
  589. package/src/Questions/__snapshots__/index.spec.tsx.snap +72 -587
  590. package/src/Questions/{index.mdx → doc.mdx} +13 -16
  591. package/src/Questions/index.spec.tsx +3 -3
  592. package/src/Questions/index.test.tsx +20 -0
  593. package/src/Questions/types.tsx +1 -0
  594. package/src/create-simple-form.mdx +2 -6
  595. package/src/{index.mdx → doc.mdx} +4 -8
  596. package/src/index.ts +4 -1
  597. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +2 -2
  598. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +26 -18
  599. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +27 -20
  600. package/src/inputs/AutoCompleteInput/{index.mdx → doc.mdx} +3 -8
  601. package/src/inputs/AutoCompleteInput/index.test.tsx +24 -0
  602. package/src/inputs/AutoCompleteInput/index.tsx +47 -30
  603. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -3
  604. package/src/inputs/Checkboxes/{index.mdx → doc.mdx} +5 -15
  605. package/src/inputs/Checkboxes/index.test.tsx +28 -0
  606. package/src/inputs/Checkboxes/index.tsx +35 -30
  607. package/src/inputs/DateInput/DateInput.stories.js +1 -1
  608. package/src/inputs/DateInput/__stories__/Default.tsx +21 -15
  609. package/src/inputs/DateInput/{index.mdx → doc.mdx} +1 -8
  610. package/src/inputs/DateInput/index.test.tsx +20 -0
  611. package/src/inputs/DateInput/index.tsx +7 -5
  612. package/src/inputs/FileInput/FileInput.stories.js +1 -1
  613. package/src/inputs/FileInput/{index.mdx → doc.mdx} +1 -5
  614. package/src/inputs/FileInput/index.test.tsx +20 -0
  615. package/src/inputs/FileInput/index.tsx +5 -6
  616. package/src/inputs/ImageInput/ImageInput.stories.js +4 -3
  617. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +37 -0
  618. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +2 -0
  619. package/src/inputs/ImageInput/doc.mdx +23 -0
  620. package/src/inputs/ImageInput/index.test.tsx +32 -0
  621. package/src/inputs/ImageInput/index.tsx +9 -11
  622. package/src/inputs/Input/Input.stories.js +10 -10
  623. package/src/inputs/Input/__stories__/{Default.tsx → String.tsx} +2 -2
  624. package/src/inputs/Input/__stories__/{TextWithCharacterLimit.tsx → TextWithLimit.tsx} +2 -2
  625. package/src/inputs/Input/doc.mdx +56 -0
  626. package/src/inputs/Input/index.test.tsx +56 -0
  627. package/src/inputs/Input/index.tsx +33 -30
  628. package/src/inputs/Input/inputsInputScenarios.ts +405 -0
  629. package/src/inputs/Label/Label.stories.js +1 -1
  630. package/src/inputs/Label/__stories__/Default.tsx +3 -1
  631. package/src/inputs/Label/doc.mdx +14 -0
  632. package/src/inputs/Label/index.test.tsx +20 -0
  633. package/src/inputs/Label/index.tsx +3 -7
  634. package/src/inputs/OtpInput/OtpInput.stories.js +1 -1
  635. package/src/inputs/OtpInput/{index.mdx → doc.mdx} +1 -8
  636. package/src/inputs/OtpInput/index.test.tsx +20 -0
  637. package/src/inputs/OtpInput/index.tsx +1 -1
  638. package/src/inputs/Radio/Radio.stories.js +3 -3
  639. package/src/inputs/Radio/__stories__/Conditional.tsx +2 -1
  640. package/src/inputs/Radio/{index.mdx → doc.mdx} +5 -15
  641. package/src/inputs/Radio/index.test.tsx +28 -0
  642. package/src/inputs/Radio/index.tsx +77 -8
  643. package/src/inputs/Select/Select.stories.js +1 -1
  644. package/src/inputs/Select/{index.mdx → doc.mdx} +1 -5
  645. package/src/inputs/Select/index.test.tsx +20 -0
  646. package/src/inputs/Select/index.tsx +1 -2
  647. package/src/inputs/inputsScenarios.ts +502 -0
  648. package/src/installation.mdx +2 -5
  649. package/src/internal.ts +2 -31
  650. package/src/lazy.js +25 -16
  651. package/src/locales/el.ts +3 -0
  652. package/src/registry.js +16 -2
  653. package/src/types.tsx +10 -63
  654. package/src/utils.ts +34 -33
  655. package/src/validators/index.ts +15 -70
  656. package/src/validators/utils/date.ts +107 -0
  657. package/src/validators/utils/file.ts +9 -9
  658. package/src/validators/utils/index.ts +1 -0
  659. package/src/validators/utils/phone.ts +62 -71
  660. package/src/validators/validators.spec.ts +3 -37
  661. package/types/index.js +1 -0
  662. package/types.d.ts +5 -34
  663. package/types.js.map +3 -3
  664. package/utils/index.js +34 -17
  665. package/utils.js.map +3 -3
  666. package/validators/index.js +14 -72
  667. package/validators/index.js.map +2 -2
  668. package/validators/utils/afm.js.map +1 -1
  669. package/validators/utils/date/index.js +103 -0
  670. package/validators/utils/date/package.json +6 -0
  671. package/validators/utils/date.d.ts +9 -0
  672. package/validators/utils/date.js.map +7 -0
  673. package/validators/utils/file/index.js +9 -9
  674. package/validators/utils/file.js.map +2 -2
  675. package/validators/utils/iban.js.map +1 -1
  676. package/validators/utils/image/index.js +2 -2
  677. package/validators/utils/image.js.map +1 -1
  678. package/validators/utils/index.d.ts +1 -0
  679. package/validators/utils/index.js +11 -2
  680. package/validators/utils/index.js.map +2 -2
  681. package/validators/utils/int.js.map +1 -1
  682. package/validators/utils/number.js.map +1 -1
  683. package/validators/utils/otp.js.map +1 -1
  684. package/validators/utils/phone/index.js +9 -2
  685. package/validators/utils/phone.js.map +2 -2
  686. package/validators/utils/postal_code.js.map +1 -1
  687. package/validators/utils/text_limit/index.js +2 -2
  688. package/validators/utils/text_limit.js.map +1 -1
  689. package/validators/utils/uuid4.js.map +1 -1
  690. package/Field/utils.d.ts +0 -5
  691. package/Field/utils.js.map +0 -7
  692. package/FormBuilder/FormBuilder/index.js +0 -138
  693. package/FormBuilder/FormBuilder.d.ts +0 -5
  694. package/FormBuilder/FormBuilder.js.map +0 -7
  695. package/Questions/index.spec/index.js +0 -65
  696. package/Questions/index.spec.js.map +0 -7
  697. package/cjs/Field/utils.js.map +0 -7
  698. package/cjs/FormBuilder/FormBuilder/index.js +0 -166
  699. package/cjs/FormBuilder/FormBuilder.js.map +0 -7
  700. package/cjs/Questions/index.spec/index.js +0 -83
  701. package/cjs/Questions/index.spec.js.map +0 -7
  702. package/cjs/inputs/Input/__stories__/Default/index.js +0 -52
  703. package/cjs/inputs/Input/__stories__/Default.js.map +0 -7
  704. package/cjs/inputs/Input/__stories__/TextWithCharacterLimit/index.js +0 -52
  705. package/cjs/inputs/Input/__stories__/TextWithCharacterLimit.js.map +0 -7
  706. package/cjs/validators/validators.spec/index.js +0 -104
  707. package/cjs/validators/validators.spec.js.map +0 -7
  708. package/inputs/Input/__stories__/Default/index.js +0 -25
  709. package/inputs/Input/__stories__/Default.d.ts +0 -3
  710. package/inputs/Input/__stories__/Default.js.map +0 -7
  711. package/inputs/Input/__stories__/TextWithCharacterLimit/index.js +0 -25
  712. package/inputs/Input/__stories__/TextWithCharacterLimit/package.json +0 -6
  713. package/inputs/Input/__stories__/TextWithCharacterLimit.d.ts +0 -3
  714. package/inputs/Input/__stories__/TextWithCharacterLimit.js.map +0 -7
  715. package/src/Field/utils.ts +0 -191
  716. package/src/FieldArray/FieldArray.stories.playwright.json +0 -353
  717. package/src/FormBuilder/FormBuilder.stories.playwright.json +0 -52
  718. package/src/FormBuilder/FormBuilder.tsx +0 -166
  719. package/src/MultiplicityField/MultiplicityField.stories.playwright.json +0 -1370
  720. package/src/inputs/Checkboxes/Checkboxes.stories.playwright.json +0 -85
  721. package/src/inputs/DateInput/DateInput.stories.playwright.json +0 -72
  722. package/src/inputs/FileInput/FileInput.stories.playwright.json +0 -75
  723. package/src/inputs/ImageInput/ImageInput.stories.playwright.json +0 -77
  724. package/src/inputs/ImageInput/index.mdx +0 -19
  725. package/src/inputs/Input/Input.stories.playwright.json +0 -376
  726. package/src/inputs/Input/index.mdx +0 -95
  727. package/src/inputs/Label/Label.stories.playwright.json +0 -40
  728. package/src/inputs/Label/index.mdx +0 -0
  729. package/src/inputs/Radio/Radio.stories.playwright.json +0 -73
  730. package/src/inputs/Select/Select.stories.playwright.json +0 -22
  731. package/validators/validators.spec/index.js +0 -91
  732. package/validators/validators.spec.js.map +0 -7
  733. /package/src/Field/{index.mdx → doc.mdx} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/index.ts"],
4
- "sourcesContent": ["import { MutableRefObject, useMemo } from 'react';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport * as yup from 'yup';\nimport { AnyObjectSchema, StringSchema } from 'yup';\nimport { RequiredArraySchema } from 'yup/lib/array';\nimport Lazy from 'yup/lib/Lazy';\nimport { MixedSchema } from 'yup/lib/mixed';\nimport { TypeOfShape, AssertsShape } from 'yup/lib/object';\nimport { AnyObject } from 'yup/lib/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\nimport {\n getYupObjectShape,\n AFM_VALIDATOR,\n FILE_MAX_SIZE_VALIDATOR,\n IBAN_VALIDATOR,\n OTP_VALIDATOR,\n MOBILE_PHONE_VALIDATOR,\n PHONE_NUMBER_VALIDATOR,\n TEXT_LIMIT_VALIDATOR,\n POSTALCODE_VALIDATOR,\n UUID4_VALIDATOR,\n IMAGE_DIMENSION_VALIDATOR,\n} from '@digigov/form/validators/utils';\nimport { INT_VALIDATOR } from '@digigov/form/validators/utils/int';\nimport { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';\ndayjs.extend(customParseFormat);\n\nconst VALID_DATE_FORMATS = ['DD/MM/YYYY'];\nconst DATE_CACHE = {};\nconst getDate = (v) => {\n return DATE_CACHE[v] ? DATE_CACHE[v] : dayjs(v, VALID_DATE_FORMATS, true);\n};\n\nexport const getYUPTypeMap = (): Record<string, any> => {\n const yupTypeMap = {\n file: (field): MixedSchema => {\n return yup\n .mixed()\n .transform((value) => {\n if (!value.length) {\n return null;\n }\n return value;\n })\n .nullable()\n .test(FILE_MAX_SIZE_VALIDATOR(field));\n },\n string: yup.string,\n boolean: yup.boolean,\n object: (\n field\n ):\n | yup.ObjectSchema<any, AnyObject, TypeOfShape<any>, AssertsShape<any>>\n | Lazy<any, unknown> => {\n return getYupObjectShape(field.extra.fields, yupTypeMap);\n },\n array: (\n field\n ):\n | yup.ArraySchema<any, AnyObject, any[] | undefined>\n | RequiredArraySchema<any, AnyObject, any[] | undefined> => {\n if (typeof field.extra.of === 'object') {\n // else if the field is an object then it is a scalar type\n // eg. number, string etc.\n let arrayValidator = yup\n .array()\n .of(yupTypeMap[field.extra.of.type](field.extra.of))\n .required(field.required);\n if (field.extra.length)\n arrayValidator = arrayValidator.length(field.extra.length, {\n key: 'form.error.array.length',\n context: {\n length: field.extra.length,\n },\n });\n if (field.extra.min)\n arrayValidator = arrayValidator.min(field.extra.min, {\n key: 'form.error.array.min',\n context: {\n min: field.extra.min,\n },\n });\n if (field.extra.max)\n arrayValidator = arrayValidator.max(field.extra.max, {\n key: 'form.error.array.max',\n context: {\n max: field.extra.max,\n },\n });\n return arrayValidator;\n } else if (typeof field.extra.of === 'string') {\n return yup.array().of(yupTypeMap[field.extra.of]());\n } else {\n // in any other case it will be string\n return yup.array().of(yup.string());\n }\n },\n int: (): MixedSchema =>\n yup\n .mixed()\n .transform((_, val) => (val !== '' ? Number(val) : null))\n .test(NUMBER_VALIDATOR())\n .test(INT_VALIDATOR()),\n email: (): yup.StringSchema => yup.string().email('form.error.email'),\n afm: (): yup.StringSchema => yup.string().test(AFM_VALIDATOR),\n uuid4: (): yup.StringSchema => yup.string().test(UUID4_VALIDATOR),\n iban: (field): yup.StringSchema => yup.string().test(IBAN_VALIDATOR(field)),\n otp: (field): yup.StringSchema => yup.string().test(OTP_VALIDATOR(field)),\n text: (field): yup.StringSchema => {\n if (field?.extra?.limit?.max || !!field?.extra?.limit?.min) {\n return yup.string().test(TEXT_LIMIT_VALIDATOR(field));\n } else {\n return yup.string();\n }\n },\n image: (field): MixedSchema => {\n return yup\n .mixed()\n .transform((value) => {\n if (!value.length || value.length === 0) {\n return null;\n }\n return value;\n })\n .nullable()\n .test(FILE_MAX_SIZE_VALIDATOR(field))\n .test(IMAGE_DIMENSION_VALIDATOR(field));\n },\n postal_code: (field): yup.StringSchema =>\n yup.string().test(POSTALCODE_VALIDATOR(field)),\n mobile_phone: (): yup.StringSchema =>\n yup.string().test(MOBILE_PHONE_VALIDATOR),\n phone_number: (field): yup.StringSchema =>\n yup.string().test(PHONE_NUMBER_VALIDATOR(field)),\n 'choice:multiple': (): yup.ArraySchema<\n yup.StringSchema<string | undefined, AnyObject, string | undefined>,\n AnyObject,\n (string | undefined)[] | null | undefined,\n (string | undefined)[] | null | undefined\n > => yup.array().of(yup.string()).nullable(),\n 'choice:single': (): StringSchema<\n string | null | undefined,\n AnyObject,\n string | null | undefined\n > => yup.string().nullable(),\n date: (field) => {\n let simpleDate = yup\n .string()\n .nullable(true)\n .test('date', 'form.error.date.invalid', function (value) {\n if (!value) return true;\n const date = getDate(value);\n return date.isValid();\n });\n const params = field.extra || {};\n if (params.max) {\n let maxDate;\n if (params.max === 'now') {\n const today = new Date();\n maxDate = new Date(today);\n } else {\n maxDate = getDate(params.max).toDate();\n }\n const maxNextDate = new Date(maxDate);\n maxNextDate.setDate(maxDate.getDate() + 1);\n simpleDate = simpleDate.test({\n name: 'earlier-than',\n message: {\n key: 'form.error.date.earlier_than',\n context: {\n maxDate: maxNextDate.toLocaleDateString(),\n },\n },\n test: function (value) {\n if (!value) return true;\n const date = getDate(value);\n const isValid = +date.toDate() < +maxDate;\n return isValid;\n },\n });\n }\n if (params.min) {\n let minDate;\n if (params.min === 'now') {\n const today = new Date();\n minDate = new Date(today);\n } else {\n minDate = getDate(params.min).toDate();\n }\n const minPreviousDate = new Date(minDate);\n minPreviousDate.setDate(minDate.getDate() - 1);\n simpleDate = simpleDate.test({\n name: 'later-than',\n message: {\n key: 'form.error.date.later_than',\n context: {\n minDate: minPreviousDate.toLocaleDateString(),\n },\n },\n test: function (value) {\n if (!value) return true;\n const date = getDate(value);\n const isValid = +date.toDate() > +minDate;\n return isValid;\n },\n });\n }\n return simpleDate;\n },\n };\n return yupTypeMap;\n};\n\nexport interface MutableRefObjectProps {}\n// Create a yup validation schema from given fields input\nexport function useValidationSchema(\n fields: FieldSpec[] | MutableRefObject<MutableRefObjectProps>,\n validatorRegistry?: Record<string, ValidatorSchema[]>\n): Lazy<any, unknown> | AnyObjectSchema | void {\n return useMemo(() => {\n const yupTypeMap = getYUPTypeMap();\n return getYupObjectShape(fields, yupTypeMap, validatorRegistry);\n }, []);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { MutableRefObject, useMemo } from 'react';\nimport * as yup from 'yup';\nimport { AnyObjectSchema, StringSchema } from 'yup';\nimport { RequiredArraySchema } from 'yup/lib/array';\nimport Lazy from 'yup/lib/Lazy';\nimport { MixedSchema } from 'yup/lib/mixed';\nimport { TypeOfShape, AssertsShape } from 'yup/lib/object';\nimport { AnyObject } from 'yup/lib/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\nimport {\n getYupObjectShape,\n AFM_VALIDATOR,\n FILE_MAX_SIZE_VALIDATOR,\n IBAN_VALIDATOR,\n OTP_VALIDATOR,\n MOBILE_PHONE_VALIDATOR,\n PHONE_NUMBER_VALIDATOR,\n TEXT_LIMIT_VALIDATOR,\n POSTALCODE_VALIDATOR,\n UUID4_VALIDATOR,\n IMAGE_DIMENSION_VALIDATOR,\n DATE_VALIDATOR,\n LATER_THAN_VALIDATOR,\n EARLIER_THAN_VALIDATOR,\n} from '@digigov/form/validators/utils';\nimport { INT_VALIDATOR } from '@digigov/form/validators/utils/int';\nimport { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';\n\nexport const getYUPTypeMap = (): Record<string, any> => {\n const yupTypeMap = {\n file: (field): MixedSchema => {\n return yup\n .mixed()\n .transform((value) => {\n if (!value.length) {\n return null;\n }\n return value;\n })\n .nullable()\n .test(FILE_MAX_SIZE_VALIDATOR(field));\n },\n string: yup.string,\n boolean: yup.boolean,\n object: (\n field\n ):\n | yup.ObjectSchema<any, AnyObject, TypeOfShape<any>, AssertsShape<any>>\n | Lazy<any, unknown> => {\n return getYupObjectShape(field.extra.fields, yupTypeMap);\n },\n array: (\n field\n ):\n | yup.ArraySchema<any, AnyObject, any[] | undefined>\n | RequiredArraySchema<any, AnyObject, any[] | undefined> => {\n if (typeof field.extra.of === 'object') {\n // else if the field is an object then it is a scalar type\n // eg. number, string etc.\n let arrayValidator = yup\n .array()\n .of(yupTypeMap[field.extra.of.type](field.extra.of))\n .required(field.required);\n if (field.extra.length)\n arrayValidator = arrayValidator.length(field.extra.length, {\n key: 'form.error.array.length',\n context: {\n length: field.extra.length,\n },\n });\n if (field.extra.min)\n arrayValidator = arrayValidator.min(field.extra.min, {\n key: 'form.error.array.min',\n context: {\n min: field.extra.min,\n },\n });\n if (field.extra.max)\n arrayValidator = arrayValidator.max(field.extra.max, {\n key: 'form.error.array.max',\n context: {\n max: field.extra.max,\n },\n });\n return arrayValidator;\n } else if (typeof field.extra.of === 'string') {\n return yup.array().of(yupTypeMap[field.extra.of]());\n } else {\n // in any other case it will be string\n return yup.array().of(yup.string());\n }\n },\n number: (): MixedSchema =>\n yup\n .mixed()\n .transform((_, val) => (val !== '' ? Number(val) : null))\n .test(NUMBER_VALIDATOR()),\n int: (): MixedSchema =>\n yup\n .mixed()\n .transform((_, val) => (val !== '' ? Number(val) : null))\n .test(NUMBER_VALIDATOR())\n .test(INT_VALIDATOR()),\n email: (): yup.StringSchema => yup.string().email('form.error.email'),\n afm: (): yup.StringSchema => yup.string().test(AFM_VALIDATOR),\n uuid4: (): yup.StringSchema => yup.string().test(UUID4_VALIDATOR),\n iban: (field): yup.StringSchema => yup.string().test(IBAN_VALIDATOR(field)),\n otp: (field): yup.StringSchema => yup.string().test(OTP_VALIDATOR(field)),\n text: (field): yup.StringSchema => {\n if (field?.extra?.limit?.max || !!field?.extra?.limit?.min) {\n return yup.string().test(TEXT_LIMIT_VALIDATOR(field));\n } else {\n return yup.string();\n }\n },\n image: (field): MixedSchema => {\n return yup\n .mixed()\n .transform((value) => {\n if (!value.length || value.length === 0) {\n return null;\n }\n return value;\n })\n .nullable()\n .test(FILE_MAX_SIZE_VALIDATOR(field))\n .test(IMAGE_DIMENSION_VALIDATOR(field));\n },\n postal_code: (field): yup.StringSchema =>\n yup.string().test(POSTALCODE_VALIDATOR(field)),\n mobile_phone: (): yup.StringSchema =>\n yup.string().test(MOBILE_PHONE_VALIDATOR),\n phone_number: (field): yup.StringSchema =>\n yup.string().test(PHONE_NUMBER_VALIDATOR(field)),\n 'choice:multiple': (): yup.ArraySchema<\n yup.StringSchema<string | undefined, AnyObject, string | undefined>,\n AnyObject,\n (string | undefined)[] | null | undefined,\n (string | undefined)[] | null | undefined\n > => yup.array().of(yup.string()).nullable(),\n 'choice:single': (): StringSchema<\n string | null | undefined,\n AnyObject,\n string | null | undefined\n > => yup.string().nullable(),\n date: (field): yup.StringSchema => {\n if (field?.extra?.min) {\n return yup.string().test(LATER_THAN_VALIDATOR(field));\n }\n if (field?.extra?.max) {\n return yup.string().test(EARLIER_THAN_VALIDATOR(field));\n } else {\n return yup.string().test(DATE_VALIDATOR);\n }\n },\n };\n return yupTypeMap;\n};\n\nexport interface MutableRefObjectProps {}\n// Create a yup validation schema from given fields input\nexport function useValidationSchema(\n fields: FieldSpec[] | MutableRefObject<MutableRefObjectProps>,\n validatorRegistry?: Record<string, ValidatorSchema[]>\n): Lazy<any, unknown> | AnyObjectSchema | void {\n return useMemo(() => {\n const yupTypeMap = getYUPTypeMap();\n return getYupObjectShape(fields, yupTypeMap, validatorRegistry);\n }, []);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/afm.ts"],
4
4
  "sourcesContent": ["export function validateAFM(afm: string): boolean {\n if (afm.length !== 9) {\n // \"afm should be 9 digits\"\n return false;\n }\n\n if (!/^\\d+$/.test(afm)) {\n // \"This is not a number\"\n return false;\n }\n\n if (afm === '0'.repeat(9)) {\n // \"This is zero number (000000000)\"\n return false;\n }\n\n const sum = afm\n .substring(0, 8)\n .split('')\n .reduce((s, v, i) => s + (parseInt(v) << (8 - i)), 0);\n\n const calc = sum % 11;\n const d9 = parseInt(afm[8]);\n const valid = calc % 10 === d9;\n return valid;\n}\n\nexport const AFM_VALIDATOR = {\n name: 'afm-validator',\n message: 'form.error.afm',\n test: (value): boolean => {\n if (value) {\n return validateAFM(value);\n }\n return true;\n },\n};\n"],
5
- "mappings": "AAAO,qBAAqB,KAAsB;AAChD,MAAI,IAAI,WAAW,GAAG;AAEpB,WAAO;AAAA;AAGT,MAAI,CAAC,QAAQ,KAAK,MAAM;AAEtB,WAAO;AAAA;AAGT,MAAI,QAAQ,IAAI,OAAO,IAAI;AAEzB,WAAO;AAAA;AAGT,QAAM,MAAM,IACT,UAAU,GAAG,GACb,MAAM,IACN,OAAO,CAAC,GAAG,GAAG,MAAM,IAAK,UAAS,MAAO,IAAI,IAAK;AAErD,QAAM,OAAO,MAAM;AACnB,QAAM,KAAK,SAAS,IAAI;AACxB,QAAM,QAAQ,OAAO,OAAO;AAC5B,SAAO;AAAA;AAGF,MAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,CAAC,UAAmB;AACxB,QAAI,OAAO;AACT,aAAO,YAAY;AAAA;AAErB,WAAO;AAAA;AAAA;",
5
+ "mappings": "AAAO,SAAS,YAAY,KAAsB;AAChD,MAAI,IAAI,WAAW,GAAG;AAEpB,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,QAAQ,KAAK,GAAG,GAAG;AAEtB,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,IAAI,OAAO,CAAC,GAAG;AAEzB,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,IACT,UAAU,GAAG,CAAC,EACd,MAAM,EAAE,EACR,OAAO,CAAC,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,KAAM,IAAI,IAAK,CAAC;AAEtD,QAAM,OAAO,MAAM;AACnB,QAAM,KAAK,SAAS,IAAI,CAAC,CAAC;AAC1B,QAAM,QAAQ,OAAO,OAAO;AAC5B,SAAO;AACT;AAEO,MAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,CAAC,UAAmB;AACxB,QAAI,OAAO;AACT,aAAO,YAAY,KAAK;AAAA,IAC1B;AACA,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,103 @@
1
+ import dayjs from "dayjs";
2
+ import customParseFormat from "dayjs/plugin/customParseFormat";
3
+ dayjs.extend(customParseFormat);
4
+ const VALID_DATE_FORMATS = ["DD/MM/YYYY"];
5
+ const DATE_CACHE = {};
6
+ const getDate = (v) => {
7
+ return DATE_CACHE[v] ? DATE_CACHE[v] : dayjs(v, VALID_DATE_FORMATS, true);
8
+ };
9
+ const checkPartialDate = (value) => {
10
+ console.log("value.split('/')", value.split("/"));
11
+ const [day, month, year] = value.split("/");
12
+ if (day && !month && !year) {
13
+ return "form.error.date.invalid_month_year";
14
+ }
15
+ if (!day && month && !year) {
16
+ return "form.error.date.invalid_day_year";
17
+ }
18
+ if (!day && !month && year) {
19
+ return "form.error.date.invalid_day_month";
20
+ }
21
+ if (day && month && !year) {
22
+ return "form.error.date.invalid_year";
23
+ }
24
+ if (day && !month && year) {
25
+ return "form.error.date.invalid_month";
26
+ }
27
+ if (!day && month && year) {
28
+ return "form.error.date.invalid_day";
29
+ } else {
30
+ return "form.error.date.invalid";
31
+ }
32
+ };
33
+ const LATER_THAN_VALIDATOR = (field) => {
34
+ let minDate;
35
+ const params = field.extra || {};
36
+ if (params.min === "now") {
37
+ const today = /* @__PURE__ */ new Date();
38
+ minDate = new Date(today);
39
+ } else {
40
+ minDate = getDate(params.min).toDate();
41
+ }
42
+ const minPreviousDate = new Date(minDate);
43
+ minPreviousDate.setDate(minDate.getDate() - 1);
44
+ return {
45
+ name: "later-than",
46
+ message: {
47
+ key: "form.error.date.later_than",
48
+ context: {
49
+ minDate: minPreviousDate.toLocaleDateString()
50
+ }
51
+ },
52
+ test: function(value) {
53
+ if (!value) return true;
54
+ const date = getDate(value);
55
+ const isValid = +date.toDate() > +minDate;
56
+ return isValid;
57
+ }
58
+ };
59
+ };
60
+ const EARLIER_THAN_VALIDATOR = (field) => {
61
+ let maxDate;
62
+ const params = field.extra || {};
63
+ if (params.max === "now") {
64
+ const today = /* @__PURE__ */ new Date();
65
+ maxDate = new Date(today);
66
+ } else {
67
+ maxDate = getDate(params.max).toDate();
68
+ }
69
+ const maxNextDate = new Date(maxDate);
70
+ maxNextDate.setDate(maxDate.getDate() + 1);
71
+ return {
72
+ name: "earlier-than",
73
+ message: {
74
+ key: "form.error.date.earlier_than",
75
+ context: {
76
+ maxDate: maxNextDate.toLocaleDateString()
77
+ }
78
+ },
79
+ test: function(value) {
80
+ if (!value) return true;
81
+ const date = getDate(value);
82
+ const isValid = +date.toDate() < +maxDate;
83
+ return isValid;
84
+ }
85
+ };
86
+ };
87
+ const DATE_VALIDATOR = {
88
+ name: "date-validator",
89
+ message: (v) => {
90
+ return checkPartialDate(v.value);
91
+ },
92
+ test: function(value) {
93
+ if (!value) return true;
94
+ const date = getDate(value);
95
+ return date.isValid();
96
+ }
97
+ };
98
+ export {
99
+ DATE_VALIDATOR,
100
+ EARLIER_THAN_VALIDATOR,
101
+ LATER_THAN_VALIDATOR
102
+ };
103
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "types": "./index.d.ts",
5
+ "main": "../../../cjs/validators/utils/date/index.js"
6
+ }
@@ -0,0 +1,9 @@
1
+ import { FieldSpec } from '@digigov/form/types';
2
+ import { ValidatorSchema } from '@digigov/form/validators/types';
3
+ export declare const LATER_THAN_VALIDATOR: (field: FieldSpec) => ValidatorSchema;
4
+ export declare const EARLIER_THAN_VALIDATOR: (field: FieldSpec) => ValidatorSchema;
5
+ export declare const DATE_VALIDATOR: {
6
+ name: string;
7
+ message: (v: any) => string;
8
+ test: (value: string) => any;
9
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/validators/utils/date.ts"],
4
+ "sourcesContent": ["import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\ndayjs.extend(customParseFormat);\n\nconst VALID_DATE_FORMATS = ['DD/MM/YYYY'];\nconst DATE_CACHE = {};\n\nconst getDate = (v: string) => {\n return DATE_CACHE[v] ? DATE_CACHE[v] : dayjs(v, VALID_DATE_FORMATS, true);\n};\n\n// Function to check partial date completion\nconst checkPartialDate = (value: string) => {\n console.log(\"value.split('/')\", value.split('/'));\n const [day, month, year] = value.split('/');\n if (day && !month && !year) {\n return 'form.error.date.invalid_month_year';\n }\n if (!day && month && !year) {\n return 'form.error.date.invalid_day_year';\n }\n if (!day && !month && year) {\n return 'form.error.date.invalid_day_month';\n }\n if (day && month && !year) {\n return 'form.error.date.invalid_year';\n }\n if (day && !month && year) {\n return 'form.error.date.invalid_month';\n }\n if (!day && month && year) {\n return 'form.error.date.invalid_day';\n } else {\n return 'form.error.date.invalid';\n }\n};\n\nexport const LATER_THAN_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n let minDate;\n const params = field.extra || {};\n if (params.min === 'now') {\n const today = new Date();\n minDate = new Date(today);\n } else {\n minDate = getDate(params.min).toDate();\n }\n const minPreviousDate = new Date(minDate);\n minPreviousDate.setDate(minDate.getDate() - 1);\n return {\n name: 'later-than',\n message: {\n key: 'form.error.date.later_than',\n context: {\n minDate: minPreviousDate.toLocaleDateString(),\n },\n },\n test: function (value: string) {\n if (!value) return true;\n const date = getDate(value);\n const isValid = +date.toDate() > +minDate;\n return isValid;\n },\n };\n};\n\nexport const EARLIER_THAN_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n let maxDate;\n const params = field.extra || {};\n if (params.max === 'now') {\n const today = new Date();\n maxDate = new Date(today);\n } else {\n maxDate = getDate(params.max).toDate();\n }\n const maxNextDate = new Date(maxDate);\n maxNextDate.setDate(maxDate.getDate() + 1);\n return {\n name: 'earlier-than',\n message: {\n key: 'form.error.date.earlier_than',\n context: {\n maxDate: maxNextDate.toLocaleDateString(),\n },\n },\n test: function (value: string) {\n if (!value) return true;\n const date = getDate(value);\n const isValid = +date.toDate() < +maxDate;\n return isValid;\n },\n };\n};\n\nexport const DATE_VALIDATOR = {\n name: 'date-validator',\n message: (v): string => {\n return checkPartialDate(v.value);\n },\n test: function (value: string) {\n if (!value) return true;\n const date = getDate(value);\n return date.isValid();\n },\n};\n"],
5
+ "mappings": "AAAA,OAAO,WAAW;AAClB,OAAO,uBAAuB;AAI9B,MAAM,OAAO,iBAAiB;AAE9B,MAAM,qBAAqB,CAAC,YAAY;AACxC,MAAM,aAAa,CAAC;AAEpB,MAAM,UAAU,CAAC,MAAc;AAC7B,SAAO,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,MAAM,GAAG,oBAAoB,IAAI;AAC1E;AAGA,MAAM,mBAAmB,CAAC,UAAkB;AAC1C,UAAQ,IAAI,oBAAoB,MAAM,MAAM,GAAG,CAAC;AAChD,QAAM,CAAC,KAAK,OAAO,IAAI,IAAI,MAAM,MAAM,GAAG;AAC1C,MAAI,OAAO,CAAC,SAAS,CAAC,MAAM;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,CAAC,OAAO,SAAS,CAAC,MAAM;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,CAAC,OAAO,CAAC,SAAS,MAAM;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,SAAS,CAAC,MAAM;AACzB,WAAO;AAAA,EACT;AACA,MAAI,OAAO,CAAC,SAAS,MAAM;AACzB,WAAO;AAAA,EACT;AACA,MAAI,CAAC,OAAO,SAAS,MAAM;AACzB,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,CAAC,UAAsC;AACzE,MAAI;AACJ,QAAM,SAAS,MAAM,SAAS,CAAC;AAC/B,MAAI,OAAO,QAAQ,OAAO;AACxB,UAAM,QAAQ,oBAAI,KAAK;AACvB,cAAU,IAAI,KAAK,KAAK;AAAA,EAC1B,OAAO;AACL,cAAU,QAAQ,OAAO,GAAG,EAAE,OAAO;AAAA,EACvC;AACA,QAAM,kBAAkB,IAAI,KAAK,OAAO;AACxC,kBAAgB,QAAQ,QAAQ,QAAQ,IAAI,CAAC;AAC7C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,QACP,SAAS,gBAAgB,mBAAmB;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,MAAM,SAAU,OAAe;AAC7B,UAAI,CAAC,MAAO,QAAO;AACnB,YAAM,OAAO,QAAQ,KAAK;AAC1B,YAAM,UAAU,CAAC,KAAK,OAAO,IAAI,CAAC;AAClC,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,CAAC,UAAsC;AAC3E,MAAI;AACJ,QAAM,SAAS,MAAM,SAAS,CAAC;AAC/B,MAAI,OAAO,QAAQ,OAAO;AACxB,UAAM,QAAQ,oBAAI,KAAK;AACvB,cAAU,IAAI,KAAK,KAAK;AAAA,EAC1B,OAAO;AACL,cAAU,QAAQ,OAAO,GAAG,EAAE,OAAO;AAAA,EACvC;AACA,QAAM,cAAc,IAAI,KAAK,OAAO;AACpC,cAAY,QAAQ,QAAQ,QAAQ,IAAI,CAAC;AACzC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,QACP,SAAS,YAAY,mBAAmB;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,MAAM,SAAU,OAAe;AAC7B,UAAI,CAAC,MAAO,QAAO;AACnB,YAAM,OAAO,QAAQ,KAAK;AAC1B,YAAM,UAAU,CAAC,KAAK,OAAO,IAAI,CAAC;AAClC,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,iBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,SAAS,CAAC,MAAc;AACtB,WAAO,iBAAiB,EAAE,KAAK;AAAA,EACjC;AAAA,EACA,MAAM,SAAU,OAAe;AAC7B,QAAI,CAAC,MAAO,QAAO;AACnB,UAAM,OAAO,QAAQ,KAAK;AAC1B,WAAO,KAAK,QAAQ;AAAA,EACtB;AACF;",
6
+ "names": []
7
+ }
@@ -1,17 +1,17 @@
1
1
  const DEFAULT_FILE_MAX_SIZE = 1e7;
2
2
  const FILE_MAX_SIZE_VALIDATOR = (field) => ({
3
3
  name: "file-max-size-validator",
4
- message: "form.error.file_size",
4
+ message: {
5
+ key: field.type === "file" ? "form.error.file_size" : "form.error.image_size",
6
+ context: {
7
+ maxSizeToMb: (field?.extra?.limit.maxSize || DEFAULT_FILE_MAX_SIZE) / 1e6
8
+ }
9
+ },
5
10
  test: (value) => {
6
- if (field?.extra?.limit && field?.extra?.limit.maxSize && value) {
7
- for (const file of value) {
8
- if (file.size >= field.extra.limit.maxSize) {
9
- return false;
10
- }
11
- }
12
- } else if (value) {
11
+ if (value) {
13
12
  for (const file of value) {
14
- if (file.size >= DEFAULT_FILE_MAX_SIZE) {
13
+ const maxSize = field?.extra?.limit?.maxSize || DEFAULT_FILE_MAX_SIZE;
14
+ if (file.size > maxSize) {
15
15
  return false;
16
16
  }
17
17
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/file.ts"],
4
- "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nconst DEFAULT_FILE_MAX_SIZE = 10000000;\n\nexport const FILE_MAX_SIZE_VALIDATOR = (field: FieldSpec): ValidatorSchema => ({\n name: 'file-max-size-validator',\n message: 'form.error.file_size',\n test: (value: File[]): boolean => {\n if (field?.extra?.limit && field?.extra?.limit.maxSize && value) {\n for (const file of value) {\n if (file.size >= field.extra.limit.maxSize) {\n return false;\n }\n }\n } else if (value) {\n for (const file of value) {\n if (file.size >= DEFAULT_FILE_MAX_SIZE) {\n return false;\n }\n }\n }\n return true;\n },\n});\n"],
5
- "mappings": "AAGA,MAAM,wBAAwB;AAEvB,MAAM,0BAA0B,CAAC,UAAuC;AAAA,EAC7E,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,CAAC,UAA2B;AAChC,QAAI,OAAO,OAAO,SAAS,OAAO,OAAO,MAAM,WAAW,OAAO;AAC/D,iBAAW,QAAQ,OAAO;AACxB,YAAI,KAAK,QAAQ,MAAM,MAAM,MAAM,SAAS;AAC1C,iBAAO;AAAA;AAAA;AAAA,eAGF,OAAO;AAChB,iBAAW,QAAQ,OAAO;AACxB,YAAI,KAAK,QAAQ,uBAAuB;AACtC,iBAAO;AAAA;AAAA;AAAA;AAIb,WAAO;AAAA;AAAA;",
4
+ "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nconst DEFAULT_FILE_MAX_SIZE = 10000000;\n\nexport const FILE_MAX_SIZE_VALIDATOR = (field: FieldSpec): ValidatorSchema => ({\n name: 'file-max-size-validator',\n message: {\n key: field.type === 'file' ? 'form.error.file_size' : 'form.error.image_size',\n context: {\n maxSizeToMb: (field?.extra?.limit.maxSize || DEFAULT_FILE_MAX_SIZE) / 1000000,\n },\n },\n test: (value: File[]): boolean => {\n if (value) {\n for (const file of value) {\n const maxSize = field?.extra?.limit?.maxSize || DEFAULT_FILE_MAX_SIZE\n if (file.size > maxSize) {\n return false;\n }\n }\n }\n return true;\n },\n});\n"],
5
+ "mappings": "AAGA,MAAM,wBAAwB;AAEvB,MAAM,0BAA0B,CAAC,WAAuC;AAAA,EAC7E,MAAM;AAAA,EACN,SAAS;AAAA,IACP,KAAK,MAAM,SAAS,SAAS,yBAAyB;AAAA,IACtD,SAAS;AAAA,MACP,cAAc,OAAO,OAAO,MAAM,WAAW,yBAAyB;AAAA,IACxE;AAAA,EACF;AAAA,EACA,MAAM,CAAC,UAA2B;AAChC,QAAI,OAAO;AACT,iBAAW,QAAQ,OAAO;AACxB,cAAM,UAAU,OAAO,OAAO,OAAO,WAAW;AAChD,YAAI,KAAK,OAAO,SAAS;AACvB,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/iban.ts"],
4
4
  "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\nexport function validateIban(value: string, countryCode: string): boolean {\n value = value.replace(/\\s/g, '').replace(/-/g, '');\n if (value.match(/^[0-9]*$/i)) {\n // this is for greek iban without the country code\n if (value.length !== 25) {\n return false;\n }\n } else {\n value = value.toUpperCase();\n if (countryCode) {\n if (!value.startsWith(countryCode.toUpperCase())) {\n return false;\n }\n if (value.length === ibanCountryCodesLengths[countryCode.toUpperCase()]) {\n return true;\n }\n }\n if (value.length !== 27) {\n // this is for greek iban\n return false;\n }\n }\n return true;\n}\n\nexport const IBAN_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const countryCode = field?.extra?.country;\n return {\n name: 'iban-validator',\n message: 'form.error.iban',\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validateIban(value, countryCode);\n },\n };\n};\n\nconst ibanCountryCodesLengths = {\n AD: 24,\n AT: 20,\n AZ: 28,\n BH: 22,\n BY: 28,\n BE: 16,\n BA: 20,\n BR: 29,\n BG: 22,\n CR: 22,\n HR: 21,\n CY: 28,\n CZ: 24,\n DK: 18,\n DO: 28,\n EG: 29,\n SV: 28,\n EE: 20,\n FO: 18,\n FI: 18,\n FR: 27,\n GE: 22,\n DE: 22,\n GI: 23,\n GR: 27,\n GL: 18,\n GT: 28,\n VA: 22,\n HU: 28,\n IS: 26,\n IQ: 23,\n IE: 22,\n IL: 23,\n IT: 27,\n JO: 30,\n KZ: 20,\n XK: 20,\n KW: 30,\n LV: 21,\n LB: 28,\n LI: 21,\n LT: 20,\n LU: 20,\n MT: 31,\n MR: 27,\n MU: 30,\n MD: 24,\n MC: 27,\n ME: 22,\n NL: 18,\n MK: 19,\n NO: 15,\n PK: 24,\n PS: 29,\n PL: 28,\n PT: 25,\n QA: 29,\n RO: 24,\n LC: 32,\n SM: 27,\n ST: 25,\n SA: 24,\n RS: 22,\n SC: 31,\n SK: 24,\n SI: 19,\n ES: 24,\n SE: 24,\n CH: 21,\n TL: 23,\n TN: 24,\n TR: 26,\n UA: 29,\n AE: 23,\n GB: 22,\n VG: 24,\n};\n"],
5
- "mappings": "AAEO,sBAAsB,OAAe,aAA8B;AACxE,UAAQ,MAAM,QAAQ,OAAO,IAAI,QAAQ,MAAM;AAC/C,MAAI,MAAM,MAAM,cAAc;AAE5B,QAAI,MAAM,WAAW,IAAI;AACvB,aAAO;AAAA;AAAA,SAEJ;AACL,YAAQ,MAAM;AACd,QAAI,aAAa;AACf,UAAI,CAAC,MAAM,WAAW,YAAY,gBAAgB;AAChD,eAAO;AAAA;AAET,UAAI,MAAM,WAAW,wBAAwB,YAAY,gBAAgB;AACvE,eAAO;AAAA;AAAA;AAGX,QAAI,MAAM,WAAW,IAAI;AAEvB,aAAO;AAAA;AAAA;AAGX,SAAO;AAAA;AAGF,MAAM,iBAAiB,CAAC,UAAsC;AACnE,QAAM,cAAc,OAAO,OAAO;AAClC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA;AAET,aAAO,aAAa,OAAO;AAAA;AAAA;AAAA;AAKjC,MAAM,0BAA0B;AAAA,EAC9B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA;",
5
+ "mappings": "AAEO,SAAS,aAAa,OAAe,aAA8B;AACxE,UAAQ,MAAM,QAAQ,OAAO,EAAE,EAAE,QAAQ,MAAM,EAAE;AACjD,MAAI,MAAM,MAAM,WAAW,GAAG;AAE5B,QAAI,MAAM,WAAW,IAAI;AACvB,aAAO;AAAA,IACT;AAAA,EACF,OAAO;AACL,YAAQ,MAAM,YAAY;AAC1B,QAAI,aAAa;AACf,UAAI,CAAC,MAAM,WAAW,YAAY,YAAY,CAAC,GAAG;AAChD,eAAO;AAAA,MACT;AACA,UAAI,MAAM,WAAW,wBAAwB,YAAY,YAAY,CAAC,GAAG;AACvE,eAAO;AAAA,MACT;AAAA,IACF;AACA,QAAI,MAAM,WAAW,IAAI;AAEvB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,iBAAiB,CAAC,UAAsC;AACnE,QAAM,cAAc,OAAO,OAAO;AAClC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA,MACT;AACA,aAAO,aAAa,OAAO,WAAW;AAAA,IACxC;AAAA,EACF;AACF;AAEA,MAAM,0BAA0B;AAAA,EAC9B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;",
6
6
  "names": []
7
7
  }
@@ -8,7 +8,7 @@ function getImageDimensions(file) {
8
8
  reader.onload = (event) => {
9
9
  const img = new Image();
10
10
  img.onload = () => {
11
- resolve({width: img.width, height: img.height});
11
+ resolve({ width: img.width, height: img.height });
12
12
  };
13
13
  img.onerror = reject;
14
14
  const result = event?.target?.result;
@@ -51,7 +51,7 @@ const IMAGE_DIMENSION_VALIDATOR = (field) => ({
51
51
  return true;
52
52
  }
53
53
  const file = value[0];
54
- const {width, height} = await getImageDimensions(file);
54
+ const { width, height } = await getImageDimensions(file);
55
55
  const maxHeight = field?.extra?.limit?.maxHeight || DEFAULT_IMAGE_MAX_HEIGHT_SIZE;
56
56
  const maxWidth = field?.extra?.limit?.maxWidth || DEFAULT_IMAGE_MAX_WIDTH_SIZE;
57
57
  const minHeight = field?.extra?.limit?.minHeight || DEFAULT_IMAGE_MIN_HEIGHT_SIZE;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/image.ts"],
4
4
  "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nconst DEFAULT_IMAGE_MAX_HEIGHT_SIZE = 2000;\nconst DEFAULT_IMAGE_MAX_WIDTH_SIZE = 2000;\nconst DEFAULT_IMAGE_MIN_HEIGHT_SIZE = 100;\nconst DEFAULT_IMAGE_MIN_WIDTH_SIZE = 100;\n\nfunction getImageDimensions(\n file: File\n): Promise<{ width: number; height: number }> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => {\n const img = new Image();\n img.onload = () => {\n resolve({ width: img.width, height: img.height });\n };\n img.onerror = reject;\n const result = event?.target?.result;\n if (result && typeof result === 'string') {\n img.src = result;\n } else {\n reject(new Error('Invalid file format'));\n }\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n}\n\nexport const IMAGE_DIMENSION_VALIDATOR = (\n field: FieldSpec\n): ValidatorSchema => ({\n name: 'image-dimension-validator',\n message: (value: any) => {\n const minHeight =\n field?.extra?.limit?.minHeight || DEFAULT_IMAGE_MIN_HEIGHT_SIZE;\n const minWidth =\n field?.extra?.limit?.minWidth || DEFAULT_IMAGE_MIN_WIDTH_SIZE;\n const maxHeight =\n field?.extra?.limit?.maxHeight || DEFAULT_IMAGE_MAX_HEIGHT_SIZE;\n const maxWidth =\n field?.extra?.limit?.maxWidth || DEFAULT_IMAGE_MAX_WIDTH_SIZE;\n if (!value || value.length === 0) {\n return {\n name: 'image-validator',\n message: 'form.error.required',\n };\n } else {\n return {\n key: 'form.error.image.image_dimension_size',\n context: {\n maxHeight: maxHeight,\n maxWidth: maxWidth,\n minHeight: minHeight,\n minWidth: minWidth,\n },\n };\n }\n },\n test: async (value: File[]): Promise<boolean> => {\n if (!value || value.length === 0) {\n return true;\n }\n const file = value[0];\n const { width, height } = await getImageDimensions(file);\n const maxHeight =\n field?.extra?.limit?.maxHeight || DEFAULT_IMAGE_MAX_HEIGHT_SIZE;\n const maxWidth =\n field?.extra?.limit?.maxWidth || DEFAULT_IMAGE_MAX_WIDTH_SIZE;\n const minHeight =\n field?.extra?.limit?.minHeight || DEFAULT_IMAGE_MIN_HEIGHT_SIZE;\n const minWidth =\n field?.extra?.limit?.minWidth || DEFAULT_IMAGE_MIN_WIDTH_SIZE;\n if (!file) {\n return true;\n }\n try {\n if (height > maxHeight || width > maxWidth) {\n return false;\n }\n if (height < minHeight || width < minWidth) {\n return false;\n }\n return true;\n } catch (error) {\n console.error('Error getting image dimensions:', error);\n return false; // Return false in case of an error.\n }\n },\n});\n"],
5
- "mappings": "AAGA,MAAM,gCAAgC;AACtC,MAAM,+BAA+B;AACrC,MAAM,gCAAgC;AACtC,MAAM,+BAA+B;AAErC,4BACE,MAC4C;AAC5C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,SAAS,IAAI;AACnB,WAAO,SAAS,CAAC,UAAU;AACzB,YAAM,MAAM,IAAI;AAChB,UAAI,SAAS,MAAM;AACjB,gBAAQ,CAAE,OAAO,IAAI,OAAO,QAAQ,IAAI;AAAA;AAE1C,UAAI,UAAU;AACd,YAAM,SAAS,OAAO,QAAQ;AAC9B,UAAI,UAAU,OAAO,WAAW,UAAU;AACxC,YAAI,MAAM;AAAA,aACL;AACL,eAAO,IAAI,MAAM;AAAA;AAAA;AAGrB,WAAO,UAAU;AACjB,WAAO,cAAc;AAAA;AAAA;AAIlB,MAAM,4BAA4B,CACvC,UACqB;AAAA,EACrB,MAAM;AAAA,EACN,SAAS,CAAC,UAAe;AACvB,UAAM,YACJ,OAAO,OAAO,OAAO,aAAa;AACpC,UAAM,WACJ,OAAO,OAAO,OAAO,YAAY;AACnC,UAAM,YACJ,OAAO,OAAO,OAAO,aAAa;AACpC,UAAM,WACJ,OAAO,OAAO,OAAO,YAAY;AACnC,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,aAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA;AAAA,WAEN;AACL,aAAO;AAAA,QACL,KAAK;AAAA,QACL,SAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKR,MAAM,OAAO,UAAoC;AAC/C,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,aAAO;AAAA;AAET,UAAM,OAAO,MAAM;AACnB,UAAM,CAAE,OAAO,UAAW,MAAM,mBAAmB;AACnD,UAAM,YACJ,OAAO,OAAO,OAAO,aAAa;AACpC,UAAM,WACJ,OAAO,OAAO,OAAO,YAAY;AACnC,UAAM,YACJ,OAAO,OAAO,OAAO,aAAa;AACpC,UAAM,WACJ,OAAO,OAAO,OAAO,YAAY;AACnC,QAAI,CAAC,MAAM;AACT,aAAO;AAAA;AAET,QAAI;AACF,UAAI,SAAS,aAAa,QAAQ,UAAU;AAC1C,eAAO;AAAA;AAET,UAAI,SAAS,aAAa,QAAQ,UAAU;AAC1C,eAAO;AAAA;AAET,aAAO;AAAA,aACA,OAAP;AACA,cAAQ,MAAM,mCAAmC;AACjD,aAAO;AAAA;AAAA;AAAA;",
5
+ "mappings": "AAGA,MAAM,gCAAgC;AACtC,MAAM,+BAA+B;AACrC,MAAM,gCAAgC;AACtC,MAAM,+BAA+B;AAErC,SAAS,mBACP,MAC4C;AAC5C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,SAAS,IAAI,WAAW;AAC9B,WAAO,SAAS,CAAC,UAAU;AACzB,YAAM,MAAM,IAAI,MAAM;AACtB,UAAI,SAAS,MAAM;AACjB,gBAAQ,EAAE,OAAO,IAAI,OAAO,QAAQ,IAAI,OAAO,CAAC;AAAA,MAClD;AACA,UAAI,UAAU;AACd,YAAM,SAAS,OAAO,QAAQ;AAC9B,UAAI,UAAU,OAAO,WAAW,UAAU;AACxC,YAAI,MAAM;AAAA,MACZ,OAAO;AACL,eAAO,IAAI,MAAM,qBAAqB,CAAC;AAAA,MACzC;AAAA,IACF;AACA,WAAO,UAAU;AACjB,WAAO,cAAc,IAAI;AAAA,EAC3B,CAAC;AACH;AAEO,MAAM,4BAA4B,CACvC,WACqB;AAAA,EACrB,MAAM;AAAA,EACN,SAAS,CAAC,UAAe;AACvB,UAAM,YACJ,OAAO,OAAO,OAAO,aAAa;AACpC,UAAM,WACJ,OAAO,OAAO,OAAO,YAAY;AACnC,UAAM,YACJ,OAAO,OAAO,OAAO,aAAa;AACpC,UAAM,WACJ,OAAO,OAAO,OAAO,YAAY;AACnC,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,aAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF,OAAO;AACL,aAAO;AAAA,QACL,KAAK;AAAA,QACL,SAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM,OAAO,UAAoC;AAC/C,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,aAAO;AAAA,IACT;AACA,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,EAAE,OAAO,OAAO,IAAI,MAAM,mBAAmB,IAAI;AACvD,UAAM,YACJ,OAAO,OAAO,OAAO,aAAa;AACpC,UAAM,WACJ,OAAO,OAAO,OAAO,YAAY;AACnC,UAAM,YACJ,OAAO,OAAO,OAAO,aAAa;AACpC,UAAM,WACJ,OAAO,OAAO,OAAO,YAAY;AACnC,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,QAAI;AACF,UAAI,SAAS,aAAa,QAAQ,UAAU;AAC1C,eAAO;AAAA,MACT;AACA,UAAI,SAAS,aAAa,QAAQ,UAAU;AAC1C,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,SAAS,OAAO;AACd,cAAQ,MAAM,mCAAmC,KAAK;AACtD,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -10,6 +10,7 @@ export * from '@digigov/form/validators/utils/phone';
10
10
  export * from '@digigov/form/validators/utils/postal_code';
11
11
  export * from '@digigov/form/validators/utils/uuid4';
12
12
  export * from '@digigov/form/validators/utils/text_limit';
13
+ export * from '@digigov/form/validators/utils/date';
13
14
  export declare function getYupField(field: FieldSpec, yupTypeMap: Record<string, any>): any;
14
15
  export declare function computeShape(fields: FieldSpec[], yupTypeMap: Record<string, ValidatorSchema>, validatorRegistry: Record<string, ValidatorSchema[]> | undefined): {};
15
16
  export declare function getYupObjectShape(fields: FieldSpec[] | any, yupTypeMap: Record<string, any>, validatorRegistry?: Record<string, ValidatorSchema[]>): yup.ObjectSchema<{
@@ -8,6 +8,7 @@ export * from "@digigov/form/validators/utils/phone";
8
8
  export * from "@digigov/form/validators/utils/postal_code";
9
9
  export * from "@digigov/form/validators/utils/uuid4";
10
10
  export * from "@digigov/form/validators/utils/text_limit";
11
+ export * from "@digigov/form/validators/utils/date";
11
12
  function getYupField(field, yupTypeMap) {
12
13
  const yupField = yupTypeMap[field?.type || "string"] || yupTypeMap["string"];
13
14
  return yupField(field);
@@ -65,7 +66,11 @@ function computeShape(fields, yupTypeMap, validatorRegistry) {
65
66
  fieldSchemas[field.key] = yupField;
66
67
  });
67
68
  for (const objectKey in objectFields) {
68
- fieldSchemas[objectKey] = getYupObjectShape(objectFields[objectKey], yupTypeMap, validatorRegistry);
69
+ fieldSchemas[objectKey] = getYupObjectShape(
70
+ objectFields[objectKey],
71
+ yupTypeMap,
72
+ validatorRegistry
73
+ );
69
74
  }
70
75
  return fieldSchemas;
71
76
  }
@@ -75,7 +80,11 @@ function getYupObjectShape(fields, yupTypeMap, validatorRegistry) {
75
80
  return yup.object().shape(fieldSchemas);
76
81
  }
77
82
  return yup.lazy(function() {
78
- const fieldSchemas = computeShape(Object.values(fields.current), yupTypeMap, validatorRegistry);
83
+ const fieldSchemas = computeShape(
84
+ Object.values(fields.current),
85
+ yupTypeMap,
86
+ validatorRegistry
87
+ );
79
88
  return yup.object().shape(fieldSchemas);
80
89
  });
81
90
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/index.ts"],
4
- "sourcesContent": ["import * as yup from 'yup';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport * from '@digigov/form/validators/utils/afm';\nexport * from '@digigov/form/validators/utils/file';\nexport * from '@digigov/form/validators/utils/iban';\nexport * from '@digigov/form/validators/utils/otp';\nexport * from '@digigov/form/validators/utils/image';\nexport * from '@digigov/form/validators/utils/phone';\nexport * from '@digigov/form/validators/utils/postal_code';\nexport * from '@digigov/form/validators/utils/uuid4';\nexport * from '@digigov/form/validators/utils/text_limit';\n\nexport function getYupField(field: FieldSpec, yupTypeMap: Record<string, any>) {\n const yupField = yupTypeMap[field?.type || 'string'] || yupTypeMap['string'];\n return yupField(field);\n}\nexport function computeShape(\n fields: FieldSpec[],\n yupTypeMap: Record<string, ValidatorSchema>,\n validatorRegistry: Record<string, ValidatorSchema[]> | undefined\n) {\n const fieldSchemas = {};\n const objectFields: Record<string, FieldSpec[]> = {};\n fields.forEach((field) => {\n let yupField = getYupField(field, yupTypeMap);\n if (field.condition) {\n for (const key in field.condition) {\n let then: any, otherwise: any;\n if (field.condition[key].then) {\n if (field.condition[key].then?.required === false) {\n then = yupField.nullable();\n } else if (field.condition[key].then?.required === true) {\n then = yupField.nullable().required('form.error.required');\n }\n }\n if (field.condition[key].else) {\n if (field.condition[key].else?.required === false) {\n otherwise = yupField.nullable();\n } else if (field.condition[key].else?.required === true) {\n otherwise = yupField.nullable().required('form.error.required');\n }\n }\n if (then || otherwise) {\n yupField = yupField.when(key, {\n is: (val) => {\n //@ts-ignore\n const is = field.condition[key].is;\n if (is === val || (Array.isArray(val) && val.includes(is))) {\n return true;\n } else {\n return false;\n }\n },\n then,\n otherwise,\n });\n }\n }\n } else if (field.required) {\n yupField = yupField.nullable().required('form.error.required');\n }\n if (validatorRegistry && field.type && validatorRegistry[field.type]) {\n validatorRegistry[field.type].forEach((validator: any) => {\n yupField = yupField.test(validator);\n });\n }\n if (field.validators) {\n field.validators.forEach((validator) => {\n yupField = yupField.test(validator);\n });\n }\n fieldSchemas[field.key] = yupField;\n });\n for (const objectKey in objectFields) {\n fieldSchemas[objectKey] = getYupObjectShape(\n objectFields[objectKey],\n yupTypeMap,\n validatorRegistry\n );\n }\n return fieldSchemas;\n}\n\nexport function getYupObjectShape(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fields: FieldSpec[] | any,\n yupTypeMap: Record<string, any>,\n validatorRegistry?: Record<string, ValidatorSchema[]>\n) {\n if (!fields.current) {\n const fieldSchemas = computeShape(fields, yupTypeMap, validatorRegistry);\n return yup.object().shape(fieldSchemas);\n }\n\n return yup.lazy(function () {\n const fieldSchemas = computeShape(\n Object.values(fields.current),\n yupTypeMap,\n validatorRegistry\n );\n return yup.object().shape(fieldSchemas);\n });\n}\n"],
5
- "mappings": "AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,qBAAqB,OAAkB,YAAiC;AAC7E,QAAM,WAAW,WAAW,OAAO,QAAQ,aAAa,WAAW;AACnE,SAAO,SAAS;AAAA;AAEX,sBACL,QACA,YACA,mBACA;AACA,QAAM,eAAe;AACrB,QAAM,eAA4C;AAClD,SAAO,QAAQ,CAAC,UAAU;AACxB,QAAI,WAAW,YAAY,OAAO;AAClC,QAAI,MAAM,WAAW;AACnB,iBAAW,OAAO,MAAM,WAAW;AACjC,YAAI,MAAW;AACf,YAAI,MAAM,UAAU,KAAK,MAAM;AAC7B,cAAI,MAAM,UAAU,KAAK,MAAM,aAAa,OAAO;AACjD,mBAAO,SAAS;AAAA,qBACP,MAAM,UAAU,KAAK,MAAM,aAAa,MAAM;AACvD,mBAAO,SAAS,WAAW,SAAS;AAAA;AAAA;AAGxC,YAAI,MAAM,UAAU,KAAK,MAAM;AAC7B,cAAI,MAAM,UAAU,KAAK,MAAM,aAAa,OAAO;AACjD,wBAAY,SAAS;AAAA,qBACZ,MAAM,UAAU,KAAK,MAAM,aAAa,MAAM;AACvD,wBAAY,SAAS,WAAW,SAAS;AAAA;AAAA;AAG7C,YAAI,QAAQ,WAAW;AACrB,qBAAW,SAAS,KAAK,KAAK;AAAA,YAC5B,IAAI,CAAC,QAAQ;AAEX,oBAAM,KAAK,MAAM,UAAU,KAAK;AAChC,kBAAI,OAAO,OAAQ,MAAM,QAAQ,QAAQ,IAAI,SAAS,KAAM;AAC1D,uBAAO;AAAA,qBACF;AACL,uBAAO;AAAA;AAAA;AAAA,YAGX;AAAA,YACA;AAAA;AAAA;AAAA;AAAA,eAIG,MAAM,UAAU;AACzB,iBAAW,SAAS,WAAW,SAAS;AAAA;AAE1C,QAAI,qBAAqB,MAAM,QAAQ,kBAAkB,MAAM,OAAO;AACpE,wBAAkB,MAAM,MAAM,QAAQ,CAAC,cAAmB;AACxD,mBAAW,SAAS,KAAK;AAAA;AAAA;AAG7B,QAAI,MAAM,YAAY;AACpB,YAAM,WAAW,QAAQ,CAAC,cAAc;AACtC,mBAAW,SAAS,KAAK;AAAA;AAAA;AAG7B,iBAAa,MAAM,OAAO;AAAA;AAE5B,aAAW,aAAa,cAAc;AACpC,iBAAa,aAAa,kBACxB,aAAa,YACb,YACA;AAAA;AAGJ,SAAO;AAAA;AAGF,2BAEL,QACA,YACA,mBACA;AACA,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,eAAe,aAAa,QAAQ,YAAY;AACtD,WAAO,IAAI,SAAS,MAAM;AAAA;AAG5B,SAAO,IAAI,KAAK,WAAY;AAC1B,UAAM,eAAe,aACnB,OAAO,OAAO,OAAO,UACrB,YACA;AAEF,WAAO,IAAI,SAAS,MAAM;AAAA;AAAA;",
4
+ "sourcesContent": ["import * as yup from 'yup';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport * from '@digigov/form/validators/utils/afm';\nexport * from '@digigov/form/validators/utils/file';\nexport * from '@digigov/form/validators/utils/iban';\nexport * from '@digigov/form/validators/utils/otp';\nexport * from '@digigov/form/validators/utils/image';\nexport * from '@digigov/form/validators/utils/phone';\nexport * from '@digigov/form/validators/utils/postal_code';\nexport * from '@digigov/form/validators/utils/uuid4';\nexport * from '@digigov/form/validators/utils/text_limit';\nexport * from '@digigov/form/validators/utils/date';\n\nexport function getYupField(field: FieldSpec, yupTypeMap: Record<string, any>) {\n const yupField = yupTypeMap[field?.type || 'string'] || yupTypeMap['string'];\n return yupField(field);\n}\nexport function computeShape(\n fields: FieldSpec[],\n yupTypeMap: Record<string, ValidatorSchema>,\n validatorRegistry: Record<string, ValidatorSchema[]> | undefined\n) {\n const fieldSchemas = {};\n const objectFields: Record<string, FieldSpec[]> = {};\n fields.forEach((field) => {\n let yupField = getYupField(field, yupTypeMap);\n if (field.condition) {\n for (const key in field.condition) {\n let then: any, otherwise: any;\n if (field.condition[key].then) {\n if (field.condition[key].then?.required === false) {\n then = yupField.nullable();\n } else if (field.condition[key].then?.required === true) {\n then = yupField.nullable().required('form.error.required');\n }\n }\n if (field.condition[key].else) {\n if (field.condition[key].else?.required === false) {\n otherwise = yupField.nullable();\n } else if (field.condition[key].else?.required === true) {\n otherwise = yupField.nullable().required('form.error.required');\n }\n }\n if (then || otherwise) {\n yupField = yupField.when(key, {\n is: (val) => {\n //@ts-ignore\n const is = field.condition[key].is;\n if (is === val || (Array.isArray(val) && val.includes(is))) {\n return true;\n } else {\n return false;\n }\n },\n then,\n otherwise,\n });\n }\n }\n } else if (field.required) {\n yupField = yupField.nullable().required('form.error.required');\n }\n if (validatorRegistry && field.type && validatorRegistry[field.type]) {\n validatorRegistry[field.type].forEach((validator: any) => {\n yupField = yupField.test(validator);\n });\n }\n if (field.validators) {\n field.validators.forEach((validator) => {\n yupField = yupField.test(validator);\n });\n }\n fieldSchemas[field.key] = yupField;\n });\n for (const objectKey in objectFields) {\n fieldSchemas[objectKey] = getYupObjectShape(\n objectFields[objectKey],\n yupTypeMap,\n validatorRegistry\n );\n }\n return fieldSchemas;\n}\n\nexport function getYupObjectShape(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fields: FieldSpec[] | any,\n yupTypeMap: Record<string, any>,\n validatorRegistry?: Record<string, ValidatorSchema[]>\n) {\n if (!fields.current) {\n const fieldSchemas = computeShape(fields, yupTypeMap, validatorRegistry);\n return yup.object().shape(fieldSchemas);\n }\n\n return yup.lazy(function () {\n const fieldSchemas = computeShape(\n Object.values(fields.current),\n yupTypeMap,\n validatorRegistry\n );\n return yup.object().shape(fieldSchemas);\n });\n}\n"],
5
+ "mappings": "AAAA,YAAY,SAAS;AAIrB,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEP,SAAS,YAAY,OAAkB,YAAiC;AAC7E,QAAM,WAAW,WAAW,OAAO,QAAQ,QAAQ,KAAK,WAAW,QAAQ;AAC3E,SAAO,SAAS,KAAK;AACvB;AACO,SAAS,aACd,QACA,YACA,mBACA;AACA,QAAM,eAAe,CAAC;AACtB,QAAM,eAA4C,CAAC;AACnD,SAAO,QAAQ,CAAC,UAAU;AACxB,QAAI,WAAW,YAAY,OAAO,UAAU;AAC5C,QAAI,MAAM,WAAW;AACnB,iBAAW,OAAO,MAAM,WAAW;AACjC,YAAI,MAAW;AACf,YAAI,MAAM,UAAU,GAAG,EAAE,MAAM;AAC7B,cAAI,MAAM,UAAU,GAAG,EAAE,MAAM,aAAa,OAAO;AACjD,mBAAO,SAAS,SAAS;AAAA,UAC3B,WAAW,MAAM,UAAU,GAAG,EAAE,MAAM,aAAa,MAAM;AACvD,mBAAO,SAAS,SAAS,EAAE,SAAS,qBAAqB;AAAA,UAC3D;AAAA,QACF;AACA,YAAI,MAAM,UAAU,GAAG,EAAE,MAAM;AAC7B,cAAI,MAAM,UAAU,GAAG,EAAE,MAAM,aAAa,OAAO;AACjD,wBAAY,SAAS,SAAS;AAAA,UAChC,WAAW,MAAM,UAAU,GAAG,EAAE,MAAM,aAAa,MAAM;AACvD,wBAAY,SAAS,SAAS,EAAE,SAAS,qBAAqB;AAAA,UAChE;AAAA,QACF;AACA,YAAI,QAAQ,WAAW;AACrB,qBAAW,SAAS,KAAK,KAAK;AAAA,YAC5B,IAAI,CAAC,QAAQ;AAEX,oBAAM,KAAK,MAAM,UAAU,GAAG,EAAE;AAChC,kBAAI,OAAO,OAAQ,MAAM,QAAQ,GAAG,KAAK,IAAI,SAAS,EAAE,GAAI;AAC1D,uBAAO;AAAA,cACT,OAAO;AACL,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,WAAW,MAAM,UAAU;AACzB,iBAAW,SAAS,SAAS,EAAE,SAAS,qBAAqB;AAAA,IAC/D;AACA,QAAI,qBAAqB,MAAM,QAAQ,kBAAkB,MAAM,IAAI,GAAG;AACpE,wBAAkB,MAAM,IAAI,EAAE,QAAQ,CAAC,cAAmB;AACxD,mBAAW,SAAS,KAAK,SAAS;AAAA,MACpC,CAAC;AAAA,IACH;AACA,QAAI,MAAM,YAAY;AACpB,YAAM,WAAW,QAAQ,CAAC,cAAc;AACtC,mBAAW,SAAS,KAAK,SAAS;AAAA,MACpC,CAAC;AAAA,IACH;AACA,iBAAa,MAAM,GAAG,IAAI;AAAA,EAC5B,CAAC;AACD,aAAW,aAAa,cAAc;AACpC,iBAAa,SAAS,IAAI;AAAA,MACxB,aAAa,SAAS;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,kBAEd,QACA,YACA,mBACA;AACA,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,eAAe,aAAa,QAAQ,YAAY,iBAAiB;AACvE,WAAO,IAAI,OAAO,EAAE,MAAM,YAAY;AAAA,EACxC;AAEA,SAAO,IAAI,KAAK,WAAY;AAC1B,UAAM,eAAe;AAAA,MACnB,OAAO,OAAO,OAAO,OAAO;AAAA,MAC5B;AAAA,MACA;AAAA,IACF;AACA,WAAO,IAAI,OAAO,EAAE,MAAM,YAAY;AAAA,EACxC,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/int.ts"],
4
4
  "sourcesContent": ["import { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport function validateIntNumber(number: number): boolean {\n if (number === undefined) {\n return false;\n } else {\n return Number.isInteger(number) && Number(number) > 0;\n }\n}\n\nexport const INT_VALIDATOR = (): ValidatorSchema => {\n return {\n name: 'int-validator',\n message: 'form.error.positive_integer_number',\n test: (value: number): boolean => {\n if (value === null) {\n return true;\n }\n return validateIntNumber(value);\n },\n };\n};\n"],
5
- "mappings": "AAEO,2BAA2B,QAAyB;AACzD,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,SACF;AACL,WAAO,OAAO,UAAU,WAAW,OAAO,UAAU;AAAA;AAAA;AAIjD,MAAM,gBAAgB,MAAuB;AAClD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA;AAET,aAAO,kBAAkB;AAAA;AAAA;AAAA;",
5
+ "mappings": "AAEO,SAAS,kBAAkB,QAAyB;AACzD,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,EACT,OAAO;AACL,WAAO,OAAO,UAAU,MAAM,KAAK,OAAO,MAAM,IAAI;AAAA,EACtD;AACF;AAEO,MAAM,gBAAgB,MAAuB;AAClD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA,MACT;AACA,aAAO,kBAAkB,KAAK;AAAA,IAChC;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/number.ts"],
4
4
  "sourcesContent": ["import { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport function validateNumber(number: number): boolean {\n return !Number.isNaN(number);\n}\n\nexport const NUMBER_VALIDATOR = (): ValidatorSchema => {\n return {\n name: 'number-validator',\n message: 'form.error.number',\n test: (value: number): boolean => {\n if (value === null) {\n return true;\n }\n return validateNumber(value);\n },\n };\n};\n"],
5
- "mappings": "AAEO,wBAAwB,QAAyB;AACtD,SAAO,CAAC,OAAO,MAAM;AAAA;AAGhB,MAAM,mBAAmB,MAAuB;AACrD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA;AAET,aAAO,eAAe;AAAA;AAAA;AAAA;",
5
+ "mappings": "AAEO,SAAS,eAAe,QAAyB;AACtD,SAAO,CAAC,OAAO,MAAM,MAAM;AAC7B;AAEO,MAAM,mBAAmB,MAAuB;AACrD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA,MACT;AACA,aAAO,eAAe,KAAK;AAAA,IAC7B;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/otp.ts"],
4
4
  "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\nexport function validateOtp(value: string, maxLength: number): boolean {\n if (value.length === maxLength) {\n return true;\n } else {\n return false;\n }\n}\n\nexport const OTP_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const maxLength = field?.maxLength;\n return {\n name: 'otp-validator',\n message: {\n key: 'form.error.otp.less_than',\n context: {\n maxLength: field?.maxLength,\n },\n },\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validateOtp(value, maxLength as number);\n },\n };\n};\n"],
5
- "mappings": "AAEO,qBAAqB,OAAe,WAA4B;AACrE,MAAI,MAAM,WAAW,WAAW;AAC9B,WAAO;AAAA,SACF;AACL,WAAO;AAAA;AAAA;AAIJ,MAAM,gBAAgB,CAAC,UAAsC;AAClE,QAAM,YAAY,OAAO;AACzB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,QACP,WAAW,OAAO;AAAA;AAAA;AAAA,IAGtB,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA;AAET,aAAO,YAAY,OAAO;AAAA;AAAA;AAAA;",
5
+ "mappings": "AAEO,SAAS,YAAY,OAAe,WAA4B;AACrE,MAAI,MAAM,WAAW,WAAW;AAC9B,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAEO,MAAM,gBAAgB,CAAC,UAAsC;AAClE,QAAM,YAAY,OAAO;AACzB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,QACP,WAAW,OAAO;AAAA,MACpB;AAAA,IACF;AAAA,IACA,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA,MACT;AACA,aAAO,YAAY,OAAO,SAAmB;AAAA,IAC/C;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -83,7 +83,10 @@ function discoverPhoneType(phoneNumber, config) {
83
83
  "premium-rate": config.premiumRate
84
84
  };
85
85
  for (const [categoryName, categoryDetails] of Object.entries(categories)) {
86
- const pattern = new RegExp("^(" + categoryDetails.nationalNumberPattern.replace(/\s/g, "") + ")$", "");
86
+ const pattern = new RegExp(
87
+ "^(" + categoryDetails.nationalNumberPattern.replace(/\s/g, "") + ")$",
88
+ ""
89
+ );
87
90
  if (cleanNumber.match(pattern)) {
88
91
  return categoryName;
89
92
  }
@@ -118,7 +121,11 @@ function validatePhoneNumber(phoneNumber, countries = ["gr"], typeOfPhoneNumber)
118
121
  if (!countries || countries.length === 0) {
119
122
  return true;
120
123
  }
121
- return isPhoneNumberValid(phoneNumber, countries, typeOfPhoneNumber ? [typeOfPhoneNumber] : void 0);
124
+ return isPhoneNumberValid(
125
+ phoneNumber,
126
+ countries,
127
+ typeOfPhoneNumber ? [typeOfPhoneNumber] : void 0
128
+ );
122
129
  }
123
130
  function validateMobile(value) {
124
131
  return isNumberOfType(value, "gr", "mobile");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/phone.ts"],
4
- "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport type PhoneNumberType = 'landline' | 'mobile' | null;\n// add more countries from here libphonenumber-js/metadata.full.json\nconst countryPhoneData = {\n \"GR\": [\n \"30\",\n \"00\",\n \"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",\n [10, 11, 12],\n [\n [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"21|7\"]],\n [\n \"(\\\\d{4})(\\\\d{6})\",\n \"$1 $2\",\n [\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]\n ],\n [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2689]\"]],\n [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\", \"$1 $2 $3\", [\"8\"]]\n ],\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n [\n [\n \"2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}\",\n [10]\n ],\n [\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\", [10]],\n [\"800\\\\d{7,9}\"],\n [\"90[19]\\\\d{7}\", [10]],\n [\"70\\\\d{8}\", [10]],\n 0,\n [\"5005000\\\\d{3}\", [10]],\n 0,\n 0,\n [\"8(?:0[16]|12|[27]5|50)\\\\d{7}\", [10]]\n ]\n ]\n}\n\nfunction expandPhoneNumberStructure(compressed) {\n const countries = Object.keys(compressed);\n const expanded: any = {}\n for (const country of countries) {\n expanded[country] = {\n fixedLine: {\n possibleLengths: {\n _national:\n compressed[country][3].map(\n String\n ),\n },\n nationalNumberPattern:\n compressed[country][11][0][0],\n },\n mobile: {\n nationalNumberPattern:\n compressed[country][11][1][0],\n },\n tollFree: {\n nationalNumberPattern:\n compressed[country][11][2][0],\n },\n premiumRate: {\n nationalNumberPattern:\n compressed[country][11][3][0],\n },\n sharedCost: {\n nationalNumberPattern:\n compressed[country][11][9][0],\n },\n personalNumber: {\n nationalNumberPattern:\n compressed[country][11][4][0],\n },\n uan: {\n nationalNumberPattern:\n compressed[country][11][6][0],\n },\n id: country,\n countryCode:\n compressed[country][0],\n internationalPrefix:\n compressed[country][1],\n\n }\n }\n return expanded;\n}\nconst PHONENUMBER_SPEC = expandPhoneNumberStructure(countryPhoneData);\nexport function discoverPhoneType(\n phoneNumber: string,\n config: any\n): string {\n const cleanNumber = phoneNumber\n .replace(/\\D/g, \"\")\n .replace(/\\s/g, \"\")\n .replace(/^\\+/, \"\")\n .replace(new RegExp(\"^\" + config.internationalPrefix, \"\"), \"\")\n .replace(new RegExp(\"^\" + config.countryCode, \"\"), \"\");\n const categories = {\n \"landline\": config.fixedLine,\n mobile: config.mobile,\n \"toll-free\": config.tollFree,\n \"premium-rate\": config.premiumRate,\n };\n\n for (const [categoryName, categoryDetails] of Object.entries(categories)) {\n const pattern = new RegExp(\n \"^(\" + categoryDetails.nationalNumberPattern.replace(/\\s/g, \"\") + \")$\",\n \"\"\n );\n if (cleanNumber.match(pattern)) {\n return categoryName; // Returns the category name if the number matches the pattern\n }\n }\n\n // If no category matches, return 'Unknown'\n return \"unknown\";\n}\nfunction getNumberType(phoneNumber: string, country: string) {\n const spec = PHONENUMBER_SPEC[country.toUpperCase()];\n if(!spec) {\n throw new Error(`Country ${country} is not supported`);\n }\n const type = discoverPhoneType(phoneNumber, spec);\n return type;\n}\n\nfunction isPhoneNumberValid(phoneNumber: string, countries: string[], types=['mobile', 'landline']) {\n return countries.some((country) => {\n const numberType = getNumberType(phoneNumber, country);\n if (numberType && types.includes(numberType)) {\n return true\n }\n return false\n })\n}\nfunction isNumberOfType(phoneNumber: string, country: string, type: string) {\n const numberType = getNumberType(phoneNumber, country);\n if (numberType === type) {\n return true\n }\n return false\n}\nexport function validatePhoneNumber(\n phoneNumber: string,\n countries: Array<string> = ['gr'],\n typeOfPhoneNumber?: PhoneNumberType\n): boolean {\n if (!countries || countries.length === 0) {\n return true;\n }\n return isPhoneNumberValid(phoneNumber, countries, typeOfPhoneNumber? [typeOfPhoneNumber] : undefined);\n}\n\n\nfunction validateMobile(value): boolean {\n return isNumberOfType(value, 'gr','mobile');\n}\n\nexport const MOBILE_PHONE_VALIDATOR = {\n name: 'mobile-phone-validator',\n message: 'form.error.mobile_phone',\n test: (value): boolean => {\n if (value) {\n return validateMobile(value);\n }\n return true;\n },\n};\n\nexport const PHONE_NUMBER_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const countryCodes = field?.extra?.countries;\n const typeOfPhone: PhoneNumberType | null = field?.extra?.phoneType;\n return {\n name: 'phone-number-validator',\n message: (): string => {\n if (typeOfPhone === 'mobile') {\n return 'form.error.mobile_phone';\n }\n if (typeOfPhone === 'landline') {\n return 'form.error.landline';\n } else {\n return 'form.error.phone_number';\n }\n },\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validatePhoneNumber(value, countryCodes, typeOfPhone);\n },\n };\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport type PhoneNumberType = 'landline' | 'mobile' | null;\n// add more countries from here libphonenumber-js/metadata.full.json\nconst countryPhoneData = {\n GR: [\n '30',\n '00',\n '5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}',\n [10, 11, 12],\n [\n ['(\\\\d{2})(\\\\d{4})(\\\\d{4})', '$1 $2 $3', ['21|7']],\n [\n '(\\\\d{4})(\\\\d{6})',\n '$1 $2',\n ['2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5'],\n ],\n ['(\\\\d{3})(\\\\d{3})(\\\\d{4})', '$1 $2 $3', ['[2689]']],\n ['(\\\\d{3})(\\\\d{3,4})(\\\\d{5})', '$1 $2 $3', ['8']],\n ],\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n [\n [\n '2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}',\n [10],\n ],\n ['68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}', [10]],\n ['800\\\\d{7,9}'],\n ['90[19]\\\\d{7}', [10]],\n ['70\\\\d{8}', [10]],\n 0,\n ['5005000\\\\d{3}', [10]],\n 0,\n 0,\n ['8(?:0[16]|12|[27]5|50)\\\\d{7}', [10]],\n ],\n ],\n};\n\nfunction expandPhoneNumberStructure(compressed) {\n const countries = Object.keys(compressed);\n const expanded: any = {};\n for (const country of countries) {\n expanded[country] = {\n fixedLine: {\n possibleLengths: {\n _national: compressed[country][3].map(String),\n },\n nationalNumberPattern: compressed[country][11][0][0],\n },\n mobile: {\n nationalNumberPattern: compressed[country][11][1][0],\n },\n tollFree: {\n nationalNumberPattern: compressed[country][11][2][0],\n },\n premiumRate: {\n nationalNumberPattern: compressed[country][11][3][0],\n },\n sharedCost: {\n nationalNumberPattern: compressed[country][11][9][0],\n },\n personalNumber: {\n nationalNumberPattern: compressed[country][11][4][0],\n },\n uan: {\n nationalNumberPattern: compressed[country][11][6][0],\n },\n id: country,\n countryCode: compressed[country][0],\n internationalPrefix: compressed[country][1],\n };\n }\n return expanded;\n}\nconst PHONENUMBER_SPEC = expandPhoneNumberStructure(countryPhoneData);\nexport function discoverPhoneType(phoneNumber: string, config: any): string {\n const cleanNumber = phoneNumber\n .replace(/\\D/g, '')\n .replace(/\\s/g, '')\n .replace(/^\\+/, '')\n .replace(new RegExp('^' + config.internationalPrefix, ''), '')\n .replace(new RegExp('^' + config.countryCode, ''), '');\n const categories = {\n landline: config.fixedLine,\n mobile: config.mobile,\n 'toll-free': config.tollFree,\n 'premium-rate': config.premiumRate,\n };\n\n for (const [categoryName, categoryDetails] of Object.entries(categories)) {\n const pattern = new RegExp(\n '^(' + categoryDetails.nationalNumberPattern.replace(/\\s/g, '') + ')$',\n ''\n );\n if (cleanNumber.match(pattern)) {\n return categoryName; // Returns the category name if the number matches the pattern\n }\n }\n\n // If no category matches, return 'Unknown'\n return 'unknown';\n}\nfunction getNumberType(phoneNumber: string, country: string) {\n const spec = PHONENUMBER_SPEC[country.toUpperCase()];\n if (!spec) {\n throw new Error(`Country ${country} is not supported`);\n }\n const type = discoverPhoneType(phoneNumber, spec);\n return type;\n}\n\nfunction isPhoneNumberValid(\n phoneNumber: string,\n countries: string[],\n types = ['mobile', 'landline']\n) {\n return countries.some((country) => {\n const numberType = getNumberType(phoneNumber, country);\n if (numberType && types.includes(numberType)) {\n return true;\n }\n return false;\n });\n}\nfunction isNumberOfType(phoneNumber: string, country: string, type: string) {\n const numberType = getNumberType(phoneNumber, country);\n if (numberType === type) {\n return true;\n }\n return false;\n}\nexport function validatePhoneNumber(\n phoneNumber: string,\n countries: Array<string> = ['gr'],\n typeOfPhoneNumber?: PhoneNumberType\n): boolean {\n if (!countries || countries.length === 0) {\n return true;\n }\n return isPhoneNumberValid(\n phoneNumber,\n countries,\n typeOfPhoneNumber ? [typeOfPhoneNumber] : undefined\n );\n}\n\nfunction validateMobile(value): boolean {\n return isNumberOfType(value, 'gr', 'mobile');\n}\n\nexport const MOBILE_PHONE_VALIDATOR = {\n name: 'mobile-phone-validator',\n message: 'form.error.mobile_phone',\n test: (value): boolean => {\n if (value) {\n return validateMobile(value);\n }\n return true;\n },\n};\n\nexport const PHONE_NUMBER_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const countryCodes = field?.extra?.countries;\n const typeOfPhone: PhoneNumberType | null = field?.extra?.phoneType;\n return {\n name: 'phone-number-validator',\n message: (): string => {\n if (typeOfPhone === 'mobile') {\n return 'form.error.mobile_phone';\n }\n if (typeOfPhone === 'landline') {\n return 'form.error.landline';\n } else {\n return 'form.error.phone_number';\n }\n },\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validatePhoneNumber(value, countryCodes, typeOfPhone);\n },\n };\n};\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/postal_code.ts"],
4
4
  "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nconst CODE_REGEX = /^[12345678][0-9]{4}$/;\nexport function validatePostalCode(\n number: string,\n countries: Array<string>\n): boolean {\n if (!countries) {\n return false;\n } else {\n if (countries.length === 1 && countries[0].toUpperCase() === 'GR') {\n // Greek postal code must be 5 digits long and shouldn't start with 0 or 9.\n return CODE_REGEX.test(number);\n } else {\n return true;\n }\n }\n}\n\nexport const POSTALCODE_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const countryCode = field?.extra?.countries;\n return {\n name: 'postal-code-validator',\n message: 'form.error.postalCode',\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validatePostalCode(value, countryCode);\n },\n };\n};\n"],
5
- "mappings": "AAGA,MAAM,aAAa;AACZ,4BACL,QACA,WACS;AACT,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,SACF;AACL,QAAI,UAAU,WAAW,KAAK,UAAU,GAAG,kBAAkB,MAAM;AAEjE,aAAO,WAAW,KAAK;AAAA,WAClB;AACL,aAAO;AAAA;AAAA;AAAA;AAKN,MAAM,uBAAuB,CAAC,UAAsC;AACzE,QAAM,cAAc,OAAO,OAAO;AAClC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA;AAET,aAAO,mBAAmB,OAAO;AAAA;AAAA;AAAA;",
5
+ "mappings": "AAGA,MAAM,aAAa;AACZ,SAAS,mBACd,QACA,WACS;AACT,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT,OAAO;AACL,QAAI,UAAU,WAAW,KAAK,UAAU,CAAC,EAAE,YAAY,MAAM,MAAM;AAEjE,aAAO,WAAW,KAAK,MAAM;AAAA,IAC/B,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,uBAAuB,CAAC,UAAsC;AACzE,QAAM,cAAc,OAAO,OAAO;AAClC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA,MACT;AACA,aAAO,mBAAmB,OAAO,WAAW;AAAA,IAC9C;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -19,13 +19,13 @@ const TEXT_LIMIT_VALIDATOR = (field) => {
19
19
  if (v.value.length < min) {
20
20
  return {
21
21
  key: "form.error.text.less_than",
22
- context: {min: field?.extra?.limit?.min}
22
+ context: { min: field?.extra?.limit?.min }
23
23
  };
24
24
  }
25
25
  if (v.value.length > max) {
26
26
  return {
27
27
  key: "form.error.text.more_than",
28
- context: {max: field?.extra?.limit?.max}
28
+ context: { max: field?.extra?.limit?.max }
29
29
  };
30
30
  }
31
31
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/text_limit.ts"],
4
4
  "sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport function validateText(value: string, min: number, max: number): boolean {\n let validator;\n if (min || max) {\n if (value.length < min || value.length > max) {\n return (validator = false);\n } else {\n return (validator = true);\n }\n }\n return validator;\n}\n\nexport const TEXT_LIMIT_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const min: number = field?.extra?.limit?.min;\n const max: number = field?.extra?.limit?.max;\n return {\n name: 'text-limit-validator',\n message: (v: any): any => {\n if (min || max) {\n if (v.value.length < min) {\n return {\n key: 'form.error.text.less_than',\n context: { min: field?.extra?.limit?.min },\n };\n }\n if (v.value.length > max) {\n return {\n key: 'form.error.text.more_than',\n context: { max: field?.extra?.limit?.max },\n };\n }\n }\n },\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validateText(value, min as number, max as number);\n },\n };\n};\n"],
5
- "mappings": "AAGO,sBAAsB,OAAe,KAAa,KAAsB;AAC7E,MAAI;AACJ,MAAI,OAAO,KAAK;AACd,QAAI,MAAM,SAAS,OAAO,MAAM,SAAS,KAAK;AAC5C,aAAQ,YAAY;AAAA,WACf;AACL,aAAQ,YAAY;AAAA;AAAA;AAGxB,SAAO;AAAA;AAGF,MAAM,uBAAuB,CAAC,UAAsC;AACzE,QAAM,MAAc,OAAO,OAAO,OAAO;AACzC,QAAM,MAAc,OAAO,OAAO,OAAO;AACzC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,MAAgB;AACxB,UAAI,OAAO,KAAK;AACd,YAAI,EAAE,MAAM,SAAS,KAAK;AACxB,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,SAAS,CAAE,KAAK,OAAO,OAAO,OAAO;AAAA;AAAA;AAGzC,YAAI,EAAE,MAAM,SAAS,KAAK;AACxB,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,SAAS,CAAE,KAAK,OAAO,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAK7C,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA;AAET,aAAO,aAAa,OAAO,KAAe;AAAA;AAAA;AAAA;",
5
+ "mappings": "AAGO,SAAS,aAAa,OAAe,KAAa,KAAsB;AAC7E,MAAI;AACJ,MAAI,OAAO,KAAK;AACd,QAAI,MAAM,SAAS,OAAO,MAAM,SAAS,KAAK;AAC5C,aAAQ,YAAY;AAAA,IACtB,OAAO;AACL,aAAQ,YAAY;AAAA,IACtB;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,uBAAuB,CAAC,UAAsC;AACzE,QAAM,MAAc,OAAO,OAAO,OAAO;AACzC,QAAM,MAAc,OAAO,OAAO,OAAO;AACzC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,MAAgB;AACxB,UAAI,OAAO,KAAK;AACd,YAAI,EAAE,MAAM,SAAS,KAAK;AACxB,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,SAAS,EAAE,KAAK,OAAO,OAAO,OAAO,IAAI;AAAA,UAC3C;AAAA,QACF;AACA,YAAI,EAAE,MAAM,SAAS,KAAK;AACxB,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,SAAS,EAAE,KAAK,OAAO,OAAO,OAAO,IAAI;AAAA,UAC3C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA,MACT;AACA,aAAO,aAAa,OAAO,KAAe,GAAa;AAAA,IACzD;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validators/utils/uuid4.ts"],
4
4
  "sourcesContent": ["const UUID4_PATTERN = /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;\n\nexport function validateUUID4(uuid4: string): boolean {\n if (uuid4.length !== 36) {\n // This uuid4 should be 36 characters long\n return false;\n }\n\n return UUID4_PATTERN.test(uuid4);\n}\n\nexport const UUID4_VALIDATOR = {\n name: 'uuid4-validator',\n message: 'form.error.uuid4',\n test: (value): boolean => {\n if (value) {\n return validateUUID4(value);\n }\n return true;\n },\n};\n"],
5
- "mappings": "AAAA,MAAM,gBAAgB;AAEf,uBAAuB,OAAwB;AACpD,MAAI,MAAM,WAAW,IAAI;AAEvB,WAAO;AAAA;AAGT,SAAO,cAAc,KAAK;AAAA;AAGrB,MAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,CAAC,UAAmB;AACxB,QAAI,OAAO;AACT,aAAO,cAAc;AAAA;AAEvB,WAAO;AAAA;AAAA;",
5
+ "mappings": "AAAA,MAAM,gBAAgB;AAEf,SAAS,cAAc,OAAwB;AACpD,MAAI,MAAM,WAAW,IAAI;AAEvB,WAAO;AAAA,EACT;AAEA,SAAO,cAAc,KAAK,KAAK;AACjC;AAEO,MAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,CAAC,UAAmB;AACxB,QAAI,OAAO;AACT,aAAO,cAAc,KAAK;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
package/Field/utils.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import { CalculatedField, FieldComponentRegistry, FieldProps, FieldWithCondition, UseFieldProps } from '@digigov/form/Field/types';
2
- import { FieldSpec } from '@digigov/form/types';
3
- export declare function calculateField(children: FieldProps['children'], field: FieldSpec, componentRegistry?: FieldComponentRegistry): CalculatedField;
4
- export declare const useField: (name: string, customField: FieldSpec | null) => UseFieldProps;
5
- export declare function evaluateFieldWithConditions(field: FieldWithCondition, variables: FormData): CalculatedField;