@digigov/form 2.0.0-7d9a8d86 → 2.0.0-85c27c19

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 (688) hide show
  1. package/Field/FieldBase/index.js +72 -51
  2. package/Field/FieldBase.js.map +2 -2
  3. package/Field/FieldBaseContainer/index.js +4 -18
  4. package/Field/FieldBaseContainer.js.map +1 -1
  5. package/Field/FieldConditional/index.js +55 -40
  6. package/Field/FieldConditional.js.map +2 -2
  7. package/Field/index.js +67 -36
  8. package/Field/index.js.map +2 -2
  9. package/Field/types.d.ts +36 -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 +3 -0
  19. package/Field/utils/index.js +4 -95
  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.js +50 -32
  35. package/FieldArray/index.js.map +2 -2
  36. package/FieldArray/index.test.d.ts +1 -0
  37. package/FieldObject/index.d.ts +1 -0
  38. package/FieldObject/index.js +41 -29
  39. package/FieldObject/index.js.map +2 -2
  40. package/Fieldset/FieldsetWithContext/index.js +12 -13
  41. package/Fieldset/FieldsetWithContext.js.map +1 -1
  42. package/Fieldset/index.js +4 -13
  43. package/Fieldset/index.js.map +1 -1
  44. package/Fieldset/types.d.ts +2 -0
  45. package/Form.stories.js.map +1 -1
  46. package/FormBuilder/FormBuilder.stories/index.js +2 -1
  47. package/FormBuilder/FormBuilder.stories.d.ts +1 -1
  48. package/FormBuilder/FormBuilder.stories.js.map +2 -2
  49. package/FormBuilder/__stories__/Default/index.js +21 -15
  50. package/FormBuilder/__stories__/Default.d.ts +2 -2
  51. package/FormBuilder/__stories__/Default.js.map +1 -1
  52. package/FormBuilder/index.d.ts +2 -1
  53. package/FormBuilder/index.js +10 -2
  54. package/FormBuilder/index.js.map +2 -2
  55. package/FormBuilder/index.test.d.ts +1 -0
  56. package/FormBuilder/scenarios.test.d.ts +88 -0
  57. package/FormContext/index.js +1 -1
  58. package/FormContext.js.map +1 -1
  59. package/MultiplicityField/MultiplicityField.stories/index.js +12 -6
  60. package/MultiplicityField/MultiplicityField.stories.d.ts +6 -6
  61. package/MultiplicityField/MultiplicityField.stories.js.map +2 -2
  62. package/MultiplicityField/__stories__/Default/index.js +15 -19
  63. package/MultiplicityField/__stories__/Default.d.ts +2 -2
  64. package/MultiplicityField/__stories__/Default.js.map +1 -1
  65. package/MultiplicityField/__stories__/PreviewDisplay/index.js +6 -27
  66. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +2 -2
  67. package/MultiplicityField/__stories__/PreviewDisplay.js.map +2 -2
  68. package/MultiplicityField/__stories__/WithExactLength/index.js +15 -19
  69. package/MultiplicityField/__stories__/WithExactLength.d.ts +2 -2
  70. package/MultiplicityField/__stories__/WithExactLength.js.map +2 -2
  71. package/MultiplicityField/__stories__/WithMaxLength/index.js +15 -19
  72. package/MultiplicityField/__stories__/WithMaxLength.d.ts +2 -2
  73. package/MultiplicityField/__stories__/WithMaxLength.js.map +2 -2
  74. package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +15 -19
  75. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +2 -2
  76. package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +2 -2
  77. package/MultiplicityField/__stories__/WithMinLength/index.js +15 -19
  78. package/MultiplicityField/__stories__/WithMinLength.d.ts +2 -2
  79. package/MultiplicityField/__stories__/WithMinLength.js.map +2 -2
  80. package/MultiplicityField/add-objects/index.js +71 -39
  81. package/MultiplicityField/add-objects.d.ts +2 -1
  82. package/MultiplicityField/add-objects.js.map +2 -2
  83. package/MultiplicityField/index.d.ts +2 -19
  84. package/MultiplicityField/index.js +66 -59
  85. package/MultiplicityField/index.js.map +2 -2
  86. package/MultiplicityField/index.test.d.ts +1 -0
  87. package/MultiplicityField/types/index.js +1 -0
  88. package/{validators/validators.spec → MultiplicityField/types}/package.json +1 -1
  89. package/MultiplicityField/types.d.ts +19 -0
  90. package/MultiplicityField/types.js.map +7 -0
  91. package/Questions/Questions/index.js +21 -15
  92. package/Questions/Questions.js.map +2 -2
  93. package/Questions/Questions.stories/index.js +2 -1
  94. package/Questions/Questions.stories.d.ts +1 -1
  95. package/Questions/Questions.stories.js.map +2 -2
  96. package/Questions/QuestionsContext/index.js +2 -2
  97. package/Questions/QuestionsContext.js.map +1 -1
  98. package/Questions/Step/ReviewStep/index.js +20 -26
  99. package/Questions/Step/ReviewStep.js.map +1 -1
  100. package/Questions/Step/Step/index.js +24 -18
  101. package/Questions/Step/Step.js.map +2 -2
  102. package/Questions/Step/StepArrayReview/index.js +20 -25
  103. package/Questions/Step/StepArrayReview.js.map +1 -1
  104. package/Questions/Step/StepContext/index.js +3 -3
  105. package/Questions/Step/StepContext.js.map +1 -1
  106. package/Questions/Step/StepDescription/index.js +7 -12
  107. package/Questions/Step/StepDescription.js.map +1 -1
  108. package/Questions/Step/StepForm/index.js +16 -19
  109. package/Questions/Step/StepForm.js.map +1 -1
  110. package/Questions/Step/StepQuote/index.js +2 -4
  111. package/Questions/Step/StepQuote.js.map +1 -1
  112. package/Questions/Step/StepTitle/index.js +17 -15
  113. package/Questions/Step/StepTitle.d.ts +1 -0
  114. package/Questions/Step/StepTitle.js.map +2 -2
  115. package/Questions/Step/getAddMoreFields.js.map +1 -1
  116. package/Questions/Step/index.d.ts +0 -1
  117. package/Questions/Step/index.js +0 -1
  118. package/Questions/Step/index.js.map +2 -2
  119. package/Questions/Step/types.d.ts +2 -0
  120. package/Questions/__stories__/Default/index.js +31 -38
  121. package/Questions/__stories__/Default.d.ts +2 -2
  122. package/Questions/__stories__/Default.js.map +1 -1
  123. package/Questions/getNextStep/index.js +3 -1
  124. package/Questions/getNextStep.js.map +1 -1
  125. package/Questions/index.js +1 -1
  126. package/Questions/index.js.map +1 -1
  127. package/Questions/index.test.d.ts +1 -0
  128. package/Questions/types.d.ts +2 -0
  129. package/cjs/Field/FieldBase/index.js +95 -68
  130. package/cjs/Field/FieldBase.js.map +3 -3
  131. package/cjs/Field/FieldBaseContainer/index.js +33 -41
  132. package/cjs/Field/FieldBaseContainer.js.map +2 -2
  133. package/cjs/Field/FieldConditional/index.js +77 -56
  134. package/cjs/Field/FieldConditional.js.map +3 -3
  135. package/cjs/Field/index.js +89 -55
  136. package/cjs/Field/index.js.map +3 -3
  137. package/cjs/Field/types/index.js +14 -2
  138. package/cjs/Field/types.js.map +2 -2
  139. package/cjs/Field/utils/calculateField/index.js +50 -0
  140. package/cjs/Field/utils/calculateField.js.map +7 -0
  141. package/cjs/Field/utils/evaluateFieldWithConditions/index.js +49 -0
  142. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +7 -0
  143. package/cjs/Field/utils/index.js +35 -121
  144. package/cjs/Field/utils/index.js.map +7 -0
  145. package/cjs/Field/utils/useField/index.js +74 -0
  146. package/cjs/Field/utils/useField.js.map +7 -0
  147. package/cjs/FieldArray/FieldArray.stories/index.js +30 -19
  148. package/cjs/FieldArray/FieldArray.stories.js.map +3 -3
  149. package/cjs/FieldArray/__stories__/Default/index.js +37 -33
  150. package/cjs/FieldArray/__stories__/Default.js.map +2 -2
  151. package/cjs/FieldArray/__stories__/WithExactLength/index.js +37 -33
  152. package/cjs/FieldArray/__stories__/WithExactLength.js.map +2 -2
  153. package/cjs/FieldArray/index.js +75 -51
  154. package/cjs/FieldArray/index.js.map +3 -3
  155. package/cjs/FieldObject/index.js +59 -44
  156. package/cjs/FieldObject/index.js.map +3 -3
  157. package/cjs/Fieldset/FieldsetWithContext/index.js +35 -30
  158. package/cjs/Fieldset/FieldsetWithContext.js.map +2 -2
  159. package/cjs/Fieldset/index.js +31 -34
  160. package/cjs/Fieldset/index.js.map +2 -2
  161. package/cjs/Fieldset/types/index.js +14 -2
  162. package/cjs/Fieldset/types.js.map +2 -2
  163. package/cjs/Form.stories/index.js +16 -6
  164. package/cjs/Form.stories.js.map +1 -1
  165. package/cjs/FormBuilder/FormBuilder.stories/index.js +27 -18
  166. package/cjs/FormBuilder/FormBuilder.stories.js.map +3 -3
  167. package/cjs/FormBuilder/__stories__/Default/index.js +43 -31
  168. package/cjs/FormBuilder/__stories__/Default.js.map +2 -2
  169. package/cjs/FormBuilder/index.js +24 -21
  170. package/cjs/FormBuilder/index.js.map +2 -2
  171. package/cjs/FormContext/index.js +14 -18
  172. package/cjs/FormContext.js.map +2 -2
  173. package/cjs/MultiplicityField/MultiplicityField.stories/index.js +42 -23
  174. package/cjs/MultiplicityField/MultiplicityField.stories.js.map +3 -3
  175. package/cjs/MultiplicityField/__stories__/Default/index.js +37 -35
  176. package/cjs/MultiplicityField/__stories__/Default.js.map +2 -2
  177. package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +32 -47
  178. package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +3 -3
  179. package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +37 -35
  180. package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +3 -3
  181. package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +37 -35
  182. package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +3 -3
  183. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +37 -35
  184. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +3 -3
  185. package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +37 -35
  186. package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +3 -3
  187. package/cjs/MultiplicityField/add-objects/index.js +94 -59
  188. package/cjs/MultiplicityField/add-objects.js.map +3 -3
  189. package/cjs/MultiplicityField/index.js +90 -77
  190. package/cjs/MultiplicityField/index.js.map +3 -3
  191. package/cjs/MultiplicityField/types/index.js +16 -0
  192. package/cjs/MultiplicityField/types.js.map +7 -0
  193. package/cjs/Questions/Questions/index.js +42 -30
  194. package/cjs/Questions/Questions.js.map +2 -2
  195. package/cjs/Questions/Questions.stories/index.js +27 -18
  196. package/cjs/Questions/Questions.stories.js.map +3 -3
  197. package/cjs/Questions/QuestionsContext/index.js +15 -19
  198. package/cjs/Questions/QuestionsContext.js.map +1 -1
  199. package/cjs/Questions/Step/ReviewStep/index.js +43 -43
  200. package/cjs/Questions/Step/ReviewStep.js.map +2 -2
  201. package/cjs/Questions/Step/Step/index.js +45 -33
  202. package/cjs/Questions/Step/Step.js.map +2 -2
  203. package/cjs/Questions/Step/StepArrayReview/index.js +46 -45
  204. package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
  205. package/cjs/Questions/Step/StepContext/index.js +16 -20
  206. package/cjs/Questions/Step/StepContext.js.map +1 -1
  207. package/cjs/Questions/Step/StepDescription/index.js +29 -28
  208. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  209. package/cjs/Questions/Step/StepForm/index.js +41 -38
  210. package/cjs/Questions/Step/StepForm.js.map +2 -2
  211. package/cjs/Questions/Step/StepQuote/index.js +25 -21
  212. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  213. package/cjs/Questions/Step/StepTitle/index.js +41 -33
  214. package/cjs/Questions/Step/StepTitle.js.map +3 -3
  215. package/cjs/Questions/Step/getAddMoreFields/index.js +16 -4
  216. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  217. package/cjs/Questions/Step/index.js +45 -28
  218. package/cjs/Questions/Step/index.js.map +3 -3
  219. package/cjs/Questions/Step/types/index.js +14 -2
  220. package/cjs/Questions/Step/types.js.map +2 -2
  221. package/cjs/Questions/__stories__/Default/index.js +59 -60
  222. package/cjs/Questions/__stories__/Default.js.map +2 -2
  223. package/cjs/Questions/getNextStep/index.js +19 -5
  224. package/cjs/Questions/getNextStep.js.map +1 -1
  225. package/cjs/Questions/index.js +19 -20
  226. package/cjs/Questions/index.js.map +1 -1
  227. package/cjs/Questions/types/index.js +14 -2
  228. package/cjs/Questions/types.js.map +2 -2
  229. package/cjs/index.js +180 -19
  230. package/cjs/index.js.map +4 -4
  231. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +30 -19
  232. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +3 -3
  233. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +46 -36
  234. package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +3 -3
  235. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +50 -38
  236. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +3 -3
  237. package/cjs/inputs/AutoCompleteInput/index.js +67 -42
  238. package/cjs/inputs/AutoCompleteInput/index.js.map +3 -3
  239. package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +33 -20
  240. package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +3 -3
  241. package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +35 -29
  242. package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +2 -2
  243. package/cjs/inputs/Checkboxes/__stories__/Default/index.js +58 -46
  244. package/cjs/inputs/Checkboxes/__stories__/Default.js.map +2 -2
  245. package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +59 -47
  246. package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +2 -2
  247. package/cjs/inputs/Checkboxes/index.js +70 -62
  248. package/cjs/inputs/Checkboxes/index.js.map +3 -3
  249. package/cjs/inputs/DateInput/DateInput.stories/index.js +27 -18
  250. package/cjs/inputs/DateInput/DateInput.stories.js.map +3 -3
  251. package/cjs/inputs/DateInput/__stories__/Default/index.js +41 -32
  252. package/cjs/inputs/DateInput/__stories__/Default.js.map +3 -3
  253. package/cjs/inputs/DateInput/index.js +73 -60
  254. package/cjs/inputs/DateInput/index.js.map +3 -3
  255. package/cjs/inputs/FileInput/FileInput.stories/index.js +27 -18
  256. package/cjs/inputs/FileInput/FileInput.stories.js.map +3 -3
  257. package/cjs/inputs/FileInput/__stories__/Default/index.js +43 -29
  258. package/cjs/inputs/FileInput/__stories__/Default.js.map +2 -2
  259. package/cjs/inputs/FileInput/index.js +56 -42
  260. package/cjs/inputs/FileInput/index.js.map +2 -2
  261. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +33 -20
  262. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +3 -3
  263. package/cjs/inputs/ImageInput/__stories__/Default/index.js +35 -29
  264. package/cjs/inputs/ImageInput/__stories__/Default.js.map +2 -2
  265. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +35 -29
  266. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +2 -2
  267. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +35 -29
  268. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +2 -2
  269. package/cjs/inputs/ImageInput/index.js +72 -66
  270. package/cjs/inputs/ImageInput/index.js.map +2 -2
  271. package/cjs/inputs/Input/Input.stories/index.js +54 -27
  272. package/cjs/inputs/Input/Input.stories.js.map +3 -3
  273. package/cjs/inputs/Input/__stories__/AFM/index.js +44 -32
  274. package/cjs/inputs/Input/__stories__/AFM.js.map +2 -2
  275. package/cjs/inputs/Input/__stories__/Boolean/index.js +45 -33
  276. package/cjs/inputs/Input/__stories__/Boolean.js.map +2 -2
  277. package/cjs/inputs/Input/__stories__/IBAN/index.js +45 -33
  278. package/cjs/inputs/Input/__stories__/IBAN.js.map +2 -2
  279. package/cjs/inputs/Input/__stories__/Integer/index.js +57 -41
  280. package/cjs/inputs/Input/__stories__/Integer.js.map +2 -2
  281. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +48 -36
  282. package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +2 -2
  283. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +48 -36
  284. package/cjs/inputs/Input/__stories__/MobilePhone.js.map +2 -2
  285. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +47 -35
  286. package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +2 -2
  287. package/cjs/inputs/Input/__stories__/PostalCode/index.js +45 -33
  288. package/cjs/inputs/Input/__stories__/PostalCode.js.map +2 -2
  289. package/cjs/inputs/Input/__stories__/String/index.js +64 -0
  290. package/cjs/inputs/Input/__stories__/String.js.map +7 -0
  291. package/cjs/inputs/Input/__stories__/TextWithLimit/index.js +64 -0
  292. package/cjs/inputs/Input/__stories__/TextWithLimit.js.map +7 -0
  293. package/cjs/inputs/Input/index.js +65 -53
  294. package/cjs/inputs/Input/index.js.map +2 -2
  295. package/cjs/inputs/Input/inputsInputScenarios/index.js +439 -0
  296. package/cjs/inputs/Input/inputsInputScenarios.js.map +7 -0
  297. package/cjs/inputs/Label/Label.stories/index.js +27 -18
  298. package/cjs/inputs/Label/Label.stories.js.map +3 -3
  299. package/cjs/inputs/Label/__stories__/Default/index.js +54 -36
  300. package/cjs/inputs/Label/__stories__/Default.js.map +3 -3
  301. package/cjs/inputs/Label/index.js +28 -28
  302. package/cjs/inputs/Label/index.js.map +3 -3
  303. package/cjs/inputs/OtpInput/OtpInput.stories/index.js +27 -18
  304. package/cjs/inputs/OtpInput/OtpInput.stories.js.map +3 -3
  305. package/cjs/inputs/OtpInput/__stories__/Default/index.js +35 -29
  306. package/cjs/inputs/OtpInput/__stories__/Default.js.map +2 -2
  307. package/cjs/inputs/OtpInput/index.js +118 -94
  308. package/cjs/inputs/OtpInput/index.js.map +3 -3
  309. package/cjs/inputs/Radio/Radio.stories/index.js +33 -20
  310. package/cjs/inputs/Radio/Radio.stories.js.map +3 -3
  311. package/cjs/inputs/Radio/__stories__/Conditional/index.js +35 -29
  312. package/cjs/inputs/Radio/__stories__/Conditional.js.map +2 -2
  313. package/cjs/inputs/Radio/__stories__/Default/index.js +62 -50
  314. package/cjs/inputs/Radio/__stories__/Default.js.map +2 -2
  315. package/cjs/inputs/Radio/__stories__/WithDivider/index.js +63 -51
  316. package/cjs/inputs/Radio/__stories__/WithDivider.js.map +2 -2
  317. package/cjs/inputs/Radio/index.js +61 -55
  318. package/cjs/inputs/Radio/index.js.map +3 -3
  319. package/cjs/inputs/Select/Select.stories/index.js +27 -18
  320. package/cjs/inputs/Select/Select.stories.js.map +3 -3
  321. package/cjs/inputs/Select/__stories__/Default/index.js +67 -55
  322. package/cjs/inputs/Select/__stories__/Default.js.map +2 -2
  323. package/cjs/inputs/Select/index.js +39 -30
  324. package/cjs/inputs/Select/index.js.map +2 -2
  325. package/cjs/inputs/index.js +30 -24
  326. package/cjs/inputs/index.js.map +1 -1
  327. package/cjs/inputs/inputsScenarios/index.js +540 -0
  328. package/cjs/inputs/inputsScenarios.js.map +7 -0
  329. package/cjs/internal/index.js +24 -77
  330. package/cjs/internal.js.map +2 -2
  331. package/cjs/lazy/index.js +81 -74
  332. package/cjs/lazy.js.map +3 -3
  333. package/cjs/locales/el/index.js +35 -0
  334. package/cjs/locales/el.js.map +7 -0
  335. package/cjs/registry/index.js +107 -88
  336. package/cjs/registry.js.map +2 -2
  337. package/cjs/types/index.js +20 -2
  338. package/cjs/types.js.map +2 -2
  339. package/cjs/utils/index.js +47 -34
  340. package/cjs/utils.js.map +3 -3
  341. package/cjs/validators/index.js +34 -30
  342. package/cjs/validators/index.js.map +3 -3
  343. package/cjs/validators/types/index.js +14 -2
  344. package/cjs/validators/types.js.map +1 -1
  345. package/cjs/validators/utils/afm/index.js +16 -4
  346. package/cjs/validators/utils/afm.js.map +1 -1
  347. package/cjs/validators/utils/file/index.js +25 -13
  348. package/cjs/validators/utils/file.js.map +2 -2
  349. package/cjs/validators/utils/iban/index.js +16 -4
  350. package/cjs/validators/utils/iban.js.map +1 -1
  351. package/cjs/validators/utils/image/index.js +18 -6
  352. package/cjs/validators/utils/image.js.map +1 -1
  353. package/cjs/validators/utils/index.js +52 -28
  354. package/cjs/validators/utils/index.js.map +1 -1
  355. package/cjs/validators/utils/int/index.js +16 -4
  356. package/cjs/validators/utils/int.js.map +1 -1
  357. package/cjs/validators/utils/number/index.js +16 -4
  358. package/cjs/validators/utils/number.js.map +1 -1
  359. package/cjs/validators/utils/otp/index.js +16 -4
  360. package/cjs/validators/utils/otp.js.map +1 -1
  361. package/cjs/validators/utils/phone/index.js +25 -6
  362. package/cjs/validators/utils/phone.js.map +2 -2
  363. package/cjs/validators/utils/postal_code/index.js +16 -4
  364. package/cjs/validators/utils/postal_code.js.map +1 -1
  365. package/cjs/validators/utils/text_limit/index.js +18 -6
  366. package/cjs/validators/utils/text_limit.js.map +1 -1
  367. package/cjs/validators/utils/uuid4/index.js +16 -4
  368. package/cjs/validators/utils/uuid4.js.map +1 -1
  369. package/index.d.ts +7 -1
  370. package/index.js +151 -3
  371. package/index.js.map +4 -4
  372. package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +4 -2
  373. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -2
  374. package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +2 -2
  375. package/inputs/AutoCompleteInput/__stories__/Default/index.js +22 -18
  376. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +2 -2
  377. package/inputs/AutoCompleteInput/__stories__/Default.js.map +2 -2
  378. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +26 -20
  379. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +3 -2
  380. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
  381. package/inputs/AutoCompleteInput/index.d.ts +1 -1
  382. package/inputs/AutoCompleteInput/index.js +45 -26
  383. package/inputs/AutoCompleteInput/index.js.map +3 -3
  384. package/inputs/AutoCompleteInput/index.test.d.ts +1 -0
  385. package/inputs/Checkboxes/Checkboxes.stories/index.js +6 -3
  386. package/inputs/Checkboxes/Checkboxes.stories.d.ts +3 -3
  387. package/inputs/Checkboxes/Checkboxes.stories.js.map +2 -2
  388. package/inputs/Checkboxes/__stories__/Conditional/index.js +13 -13
  389. package/inputs/Checkboxes/__stories__/Conditional.d.ts +2 -2
  390. package/inputs/Checkboxes/__stories__/Conditional.js.map +1 -1
  391. package/inputs/Checkboxes/__stories__/Default/index.js +36 -30
  392. package/inputs/Checkboxes/__stories__/Default.d.ts +2 -2
  393. package/inputs/Checkboxes/__stories__/Default.js.map +1 -1
  394. package/inputs/Checkboxes/__stories__/WithDivider/index.js +37 -31
  395. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +2 -2
  396. package/inputs/Checkboxes/__stories__/WithDivider.js.map +1 -1
  397. package/inputs/Checkboxes/index.d.ts +1 -0
  398. package/inputs/Checkboxes/index.js +46 -44
  399. package/inputs/Checkboxes/index.js.map +2 -2
  400. package/inputs/Checkboxes/index.test.d.ts +1 -0
  401. package/inputs/DateInput/DateInput.stories/index.js +2 -1
  402. package/inputs/DateInput/DateInput.stories.d.ts +1 -1
  403. package/inputs/DateInput/DateInput.stories.js.map +2 -2
  404. package/inputs/DateInput/__stories__/Default/index.js +19 -16
  405. package/inputs/DateInput/__stories__/Default.d.ts +2 -2
  406. package/inputs/DateInput/__stories__/Default.js.map +2 -2
  407. package/inputs/DateInput/index.d.ts +2 -2
  408. package/inputs/DateInput/index.js +48 -41
  409. package/inputs/DateInput/index.js.map +3 -3
  410. package/inputs/DateInput/index.test.d.ts +1 -0
  411. package/inputs/FileInput/FileInput.stories/index.js +2 -1
  412. package/inputs/FileInput/FileInput.stories.d.ts +1 -1
  413. package/inputs/FileInput/FileInput.stories.js.map +2 -2
  414. package/inputs/FileInput/__stories__/Default/index.js +21 -13
  415. package/inputs/FileInput/__stories__/Default.d.ts +2 -2
  416. package/inputs/FileInput/__stories__/Default.js.map +1 -1
  417. package/inputs/FileInput/index.js +30 -22
  418. package/inputs/FileInput/index.js.map +2 -2
  419. package/inputs/FileInput/index.test.d.ts +1 -0
  420. package/inputs/ImageInput/ImageInput.stories/index.js +6 -3
  421. package/inputs/ImageInput/ImageInput.stories.d.ts +3 -3
  422. package/inputs/ImageInput/ImageInput.stories.js.map +2 -2
  423. package/inputs/ImageInput/__stories__/Default/index.js +13 -13
  424. package/inputs/ImageInput/__stories__/Default.d.ts +2 -2
  425. package/inputs/ImageInput/__stories__/Default.js.map +1 -1
  426. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +13 -13
  427. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +2 -2
  428. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +1 -1
  429. package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +13 -13
  430. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +2 -2
  431. package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +1 -1
  432. package/inputs/ImageInput/index.js +47 -47
  433. package/inputs/ImageInput/index.js.map +2 -2
  434. package/inputs/ImageInput/index.test.d.ts +1 -0
  435. package/inputs/Input/Input.stories/index.js +20 -10
  436. package/inputs/Input/Input.stories.d.ts +10 -10
  437. package/inputs/Input/Input.stories.js.map +2 -2
  438. package/inputs/Input/__stories__/AFM/index.js +22 -16
  439. package/inputs/Input/__stories__/AFM.d.ts +2 -2
  440. package/inputs/Input/__stories__/AFM.js.map +1 -1
  441. package/inputs/Input/__stories__/Boolean/index.js +23 -17
  442. package/inputs/Input/__stories__/Boolean.d.ts +2 -2
  443. package/inputs/Input/__stories__/Boolean.js.map +1 -1
  444. package/inputs/Input/__stories__/IBAN/index.js +23 -17
  445. package/inputs/Input/__stories__/IBAN.d.ts +2 -2
  446. package/inputs/Input/__stories__/IBAN.js.map +1 -1
  447. package/inputs/Input/__stories__/Integer/index.js +35 -25
  448. package/inputs/Input/__stories__/Integer.d.ts +2 -2
  449. package/inputs/Input/__stories__/Integer.js.map +1 -1
  450. package/inputs/Input/__stories__/LandlineNumber/index.js +26 -20
  451. package/inputs/Input/__stories__/LandlineNumber.d.ts +2 -2
  452. package/inputs/Input/__stories__/LandlineNumber.js.map +1 -1
  453. package/inputs/Input/__stories__/MobilePhone/index.js +26 -20
  454. package/inputs/Input/__stories__/MobilePhone.d.ts +2 -2
  455. package/inputs/Input/__stories__/MobilePhone.js.map +1 -1
  456. package/inputs/Input/__stories__/PhoneNumber/index.js +25 -19
  457. package/inputs/Input/__stories__/PhoneNumber.d.ts +2 -2
  458. package/inputs/Input/__stories__/PhoneNumber.js.map +1 -1
  459. package/inputs/Input/__stories__/PostalCode/index.js +23 -17
  460. package/inputs/Input/__stories__/PostalCode.d.ts +2 -2
  461. package/inputs/Input/__stories__/PostalCode.js.map +1 -1
  462. package/inputs/Input/__stories__/String/index.js +31 -0
  463. package/inputs/Input/__stories__/String/package.json +6 -0
  464. package/inputs/Input/__stories__/String.d.ts +3 -0
  465. package/inputs/Input/__stories__/String.js.map +7 -0
  466. package/inputs/Input/__stories__/TextWithLimit/index.js +31 -0
  467. package/inputs/Input/__stories__/TextWithLimit/package.json +6 -0
  468. package/inputs/Input/__stories__/TextWithLimit.d.ts +3 -0
  469. package/inputs/Input/__stories__/TextWithLimit.js.map +7 -0
  470. package/inputs/Input/index.js +41 -35
  471. package/inputs/Input/index.js.map +1 -1
  472. package/inputs/Input/index.test.d.ts +1 -0
  473. package/inputs/Input/inputsInputScenarios/index.js +406 -0
  474. package/inputs/Input/inputsInputScenarios/package.json +6 -0
  475. package/inputs/Input/inputsInputScenarios.d.ts +57 -0
  476. package/inputs/Input/inputsInputScenarios.js.map +7 -0
  477. package/inputs/Label/Label.stories/index.js +2 -1
  478. package/inputs/Label/Label.stories.d.ts +1 -1
  479. package/inputs/Label/Label.stories.js.map +2 -2
  480. package/inputs/Label/__stories__/Default/index.js +32 -20
  481. package/inputs/Label/__stories__/Default.d.ts +2 -2
  482. package/inputs/Label/__stories__/Default.js.map +2 -2
  483. package/inputs/Label/index.d.ts +1 -1
  484. package/inputs/Label/index.js +4 -10
  485. package/inputs/Label/index.js.map +2 -2
  486. package/inputs/Label/index.test.d.ts +1 -0
  487. package/inputs/OtpInput/OtpInput.stories/index.js +2 -1
  488. package/inputs/OtpInput/OtpInput.stories.d.ts +1 -1
  489. package/inputs/OtpInput/OtpInput.stories.js.map +2 -2
  490. package/inputs/OtpInput/__stories__/Default/index.js +13 -13
  491. package/inputs/OtpInput/__stories__/Default.d.ts +2 -2
  492. package/inputs/OtpInput/__stories__/Default.js.map +1 -1
  493. package/inputs/OtpInput/index.d.ts +9 -2
  494. package/inputs/OtpInput/index.js +94 -77
  495. package/inputs/OtpInput/index.js.map +2 -2
  496. package/inputs/OtpInput/index.test.d.ts +1 -0
  497. package/inputs/Radio/Radio.stories/index.js +6 -3
  498. package/inputs/Radio/Radio.stories.d.ts +3 -3
  499. package/inputs/Radio/Radio.stories.js.map +2 -2
  500. package/inputs/Radio/__stories__/Conditional/index.js +13 -13
  501. package/inputs/Radio/__stories__/Conditional.d.ts +2 -2
  502. package/inputs/Radio/__stories__/Conditional.js.map +1 -1
  503. package/inputs/Radio/__stories__/Default/index.js +40 -34
  504. package/inputs/Radio/__stories__/Default.d.ts +2 -2
  505. package/inputs/Radio/__stories__/Default.js.map +1 -1
  506. package/inputs/Radio/__stories__/WithDivider/index.js +41 -35
  507. package/inputs/Radio/__stories__/WithDivider.d.ts +2 -2
  508. package/inputs/Radio/__stories__/WithDivider.js.map +1 -1
  509. package/inputs/Radio/index.d.ts +1 -0
  510. package/inputs/Radio/index.js +36 -36
  511. package/inputs/Radio/index.js.map +2 -2
  512. package/inputs/Radio/index.test.d.ts +1 -0
  513. package/inputs/Select/Select.stories/index.js +2 -1
  514. package/inputs/Select/Select.stories.d.ts +1 -1
  515. package/inputs/Select/Select.stories.js.map +2 -2
  516. package/inputs/Select/__stories__/Default/index.js +45 -39
  517. package/inputs/Select/__stories__/Default.d.ts +2 -2
  518. package/inputs/Select/__stories__/Default.js.map +1 -1
  519. package/inputs/Select/index.js +15 -12
  520. package/inputs/Select/index.js.map +1 -1
  521. package/inputs/Select/index.test.d.ts +1 -0
  522. package/inputs/index.js +9 -9
  523. package/inputs/index.js.map +2 -2
  524. package/inputs/inputsScenarios/index.js +506 -0
  525. package/inputs/inputsScenarios/package.json +6 -0
  526. package/inputs/inputsScenarios.d.ts +338 -0
  527. package/inputs/inputsScenarios.js.map +7 -0
  528. package/internal/index.js +4 -45
  529. package/internal.d.ts +2 -31
  530. package/internal.js.map +2 -2
  531. package/lazy/index.js +60 -57
  532. package/lazy.d.ts +33 -30
  533. package/lazy.js.map +2 -2
  534. package/locales/el/index.js +6 -0
  535. package/{Questions/index.spec → locales/el}/package.json +1 -1
  536. package/locales/el.d.ts +2 -0
  537. package/locales/el.js.map +7 -0
  538. package/package.json +7 -7
  539. package/registry/index.js +26 -11
  540. package/registry.d.ts +7 -1
  541. package/registry.js.map +2 -2
  542. package/src/Field/FieldBase.tsx +1 -0
  543. package/src/Field/FieldConditional.tsx +1 -1
  544. package/src/Field/index.tsx +19 -3
  545. package/src/Field/types.tsx +64 -3
  546. package/src/Field/utils/calculateField.ts +49 -0
  547. package/src/Field/utils/evaluateFieldWithConditions.ts +30 -0
  548. package/src/Field/utils/index.ts +59 -0
  549. package/src/Field/utils/useField.ts +54 -0
  550. package/src/FieldArray/FieldArray.stories.js +2 -2
  551. package/src/FieldArray/index.test.tsx +24 -0
  552. package/src/FieldArray/index.tsx +11 -3
  553. package/src/FieldObject/index.tsx +10 -3
  554. package/src/Fieldset/types.tsx +3 -1
  555. package/src/FormBuilder/FormBuilder.stories.js +1 -1
  556. package/src/FormBuilder/index.test.tsx +20 -0
  557. package/src/FormBuilder/index.tsx +7 -2
  558. package/src/FormBuilder/scenarios.test.tsx +1864 -0
  559. package/src/MultiplicityField/MultiplicityField.stories.js +6 -6
  560. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +2 -2
  561. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  562. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  563. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  564. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  565. package/src/MultiplicityField/add-objects.tsx +23 -9
  566. package/src/MultiplicityField/index.test.tsx +40 -0
  567. package/src/MultiplicityField/index.tsx +9 -26
  568. package/src/MultiplicityField/types.ts +22 -0
  569. package/src/Questions/Questions.stories.js +1 -1
  570. package/src/Questions/Step/StepTitle.tsx +1 -0
  571. package/src/Questions/Step/index.ts +0 -1
  572. package/src/Questions/Step/types.tsx +1 -0
  573. package/src/Questions/__snapshots__/index.spec.tsx.snap +67 -586
  574. package/src/Questions/index.mdx +4 -4
  575. package/src/Questions/index.spec.tsx +3 -3
  576. package/src/Questions/index.test.tsx +20 -0
  577. package/src/Questions/types.tsx +1 -0
  578. package/src/{FormBuilder/FormBuilder.tsx → index.tsx} +21 -9
  579. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +2 -2
  580. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +26 -18
  581. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +27 -19
  582. package/src/inputs/AutoCompleteInput/index.mdx +8 -2
  583. package/src/inputs/AutoCompleteInput/index.test.tsx +24 -0
  584. package/src/inputs/AutoCompleteInput/index.tsx +22 -12
  585. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -3
  586. package/src/inputs/Checkboxes/index.test.tsx +28 -0
  587. package/src/inputs/Checkboxes/index.tsx +28 -25
  588. package/src/inputs/DateInput/DateInput.stories.js +1 -1
  589. package/src/inputs/DateInput/__stories__/Default.tsx +21 -15
  590. package/src/inputs/DateInput/index.test.tsx +20 -0
  591. package/src/inputs/DateInput/index.tsx +2 -2
  592. package/src/inputs/FileInput/FileInput.stories.js +1 -1
  593. package/src/inputs/FileInput/index.test.tsx +20 -0
  594. package/src/inputs/ImageInput/ImageInput.stories.js +3 -3
  595. package/src/inputs/ImageInput/index.test.tsx +28 -0
  596. package/src/inputs/Input/Input.stories.js +10 -10
  597. package/src/inputs/Input/__stories__/{Default.tsx → String.tsx} +2 -2
  598. package/src/inputs/Input/__stories__/{TextWithCharacterLimit.tsx → TextWithLimit.tsx} +2 -2
  599. package/src/inputs/Input/index.mdx +4 -4
  600. package/src/inputs/Input/index.test.tsx +56 -0
  601. package/src/inputs/Input/inputsInputScenarios.ts +405 -0
  602. package/src/inputs/Label/Label.stories.js +1 -1
  603. package/src/inputs/Label/__stories__/Default.tsx +3 -1
  604. package/src/inputs/Label/index.test.tsx +20 -0
  605. package/src/inputs/Label/index.tsx +1 -4
  606. package/src/inputs/OtpInput/OtpInput.stories.js +1 -1
  607. package/src/inputs/OtpInput/index.test.tsx +20 -0
  608. package/src/inputs/OtpInput/index.tsx +1 -1
  609. package/src/inputs/Radio/Radio.stories.js +3 -3
  610. package/src/inputs/Radio/index.test.tsx +28 -0
  611. package/src/inputs/Radio/index.tsx +6 -3
  612. package/src/inputs/Select/Select.stories.js +1 -1
  613. package/src/inputs/Select/index.test.tsx +20 -0
  614. package/src/inputs/inputsScenarios.ts +503 -0
  615. package/src/internal.ts +2 -31
  616. package/src/lazy.js +18 -15
  617. package/src/locales/el.ts +3 -0
  618. package/src/registry.js +14 -2
  619. package/src/types.tsx +9 -63
  620. package/src/utils.ts +34 -33
  621. package/src/validators/index.ts +5 -0
  622. package/src/validators/utils/file.ts +9 -9
  623. package/src/validators/utils/phone.ts +62 -71
  624. package/src/validators/validators.spec.ts +3 -37
  625. package/types/index.js +1 -0
  626. package/types.d.ts +4 -33
  627. package/types.js.map +3 -3
  628. package/utils/index.js +34 -17
  629. package/utils.js.map +3 -3
  630. package/validators/index.js +9 -11
  631. package/validators/index.js.map +2 -2
  632. package/validators/utils/afm.js.map +1 -1
  633. package/validators/utils/file/index.js +9 -9
  634. package/validators/utils/file.js.map +2 -2
  635. package/validators/utils/iban.js.map +1 -1
  636. package/validators/utils/image/index.js +2 -2
  637. package/validators/utils/image.js.map +1 -1
  638. package/validators/utils/index.js +10 -2
  639. package/validators/utils/index.js.map +1 -1
  640. package/validators/utils/int.js.map +1 -1
  641. package/validators/utils/number.js.map +1 -1
  642. package/validators/utils/otp.js.map +1 -1
  643. package/validators/utils/phone/index.js +9 -2
  644. package/validators/utils/phone.js.map +2 -2
  645. package/validators/utils/postal_code.js.map +1 -1
  646. package/validators/utils/text_limit/index.js +2 -2
  647. package/validators/utils/text_limit.js.map +1 -1
  648. package/validators/utils/uuid4.js.map +1 -1
  649. package/Field/utils.d.ts +0 -5
  650. package/Field/utils.js.map +0 -7
  651. package/FormBuilder/FormBuilder/index.js +0 -138
  652. package/FormBuilder/FormBuilder.d.ts +0 -5
  653. package/FormBuilder/FormBuilder.js.map +0 -7
  654. package/Questions/index.spec/index.js +0 -65
  655. package/Questions/index.spec.js.map +0 -7
  656. package/cjs/Field/utils.js.map +0 -7
  657. package/cjs/FormBuilder/FormBuilder/index.js +0 -166
  658. package/cjs/FormBuilder/FormBuilder.js.map +0 -7
  659. package/cjs/Questions/index.spec/index.js +0 -83
  660. package/cjs/Questions/index.spec.js.map +0 -7
  661. package/cjs/inputs/Input/__stories__/Default/index.js +0 -52
  662. package/cjs/inputs/Input/__stories__/Default.js.map +0 -7
  663. package/cjs/inputs/Input/__stories__/TextWithCharacterLimit/index.js +0 -52
  664. package/cjs/inputs/Input/__stories__/TextWithCharacterLimit.js.map +0 -7
  665. package/cjs/validators/validators.spec/index.js +0 -104
  666. package/cjs/validators/validators.spec.js.map +0 -7
  667. package/inputs/Input/__stories__/Default/index.js +0 -25
  668. package/inputs/Input/__stories__/Default.d.ts +0 -3
  669. package/inputs/Input/__stories__/Default.js.map +0 -7
  670. package/inputs/Input/__stories__/TextWithCharacterLimit/index.js +0 -25
  671. package/inputs/Input/__stories__/TextWithCharacterLimit/package.json +0 -6
  672. package/inputs/Input/__stories__/TextWithCharacterLimit.d.ts +0 -3
  673. package/inputs/Input/__stories__/TextWithCharacterLimit.js.map +0 -7
  674. package/src/Field/utils.ts +0 -191
  675. package/src/FieldArray/FieldArray.stories.playwright.json +0 -353
  676. package/src/FormBuilder/FormBuilder.stories.playwright.json +0 -52
  677. package/src/MultiplicityField/MultiplicityField.stories.playwright.json +0 -1370
  678. package/src/index.ts +0 -3
  679. package/src/inputs/Checkboxes/Checkboxes.stories.playwright.json +0 -85
  680. package/src/inputs/DateInput/DateInput.stories.playwright.json +0 -72
  681. package/src/inputs/FileInput/FileInput.stories.playwright.json +0 -75
  682. package/src/inputs/ImageInput/ImageInput.stories.playwright.json +0 -77
  683. package/src/inputs/Input/Input.stories.playwright.json +0 -376
  684. package/src/inputs/Label/Label.stories.playwright.json +0 -40
  685. package/src/inputs/Radio/Radio.stories.playwright.json +0 -73
  686. package/src/inputs/Select/Select.stories.playwright.json +0 -22
  687. package/validators/validators.spec/index.js +0 -91
  688. package/validators/validators.spec.js.map +0 -7
