@digigov/form 0.6.9 → 0.7.1

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 (307) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/Field/FieldBase.js +110 -0
  3. package/Field/{ConditionalField.js → FieldConditional.js} +9 -29
  4. package/Field/FieldContainer.js +62 -0
  5. package/Field/index.js +11 -251
  6. package/Field/types.js +5 -0
  7. package/Field/utils.js +146 -0
  8. package/Fieldset/FieldsetWithContext.js +63 -0
  9. package/Fieldset/index.js +4 -63
  10. package/Fieldset/types.js +5 -0
  11. package/FormBuilder.js +178 -0
  12. package/FormContext.js +14 -0
  13. package/Questions/Questions.js +105 -0
  14. package/Questions/QuestionsContext.js +20 -0
  15. package/Questions/Step/ReviewStep.js +11 -7
  16. package/Questions/Step/Step.js +93 -0
  17. package/Questions/Step/StepArrayReview.js +79 -0
  18. package/Questions/Step/StepContext.js +37 -0
  19. package/Questions/Step/StepDescription.js +2 -2
  20. package/Questions/Step/StepForm.js +10 -6
  21. package/Questions/Step/StepTitle.js +2 -2
  22. package/Questions/Step/getAddMoreFields.js +31 -0
  23. package/Questions/Step/index.js +81 -200
  24. package/Questions/Step/types.js +5 -0
  25. package/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
  26. package/Questions/getNextStep.js +30 -0
  27. package/Questions/index.js +4 -150
  28. package/Questions/types.js +5 -0
  29. package/es/Field/FieldBase.js +93 -0
  30. package/es/Field/{ConditionalField.js → FieldConditional.js} +5 -28
  31. package/es/Field/FieldContainer.js +40 -0
  32. package/es/Field/index.js +8 -233
  33. package/es/Field/types.js +1 -0
  34. package/es/Field/utils.js +122 -0
  35. package/es/Fieldset/FieldsetWithContext.js +41 -0
  36. package/es/Fieldset/index.js +3 -51
  37. package/es/Fieldset/types.js +1 -0
  38. package/es/FormBuilder.js +148 -0
  39. package/es/FormContext.js +5 -0
  40. package/es/Questions/Questions.js +84 -0
  41. package/es/Questions/QuestionsContext.js +11 -0
  42. package/es/Questions/Step/ReviewStep.js +5 -3
  43. package/es/Questions/Step/Step.js +69 -0
  44. package/es/Questions/Step/StepArrayReview.js +50 -0
  45. package/es/Questions/Step/StepContext.js +27 -0
  46. package/es/Questions/Step/StepDescription.js +1 -1
  47. package/es/Questions/Step/StepForm.js +4 -2
  48. package/es/Questions/Step/StepTitle.js +1 -1
  49. package/es/Questions/Step/getAddMoreFields.js +22 -0
  50. package/es/Questions/Step/index.js +13 -165
  51. package/es/Questions/Step/types.js +1 -0
  52. package/es/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
  53. package/es/Questions/getNextStep.js +23 -0
  54. package/es/Questions/index.js +2 -119
  55. package/es/Questions/index.spec.js +2 -1
  56. package/es/Questions/types.js +1 -0
  57. package/es/index.js +2 -153
  58. package/es/inputs/index.js +5 -4
  59. package/es/internal.js +31 -0
  60. package/es/types.js +1 -0
  61. package/es/utils.js +5 -3
  62. package/es/validators/index.js +155 -0
  63. package/es/validators/types.js +1 -0
  64. package/es/validators/utils/afm.js +35 -0
  65. package/es/validators/utils/file.js +52 -0
  66. package/es/validators/utils/iban.js +123 -0
  67. package/es/validators/utils/index.js +105 -0
  68. package/es/validators/utils/phone.js +122 -0
  69. package/es/validators/utils/postal_code.js +29 -0
  70. package/es/validators/utils/uuid4.js +20 -0
  71. package/{esm → es/validators}/validators.spec.js +1 -1
  72. package/esm/Field/FieldBase.js +93 -0
  73. package/esm/Field/{ConditionalField.js → FieldConditional.js} +5 -28
  74. package/esm/Field/FieldContainer.js +40 -0
  75. package/esm/Field/index.js +8 -233
  76. package/esm/Field/types.js +1 -0
  77. package/esm/Field/utils.js +122 -0
  78. package/esm/Fieldset/FieldsetWithContext.js +41 -0
  79. package/esm/Fieldset/index.js +3 -51
  80. package/esm/Fieldset/types.js +1 -0
  81. package/esm/FormBuilder.js +148 -0
  82. package/esm/FormContext.js +5 -0
  83. package/esm/Questions/Questions.js +84 -0
  84. package/esm/Questions/QuestionsContext.js +11 -0
  85. package/esm/Questions/Step/ReviewStep.js +5 -3
  86. package/esm/Questions/Step/Step.js +69 -0
  87. package/esm/Questions/Step/StepArrayReview.js +50 -0
  88. package/esm/Questions/Step/StepContext.js +27 -0
  89. package/esm/Questions/Step/StepDescription.js +1 -1
  90. package/esm/Questions/Step/StepForm.js +4 -2
  91. package/esm/Questions/Step/StepTitle.js +1 -1
  92. package/esm/Questions/Step/getAddMoreFields.js +22 -0
  93. package/esm/Questions/Step/index.js +13 -165
  94. package/esm/Questions/Step/types.js +1 -0
  95. package/esm/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
  96. package/esm/Questions/getNextStep.js +23 -0
  97. package/esm/Questions/index.js +2 -119
  98. package/esm/Questions/index.spec.js +2 -1
  99. package/esm/Questions/types.js +1 -0
  100. package/esm/index.js +3 -154
  101. package/esm/inputs/index.js +5 -4
  102. package/esm/internal.js +31 -0
  103. package/esm/types.js +1 -0
  104. package/esm/utils.js +5 -3
  105. package/esm/validators/index.js +155 -0
  106. package/esm/validators/types.js +1 -0
  107. package/esm/validators/utils/afm.js +35 -0
  108. package/esm/validators/utils/file.js +52 -0
  109. package/esm/validators/utils/iban.js +123 -0
  110. package/esm/validators/utils/index.js +105 -0
  111. package/esm/validators/utils/phone.js +122 -0
  112. package/esm/validators/utils/postal_code.js +29 -0
  113. package/esm/validators/utils/uuid4.js +20 -0
  114. package/{es → esm/validators}/validators.spec.js +1 -1
  115. package/index.js +8 -191
  116. package/inputs/index.js +13 -5
  117. package/internal.js +356 -0
  118. package/libs/form/src/Field/FieldBase.d.ts +3 -0
  119. package/libs/form/src/Field/FieldConditional.d.ts +4 -0
  120. package/libs/form/src/Field/FieldContainer.d.ts +4 -0
  121. package/libs/form/src/Field/index.d.ts +1 -62
  122. package/libs/form/src/Field/types.d.ts +75 -0
  123. package/libs/form/src/Field/utils.d.ts +5 -0
  124. package/libs/form/src/Fieldset/FieldsetWithContext.d.ts +4 -0
  125. package/libs/form/src/Fieldset/index.d.ts +2 -12
  126. package/libs/form/src/Fieldset/types.d.ts +6 -0
  127. package/libs/form/src/FormBuilder.d.ts +5 -0
  128. package/libs/form/src/FormContext.d.ts +3 -0
  129. package/libs/form/src/Questions/Questions.d.ts +8 -0
  130. package/libs/form/src/Questions/QuestionsContext.d.ts +3 -0
  131. package/libs/form/src/Questions/Step/ReviewStep.d.ts +1 -0
  132. package/libs/form/src/Questions/Step/Step.d.ts +9 -0
  133. package/libs/form/src/Questions/Step/StepArrayReview.d.ts +4 -0
  134. package/libs/form/src/Questions/Step/StepContext.d.ts +4 -0
  135. package/libs/form/src/Questions/Step/StepForm.d.ts +2 -1
  136. package/libs/form/src/Questions/Step/getAddMoreFields.d.ts +3 -0
  137. package/libs/form/src/Questions/Step/index.d.ts +12 -47
  138. package/libs/form/src/Questions/Step/types.d.ts +31 -0
  139. package/libs/form/src/Questions/getNextStep.d.ts +2 -0
  140. package/libs/form/src/Questions/index.d.ts +1 -28
  141. package/libs/form/src/Questions/types.d.ts +19 -0
  142. package/libs/form/src/index.d.ts +2 -73
  143. package/libs/form/src/inputs/Checkboxes/index.d.ts +1 -1
  144. package/libs/form/src/inputs/DateInput/index.d.ts +1 -2
  145. package/libs/form/src/inputs/FileInput/index.d.ts +1 -1
  146. package/libs/form/src/inputs/Input/index.d.ts +1 -1
  147. package/libs/form/src/inputs/Label/index.d.ts +2 -1
  148. package/libs/form/src/inputs/Radio/index.d.ts +1 -1
  149. package/libs/form/src/inputs/Select/index.d.ts +1 -1
  150. package/libs/form/src/inputs/index.d.ts +4 -3
  151. package/libs/form/src/internal.d.ts +31 -0
  152. package/libs/form/src/types.d.ts +70 -0
  153. package/libs/form/src/validators/index.d.ts +8 -0
  154. package/libs/form/src/validators/types.d.ts +2 -0
  155. package/libs/form/src/validators/utils/afm.d.ts +6 -0
  156. package/libs/form/src/validators/utils/file.d.ts +1 -0
  157. package/libs/form/src/validators/utils/iban.d.ts +2 -0
  158. package/libs/form/src/validators/utils/index.d.ts +12 -0
  159. package/libs/form/src/validators/utils/phone.d.ts +9 -0
  160. package/libs/form/src/validators/utils/postal_code.d.ts +2 -0
  161. package/libs/form/src/validators/utils/uuid4.d.ts +6 -0
  162. package/libs/form/src/{validators.spec.d.ts → validators/validators.spec.d.ts} +0 -0
  163. package/libs/ui/src/core/Accordion/index.d.ts +3 -3
  164. package/libs/ui/src/core/Base/index.d.ts +3 -0
  165. package/libs/ui/src/core/Blockquote/index.d.ts +1 -1
  166. package/libs/ui/src/core/Button/BackButton.d.ts +1 -1
  167. package/libs/ui/src/core/Button/ButtonLink.d.ts +1 -1
  168. package/libs/ui/src/core/Button/index.d.ts +1 -1
  169. package/libs/ui/src/core/Divider/index.d.ts +1 -1
  170. package/libs/ui/src/core/Form/index.d.ts +3 -0
  171. package/libs/ui/src/core/Label/index.d.ts +4 -0
  172. package/libs/ui/src/core/Link/index.d.ts +1 -0
  173. package/libs/ui/src/core/NavList/NavHorizontal.d.ts +3 -0
  174. package/libs/ui/src/core/NavList/NavHorizontalList.d.ts +3 -0
  175. package/libs/ui/src/core/NavList/NavHorizontalListItem.d.ts +3 -0
  176. package/libs/ui/src/core/NavList/NavList.d.ts +1 -14
  177. package/libs/ui/src/core/NavList/NavListBase.d.ts +4 -0
  178. package/libs/ui/src/core/NavList/NavListItem.d.ts +1 -0
  179. package/libs/ui/src/core/NavList/NavListItemBase.d.ts +2 -1
  180. package/libs/ui/src/core/NavList/NavListSubMenu.d.ts +1 -1
  181. package/libs/ui/src/core/NavList/NavVertical.d.ts +3 -0
  182. package/libs/ui/src/core/NavList/NavVerticalItem.d.ts +3 -0
  183. package/libs/ui/src/core/NavList/index.d.ts +5 -0
  184. package/libs/ui/src/core/NavList/types.d.ts +14 -0
  185. package/libs/ui/src/core/SkipLink/index.d.ts +3 -0
  186. package/libs/ui/src/core/SvgIcon/index.d.ts +1 -0
  187. package/libs/ui/src/core/Table/TableFloatingScroll.d.ts +2 -0
  188. package/libs/ui/src/core/Table/index.d.ts +1 -0
  189. package/libs/ui/src/core/index.d.ts +4 -0
  190. package/libs/ui/src/layouts/Grid/index.d.ts +1 -0
  191. package/libs/ui/src/typography/Caption/index.d.ts +3 -2
  192. package/libs/ui/src/typography/Title/index.d.ts +2 -1
  193. package/libs-ui/react-core/src/Accordion/index.d.ts +3 -3
  194. package/libs-ui/react-core/src/AccordionControls/index.d.ts +3 -3
  195. package/libs-ui/react-core/src/AccordionSection/index.d.ts +3 -3
  196. package/libs-ui/react-core/src/AccordionSectionContent/index.d.ts +3 -3
  197. package/libs-ui/react-core/src/AccordionSectionHeader/index.d.ts +3 -3
  198. package/libs-ui/react-core/src/AccordionSectionSummary/index.d.ts +4 -3
  199. package/libs-ui/react-core/src/AccordionSectionSummaryHeading/index.d.ts +3 -3
  200. package/libs-ui/react-core/src/BackLink/index.d.ts +3 -3
  201. package/libs-ui/react-core/src/Base/index.d.ts +43 -0
  202. package/libs-ui/react-core/src/Blockquote/index.d.ts +3 -3
  203. package/libs-ui/react-core/src/Breadcrumbs/index.d.ts +3 -3
  204. package/libs-ui/react-core/src/BreadcrumbsList/index.d.ts +3 -3
  205. package/libs-ui/react-core/src/BreadcrumbsListItem/index.d.ts +3 -3
  206. package/libs-ui/react-core/src/Button/index.d.ts +3 -3
  207. package/libs-ui/react-core/src/ButtonGroup/index.d.ts +3 -3
  208. package/libs-ui/react-core/src/ButtonLink/index.d.ts +3 -3
  209. package/libs-ui/react-core/src/CallToAction/index.d.ts +1 -1
  210. package/libs-ui/react-core/src/Card/index.d.ts +3 -3
  211. package/libs-ui/react-core/src/CardAction/index.d.ts +3 -3
  212. package/libs-ui/react-core/src/CardHeading/index.d.ts +3 -3
  213. package/libs-ui/react-core/src/CardText/index.d.ts +3 -3
  214. package/libs-ui/react-core/src/CheckIcon/index.d.ts +15 -0
  215. package/libs-ui/react-core/src/Checkbox/index.d.ts +3 -3
  216. package/libs-ui/react-core/src/CheckboxItem/index.d.ts +3 -3
  217. package/libs-ui/react-core/src/Confirmation/index.d.ts +3 -3
  218. package/libs-ui/react-core/src/ConfirmationBody/index.d.ts +3 -3
  219. package/libs-ui/react-core/src/ConfirmationTitle/index.d.ts +3 -3
  220. package/libs-ui/react-core/src/DateInput/index.d.ts +3 -3
  221. package/libs-ui/react-core/src/DateInputItem/index.d.ts +3 -3
  222. package/libs-ui/react-core/src/Details/index.d.ts +3 -3
  223. package/libs-ui/react-core/src/DetailsContent/index.d.ts +3 -3
  224. package/libs-ui/react-core/src/DetailsSummary/index.d.ts +3 -3
  225. package/libs-ui/react-core/src/ErrorMessage/index.d.ts +3 -3
  226. package/libs-ui/react-core/src/ErrorSummary/index.d.ts +3 -3
  227. package/libs-ui/react-core/src/Field/index.d.ts +3 -3
  228. package/libs-ui/react-core/src/Fieldset/index.d.ts +3 -3
  229. package/libs-ui/react-core/src/FieldsetLegend/index.d.ts +3 -3
  230. package/libs-ui/react-core/src/FileUpload/index.d.ts +3 -3
  231. package/libs-ui/react-core/src/Form/index.d.ts +11 -0
  232. package/libs-ui/react-core/src/Grid/index.d.ts +3 -3
  233. package/libs-ui/react-core/src/Heading/index.d.ts +3 -3
  234. package/libs-ui/react-core/src/HeadingCaption/index.d.ts +3 -3
  235. package/libs-ui/react-core/src/Hidden/index.d.ts +3 -3
  236. package/libs-ui/react-core/src/Hint/index.d.ts +3 -3
  237. package/libs-ui/react-core/src/Label/index.d.ts +3 -3
  238. package/libs-ui/react-core/src/LabelTitle/index.d.ts +7 -7
  239. package/libs-ui/react-core/src/Link/index.d.ts +3 -3
  240. package/libs-ui/react-core/src/List/index.d.ts +3 -3
  241. package/libs-ui/react-core/src/ListItem/index.d.ts +3 -3
  242. package/libs-ui/react-core/src/NavHorizontal/index.d.ts +16 -0
  243. package/libs-ui/react-core/src/NavHorizontalList/index.d.ts +10 -0
  244. package/libs-ui/react-core/src/NavHorizontalListItem/index.d.ts +18 -0
  245. package/libs-ui/react-core/src/NavVertical/index.d.ts +11 -0
  246. package/libs-ui/react-core/src/NavVerticalItem/index.d.ts +14 -0
  247. package/libs-ui/react-core/src/NormalText/index.d.ts +3 -3
  248. package/libs-ui/react-core/src/NotificationBanner/index.d.ts +3 -3
  249. package/libs-ui/react-core/src/NotificationBannerContent/index.d.ts +3 -3
  250. package/libs-ui/react-core/src/NotificationBannerHeader/index.d.ts +3 -3
  251. package/libs-ui/react-core/src/NotificationBannerHeading/index.d.ts +3 -3
  252. package/libs-ui/react-core/src/NotificationBannerLink/index.d.ts +3 -3
  253. package/libs-ui/react-core/src/Paragraph/index.d.ts +3 -3
  254. package/libs-ui/react-core/src/PhaseBanner/index.d.ts +3 -3
  255. package/libs-ui/react-core/src/PhaseBannerHeaderContainer/index.d.ts +3 -3
  256. package/libs-ui/react-core/src/PhaseBannerTag/index.d.ts +3 -3
  257. package/libs-ui/react-core/src/PhaseBannerText/index.d.ts +3 -3
  258. package/libs-ui/react-core/src/Radio/index.d.ts +3 -3
  259. package/libs-ui/react-core/src/RadioItem/index.d.ts +3 -3
  260. package/libs-ui/react-core/src/SectionBreak/index.d.ts +3 -3
  261. package/libs-ui/react-core/src/Select/index.d.ts +3 -3
  262. package/libs-ui/react-core/src/SelectOption/index.d.ts +3 -3
  263. package/libs-ui/react-core/src/SkipLink/index.d.ts +10 -0
  264. package/libs-ui/react-core/src/SummaryList/index.d.ts +3 -3
  265. package/libs-ui/react-core/src/SummaryListItem/index.d.ts +3 -3
  266. package/libs-ui/react-core/src/SummaryListItemAction/index.d.ts +3 -3
  267. package/libs-ui/react-core/src/SummaryListItemKey/index.d.ts +3 -3
  268. package/libs-ui/react-core/src/SummaryListItemValue/index.d.ts +3 -3
  269. package/libs-ui/react-core/src/SvgIcon/index.d.ts +3 -3
  270. package/libs-ui/react-core/src/Table/index.d.ts +3 -3
  271. package/libs-ui/react-core/src/TableBody/index.d.ts +3 -3
  272. package/libs-ui/react-core/src/TableCaption/index.d.ts +3 -3
  273. package/libs-ui/react-core/src/TableContainer/index.d.ts +3 -3
  274. package/libs-ui/react-core/src/TableDataCell/index.d.ts +3 -3
  275. package/libs-ui/react-core/src/TableHead/index.d.ts +3 -3
  276. package/libs-ui/react-core/src/TableHeadCell/index.d.ts +3 -3
  277. package/libs-ui/react-core/src/TableNoDataRow/index.d.ts +3 -3
  278. package/libs-ui/react-core/src/TableRow/index.d.ts +3 -3
  279. package/libs-ui/react-core/src/Tabs/index.d.ts +3 -3
  280. package/libs-ui/react-core/src/TabsHeading/index.d.ts +3 -3
  281. package/libs-ui/react-core/src/TabsList/index.d.ts +3 -3
  282. package/libs-ui/react-core/src/TabsListItem/index.d.ts +3 -3
  283. package/libs-ui/react-core/src/TabsPanel/index.d.ts +3 -3
  284. package/libs-ui/react-core/src/TextArea/index.d.ts +3 -3
  285. package/libs-ui/react-core/src/TextInput/index.d.ts +3 -3
  286. package/libs-ui/react-core/src/UncheckIcon/index.d.ts +4 -4
  287. package/libs-ui/react-core/src/VisuallyHidden/index.d.ts +3 -3
  288. package/libs-ui/react-core/src/WarningText/index.d.ts +3 -3
  289. package/package.json +3 -2
  290. package/types.js +5 -0
  291. package/utils.js +6 -4
  292. package/validators/index.js +181 -0
  293. package/validators/types.js +5 -0
  294. package/validators/utils/afm.js +45 -0
  295. package/validators/utils/file.js +62 -0
  296. package/validators/utils/iban.js +134 -0
  297. package/validators/utils/index.js +210 -0
  298. package/validators/utils/phone.js +144 -0
  299. package/validators/utils/postal_code.js +40 -0
  300. package/validators/utils/uuid4.js +30 -0
  301. package/validators/validators.spec.js +88 -0
  302. package/es/validators.js +0 -626
  303. package/esm/validators.js +0 -626
  304. package/libs/form/src/Field/ConditionalField.d.ts +0 -17
  305. package/libs/form/src/validators.d.ts +0 -14
  306. package/validators.js +0 -662
  307. package/validators.spec.js +0 -88
@@ -0,0 +1,122 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import { useContext, useMemo } from 'react';
3
+ import Input from '@digigov/form/inputs/Input';
4
+ import Checkboxes from '@digigov/form/inputs/Checkboxes';
5
+ import Radio from '@digigov/form/inputs/Radio';
6
+ import Select from '@digigov/form/inputs/Select';
7
+ import FileInput from '@digigov/form/inputs/FileInput';
8
+ import DateInput from '@digigov/form/inputs/DateInput';
9
+ import { FormContext } from '@digigov/form/FormContext';
10
+ var FIELD_COMPONENTS = {
11
+ text: {
12
+ component: Input
13
+ },
14
+ string: {
15
+ component: Input
16
+ },
17
+ file: {
18
+ wrapper: 'fieldset',
19
+ component: FileInput
20
+ },
21
+ date: {
22
+ wrapper: 'fieldset',
23
+ controlled: true,
24
+ component: DateInput
25
+ },
26
+ 'choice:multiple': {
27
+ wrapper: 'fieldset',
28
+ controlled: true,
29
+ component: Checkboxes
30
+ },
31
+ 'choice:single': {
32
+ wrapper: 'fieldset',
33
+ controlled: false,
34
+ component: Radio
35
+ }
36
+ };
37
+ var ALTERNATIVE_COMPONENTS = {
38
+ Select: {
39
+ component: Select,
40
+ controlled: false
41
+ }
42
+ };
43
+ export function calculateField(children, field, componentRegistry) {
44
+ var _field$extra;
45
+
46
+ var calculatedField = _extends({}, field);
47
+
48
+ var fieldComponentRegistry = _extends({}, FIELD_COMPONENTS, componentRegistry);
49
+
50
+ if (children) {
51
+ calculatedField.component = children;
52
+ } else if (typeof field.component === 'function') {// leave as is
53
+ } else if (!field.component && !field.type) {
54
+ var _fieldComponentRegist;
55
+
56
+ calculatedField.component = fieldComponentRegistry.string.component;
57
+ calculatedField.controlled = ((_fieldComponentRegist = fieldComponentRegistry.string) === null || _fieldComponentRegist === void 0 ? void 0 : _fieldComponentRegist.controlled) || false;
58
+ } else if (typeof (field === null || field === void 0 ? void 0 : (_field$extra = field.extra) === null || _field$extra === void 0 ? void 0 : _field$extra.component) === 'string' && ALTERNATIVE_COMPONENTS[field.extra.component]) {
59
+ var _ALTERNATIVE_COMPONEN;
60
+
61
+ calculatedField.controlled = ((_ALTERNATIVE_COMPONEN = ALTERNATIVE_COMPONENTS[field.extra.component]) === null || _ALTERNATIVE_COMPONEN === void 0 ? void 0 : _ALTERNATIVE_COMPONEN.controlled) || false;
62
+ calculatedField.component = ALTERNATIVE_COMPONENTS[field.extra.component].component;
63
+ } else if (!field.component && field.type && fieldComponentRegistry[field.type]) {
64
+ var _fieldComponentRegist2;
65
+
66
+ calculatedField.component = fieldComponentRegistry[field.type].component;
67
+ calculatedField.wrapper = fieldComponentRegistry[field.type].wrapper;
68
+ calculatedField.controlled = ((_fieldComponentRegist2 = fieldComponentRegistry[field.type]) === null || _fieldComponentRegist2 === void 0 ? void 0 : _fieldComponentRegist2.controlled) || false;
69
+ } else {
70
+ var _fieldComponentRegist3;
71
+
72
+ calculatedField.component = fieldComponentRegistry.string.component;
73
+ calculatedField.controlled = ((_fieldComponentRegist3 = fieldComponentRegistry.string) === null || _fieldComponentRegist3 === void 0 ? void 0 : _fieldComponentRegist3.controlled) || false;
74
+ }
75
+
76
+ return calculatedField;
77
+ }
78
+ export var useField = function useField(name, customField) {
79
+ var _useContext = useContext(FormContext),
80
+ fieldsMap = _useContext.fieldsMap,
81
+ control = _useContext.control,
82
+ register = _useContext.register,
83
+ errors = _useContext.errors,
84
+ registerField = _useContext.registerField,
85
+ componentRegistry = _useContext.componentRegistry;
86
+
87
+ useMemo(function () {
88
+ return (customField === null || customField === void 0 ? void 0 : customField.type) && registerField(_extends({}, customField, {
89
+ key: name
90
+ }));
91
+ }, [customField, name, registerField]);
92
+ return {
93
+ field: customField || fieldsMap[name],
94
+ control: control,
95
+ register: register,
96
+ componentRegistry: componentRegistry,
97
+ error: errors[name]
98
+ };
99
+ };
100
+ export function evaluateFieldWithConditions(field, variables) {
101
+ var newField = _extends({}, field);
102
+
103
+ if (variables) {
104
+ for (var key in variables) {
105
+ if (field.condition[key] && field.condition[key].is === variables[key]) {
106
+ var then = field.condition[key].then || {};
107
+
108
+ for (var attr in then) {
109
+ newField[attr] = then[attr];
110
+ }
111
+ } else if (field.condition[key]) {
112
+ var otherwise = field.condition[key]["else"] || {};
113
+
114
+ for (var _attr in otherwise) {
115
+ newField[_attr] = otherwise[_attr];
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ return newField;
122
+ }
@@ -0,0 +1,41 @@
1
+ import React, { useContext, useMemo } from 'react';
2
+ import { FormContext } from '@digigov/form/FormContext';
3
+ import Field from '@digigov/form/Field';
4
+ import { useTranslation } from '@digigov/ui/app/i18n';
5
+ import { Fieldset, FieldsetLabel, FieldsetCaption, FieldsetBody } from '@digigov/form/Fieldset/';
6
+ export var FieldsetWithContext = function FieldsetWithContext(_ref) {
7
+ var name = _ref.name;
8
+
9
+ var _useFieldset = useFieldset(name),
10
+ label = _useFieldset.label,
11
+ body = _useFieldset.body,
12
+ fields = _useFieldset.fields;
13
+
14
+ var _useTranslation = useTranslation(),
15
+ t = _useTranslation.t;
16
+
17
+ var _ref2 = /*#__PURE__*/React.createElement(FieldsetBody, null, body);
18
+
19
+ return useMemo(function () {
20
+ return /*#__PURE__*/React.createElement(Fieldset, null, (label === null || label === void 0 ? void 0 : label.primary) && /*#__PURE__*/React.createElement(FieldsetLabel, null, t(label.primary)), (label === null || label === void 0 ? void 0 : label.secondary) && /*#__PURE__*/React.createElement(FieldsetCaption, null, t(label.secondary)), body && _ref2, fields.map(function (field) {
21
+ return /*#__PURE__*/React.createElement(Field, {
22
+ key: field,
23
+ name: field
24
+ });
25
+ }));
26
+ }, [label === null || label === void 0 ? void 0 : label.primary, label === null || label === void 0 ? void 0 : label.secondary, body, fields]);
27
+ };
28
+
29
+ var useFieldset = function useFieldset(name) {
30
+ var _useContext = useContext(FormContext),
31
+ fieldsetsMap = _useContext.fieldsetsMap;
32
+
33
+ if (fieldsetsMap && fieldsetsMap[name]) {
34
+ return useMemo(function () {
35
+ return fieldsetsMap[name];
36
+ }, [name]);
37
+ } else {
38
+ if (!fieldsetsMap) throw new Error("Fieldsets is not defined");
39
+ throw new Error("No fieldset with name ".concat(name, " found"));
40
+ }
41
+ };
@@ -1,12 +1,9 @@
1
- import React, { useContext, useMemo } from 'react';
1
+ import React from 'react';
2
2
  import Grid from '@digigov/ui/layouts/Grid';
3
3
  import CoreFieldset from '@digigov/react-core/Fieldset';
4
4
  import FieldsetLegend from '@digigov/react-core/FieldsetLegend';
5
5
  import Hint from '@digigov/react-core/Hint';
6
- import { FormContext } from '@digigov/form';
7
- import Field from '@digigov/form/Field';
8
6
  import NormalText from '@digigov/ui/typography/NormalText';
9
- import { useTranslation } from '@digigov/ui/app/i18n';
10
7
  export var FieldsetLabel = function FieldsetLabel(_ref) {
11
8
  var children = _ref.children;
12
9
  return /*#__PURE__*/React.createElement(FieldsetLegend, {
@@ -25,53 +22,8 @@ export var FieldsetBody = function FieldsetBody(_ref3) {
25
22
  xs: 12
26
23
  }, /*#__PURE__*/React.createElement(NormalText, null, children));
27
24
  };
28
-
29
- var useFieldset = function useFieldset(name) {
30
- var _useContext = useContext(FormContext),
31
- fieldsetsMap = _useContext.fieldsetsMap;
32
-
33
- if (fieldsetsMap && fieldsetsMap[name]) {
34
- return useMemo(function () {
35
- return fieldsetsMap[name];
36
- }, [name]);
37
- } else {
38
- if (!fieldsetsMap) throw new Error("Fieldsets is not defined");
39
- throw new Error("No fieldset with name ".concat(name, " found"));
40
- }
41
- };
42
-
43
- export var FieldsetWithContext = function FieldsetWithContext(_ref4) {
44
- var name = _ref4.name;
45
-
46
- var _useFieldset = useFieldset(name),
47
- label = _useFieldset.label,
48
- body = _useFieldset.body,
49
- fields = _useFieldset.fields;
50
-
51
- var _useTranslation = useTranslation(),
52
- t = _useTranslation.t;
53
-
54
- var _ref5 = /*#__PURE__*/React.createElement(FieldsetBody, null, body);
55
-
56
- return useMemo(function () {
57
- return /*#__PURE__*/React.createElement(Fieldset, null, (label === null || label === void 0 ? void 0 : label.primary) && /*#__PURE__*/React.createElement(FieldsetLabel, null, t(label.primary)), (label === null || label === void 0 ? void 0 : label.secondary) && /*#__PURE__*/React.createElement(FieldsetCaption, null, t(label.secondary)), body && _ref5, fields.map(function (field) {
58
- return /*#__PURE__*/React.createElement(Field, {
59
- key: field,
60
- name: field
61
- });
62
- }));
63
- }, [label === null || label === void 0 ? void 0 : label.primary, label === null || label === void 0 ? void 0 : label.secondary, body, fields]);
64
- };
65
- export var Fieldset = function Fieldset(_ref6) {
66
- var name = _ref6.name,
67
- children = _ref6.children;
68
-
69
- if (name && !children) {
70
- return /*#__PURE__*/React.createElement(FieldsetWithContext, {
71
- name: name
72
- });
73
- }
74
-
25
+ export var Fieldset = function Fieldset(_ref4) {
26
+ var children = _ref4.children;
75
27
  return /*#__PURE__*/React.createElement(CoreFieldset, null, children);
76
28
  };
77
29
  export default Fieldset;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,148 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ import _extends from "@babel/runtime/helpers/extends";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["onSubmit", "children", "registerField", "fieldsMap", "fieldsetsMap", "resolver", "mode", "initial", "reValidateMode", "shouldFocusError", "criteriaMode", "componentRegistry", "grid"],
6
+ _excluded2 = ["fields", "fieldsets", "initial", "onSubmit", "children", "reValidateMode", "mode", "shouldFocusError", "criteriaMode", "auto", "validatorRegistry", "componentRegistry", "grid"];
7
+
8
+ /* eslint-disable @typescript-eslint/no-explicit-any */
9
+ import React, { useCallback, useRef } from 'react';
10
+ import { useForm } from 'react-hook-form';
11
+ import { yupResolver } from '@digigov/form/utils';
12
+ import { useValidationSchema } from '@digigov/form/validators';
13
+ import Fieldset from '@digigov/form/Fieldset';
14
+ import Field from '@digigov/form/Field';
15
+ import { FormContext } from '@digigov/form/FormContext';
16
+ import { Form } from '@digigov/react-core/Form';
17
+ export var FormBase = /*#__PURE__*/React.forwardRef(function FormBase(_ref, ref) {
18
+ var onSubmit = _ref.onSubmit,
19
+ children = _ref.children,
20
+ registerField = _ref.registerField,
21
+ fieldsMap = _ref.fieldsMap,
22
+ fieldsetsMap = _ref.fieldsetsMap,
23
+ resolver = _ref.resolver,
24
+ mode = _ref.mode,
25
+ initial = _ref.initial,
26
+ reValidateMode = _ref.reValidateMode,
27
+ shouldFocusError = _ref.shouldFocusError,
28
+ criteriaMode = _ref.criteriaMode,
29
+ componentRegistry = _ref.componentRegistry,
30
+ grid = _ref.grid,
31
+ props = _objectWithoutProperties(_ref, _excluded);
32
+
33
+ var form = useForm({
34
+ resolver: resolver,
35
+ mode: mode,
36
+ defaultValues: initial,
37
+ reValidateMode: reValidateMode,
38
+ shouldFocusError: shouldFocusError,
39
+ criteriaMode: criteriaMode
40
+ });
41
+ var handleSubmit = useCallback(function (data) {
42
+ var errors = onSubmit && onSubmit(data);
43
+
44
+ if (errors) {
45
+ for (var key in errors) {
46
+ form.setError(key, errors[key]);
47
+ }
48
+ }
49
+ }, [onSubmit]);
50
+ var ctx = {
51
+ fieldsMap: fieldsMap,
52
+ fieldsetsMap: fieldsetsMap,
53
+ control: form.control,
54
+ register: form.register,
55
+ registerField: registerField,
56
+ errors: form.errors,
57
+ reset: form.reset,
58
+ componentRegistry: componentRegistry
59
+ };
60
+ return /*#__PURE__*/React.createElement(FormContext.Provider, {
61
+ value: ctx
62
+ }, /*#__PURE__*/React.createElement(Form, _extends({
63
+ grid: grid,
64
+ onSubmit: form.handleSubmit(handleSubmit),
65
+ ref: ref
66
+ }, props), children));
67
+ });
68
+ export var FormBuilder = /*#__PURE__*/React.forwardRef(function FormBuilder(_ref2, ref) {
69
+ var _ref2$fields = _ref2.fields,
70
+ fields = _ref2$fields === void 0 ? [] : _ref2$fields,
71
+ fieldsets = _ref2.fieldsets,
72
+ _ref2$initial = _ref2.initial,
73
+ initial = _ref2$initial === void 0 ? {} : _ref2$initial,
74
+ onSubmit = _ref2.onSubmit,
75
+ children = _ref2.children,
76
+ _ref2$reValidateMode = _ref2.reValidateMode,
77
+ reValidateMode = _ref2$reValidateMode === void 0 ? 'onSubmit' : _ref2$reValidateMode,
78
+ _ref2$mode = _ref2.mode,
79
+ mode = _ref2$mode === void 0 ? 'onSubmit' : _ref2$mode,
80
+ _ref2$shouldFocusErro = _ref2.shouldFocusError,
81
+ shouldFocusError = _ref2$shouldFocusErro === void 0 ? true : _ref2$shouldFocusErro,
82
+ _ref2$criteriaMode = _ref2.criteriaMode,
83
+ criteriaMode = _ref2$criteriaMode === void 0 ? 'firstError' : _ref2$criteriaMode,
84
+ _ref2$auto = _ref2.auto,
85
+ auto = _ref2$auto === void 0 ? false : _ref2$auto,
86
+ validatorRegistry = _ref2.validatorRegistry,
87
+ componentRegistry = _ref2.componentRegistry,
88
+ _ref2$grid = _ref2.grid,
89
+ grid = _ref2$grid === void 0 ? false : _ref2$grid,
90
+ props = _objectWithoutProperties(_ref2, _excluded2);
91
+
92
+ var fieldsState = useRef(fields);
93
+ var setFieldsState = useCallback(function (newFields) {
94
+ fieldsState.current = newFields;
95
+ }, []);
96
+ var schema = useValidationSchema(fieldsState, validatorRegistry);
97
+ var registerField = useCallback(function (field) {
98
+ setFieldsState([].concat(_toConsumableArray(fieldsState.current), [field]));
99
+ }, []);
100
+ var resolver;
101
+ var fieldsMap;
102
+ var fieldsetsMap;
103
+ var fieldChildren;
104
+
105
+ if (schema) {
106
+ resolver = yupResolver(schema);
107
+ fieldsMap = fields ? fields.reduce(function (map, field) {
108
+ return _extends({}, map, _defineProperty({}, field.key, field));
109
+ }, {}) : {};
110
+ fieldsetsMap = fieldsets && fieldsets.reduce(function (map, fieldset) {
111
+ return _extends({}, map, _defineProperty({}, fieldset.key, fieldset));
112
+ }, {});
113
+
114
+ if (auto) {
115
+ if (fieldsets) {
116
+ fieldChildren = fieldsets.map(function (fieldset) {
117
+ return /*#__PURE__*/React.createElement(Fieldset, {
118
+ key: fieldset.key
119
+ });
120
+ });
121
+ } else if (fields) {
122
+ fieldChildren = fields.map(function (field) {
123
+ return /*#__PURE__*/React.createElement(Field, {
124
+ key: field.key,
125
+ name: field.key
126
+ });
127
+ });
128
+ }
129
+ }
130
+ }
131
+
132
+ return /*#__PURE__*/React.createElement(FormBase, _extends({
133
+ resolver: resolver,
134
+ fieldsetsMap: fieldsetsMap,
135
+ fieldsMap: fieldsMap,
136
+ registerField: registerField,
137
+ initial: initial,
138
+ reValidateMode: reValidateMode,
139
+ mode: mode,
140
+ shouldFocusError: shouldFocusError,
141
+ criteriaMode: criteriaMode,
142
+ onSubmit: onSubmit,
143
+ componentRegistry: componentRegistry,
144
+ ref: ref,
145
+ grid: grid
146
+ }, props), fieldChildren, children);
147
+ });
148
+ export default FormBuilder;
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'react';
2
+ export var FormContext = /*#__PURE__*/createContext({
3
+ fieldsMap: {},
4
+ fieldsetsMap: {}
5
+ });
@@ -0,0 +1,84 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useState, useEffect } from 'react';
3
+ import { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';
4
+ import { getNextStep } from '@digigov/form/Questions/getNextStep';
5
+ var isBrowser = typeof window !== 'undefined';
6
+ /**
7
+ * The Question component accepts question data as props
8
+ * uses composable components to provide a wholesome UX
9
+ *
10
+ */
11
+
12
+ export var Questions = function Questions(_ref) {
13
+ var name = _ref.name,
14
+ steps = _ref.steps,
15
+ _ref$initialData = _ref.initialData,
16
+ initialData = _ref$initialData === void 0 ? {} : _ref$initialData,
17
+ onChange = _ref.onChange,
18
+ onSubmit = _ref.onSubmit,
19
+ onActiveStep = _ref.onActiveStep,
20
+ forceStepName = _ref.forceStepName,
21
+ _ref$localDraft = _ref.localDraft,
22
+ localDraft = _ref$localDraft === void 0 ? false : _ref$localDraft,
23
+ children = _ref.children;
24
+
25
+ var _useState = useState({
26
+ name: ''
27
+ }),
28
+ _useState2 = _slicedToArray(_useState, 2),
29
+ currentStep = _useState2[0],
30
+ setCurrentStep = _useState2[1];
31
+
32
+ useEffect(function () {
33
+ if (!forceStepName) {
34
+ setCurrentStep(steps[0]);
35
+ }
36
+ }, [forceStepName, steps]);
37
+ useEffect(function () {
38
+ if (forceStepName !== currentStep.name) {
39
+ var forceStep = steps.find(function (_ref2) {
40
+ var name = _ref2.name;
41
+ return name === forceStepName;
42
+ });
43
+ forceStep && setCurrentStep(forceStep);
44
+ }
45
+ }, [forceStepName]);
46
+ var localData = isBrowser && localDraft && window.localStorage.getItem("questions-".concat(name));
47
+
48
+ var _useState3 = useState(localData && JSON.parse(localData) || initialData),
49
+ _useState4 = _slicedToArray(_useState3, 2),
50
+ data = _useState4[0],
51
+ setData = _useState4[1];
52
+
53
+ var submitStep = function submitStep(stepName, stepData) {
54
+ data[stepName] = stepData;
55
+
56
+ if (localDraft) {
57
+ isBrowser && window.localStorage.setItem("questions-".concat(name), JSON.stringify(data));
58
+ }
59
+
60
+ if (onChange) {
61
+ onChange && onChange(data);
62
+ }
63
+
64
+ setData(data);
65
+ var nextStep = getNextStep(currentStep, steps, data);
66
+
67
+ if (nextStep) {
68
+ onActiveStep && onActiveStep(nextStep);
69
+ setCurrentStep(nextStep);
70
+ } else {
71
+ onSubmit(data);
72
+ }
73
+ };
74
+
75
+ return /*#__PURE__*/React.createElement(QuestionsContext.Provider, {
76
+ value: {
77
+ steps: steps,
78
+ currentStep: currentStep,
79
+ submitStep: submitStep,
80
+ data: data,
81
+ onActiveStep: onActiveStep
82
+ }
83
+ }, children);
84
+ };
@@ -0,0 +1,11 @@
1
+ import { createContext } from 'react';
2
+ var defaultStep = {
3
+ name: ''
4
+ };
5
+ export var QuestionsContext = /*#__PURE__*/createContext({
6
+ currentStep: defaultStep,
7
+ steps: [],
8
+ submitStep: function submitStep() {
9
+ return null;
10
+ }
11
+ });
@@ -2,8 +2,9 @@ import React, { useContext } from 'react';
2
2
  import { SummaryList, SummaryListItem, SummaryListItemKey, SummaryListItemValue, SummaryListItemAction } from '@digigov/ui/core/SummaryList';
3
3
  import Title from '@digigov/ui/typography/Title';
4
4
  import { Button } from '@digigov/ui/core';
5
- import { QuestionsContext } from '@digigov/form/Questions/';
6
- import { StepTitleBase, StepContext } from '@digigov/form/Questions/Step';
5
+ import { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';
6
+ import { StepTitleBase } from '@digigov/form/Questions/Step/StepTitle';
7
+ import { StepContext } from '@digigov/form/Questions/Step/StepContext';
7
8
  import { useTranslation } from '@digigov/ui/app/i18n';
8
9
  export var ReviewStep = function ReviewStep() {
9
10
  var _useTranslation = useTranslation(),
@@ -48,4 +49,5 @@ export var ReviewStep = function ReviewStep() {
48
49
  return submitStep && submitStep();
49
50
  }
50
51
  }, t('button.submit')));
51
- };
52
+ };
53
+ export default ReviewStep;
@@ -0,0 +1,69 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import React, { useContext, useState } from 'react';
5
+ import { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';
6
+ import { StepContext } from '@digigov/form/Questions/Step/StepContext';
7
+ import { StepArrayReview } from '@digigov/form/Questions/Step/StepArrayReview';
8
+
9
+ /**
10
+ * The Step component accepts Step data as props
11
+ * uses composable components to provide a wholesome UX
12
+ *
13
+ */
14
+ export var Step = function Step(props) {
15
+ // or return all Questions and currentStepName
16
+ // or return a specific Step object
17
+ var _useContext = useContext(QuestionsContext),
18
+ currentStep = _useContext.currentStep,
19
+ submitStep = _useContext.submitStep,
20
+ data = _useContext.data;
21
+
22
+ var _useState = useState([]),
23
+ _useState2 = _slicedToArray(_useState, 2),
24
+ stepData = _useState2[0],
25
+ setStepData = _useState2[1];
26
+
27
+ var _useState3 = useState(false),
28
+ _useState4 = _slicedToArray(_useState3, 2),
29
+ reviewActive = _useState4[0],
30
+ setReviewActive = _useState4[1];
31
+
32
+ var handleArraySubmit = function handleArraySubmit(_name, data) {
33
+ setStepData([].concat(_toConsumableArray(stepData), [data]));
34
+ setReviewActive(true);
35
+ };
36
+
37
+ var handleArrayDeleteItem = function handleArrayDeleteItem(deleteIndex) {
38
+ var nextStepData = stepData.filter(function (_item, stepIndex) {
39
+ return stepIndex !== deleteIndex;
40
+ });
41
+ setStepData(nextStepData);
42
+
43
+ if (nextStepData.length === 0) {
44
+ setReviewActive(false);
45
+ }
46
+ };
47
+
48
+ var handleArrayReviewStep = function handleArrayReviewStep(data) {
49
+ if (data.addMore === 'yes') {
50
+ setReviewActive(false);
51
+ } else if (data.addMore === 'no') {
52
+ submitStep(currentStep.name, stepData);
53
+ }
54
+ };
55
+
56
+ if (!currentStep || props.name !== currentStep.name) return null; // then provide the currentStep object
57
+
58
+ return /*#__PURE__*/React.createElement(StepContext.Provider, {
59
+ value: _extends({}, currentStep, {
60
+ submitStep: currentStep.type === 'array' ? handleArraySubmit : submitStep,
61
+ initial: data[props.name]
62
+ })
63
+ }, reviewActive ? /*#__PURE__*/React.createElement(StepArrayReview, {
64
+ array: stepData,
65
+ handleSubmit: handleArrayReviewStep,
66
+ handleDelete: handleArrayDeleteItem
67
+ }) : props.children);
68
+ };
69
+ export default Step;
@@ -0,0 +1,50 @@
1
+ import React, { useContext } from 'react';
2
+ import { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';
3
+ import PageTitle, { PageTitleHeading } from '@digigov/ui/app/PageTitle';
4
+ import Button from '@digigov/ui/core/Button';
5
+ import { FormBuilder } from '@digigov/form/FormBuilder';
6
+ import { Field } from '@digigov/form/Field';
7
+ import { Fieldset } from '@digigov/form/Fieldset';
8
+ import Label from '@digigov/form/inputs/Label';
9
+ import { SummaryList, SummaryListItem, SummaryListItemKey, SummaryListItemValue, SummaryListItemAction } from '@digigov/ui/core/SummaryList';
10
+ import { useTranslation } from '@digigov/ui/app/i18n';
11
+ import { getAddMoreFields } from '@digigov/form/Questions/Step/getAddMoreFields';
12
+ export var StepArrayReview = function StepArrayReview(props) {
13
+ var _currentStep$review2, _currentStep$review3, _currentStep$review4;
14
+
15
+ var _useTranslation = useTranslation(),
16
+ t = _useTranslation.t;
17
+
18
+ var _useContext = useContext(QuestionsContext),
19
+ currentStep = _useContext.currentStep;
20
+
21
+ var fields = getAddMoreFields(currentStep);
22
+ var primaryField = currentStep.fields.find(function (field) {
23
+ var _currentStep$review;
24
+
25
+ return field.key === ((_currentStep$review = currentStep.review) === null || _currentStep$review === void 0 ? void 0 : _currentStep$review.primaryFieldKey);
26
+ }) || {};
27
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PageTitle, null, /*#__PURE__*/React.createElement(PageTitleHeading, null, ((_currentStep$review2 = currentStep.review) === null || _currentStep$review2 === void 0 ? void 0 : _currentStep$review2.title) && t((_currentStep$review3 = currentStep.review) === null || _currentStep$review3 === void 0 ? void 0 : _currentStep$review3.title))), /*#__PURE__*/React.createElement(SummaryList, null, props.array.map(function (item, idx) {
28
+ return /*#__PURE__*/React.createElement(SummaryListItem, {
29
+ key: idx
30
+ }, /*#__PURE__*/React.createElement(SummaryListItemKey, null, t(primaryField.label.primary)), /*#__PURE__*/React.createElement(SummaryListItemValue, null, item[primaryField.key]), /*#__PURE__*/React.createElement(SummaryListItemAction, {
31
+ onClick: function onClick() {
32
+ return props.handleDelete(idx);
33
+ }
34
+ }, t('button.delete')));
35
+ })), /*#__PURE__*/React.createElement(FormBuilder, {
36
+ key: "addmore",
37
+ fields: fields,
38
+ onSubmit: props.handleSubmit
39
+ }, /*#__PURE__*/React.createElement(Fieldset, null, /*#__PURE__*/React.createElement(Label, {
40
+ label: (_currentStep$review4 = currentStep.review) === null || _currentStep$review4 === void 0 ? void 0 : _currentStep$review4.addMore.title
41
+ }), fields.map(function (field) {
42
+ return /*#__PURE__*/React.createElement(Field, {
43
+ key: field.key,
44
+ name: field.key
45
+ });
46
+ })), /*#__PURE__*/React.createElement(Button, {
47
+ type: "submit"
48
+ }, t('button.submit'))));
49
+ };
50
+ export default StepArrayReview;
@@ -0,0 +1,27 @@
1
+ import { createContext } from 'react';
2
+ export var StepContext = /*#__PURE__*/createContext({
3
+ name: '',
4
+ fields: [],
5
+ initial: [],
6
+ errorLabels: [],
7
+ submitStep: '',
8
+ review: {
9
+ title: '',
10
+ primaryFieldKey: '',
11
+ addMore: {
12
+ title: {
13
+ primary: ''
14
+ },
15
+ answers: {
16
+ positive: {
17
+ primary: 'Yes'
18
+ },
19
+ negative: {
20
+ primary: 'No'
21
+ }
22
+ }
23
+ }
24
+ },
25
+ type: 'object'
26
+ });
27
+ export default StepContext;
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  var _excluded = ["children", "description"];
4
4
  import React, { useContext } from 'react';
5
- import { StepContext } from '@digigov/form/Questions/Step';
5
+ import { StepContext } from '@digigov/form/Questions/Step/StepContext';
6
6
  import Paragraph from '@digigov/ui/typography/Paragraph';
7
7
  import { useTranslation } from '@digigov/ui/app/i18n';
8
8
  export var StepDescriptionBase = function StepDescriptionBase(_ref) {