@@ -1,9 +1,14 @@
1
- import React, {useEffect, useMemo} from "react";
1
+ import React, { useEffect, useMemo } from "react";
2
2
  import {
3
3
  useWatch
4
4
  } from "react-hook-form";
5
- import {FieldBase} from "@digigov/form/Field/FieldBase";
6
- import {calculateField, useField} from "@digigov/form/Field/utils";
5
+ import { FieldBase } from "@digigov/form/Field/FieldBase";
6
+ import {
7
+ FIELD_COMPONENTS,
8
+ ALTERNATIVE_COMPONENTS
9
+ } from "@digigov/form/Field/utils";
10
+ import { calculateField } from "@digigov/form/Field/utils/calculateField";
11
+ import { useField } from "@digigov/form/Field/utils/useField";
7
12
  import FieldObject from "@digigov/form/FieldObject";
8
13
  import Fieldset from "@digigov/react-core/Fieldset";
9
14
  import RadioConditional from "@digigov/react-core/RadioConditional";
@@ -45,50 +50,74 @@ const AddObjects = ({
45
50
  extra: {
46
51
  options: [
47
52
  {
48
- label: {primary: extra?.label.question.yes},
53
+ label: { primary: extra?.label.question.yes },
54
+ id: `radio-input-${name}-yes`,
49
55
  value: "yes",
50
56
  selected: function RadioSelected() {
51
- return /* @__PURE__ */ React.createElement(RadioConditional, {
52
- hidden: needsMore !== "yes" || extra?.max && extra?.max - stashedObjects.length === 0
53
- }, needsMore === "yes" && fields.length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(FieldObject, {
54
- name: currentName,
55
- error: error && error[currentIndex],
56
- register,
57
- formState,
58
- control,
59
- ...extra?.of,
60
- label: extra?.label.question.objectLabel || extra?.of.label
61
- }), /* @__PURE__ */ React.createElement(Button, {
62
- color: "secondary",
63
- onClick: async (e) => {
64
- e.preventDefault();
65
- const nestedFields = extra?.of.extra.fields.map((f) => `${currentName}.${f.key}`);
66
- const result = await trigger(nestedFields);
67
- result && setValue("needs-more", "");
68
- result && onStash(getValues(currentName));
69
- }
70
- }, extra?.label.object.add)));
57
+ return /* @__PURE__ */ React.createElement(
58
+ RadioConditional,
59
+ {
60
+ hidden: needsMore !== "yes" || extra?.max && extra?.max - stashedObjects.length === 0
61
+ },
62
+ needsMore === "yes" && fields.length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
63
+ FieldObject,
64
+ {
65
+ name: currentName,
66
+ error: error && error[currentIndex],
67
+ register,
68
+ formState,
69
+ control,
70
+ ...extra?.of,
71
+ label: extra?.label.question.objectLabel || extra?.of.label
72
+ }
73
+ ), /* @__PURE__ */ React.createElement(
74
+ Button,
75
+ {
76
+ color: "secondary",
77
+ name: `${currentName}-add-object`,
78
+ onClick: async (e) => {
79
+ e.preventDefault();
80
+ const nestedFields = extra?.of.extra.fields.map(
81
+ (f) => `${currentName}.${f.key}`
82
+ );
83
+ const result = await trigger(nestedFields);
84
+ result && setValue("needs-more", "");
85
+ result && onStash(getValues(currentName));
86
+ }
87
+ },
88
+ extra?.label.object.add
89
+ ))
90
+ );
71
91
  }
72
92
  },
73
93
  {
74
- label: {primary: extra?.label.question.no},
94
+ label: { primary: extra?.label.question.no },
95
+ id: `radio-input-${name}-no`,
75
96
  value: "no"
76
97
  }
77
98
  ]
78
99
  }
79
100
  };
80
- const {field, control, register, reset, error: needsMoreError} = useField(radioField.key, radioField?.type ? radioField : null);
81
- const calculatedField = useMemo(() => calculateField(children, field), [field]);
82
- const needsMore = useWatch({name: field.key, control});
101
+ const {
102
+ field,
103
+ control,
104
+ register,
105
+ reset,
106
+ error: needsMoreError
107
+ } = useField(radioField.key, radioField?.type ? radioField : null);
108
+ const calculatedField = useMemo(
109
+ () => calculateField(children, field, FIELD_COMPONENTS, ALTERNATIVE_COMPONENTS),
110
+ [field]
111
+ );
112
+ const needsMore = useWatch({ name: field.key, control });
83
113
  useEffect(() => {
84
114
  if (needsMore === "yes") {
85
- append({afm: "", firstName: "", lastName: ""});
115
+ append({ afm: "", firstName: "", lastName: "" });
86
116
  }
87
117
  if (needsMore === "no" && stashedObjects.length < fields.length) {
88
118
  remove(currentIndex);
89
119
  }
90
- if (needsMore === "")
91
- clearErrors("needs-more");
120
+ if (needsMore === "") clearErrors("needs-more");
92
121
  }, [needsMore]);
93
122
  calculatedField.label = calculatedField.label || {};
94
123
  if (extra?.length) {
@@ -100,14 +129,17 @@ const AddObjects = ({
100
129
  } else if (extra?.max) {
101
130
  calculatedField.label.secondary = ` \u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${stashedObjects.length} \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD ${extra.max - stashedObjects.length} \u03B5\u03C0\u03B9\u03C0\u03BB\u03AD\u03BF\u03BD \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;
102
131
  }
103
- return /* @__PURE__ */ React.createElement(Fieldset, null, /* @__PURE__ */ React.createElement(FieldBase, {
104
- ...calculatedField,
105
- name: calculatedField.key,
106
- control,
107
- register,
108
- reset,
109
- error: extra?.max - stashedObjects.length === 0 || extra?.length - stashedObjects.length === 0 ? error : needsMoreError
110
- }));
132
+ return /* @__PURE__ */ React.createElement(Fieldset, null, /* @__PURE__ */ React.createElement(
133
+ FieldBase,
134
+ {
135
+ ...calculatedField,
136
+ name: calculatedField.key,
137
+ control,
138
+ register,
139
+ reset,
140
+ error: extra?.max - stashedObjects.length === 0 || extra?.length - stashedObjects.length === 0 ? error : needsMoreError
141
+ }
142
+ ));
111
143
  };
112
144
  var add_objects_default = AddObjects;
113
145
  export {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ErrorOption, FieldArrayWithId, UseFieldArrayReturn } from 'react-hook-form';
3
- import { MultiplicityProps, StashedObject } from '@digigov/form/MultiplicityField';
3
+ import type { MultiplicityProps, StashedObject } from '@digigov/form/MultiplicityField/types';
4
4
  export interface AddObjectsProps extends Omit<MultiplicityProps, 'key' | 'component'> {
5
5
  fields: FieldArrayWithId[];
6
6
  error?: ErrorOption;
@@ -8,6 +8,7 @@ export interface AddObjectsProps extends Omit<MultiplicityProps, 'key' | 'compon
8
8
  remove: UseFieldArrayReturn['remove'];
9
9
  stashedObjects: StashedObject[];
10
10
  onStash: (arg0: StashedObject) => void;
11
+ children?: React.ReactNode;
11
12
  }
12
13
  export declare const AddObjects: React.FC<AddObjectsProps>;
13
14
  export default AddObjects;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/MultiplicityField/add-objects.tsx"],
4
- "sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useEffect, useMemo } from 'react';\n// import { FormBuilderProps } from '@digigov/form';\nimport {\n ErrorOption,\n FieldArrayWithId,\n UseFieldArrayReturn,\n useWatch,\n} from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport { CalculatedField } from '@digigov/form/Field/types';\nimport { calculateField, useField } from '@digigov/form/Field/utils';\nimport FieldObject from '@digigov/form/FieldObject';\nimport {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField';\nimport { FieldSpec } from '@digigov/form/types';\nimport Fieldset from '@digigov/react-core/Fieldset';\nimport RadioConditional from '@digigov/react-core/RadioConditional';\nimport Button from '@digigov/ui/form/Button';\nexport interface AddObjectsProps\n extends Omit<MultiplicityProps, 'key' | 'component'> {\n fields: FieldArrayWithId[];\n error?: ErrorOption;\n append: UseFieldArrayReturn['append'];\n remove: UseFieldArrayReturn['remove'];\n stashedObjects: StashedObject[];\n onStash: (arg0: StashedObject) => void;\n}\n\nexport const AddObjects: React.FC<AddObjectsProps> = ({\n name,\n fields,\n formState,\n extra,\n append,\n remove,\n trigger,\n clearErrors,\n children,\n setValue,\n stashedObjects,\n getValues,\n onStash,\n error,\n}) => {\n const currentIndex = fields.length > 0 ? fields.length - 1 : fields.length;\n const currentName = `${name}.${currentIndex}`;\n const radioField: FieldSpec = {\n key: 'needs-more',\n type: 'choice:single',\n label: {\n primary: extra?.label.question.title,\n },\n required: true,\n validators: [\n {\n name: 'is-locked',\n message: 'form.error.needs-more',\n test: (data) => {\n return data === 'no';\n },\n },\n ],\n extra: {\n options: [\n {\n label: { primary: extra?.label.question.yes },\n value: 'yes',\n selected: function RadioSelected() {\n return (\n <RadioConditional\n hidden={\n needsMore !== 'yes' ||\n (extra?.max && extra?.max - stashedObjects.length === 0)\n }\n >\n {needsMore === 'yes' && fields.length > 0 && (\n <>\n <FieldObject\n name={currentName}\n error={error && error[currentIndex]}\n register={register}\n formState={formState}\n control={control}\n {...extra?.of}\n label={\n extra?.label.question.objectLabel || extra?.of.label\n }\n />\n <Button\n color=\"secondary\"\n onClick={async (e) => {\n e.preventDefault();\n const nestedFields = extra?.of.extra.fields.map(\n (f) => `${currentName}.${f.key}`\n );\n const result = await trigger(nestedFields);\n result && setValue('needs-more', '');\n result && onStash(getValues(currentName));\n }}\n >\n {extra?.label.object.add}\n </Button>\n </>\n )}\n </RadioConditional>\n );\n },\n },\n {\n label: { primary: extra?.label.question.no },\n value: 'no',\n },\n ],\n },\n };\n\n const { field, control, register, reset, error: needsMoreError } = useField(\n radioField.key,\n radioField?.type ? radioField : null\n );\n\n const calculatedField: CalculatedField = useMemo(\n () => calculateField(children, field),\n [field]\n );\n const needsMore = useWatch({ name: field.key, control });\n\n useEffect(() => {\n if (needsMore === 'yes') {\n append({ afm: '', firstName: '', lastName: '' });\n }\n if (needsMore === 'no' && stashedObjects.length < fields.length) {\n remove(currentIndex);\n }\n if (needsMore === '') clearErrors('needs-more');\n }, [needsMore]);\n\n // TODO: Refactor types so that label is always required, the following\n // assignment is a temp fix for typescript build to run\n calculatedField.label = calculatedField.label || {};\n if (extra?.length) {\n calculatedField.label.secondary = `\u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra.length - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n } else if (extra?.min && extra?.max) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03BA\u03B1\u03B9 \u03C4\u03BF \u03BC\u03AD\u03B3\u03B9\u03C3\u03C4\u03BF ${\n extra?.max\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.min) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.max) {\n calculatedField.label.secondary = ` \u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD ${\n extra.max - stashedObjects.length\n } \u03B5\u03C0\u03B9\u03C0\u03BB\u03AD\u03BF\u03BD \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n }\n return (\n <Fieldset>\n <FieldBase\n {...calculatedField}\n name={calculatedField.key}\n control={control}\n register={register}\n reset={reset}\n error={\n extra?.max - stashedObjects.length === 0 ||\n extra?.length - stashedObjects.length === 0\n ? error\n : needsMoreError\n }\n />\n </Fieldset>\n );\n};\n\nexport default AddObjects;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useEffect, useMemo } from 'react';\nimport {\n ErrorOption,\n FieldArrayWithId,\n UseFieldArrayReturn,\n useWatch,\n} from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport { CalculatedField } from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport { useField } from '@digigov/form/Field/utils/useField';\n\nimport FieldObject from '@digigov/form/FieldObject';\nimport type {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport Fieldset from '@digigov/react-core/Fieldset';\nimport RadioConditional from '@digigov/react-core/RadioConditional';\nimport Button from '@digigov/ui/form/Button';\n\nexport interface AddObjectsProps\n extends Omit<MultiplicityProps, 'key' | 'component'> {\n fields: FieldArrayWithId[];\n error?: ErrorOption;\n append: UseFieldArrayReturn['append'];\n remove: UseFieldArrayReturn['remove'];\n stashedObjects: StashedObject[];\n onStash: (arg0: StashedObject) => void;\n children?: React.ReactNode;\n}\n\nexport const AddObjects: React.FC<AddObjectsProps> = ({\n name,\n fields,\n formState,\n extra,\n append,\n remove,\n trigger,\n clearErrors,\n children,\n setValue,\n stashedObjects,\n getValues,\n onStash,\n error,\n}) => {\n const currentIndex = fields.length > 0 ? fields.length - 1 : fields.length;\n const currentName = `${name}.${currentIndex}`;\n const radioField: FieldSpec = {\n key: 'needs-more',\n type: 'choice:single',\n label: {\n primary: extra?.label.question.title,\n },\n required: true,\n validators: [\n {\n name: 'is-locked',\n message: 'form.error.needs-more',\n test: (data) => {\n return data === 'no';\n },\n },\n ],\n extra: {\n options: [\n {\n label: { primary: extra?.label.question.yes },\n id: `radio-input-${name}-yes`,\n value: 'yes',\n selected: function RadioSelected() {\n return (\n <RadioConditional\n hidden={\n needsMore !== 'yes' ||\n (extra?.max && extra?.max - stashedObjects.length === 0)\n }\n >\n {needsMore === 'yes' && fields.length > 0 && (\n <>\n <FieldObject\n name={currentName}\n error={error && error[currentIndex]}\n register={register}\n formState={formState}\n control={control}\n {...extra?.of}\n label={\n extra?.label.question.objectLabel || extra?.of.label\n }\n />\n <Button\n color=\"secondary\"\n name={`${currentName}-add-object`}\n onClick={async (e) => {\n e.preventDefault();\n const nestedFields = extra?.of.extra.fields.map(\n (f) => `${currentName}.${f.key}`\n );\n const result = await trigger(nestedFields);\n result && setValue('needs-more', '');\n result && onStash(getValues(currentName));\n }}\n >\n {extra?.label.object.add}\n </Button>\n </>\n )}\n </RadioConditional>\n );\n },\n },\n {\n label: { primary: extra?.label.question.no },\n id: `radio-input-${name}-no`,\n value: 'no',\n },\n ],\n },\n };\n\n const {\n field,\n control,\n register,\n reset,\n error: needsMoreError,\n } = useField(radioField.key, radioField?.type ? radioField : null);\n\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(children, field, FIELD_COMPONENTS, ALTERNATIVE_COMPONENTS),\n [field]\n );\n const needsMore = useWatch({ name: field.key, control });\n\n useEffect(() => {\n if (needsMore === 'yes') {\n append({ afm: '', firstName: '', lastName: '' });\n }\n if (needsMore === 'no' && stashedObjects.length < fields.length) {\n remove(currentIndex);\n }\n if (needsMore === '') clearErrors('needs-more');\n }, [needsMore]);\n\n // TODO: Refactor types so that label is always required, the following\n // assignment is a temp fix for typescript build to run\n calculatedField.label = calculatedField.label || {};\n if (extra?.length) {\n calculatedField.label.secondary = `\u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra.length - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n } else if (extra?.min && extra?.max) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03BA\u03B1\u03B9 \u03C4\u03BF \u03BC\u03AD\u03B3\u03B9\u03C3\u03C4\u03BF ${\n extra?.max\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.min) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.max) {\n calculatedField.label.secondary = ` \u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD ${\n extra.max - stashedObjects.length\n } \u03B5\u03C0\u03B9\u03C0\u03BB\u03AD\u03BF\u03BD \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n }\n return (\n <Fieldset>\n <FieldBase\n {...calculatedField}\n name={calculatedField.key}\n control={control}\n register={register}\n reset={reset}\n error={\n extra?.max - stashedObjects.length === 0 ||\n extra?.length - stashedObjects.length === 0\n ? error\n : needsMoreError\n }\n />\n </Fieldset>\n );\n};\n\nexport default AddObjects;\n"],
5
+ "mappings": "AACA,OAAO,SAAS,WAAW,eAAe;AAC1C;AAAA,EAIE;AAAA,OACK;AACP,SAAS,iBAAiB;AAE1B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AAEzB,OAAO,iBAAiB;AAMxB,OAAO,cAAc;AACrB,OAAO,sBAAsB;AAC7B,OAAO,YAAY;AAaZ,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,eAAe,OAAO,SAAS,IAAI,OAAO,SAAS,IAAI,OAAO;AACpE,QAAM,cAAc,GAAG,IAAI,IAAI,YAAY;AAC3C,QAAM,aAAwB;AAAA,IAC5B,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS,OAAO,MAAM,SAAS;AAAA,IACjC;AAAA,IACA,UAAU;AAAA,IACV,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM,CAAC,SAAS;AACd,iBAAO,SAAS;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,SAAS;AAAA,QACP;AAAA,UACE,OAAO,EAAE,SAAS,OAAO,MAAM,SAAS,IAAI;AAAA,UAC5C,IAAI,eAAe,IAAI;AAAA,UACvB,OAAO;AAAA,UACP,UAAU,SAAS,gBAAgB;AACjC,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,QACE,cAAc,SACb,OAAO,OAAO,OAAO,MAAM,eAAe,WAAW;AAAA;AAAA,cAGvD,cAAc,SAAS,OAAO,SAAS,KACtC,0DACE;AAAA,gBAAC;AAAA;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO,SAAS,MAAM,YAAY;AAAA,kBAClC;AAAA,kBACA;AAAA,kBACA;AAAA,kBACC,GAAG,OAAO;AAAA,kBACX,OACE,OAAO,MAAM,SAAS,eAAe,OAAO,GAAG;AAAA;AAAA,cAEnD,GACA;AAAA,gBAAC;AAAA;AAAA,kBACC,OAAM;AAAA,kBACN,MAAM,GAAG,WAAW;AAAA,kBACpB,SAAS,OAAO,MAAM;AACpB,sBAAE,eAAe;AACjB,0BAAM,eAAe,OAAO,GAAG,MAAM,OAAO;AAAA,sBAC1C,CAAC,MAAM,GAAG,WAAW,IAAI,EAAE,GAAG;AAAA,oBAChC;AACA,0BAAM,SAAS,MAAM,QAAQ,YAAY;AACzC,8BAAU,SAAS,cAAc,EAAE;AACnC,8BAAU,QAAQ,UAAU,WAAW,CAAC;AAAA,kBAC1C;AAAA;AAAA,gBAEC,OAAO,MAAM,OAAO;AAAA,cACvB,CACF;AAAA,YAEJ;AAAA,UAEJ;AAAA,QACF;AAAA,QACA;AAAA,UACE,OAAO,EAAE,SAAS,OAAO,MAAM,SAAS,GAAG;AAAA,UAC3C,IAAI,eAAe,IAAI;AAAA,UACvB,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,IAAI,SAAS,WAAW,KAAK,YAAY,OAAO,aAAa,IAAI;AAEjE,QAAM,kBAAmC;AAAA,IACvC,MACE,eAAe,UAAU,OAAO,kBAAkB,sBAAsB;AAAA,IAC1E,CAAC,KAAK;AAAA,EACR;AACA,QAAM,YAAY,SAAS,EAAE,MAAM,MAAM,KAAK,QAAQ,CAAC;AAEvD,YAAU,MAAM;AACd,QAAI,cAAc,OAAO;AACvB,aAAO,EAAE,KAAK,IAAI,WAAW,IAAI,UAAU,GAAG,CAAC;AAAA,IACjD;AACA,QAAI,cAAc,QAAQ,eAAe,SAAS,OAAO,QAAQ;AAC/D,aAAO,YAAY;AAAA,IACrB;AACA,QAAI,cAAc,GAAI,aAAY,YAAY;AAAA,EAChD,GAAG,CAAC,SAAS,CAAC;AAId,kBAAgB,QAAQ,gBAAgB,SAAS,CAAC;AAClD,MAAI,OAAO,QAAQ;AACjB,oBAAgB,MAAM,YAAY,yFAChC,eAAe,MACjB,iLACE,MAAM,SAAS,eAAe,MAChC;AAAA,EACF,WAAW,OAAO,OAAO,OAAO,KAAK;AACnC,oBAAgB,MAAM,YAAY,yJAChC,OAAO,MAAM,eAAe,MAC9B,+EACE,OAAO,GACT;AAAA,EACF,WAAW,OAAO,KAAK;AACrB,oBAAgB,MAAM,YAAY,yJAChC,OAAO,MAAM,eAAe,MAC9B;AAAA,EACF,WAAW,OAAO,KAAK;AACrB,oBAAgB,MAAM,YAAY,0FAChC,eAAe,MACjB,kJACE,MAAM,MAAM,eAAe,MAC7B;AAAA,EACF;AACA,SACE,oCAAC,gBACC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,MAAM,gBAAgB;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OACE,OAAO,MAAM,eAAe,WAAW,KACvC,OAAO,SAAS,eAAe,WAAW,IACtC,QACA;AAAA;AAAA,EAER,CACF;AAEJ;AAEA,IAAO,sBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,23 +1,6 @@
1
1
  import React from 'react';
2
- import { ErrorOption, UseFormReturn } from 'react-hook-form';
3
- import { FieldSpec } from '@digigov/form';
4
- import { ControlledFieldProps } from '@digigov/form/Field/types';
5
- export interface MultiplicityProps extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'error' | 'extra'> {
6
- name: string;
7
- control: UseFormReturn['control'];
8
- register: UseFormReturn['register'];
9
- trigger: UseFormReturn['trigger'];
10
- clearErrors: UseFormReturn['clearErrors'];
11
- formState: UseFormReturn['formState'];
12
- setValue: UseFormReturn['setValue'];
13
- getValues: UseFormReturn['getValues'];
14
- unregister: UseFormReturn['unregister'];
15
- error?: ErrorOption;
16
- extra?: Record<string, any>;
17
- label?: FieldSpec['label'];
18
- layout?: FieldSpec['layout'];
19
- }
20
- export type StashedObject = Record<string, any>;
2
+ import { UseFormReturn } from 'react-hook-form';
3
+ import { MultiplicityProps } from '@digigov/form/MultiplicityField/types';
21
4
  export declare const Multiplicity: React.FC<MultiplicityProps>;
22
5
  export default Multiplicity;
23
6
  export interface ListObjectProps {
@@ -1,14 +1,14 @@
1
- import React, {useState} from "react";
2
- import {useFieldArray} from "react-hook-form";
1
+ import React, { useState } from "react";
2
+ import { useFieldArray } from "react-hook-form";
3
3
  import FieldContainer from "@digigov/form/Field/FieldBaseContainer";
4
4
  import FieldObject from "@digigov/form/FieldObject";
5
5
  import AddObjects from "@digigov/form/MultiplicityField/add-objects";
6
- import {Card} from "@digigov/react-core/Card";
7
- import {CardContent} from "@digigov/react-core/CardContent";
8
- import {CardAction} from "@digigov/react-core/CardAction";
9
- import {Button} from "@digigov/react-core/Button";
10
- import {Heading} from "@digigov/react-core/Heading";
11
- import {CardHeading} from "@digigov/react-core/CardHeading";
6
+ import { Button } from "@digigov/react-core/Button";
7
+ import { Card } from "@digigov/react-core/Card";
8
+ import { CardAction } from "@digigov/react-core/CardAction";
9
+ import { CardContent } from "@digigov/react-core/CardContent";
10
+ import { CardHeading } from "@digigov/react-core/CardHeading";
11
+ import { Heading } from "@digigov/react-core/Heading";
12
12
  const Multiplicity = ({
13
13
  extra,
14
14
  name,
@@ -24,7 +24,7 @@ const Multiplicity = ({
24
24
  getValues,
25
25
  unregister
26
26
  }) => {
27
- const {fields, append, remove} = useFieldArray({
27
+ const { fields, append, remove } = useFieldArray({
28
28
  control,
29
29
  name
30
30
  });
@@ -38,43 +38,52 @@ const Multiplicity = ({
38
38
  newStashedObjects.splice(index, 1);
39
39
  setStashedObjects(newStashedObjects);
40
40
  };
41
- return /* @__PURE__ */ React.createElement(FieldContainer, {
42
- label,
43
- layout,
44
- error: formState.isSubmitted && !formState.isSubmitting && error?.message ? error : void 0,
45
- wrapper: "fieldset",
46
- name
47
- }, stashedObjects.length > 0 ? /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Heading, {
48
- size: "md"
49
- }, extra?.label.object.title_added), stashedObjects.map((_Object, index) => {
50
- return /* @__PURE__ */ React.createElement(ListObject, {
51
- key: `${name}.${index}`,
52
- index,
53
- name,
54
- extra,
55
- control,
56
- register,
57
- formState,
58
- onDelete: handleDelete
59
- });
60
- })) : "", /* @__PURE__ */ React.createElement(AddObjects, {
61
- name,
62
- register,
63
- control,
64
- fields,
65
- formState,
66
- error,
67
- stashedObjects,
68
- extra,
69
- append,
70
- remove,
71
- onStash: handleStash,
72
- setValue,
73
- getValues,
74
- unregister,
75
- trigger,
76
- clearErrors
77
- }));
41
+ return /* @__PURE__ */ React.createElement(
42
+ FieldContainer,
43
+ {
44
+ label,
45
+ layout,
46
+ error: formState.isSubmitted && !formState.isSubmitting && error?.message ? error : void 0,
47
+ wrapper: "fieldset",
48
+ name
49
+ },
50
+ stashedObjects.length > 0 ? /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Heading, { size: "md" }, extra?.label.object.title_added), stashedObjects.map((_Object, index) => {
51
+ return /* @__PURE__ */ React.createElement(
52
+ ListObject,
53
+ {
54
+ key: `${name}.${index}`,
55
+ index,
56
+ name,
57
+ extra,
58
+ control,
59
+ register,
60
+ formState,
61
+ onDelete: handleDelete
62
+ }
63
+ );
64
+ })) : "",
65
+ /* @__PURE__ */ React.createElement(
66
+ AddObjects,
67
+ {
68
+ name,
69
+ register,
70
+ control,
71
+ fields,
72
+ formState,
73
+ error,
74
+ stashedObjects,
75
+ extra,
76
+ append,
77
+ remove,
78
+ onStash: handleStash,
79
+ setValue,
80
+ getValues,
81
+ unregister,
82
+ trigger,
83
+ clearErrors
84
+ }
85
+ )
86
+ );
78
87
  };
79
88
  var MultiplicityField_default = Multiplicity;
80
89
  const ListObject = ({
@@ -85,21 +94,19 @@ const ListObject = ({
85
94
  register,
86
95
  onDelete,
87
96
  formState
97
+ // onEdit,
88
98
  }) => {
89
99
  const currentName = `${name}.${index}`;
90
- return /* @__PURE__ */ React.createElement(Card, {
91
- variant: extra?.border && "border"
92
- }, /* @__PURE__ */ React.createElement(CardHeading, null, extra?.label.object.title, " #", index + 1), /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(FieldObject, {
93
- name: currentName,
94
- formState,
95
- register,
96
- control,
97
- ...extra?.of
98
- })), /* @__PURE__ */ React.createElement(CardAction, null, /* @__PURE__ */ React.createElement(Button, {
99
- type: "button",
100
- variant: "link",
101
- onClick: () => onDelete(index)
102
- }, extra?.label.object.delete)));
100
+ return /* @__PURE__ */ React.createElement(Card, { variant: extra?.border && "border" }, /* @__PURE__ */ React.createElement(CardHeading, null, extra?.label.object.title, " #", index + 1), /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(
101
+ FieldObject,
102
+ {
103
+ name: currentName,
104
+ formState,
105
+ register,
106
+ control,
107
+ ...extra?.of
108
+ }
109
+ )), /* @__PURE__ */ React.createElement(CardAction, null, /* @__PURE__ */ React.createElement(Button, { type: "button", variant: "link", onClick: () => onDelete(index) }, extra?.label.object.delete)));
103
110
  };
104
111
  export {
105
112
  ListObject,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/MultiplicityField/index.tsx"],
4
- "sourcesContent": ["import React, { useState } from 'react';\nimport { ErrorOption, useFieldArray, UseFormReturn } from 'react-hook-form';\nimport { FieldSpec } from '@digigov/form';\nimport FieldContainer from '@digigov/form/Field/FieldBaseContainer';\nimport { ControlledFieldProps } from '@digigov/form/Field/types';\nimport FieldObject from '@digigov/form/FieldObject';\nimport AddObjects from '@digigov/form/MultiplicityField/add-objects';\nimport { Card } from '@digigov/react-core/Card';\nimport { CardContent } from '@digigov/react-core/CardContent';\nimport { CardAction } from '@digigov/react-core/CardAction';\nimport { Button } from '@digigov/react-core/Button';\nimport { Heading } from '@digigov/react-core/Heading';\nimport { CardHeading } from '@digigov/react-core/CardHeading';\n\n\nexport interface MultiplicityProps\n extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'error' | 'extra'> {\n name: string;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n trigger: UseFormReturn['trigger'];\n clearErrors: UseFormReturn['clearErrors'];\n formState: UseFormReturn['formState'];\n setValue: UseFormReturn['setValue'];\n getValues: UseFormReturn['getValues'];\n unregister: UseFormReturn['unregister'];\n error?: ErrorOption;\n extra?: Record<string, any>;\n label?: FieldSpec['label'];\n layout?: FieldSpec['layout'];\n}\n\nexport type StashedObject = Record<string, any>;\n\n// epeidh einai forwardRef to ref mas to dinei xwrista apo ta props\nexport const Multiplicity: React.FC<MultiplicityProps> = ({\n extra,\n name,\n control,\n error,\n register,\n trigger,\n clearErrors,\n formState,\n label,\n layout,\n setValue,\n getValues,\n unregister,\n}) => {\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n });\n const [stashedObjects, setStashedObjects] = useState<StashedObject[]>([]);\n const handleStash = (data) => {\n setStashedObjects([...stashedObjects, data]);\n };\n const handleDelete = (index) => {\n remove(index);\n // creating a new array to maintain immutability\n const newStashedObjects = [...stashedObjects];\n newStashedObjects.splice(index, 1);\n setStashedObjects(newStashedObjects);\n };\n return (\n <FieldContainer\n label={label}\n layout={layout}\n error={\n formState.isSubmitted && !formState.isSubmitting && error?.message\n ? error\n : undefined\n }\n wrapper=\"fieldset\"\n name={name}\n >\n {stashedObjects.length > 0 ? (\n <div>\n <Heading size=\"md\">{extra?.label.object.title_added}</Heading>\n {stashedObjects.map((_Object, index) => {\n return (\n <ListObject\n key={`${name}.${index}`}\n index={index}\n name={name}\n extra={extra}\n control={control}\n register={register}\n formState={formState}\n onDelete={handleDelete}\n />\n );\n })}\n </div>\n ) : (\n ''\n )}\n <AddObjects\n name={name}\n register={register}\n control={control}\n fields={fields}\n formState={formState}\n error={error}\n stashedObjects={stashedObjects}\n extra={extra}\n append={append}\n remove={remove}\n onStash={handleStash}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n trigger={trigger}\n clearErrors={clearErrors}\n />\n </FieldContainer>\n );\n};\n\nexport default Multiplicity;\n\nexport interface ListObjectProps {\n index: number;\n name: string;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n formState: UseFormReturn['formState'];\n onDelete: (index: number) => void;\n extra?: Record<string, any>;\n}\n\nexport const ListObject: React.FC<ListObjectProps> = ({\n index,\n name,\n extra,\n control,\n register,\n onDelete,\n formState,\n // onEdit,\n}) => {\n const currentName = `${name}.${index}`;\n return (\n <Card variant={extra?.border && 'border'}>\n <CardHeading>\n {extra?.label.object.title} #{index + 1}\n </CardHeading>\n <CardContent>\n <FieldObject\n name={currentName}\n formState={formState}\n register={register}\n control={control}\n {...extra?.of}\n />\n </CardContent>\n <CardAction>\n <Button type=\"button\" variant=\"link\" onClick={() => onDelete(index)}>\n {extra?.label.object.delete}\n </Button>\n </CardAction>\n </Card>\n );\n};\n"],
5
- "mappings": "AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuBO,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACI;AACJ,QAAM,CAAE,QAAQ,QAAQ,UAAW,cAAc;AAAA,IAC/C;AAAA,IACA;AAAA;AAEF,QAAM,CAAC,gBAAgB,qBAAqB,SAA0B;AACtE,QAAM,cAAc,CAAC,SAAS;AAC5B,sBAAkB,CAAC,GAAG,gBAAgB;AAAA;AAExC,QAAM,eAAe,CAAC,UAAU;AAC9B,WAAO;AAEP,UAAM,oBAAoB,CAAC,GAAG;AAC9B,sBAAkB,OAAO,OAAO;AAChC,sBAAkB;AAAA;AAEpB,SACE,oCAAC,gBAAD;AAAA,IACE;AAAA,IACA;AAAA,IACA,OACE,UAAU,eAAe,CAAC,UAAU,gBAAgB,OAAO,UACvD,QACA;AAAA,IAEN,SAAQ;AAAA,IACR;AAAA,KAEC,eAAe,SAAS,IACvB,oCAAC,OAAD,MACE,oCAAC,SAAD;AAAA,IAAS,MAAK;AAAA,KAAM,OAAO,MAAM,OAAO,cACvC,eAAe,IAAI,CAAC,SAAS,UAAU;AACtC,WACE,oCAAC,YAAD;AAAA,MACE,KAAK,GAAG,QAAQ;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA;AAAA,QAMlB,IAEF,oCAAC,YAAD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAMR,IAAO,4BAAQ;AAYR,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEI;AACJ,QAAM,cAAc,GAAG,QAAQ;AAC/B,SACE,oCAAC,MAAD;AAAA,IAAM,SAAS,OAAO,UAAU;AAAA,KAC9B,oCAAC,aAAD,MACG,OAAO,MAAM,OAAO,OAAM,MAAG,QAAQ,IAExC,oCAAC,aAAD,MACE,oCAAC,aAAD;AAAA,IACE,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,OACI,OAAO;AAAA,OAGf,oCAAC,YAAD,MACE,oCAAC,QAAD;AAAA,IAAQ,MAAK;AAAA,IAAS,SAAQ;AAAA,IAAO,SAAS,MAAM,SAAS;AAAA,KAC1D,OAAO,MAAM,OAAO;AAAA;",
4
+ "sourcesContent": ["import React, { useState } from 'react';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport FieldContainer from '@digigov/form/Field/FieldBaseContainer';\n\nimport FieldObject from '@digigov/form/FieldObject';\nimport AddObjects from '@digigov/form/MultiplicityField/add-objects';\nimport {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport { Button } from '@digigov/react-core/Button';\nimport { Card } from '@digigov/react-core/Card';\nimport { CardAction } from '@digigov/react-core/CardAction';\nimport { CardContent } from '@digigov/react-core/CardContent';\nimport { CardHeading } from '@digigov/react-core/CardHeading';\nimport { Heading } from '@digigov/react-core/Heading';\n\n// epeidh einai forwardRef to ref mas to dinei xwrista apo ta props\nexport const Multiplicity: React.FC<MultiplicityProps> = ({\n extra,\n name,\n control,\n error,\n register,\n trigger,\n clearErrors,\n formState,\n label,\n layout,\n setValue,\n getValues,\n unregister,\n}) => {\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n });\n const [stashedObjects, setStashedObjects] = useState<StashedObject[]>([]);\n const handleStash = (data) => {\n setStashedObjects([...stashedObjects, data]);\n };\n const handleDelete = (index) => {\n remove(index);\n // creating a new array to maintain immutability\n const newStashedObjects = [...stashedObjects];\n newStashedObjects.splice(index, 1);\n setStashedObjects(newStashedObjects);\n };\n return (\n <FieldContainer\n label={label}\n layout={layout}\n error={\n formState.isSubmitted && !formState.isSubmitting && error?.message\n ? error\n : undefined\n }\n wrapper=\"fieldset\"\n name={name}\n >\n {stashedObjects.length > 0 ? (\n <div>\n <Heading size=\"md\">{extra?.label.object.title_added}</Heading>\n {stashedObjects.map((_Object, index) => {\n return (\n <ListObject\n key={`${name}.${index}`}\n index={index}\n name={name}\n extra={extra}\n control={control}\n register={register}\n formState={formState}\n onDelete={handleDelete}\n />\n );\n })}\n </div>\n ) : (\n ''\n )}\n <AddObjects\n name={name}\n register={register}\n control={control}\n fields={fields}\n formState={formState}\n error={error}\n stashedObjects={stashedObjects}\n extra={extra}\n append={append}\n remove={remove}\n onStash={handleStash}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n trigger={trigger}\n clearErrors={clearErrors}\n />\n </FieldContainer>\n );\n};\n\nexport default Multiplicity;\n\nexport interface ListObjectProps {\n index: number;\n name: string;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n formState: UseFormReturn['formState'];\n onDelete: (index: number) => void;\n extra?: Record<string, any>;\n}\n\nexport const ListObject: React.FC<ListObjectProps> = ({\n index,\n name,\n extra,\n control,\n register,\n onDelete,\n formState,\n // onEdit,\n}) => {\n const currentName = `${name}.${index}`;\n return (\n <Card variant={extra?.border && 'border'}>\n <CardHeading>\n {extra?.label.object.title} #{index + 1}\n </CardHeading>\n <CardContent>\n <FieldObject\n name={currentName}\n formState={formState}\n register={register}\n control={control}\n {...extra?.of}\n />\n </CardContent>\n <CardAction>\n <Button type=\"button\" variant=\"link\" onClick={() => onDelete(index)}>\n {extra?.label.object.delete}\n </Button>\n </CardAction>\n </Card>\n );\n};\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,gBAAgB;AAChC,SAAS,qBAAoC;AAC7C,OAAO,oBAAoB;AAE3B,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AAKvB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AAGjB,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,OAAO,IAAI,cAAc;AAAA,IAC/C;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAA0B,CAAC,CAAC;AACxE,QAAM,cAAc,CAAC,SAAS;AAC5B,sBAAkB,CAAC,GAAG,gBAAgB,IAAI,CAAC;AAAA,EAC7C;AACA,QAAM,eAAe,CAAC,UAAU;AAC9B,WAAO,KAAK;AAEZ,UAAM,oBAAoB,CAAC,GAAG,cAAc;AAC5C,sBAAkB,OAAO,OAAO,CAAC;AACjC,sBAAkB,iBAAiB;AAAA,EACrC;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OACE,UAAU,eAAe,CAAC,UAAU,gBAAgB,OAAO,UACvD,QACA;AAAA,MAEN,SAAQ;AAAA,MACR;AAAA;AAAA,IAEC,eAAe,SAAS,IACvB,oCAAC,aACC,oCAAC,WAAQ,MAAK,QAAM,OAAO,MAAM,OAAO,WAAY,GACnD,eAAe,IAAI,CAAC,SAAS,UAAU;AACtC,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,GAAG,IAAI,IAAI,KAAK;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA;AAAA,MACZ;AAAA,IAEJ,CAAC,CACH,IAEA;AAAA,IAEF;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,IAAO,4BAAQ;AAYR,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEF,MAAM;AACJ,QAAM,cAAc,GAAG,IAAI,IAAI,KAAK;AACpC,SACE,oCAAC,QAAK,SAAS,OAAO,UAAU,YAC9B,oCAAC,mBACE,OAAO,MAAM,OAAO,OAAM,MAAG,QAAQ,CACxC,GACA,oCAAC,mBACC;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG,OAAO;AAAA;AAAA,EACb,CACF,GACA,oCAAC,kBACC,oCAAC,UAAO,MAAK,UAAS,SAAQ,QAAO,SAAS,MAAM,SAAS,KAAK,KAC/D,OAAO,MAAM,OAAO,MACvB,CACF,CACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -2,5 +2,5 @@
2
2
  "sideEffects": false,
3
3
  "module": "./index.js",
4
4
  "types": "./index.d.ts",
5
- "main": "../../cjs/validators/validators.spec/index.js"
5
+ "main": "../../cjs/MultiplicityField/types/index.js"
6
6
  }
@@ -0,0 +1,19 @@
1
+ import { ErrorOption, UseFormReturn } from 'react-hook-form';
2
+ import { FieldSpec } from '@digigov/form/Field/types';
3
+ import { ControlledFieldProps } from '@digigov/form/Field/types';
4
+ export interface MultiplicityProps extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'error' | 'extra'> {
5
+ name: string;
6
+ control: UseFormReturn['control'];
7
+ register: UseFormReturn['register'];
8
+ trigger: UseFormReturn['trigger'];
9
+ clearErrors: UseFormReturn['clearErrors'];
10
+ formState: UseFormReturn['formState'];
11
+ setValue: UseFormReturn['setValue'];
12
+ getValues: UseFormReturn['getValues'];
13
+ unregister: UseFormReturn['unregister'];
14
+ error?: ErrorOption;
15
+ extra?: Record<string, any>;
16
+ label?: FieldSpec['label'];
17
+ layout?: FieldSpec['layout'];
18
+ }
19
+ export type StashedObject = Record<string, any>;
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
- import React, {useState, useEffect} from "react";
2
- import {getNextStep} from "@digigov/form/Questions/getNextStep";
3
- import {QuestionsContext} from "@digigov/form/Questions/QuestionsContext";
1
+ import React, { useState, useEffect } from "react";
2
+ import { getNextStep } from "@digigov/form/Questions/getNextStep";
3
+ import { QuestionsContext } from "@digigov/form/Questions/QuestionsContext";
4
4
  const isBrowser = typeof window !== "undefined";
5
5
  const Questions = ({
6
6
  name,
@@ -13,7 +13,7 @@ const Questions = ({
13
13
  localDraft = false,
14
14
  children
15
15
  }) => {
16
- const [currentStep, setCurrentStep] = useState({name: ""});
16
+ const [currentStep, setCurrentStep] = useState({ name: "" });
17
17
  useEffect(() => {
18
18
  if (!forceStepName) {
19
19
  setCurrentStep(steps[0]);
@@ -21,12 +21,14 @@ const Questions = ({
21
21
  }, [forceStepName, steps]);
22
22
  useEffect(() => {
23
23
  if (forceStepName !== currentStep.name) {
24
- const forceStep = steps.find(({name: name2}) => name2 === forceStepName);
24
+ const forceStep = steps.find(({ name: name2 }) => name2 === forceStepName);
25
25
  forceStep && setCurrentStep(forceStep);
26
26
  }
27
27
  }, [forceStepName]);
28
28
  const localData = isBrowser && localDraft && window.localStorage.getItem(`questions-${name}`);
29
- const [data, setData] = useState(localData && JSON.parse(localData) || initialData);
29
+ const [data, setData] = useState(
30
+ localData && JSON.parse(localData) || initialData
31
+ );
30
32
  const submitStep = (stepName, stepData) => {
31
33
  data[stepName] = stepData;
32
34
  if (localDraft) {
@@ -44,15 +46,19 @@ const Questions = ({
44
46
  onSubmit(data);
45
47
  }
46
48
  };
47
- return /* @__PURE__ */ React.createElement(QuestionsContext.Provider, {
48
- value: {
49
- steps,
50
- currentStep,
51
- submitStep,
52
- data,
53
- onActiveStep
54
- }
55
- }, children);
49
+ return /* @__PURE__ */ React.createElement(
50
+ QuestionsContext.Provider,
51
+ {
52
+ value: {
53
+ steps,
54
+ currentStep,
55
+ submitStep,
56
+ data,
57
+ onActiveStep
58
+ }
59
+ },
60
+ children
61
+ );
56
62
  };
57
63
  export {
58
64
  Questions
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/Questions/Questions.tsx"],
4
4
  "sourcesContent": ["import React, { useState, useEffect } from 'react';\nimport { getNextStep } from '@digigov/form/Questions/getNextStep';\nimport { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';\nimport { StepInterface } from '@digigov/form/Questions/Step/types';\nimport { QuestionsInterface } from '@digigov/form/Questions/types';\n\nconst isBrowser = typeof window !== 'undefined';\n\n/**\n * The Question component accepts question data as props\n * uses composable components to provide a wholesome UX\n *\n */\nexport const Questions: React.FC<QuestionsInterface> = ({\n name,\n steps,\n initialData = {},\n onChange,\n onSubmit,\n onActiveStep,\n forceStepName,\n localDraft = false,\n children,\n}) => {\n const [currentStep, setCurrentStep] = useState<StepInterface>({ name: '' });\n useEffect(() => {\n if (!forceStepName) {\n setCurrentStep(steps[0]);\n }\n }, [forceStepName, steps]);\n useEffect(() => {\n if (forceStepName !== currentStep.name) {\n const forceStep = steps.find(({ name }) => name === forceStepName);\n forceStep && setCurrentStep(forceStep);\n }\n }, [forceStepName]);\n const localData =\n isBrowser && localDraft && window.localStorage.getItem(`questions-${name}`);\n const [data, setData] = useState(\n (localData && JSON.parse(localData)) || initialData\n );\n const submitStep = (stepName, stepData): void => {\n data[stepName] = stepData;\n if (localDraft) {\n isBrowser &&\n window.localStorage.setItem(`questions-${name}`, JSON.stringify(data));\n }\n if (onChange) {\n onChange && onChange(data);\n }\n setData(data);\n const nextStep = getNextStep(currentStep, steps, data);\n if (nextStep) {\n onActiveStep && onActiveStep(nextStep);\n setCurrentStep(nextStep);\n } else {\n onSubmit(data);\n }\n };\n\n return (\n <QuestionsContext.Provider\n value={{\n steps,\n currentStep,\n submitStep,\n data,\n onActiveStep,\n }}\n >\n {children}\n </QuestionsContext.Provider>\n );\n};\n"],
5
- "mappings": "AAAA;AACA;AACA;AAIA,MAAM,YAAY,OAAO,WAAW;AAO7B,MAAM,YAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,MACI;AACJ,QAAM,CAAC,aAAa,kBAAkB,SAAwB,CAAE,MAAM;AACtE,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB,qBAAe,MAAM;AAAA;AAAA,KAEtB,CAAC,eAAe;AACnB,YAAU,MAAM;AACd,QAAI,kBAAkB,YAAY,MAAM;AACtC,YAAM,YAAY,MAAM,KAAK,CAAC,CAAE,iBAAW,UAAS;AACpD,mBAAa,eAAe;AAAA;AAAA,KAE7B,CAAC;AACJ,QAAM,YACJ,aAAa,cAAc,OAAO,aAAa,QAAQ,aAAa;AACtE,QAAM,CAAC,MAAM,WAAW,SACrB,aAAa,KAAK,MAAM,cAAe;AAE1C,QAAM,aAAa,CAAC,UAAU,aAAmB;AAC/C,SAAK,YAAY;AACjB,QAAI,YAAY;AACd,mBACE,OAAO,aAAa,QAAQ,aAAa,QAAQ,KAAK,UAAU;AAAA;AAEpE,QAAI,UAAU;AACZ,kBAAY,SAAS;AAAA;AAEvB,YAAQ;AACR,UAAM,WAAW,YAAY,aAAa,OAAO;AACjD,QAAI,UAAU;AACZ,sBAAgB,aAAa;AAC7B,qBAAe;AAAA,WACV;AACL,eAAS;AAAA;AAAA;AAIb,SACE,oCAAC,iBAAiB,UAAlB;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,KAGD;AAAA;",
6
- "names": []
5
+ "mappings": "AAAA,OAAO,SAAS,UAAU,iBAAiB;AAC3C,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AAIjC,MAAM,YAAY,OAAO,WAAW;AAO7B,MAAM,YAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA,cAAc,CAAC;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,IAAI,SAAwB,EAAE,MAAM,GAAG,CAAC;AAC1E,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB,qBAAe,MAAM,CAAC,CAAC;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,eAAe,KAAK,CAAC;AACzB,YAAU,MAAM;AACd,QAAI,kBAAkB,YAAY,MAAM;AACtC,YAAM,YAAY,MAAM,KAAK,CAAC,EAAE,MAAAA,MAAK,MAAMA,UAAS,aAAa;AACjE,mBAAa,eAAe,SAAS;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,aAAa,CAAC;AAClB,QAAM,YACJ,aAAa,cAAc,OAAO,aAAa,QAAQ,aAAa,IAAI,EAAE;AAC5E,QAAM,CAAC,MAAM,OAAO,IAAI;AAAA,IACrB,aAAa,KAAK,MAAM,SAAS,KAAM;AAAA,EAC1C;AACA,QAAM,aAAa,CAAC,UAAU,aAAmB;AAC/C,SAAK,QAAQ,IAAI;AACjB,QAAI,YAAY;AACd,mBACE,OAAO,aAAa,QAAQ,aAAa,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC;AAAA,IACzE;AACA,QAAI,UAAU;AACZ,kBAAY,SAAS,IAAI;AAAA,IAC3B;AACA,YAAQ,IAAI;AACZ,UAAM,WAAW,YAAY,aAAa,OAAO,IAAI;AACrD,QAAI,UAAU;AACZ,sBAAgB,aAAa,QAAQ;AACrC,qBAAe,QAAQ;AAAA,IACzB,OAAO;AACL,eAAS,IAAI;AAAA,IACf;AAAA,EACF;AAEA,SACE;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IAEC;AAAA,EACH;AAEJ;",
6
+ "names": ["name"]
7
7
  }
@@ -4,8 +4,9 @@ var Questions_stories_default = {
4
4
  component: Questions,
5
5
  displayName: "Questions"
6
6
  };
7
- export * from "@digigov/form/Questions/__stories__/Default";
7
+ import { Default } from "@digigov/form/Questions/__stories__/Default";
8
8
  export {
9
+ Default,
9
10
  Questions_stories_default as default
10
11
  };
11
12
  //# sourceMappingURL=Questions.stories.js.map
@@ -4,5 +4,5 @@ declare namespace _default {
4
4
  export let displayName: string;
5
5
  }
6
6
  export default _default;
7
- export * from "@digigov/form/Questions/__stories__/Default";
7
+ export { Default } from "@digigov/form/Questions/__stories__/Default";
8
8
  import Questions from '@digigov/form/Questions';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Questions/Questions.stories.js"],
4
- "sourcesContent": ["import Questions from '@digigov/form/Questions';\nexport default {\n title: 'Digigov Form/Questions',\n component: Questions,\n displayName: 'Questions',\n};\nexport * from '@digigov/form/Questions/__stories__/Default';\n"],
5
- "mappings": "AAAA;AACA,IAAO,4BAAQ;AAAA,EACb,OAAO;AAAA,EACP,WAAW;AAAA,EACX,aAAa;AAAA;AAEf;",
4
+ "sourcesContent": ["import Questions from '@digigov/form/Questions';\nexport default {\n title: 'Digigov Form/Questions',\n component: Questions,\n displayName: 'Questions',\n};\nexport { Default } from '@digigov/form/Questions/__stories__/Default';\n"],
5
+ "mappings": "AAAA,OAAO,eAAe;AACtB,IAAO,4BAAQ;AAAA,EACb,OAAO;AAAA,EACP,WAAW;AAAA,EACX,aAAa;AACf;AACA,SAAS,eAAe;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
- import {createContext} from "react";
2
- const defaultStep = {name: ""};
1
+ import { createContext } from "react";
2
+ const defaultStep = { name: "" };
3
3
  const QuestionsContext = createContext({
4
4
  currentStep: defaultStep,
5
5
  steps: [],