@digigov/form 0.6.10 → 0.8.0

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 (309) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/Field/FieldBase.js +102 -0
  3. package/Field/FieldConditional.js +72 -0
  4. package/Field/FieldContainer.js +65 -0
  5. package/Field/index.js +50 -327
  6. package/Field/utils.js +162 -0
  7. package/FieldArray/FieldArray.stories.js +44 -0
  8. package/FieldArray/__stories__/Default.js +109 -0
  9. package/FieldArray/__stories__/WithExactLength.js +108 -0
  10. package/FieldArray/index.js +88 -0
  11. package/FieldObject/index.js +80 -0
  12. package/FormBuilder.js +34 -24
  13. package/MultiplicityField/MultiplicityField.stories.js +86 -0
  14. package/MultiplicityField/__stories__/Default.js +121 -0
  15. package/MultiplicityField/__stories__/WithExactLength.js +116 -0
  16. package/MultiplicityField/__stories__/WithMaxLength.js +119 -0
  17. package/MultiplicityField/__stories__/WithMinAndMaxLength.js +120 -0
  18. package/MultiplicityField/__stories__/WithMinLength.js +119 -0
  19. package/MultiplicityField/add-objects.js +180 -0
  20. package/MultiplicityField/index.js +146 -0
  21. package/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
  22. package/es/Field/FieldBase.js +85 -0
  23. package/es/Field/FieldConditional.js +54 -0
  24. package/es/Field/FieldContainer.js +43 -0
  25. package/es/Field/index.js +46 -309
  26. package/es/Field/utils.js +138 -0
  27. package/es/FieldArray/FieldArray.stories.js +7 -0
  28. package/es/FieldArray/__stories__/Default.js +88 -0
  29. package/es/FieldArray/__stories__/WithExactLength.js +87 -0
  30. package/es/FieldArray/index.js +65 -0
  31. package/es/FieldObject/index.js +55 -0
  32. package/es/FormBuilder.js +33 -22
  33. package/es/MultiplicityField/MultiplicityField.stories.js +10 -0
  34. package/es/MultiplicityField/__stories__/Default.js +100 -0
  35. package/es/MultiplicityField/__stories__/WithExactLength.js +95 -0
  36. package/es/MultiplicityField/__stories__/WithMaxLength.js +98 -0
  37. package/es/MultiplicityField/__stories__/WithMinAndMaxLength.js +99 -0
  38. package/es/MultiplicityField/__stories__/WithMinLength.js +98 -0
  39. package/es/MultiplicityField/add-objects.js +156 -0
  40. package/es/MultiplicityField/index.js +116 -0
  41. package/es/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
  42. package/es/inputs/Radio/index.js +8 -13
  43. package/es/internal.js +4 -0
  44. package/es/utils.js +65 -48
  45. package/es/validators/index.js +171 -0
  46. package/es/validators/types.js +1 -0
  47. package/es/validators/utils/afm.js +35 -0
  48. package/es/validators/utils/file.js +52 -0
  49. package/es/validators/utils/iban.js +123 -0
  50. package/es/validators/utils/index.js +87 -0
  51. package/es/validators/utils/phone.js +122 -0
  52. package/es/validators/utils/postal_code.js +29 -0
  53. package/es/validators/utils/uuid4.js +20 -0
  54. package/es/{validators.spec.js → validators/validators.spec.js} +1 -1
  55. package/esm/Field/FieldBase.js +85 -0
  56. package/esm/Field/FieldConditional.js +54 -0
  57. package/esm/Field/FieldContainer.js +43 -0
  58. package/esm/Field/index.js +46 -309
  59. package/esm/Field/utils.js +138 -0
  60. package/esm/FieldArray/FieldArray.stories.js +7 -0
  61. package/esm/FieldArray/__stories__/Default.js +88 -0
  62. package/esm/FieldArray/__stories__/WithExactLength.js +87 -0
  63. package/esm/FieldArray/index.js +65 -0
  64. package/esm/FieldObject/index.js +55 -0
  65. package/esm/FormBuilder.js +33 -22
  66. package/esm/MultiplicityField/MultiplicityField.stories.js +10 -0
  67. package/esm/MultiplicityField/__stories__/Default.js +100 -0
  68. package/esm/MultiplicityField/__stories__/WithExactLength.js +95 -0
  69. package/esm/MultiplicityField/__stories__/WithMaxLength.js +98 -0
  70. package/esm/MultiplicityField/__stories__/WithMinAndMaxLength.js +99 -0
  71. package/esm/MultiplicityField/__stories__/WithMinLength.js +98 -0
  72. package/esm/MultiplicityField/add-objects.js +156 -0
  73. package/esm/MultiplicityField/index.js +116 -0
  74. package/esm/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
  75. package/esm/index.js +1 -1
  76. package/esm/inputs/Radio/index.js +8 -13
  77. package/esm/internal.js +4 -0
  78. package/esm/utils.js +65 -48
  79. package/esm/validators/index.js +171 -0
  80. package/esm/validators/types.js +1 -0
  81. package/esm/validators/utils/afm.js +35 -0
  82. package/esm/validators/utils/file.js +52 -0
  83. package/esm/validators/utils/iban.js +123 -0
  84. package/esm/validators/utils/index.js +87 -0
  85. package/esm/validators/utils/phone.js +122 -0
  86. package/esm/validators/utils/postal_code.js +29 -0
  87. package/esm/validators/utils/uuid4.js +20 -0
  88. package/esm/{validators.spec.js → validators/validators.spec.js} +1 -1
  89. package/inputs/Radio/index.js +8 -20
  90. package/internal.js +42 -0
  91. package/libs/form/src/Field/FieldBase.d.ts +3 -0
  92. package/libs/form/src/Field/FieldConditional.d.ts +4 -0
  93. package/libs/form/src/Field/FieldContainer.d.ts +4 -0
  94. package/libs/form/src/Field/index.d.ts +1 -3
  95. package/libs/form/src/Field/types.d.ts +23 -15
  96. package/libs/form/src/Field/utils.d.ts +5 -0
  97. package/libs/form/src/FieldArray/FieldArray.stories.d.ts +8 -0
  98. package/libs/form/src/FieldArray/__stories__/Default.d.ts +1 -0
  99. package/libs/form/src/FieldArray/__stories__/WithExactLength.d.ts +1 -0
  100. package/libs/form/src/FieldArray/index.d.ts +11 -0
  101. package/libs/form/src/FieldObject/index.d.ts +20 -0
  102. package/libs/form/src/FormContext.d.ts +2 -2
  103. package/libs/form/src/MultiplicityField/MultiplicityField.stories.d.ts +11 -0
  104. package/libs/form/src/MultiplicityField/__stories__/Default.d.ts +1 -0
  105. package/libs/form/src/MultiplicityField/__stories__/WithExactLength.d.ts +1 -0
  106. package/libs/form/src/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -0
  107. package/libs/form/src/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -0
  108. package/libs/form/src/MultiplicityField/__stories__/WithMinLength.d.ts +1 -0
  109. package/libs/form/src/MultiplicityField/add-objects.d.ts +13 -0
  110. package/libs/form/src/MultiplicityField/index.d.ts +32 -0
  111. package/libs/form/src/inputs/DateInput/index.d.ts +0 -1
  112. package/libs/form/src/inputs/Label/index.d.ts +1 -0
  113. package/libs/form/src/internal.d.ts +4 -0
  114. package/libs/form/src/types.d.ts +22 -13
  115. package/libs/form/src/utils.d.ts +8 -3
  116. package/libs/form/src/validators/index.d.ts +9 -0
  117. package/libs/form/src/validators/types.d.ts +2 -0
  118. package/libs/form/src/validators/utils/afm.d.ts +6 -0
  119. package/libs/form/src/validators/utils/file.d.ts +3 -0
  120. package/libs/form/src/validators/utils/iban.d.ts +4 -0
  121. package/libs/form/src/validators/utils/index.d.ts +24 -0
  122. package/libs/form/src/validators/utils/phone.d.ts +11 -0
  123. package/libs/form/src/validators/utils/postal_code.d.ts +4 -0
  124. package/libs/form/src/validators/utils/uuid4.d.ts +6 -0
  125. package/libs/form/src/{validators.spec.d.ts → validators/validators.spec.d.ts} +0 -0
  126. package/libs/ui/src/app/i18n.d.ts +2 -2
  127. package/libs/ui/src/core/Accordion/index.d.ts +3 -3
  128. package/libs/ui/src/core/Base/index.d.ts +3 -0
  129. package/libs/ui/src/core/Blockquote/index.d.ts +1 -1
  130. package/libs/ui/src/core/Button/BackButton.d.ts +1 -1
  131. package/libs/ui/src/core/Button/ButtonLink.d.ts +1 -1
  132. package/libs/ui/src/core/Button/index.d.ts +1 -1
  133. package/libs/ui/src/core/Divider/index.d.ts +1 -1
  134. package/libs/ui/src/core/Form/index.d.ts +3 -0
  135. package/libs/ui/src/core/Label/index.d.ts +4 -0
  136. package/libs/ui/src/core/Link/index.d.ts +1 -0
  137. package/libs/ui/src/core/NavList/NavHorizontal.d.ts +3 -0
  138. package/libs/ui/src/core/NavList/NavHorizontalList.d.ts +3 -0
  139. package/libs/ui/src/core/NavList/NavHorizontalListItem.d.ts +3 -0
  140. package/libs/ui/src/core/NavList/NavListItem.d.ts +1 -0
  141. package/libs/ui/src/core/NavList/NavListItemBase.d.ts +2 -1
  142. package/libs/ui/src/core/NavList/NavVertical.d.ts +3 -0
  143. package/libs/ui/src/core/NavList/NavVerticalItem.d.ts +3 -0
  144. package/libs/ui/src/core/NavList/index.d.ts +5 -0
  145. package/libs/ui/src/core/NavList/types.d.ts +1 -0
  146. package/libs/ui/src/core/SkipLink/index.d.ts +3 -0
  147. package/libs/ui/src/core/SvgIcon/index.d.ts +1 -0
  148. package/libs/ui/src/core/Table/TableFloatingScroll.d.ts +0 -1
  149. package/libs/ui/src/core/index.d.ts +4 -0
  150. package/libs/ui/src/locales/el.d.ts +6 -0
  151. package/libs/ui/src/typography/Caption/index.d.ts +3 -2
  152. package/libs/ui/src/typography/Title/index.d.ts +2 -1
  153. package/libs-ui/react-core/src/Accordion/index.d.ts +3 -3
  154. package/libs-ui/react-core/src/AccordionControls/index.d.ts +3 -3
  155. package/libs-ui/react-core/src/AccordionSection/index.d.ts +3 -3
  156. package/libs-ui/react-core/src/AccordionSectionContent/index.d.ts +3 -3
  157. package/libs-ui/react-core/src/AccordionSectionHeader/index.d.ts +3 -3
  158. package/libs-ui/react-core/src/AccordionSectionSummary/index.d.ts +4 -3
  159. package/libs-ui/react-core/src/AccordionSectionSummaryHeading/index.d.ts +3 -3
  160. package/libs-ui/react-core/src/Aside/index.d.ts +10 -0
  161. package/libs-ui/react-core/src/BackLink/index.d.ts +3 -3
  162. package/libs-ui/react-core/src/Base/index.d.ts +43 -0
  163. package/libs-ui/react-core/src/Blockquote/index.d.ts +3 -3
  164. package/libs-ui/react-core/src/Bottom/index.d.ts +9 -0
  165. package/libs-ui/react-core/src/Breadcrumbs/index.d.ts +3 -3
  166. package/libs-ui/react-core/src/BreadcrumbsList/index.d.ts +3 -3
  167. package/libs-ui/react-core/src/BreadcrumbsListItem/index.d.ts +3 -3
  168. package/libs-ui/react-core/src/Button/index.d.ts +3 -3
  169. package/libs-ui/react-core/src/ButtonGroup/index.d.ts +3 -3
  170. package/libs-ui/react-core/src/ButtonLink/index.d.ts +3 -3
  171. package/libs-ui/react-core/src/CallToAction/index.d.ts +1 -1
  172. package/libs-ui/react-core/src/Card/index.d.ts +3 -3
  173. package/libs-ui/react-core/src/CardAction/index.d.ts +3 -3
  174. package/libs-ui/react-core/src/CardHeading/index.d.ts +3 -3
  175. package/libs-ui/react-core/src/CardText/index.d.ts +3 -3
  176. package/libs-ui/react-core/src/CheckIcon/index.d.ts +15 -0
  177. package/libs-ui/react-core/src/Checkbox/index.d.ts +3 -3
  178. package/libs-ui/react-core/src/CheckboxConditional/index.d.ts +11 -0
  179. package/libs-ui/react-core/src/CheckboxItem/index.d.ts +3 -3
  180. package/libs-ui/react-core/src/Confirmation/index.d.ts +3 -3
  181. package/libs-ui/react-core/src/ConfirmationBody/index.d.ts +3 -3
  182. package/libs-ui/react-core/src/ConfirmationTitle/index.d.ts +3 -3
  183. package/libs-ui/react-core/src/Container/index.d.ts +17 -0
  184. package/libs-ui/react-core/src/Copyright/index.d.ts +10 -0
  185. package/libs-ui/react-core/src/DateInput/index.d.ts +3 -3
  186. package/libs-ui/react-core/src/DateInputItem/index.d.ts +3 -3
  187. package/libs-ui/react-core/src/Details/index.d.ts +3 -3
  188. package/libs-ui/react-core/src/DetailsContent/index.d.ts +3 -3
  189. package/libs-ui/react-core/src/DetailsSummary/index.d.ts +3 -3
  190. package/libs-ui/react-core/src/ErrorMessage/index.d.ts +3 -3
  191. package/libs-ui/react-core/src/ErrorSummary/index.d.ts +3 -3
  192. package/libs-ui/react-core/src/Field/index.d.ts +3 -3
  193. package/libs-ui/react-core/src/Fieldset/index.d.ts +3 -3
  194. package/libs-ui/react-core/src/FieldsetLegend/index.d.ts +3 -3
  195. package/libs-ui/react-core/src/FileUpload/index.d.ts +3 -3
  196. package/libs-ui/react-core/src/Footer/index.d.ts +9 -0
  197. package/libs-ui/react-core/src/FooterContainer/index.d.ts +16 -0
  198. package/libs-ui/react-core/src/FooterContent/index.d.ts +10 -0
  199. package/libs-ui/react-core/src/FooterContentLogos/index.d.ts +11 -0
  200. package/libs-ui/react-core/src/FooterHeading/index.d.ts +15 -0
  201. package/libs-ui/react-core/src/FooterImage/index.d.ts +15 -0
  202. package/libs-ui/react-core/src/FooterInlineList/index.d.ts +11 -0
  203. package/libs-ui/react-core/src/FooterInlineListItem/index.d.ts +9 -0
  204. package/libs-ui/react-core/src/FooterLink/index.d.ts +13 -0
  205. package/libs-ui/react-core/src/FooterList/index.d.ts +15 -0
  206. package/libs-ui/react-core/src/FooterListItem/index.d.ts +10 -0
  207. package/libs-ui/react-core/src/FooterMeta/index.d.ts +11 -0
  208. package/libs-ui/react-core/src/FooterMetaItem/index.d.ts +14 -0
  209. package/libs-ui/react-core/src/FooterNavigation/index.d.ts +11 -0
  210. package/libs-ui/react-core/src/FooterSection/index.d.ts +11 -0
  211. package/libs-ui/react-core/src/Form/index.d.ts +11 -0
  212. package/libs-ui/react-core/src/GovGRFooter/index.d.ts +9 -0
  213. package/libs-ui/react-core/src/GovGRLogo/index.d.ts +9 -0
  214. package/libs-ui/react-core/src/Grid/index.d.ts +3 -3
  215. package/libs-ui/react-core/src/Header/index.d.ts +10 -0
  216. package/libs-ui/react-core/src/HeaderContent/index.d.ts +9 -0
  217. package/libs-ui/react-core/src/HeaderLogo/index.d.ts +21 -0
  218. package/libs-ui/react-core/src/HeaderSecondaryLogo/index.d.ts +21 -0
  219. package/libs-ui/react-core/src/HeaderSection/index.d.ts +9 -0
  220. package/libs-ui/react-core/src/HeaderSubtitle/index.d.ts +9 -0
  221. package/libs-ui/react-core/src/HeaderTitle/index.d.ts +13 -0
  222. package/libs-ui/react-core/src/Heading/index.d.ts +3 -3
  223. package/libs-ui/react-core/src/HeadingCaption/index.d.ts +3 -3
  224. package/libs-ui/react-core/src/HellenicRepublicLogo/index.d.ts +20 -0
  225. package/libs-ui/react-core/src/HellenicRepublicLogo/logo-el.d.ts +2 -0
  226. package/libs-ui/react-core/src/HellenicRepublicLogo/logo-en.d.ts +2 -0
  227. package/libs-ui/react-core/src/Hidden/index.d.ts +3 -3
  228. package/libs-ui/react-core/src/Hint/index.d.ts +3 -3
  229. package/libs-ui/react-core/src/Label/index.d.ts +3 -3
  230. package/libs-ui/react-core/src/LabelTitle/index.d.ts +7 -7
  231. package/libs-ui/react-core/src/Layout/index.d.ts +10 -0
  232. package/libs-ui/react-core/src/Link/index.d.ts +3 -3
  233. package/libs-ui/react-core/src/List/index.d.ts +3 -3
  234. package/libs-ui/react-core/src/ListItem/index.d.ts +3 -3
  235. package/libs-ui/react-core/src/Main/index.d.ts +9 -0
  236. package/libs-ui/react-core/src/Masthead/index.d.ts +9 -0
  237. package/libs-ui/react-core/src/MastheadBody/index.d.ts +9 -0
  238. package/libs-ui/react-core/src/NavHorizontal/index.d.ts +16 -0
  239. package/libs-ui/react-core/src/NavHorizontalList/index.d.ts +10 -0
  240. package/libs-ui/react-core/src/NavHorizontalListItem/index.d.ts +18 -0
  241. package/libs-ui/react-core/src/NavVertical/index.d.ts +11 -0
  242. package/libs-ui/react-core/src/NavVerticalItem/index.d.ts +14 -0
  243. package/libs-ui/react-core/src/NormalText/index.d.ts +3 -3
  244. package/libs-ui/react-core/src/NotificationBanner/index.d.ts +3 -3
  245. package/libs-ui/react-core/src/NotificationBannerContent/index.d.ts +3 -3
  246. package/libs-ui/react-core/src/NotificationBannerHeader/index.d.ts +3 -3
  247. package/libs-ui/react-core/src/NotificationBannerHeading/index.d.ts +3 -3
  248. package/libs-ui/react-core/src/NotificationBannerLink/index.d.ts +3 -3
  249. package/libs-ui/react-core/src/PageTitle/index.d.ts +9 -0
  250. package/libs-ui/react-core/src/PageTitleCaption/index.d.ts +14 -0
  251. package/libs-ui/react-core/src/PageTitleHeading/index.d.ts +13 -0
  252. package/libs-ui/react-core/src/PageTitleSection/index.d.ts +10 -0
  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/RadioConditional/index.d.ts +11 -0
  260. package/libs-ui/react-core/src/RadioItem/index.d.ts +3 -3
  261. package/libs-ui/react-core/src/SectionBreak/index.d.ts +3 -3
  262. package/libs-ui/react-core/src/Select/index.d.ts +3 -3
  263. package/libs-ui/react-core/src/SelectOption/index.d.ts +3 -3
  264. package/libs-ui/react-core/src/ServiceBadge/index.d.ts +11 -0
  265. package/libs-ui/react-core/src/SkipLink/index.d.ts +10 -0
  266. package/libs-ui/react-core/src/SummaryList/index.d.ts +3 -3
  267. package/libs-ui/react-core/src/SummaryListItem/index.d.ts +3 -3
  268. package/libs-ui/react-core/src/SummaryListItemAction/index.d.ts +3 -3
  269. package/libs-ui/react-core/src/SummaryListItemKey/index.d.ts +3 -3
  270. package/libs-ui/react-core/src/SummaryListItemValue/index.d.ts +3 -3
  271. package/libs-ui/react-core/src/SvgIcon/index.d.ts +3 -3
  272. package/libs-ui/react-core/src/Table/index.d.ts +3 -3
  273. package/libs-ui/react-core/src/TableBody/index.d.ts +3 -3
  274. package/libs-ui/react-core/src/TableCaption/index.d.ts +3 -3
  275. package/libs-ui/react-core/src/TableContainer/index.d.ts +3 -3
  276. package/libs-ui/react-core/src/TableDataCell/index.d.ts +3 -3
  277. package/libs-ui/react-core/src/TableHead/index.d.ts +3 -3
  278. package/libs-ui/react-core/src/TableHeadCell/index.d.ts +3 -3
  279. package/libs-ui/react-core/src/TableNoDataRow/index.d.ts +3 -3
  280. package/libs-ui/react-core/src/TableRow/index.d.ts +3 -3
  281. package/libs-ui/react-core/src/Tabs/index.d.ts +3 -3
  282. package/libs-ui/react-core/src/TabsHeading/index.d.ts +3 -3
  283. package/libs-ui/react-core/src/TabsList/index.d.ts +3 -3
  284. package/libs-ui/react-core/src/TabsListItem/index.d.ts +3 -3
  285. package/libs-ui/react-core/src/TabsPanel/index.d.ts +3 -3
  286. package/libs-ui/react-core/src/TextArea/index.d.ts +3 -3
  287. package/libs-ui/react-core/src/TextInput/index.d.ts +3 -3
  288. package/libs-ui/react-core/src/Top/index.d.ts +9 -0
  289. package/libs-ui/react-core/src/UncheckIcon/index.d.ts +4 -4
  290. package/libs-ui/react-core/src/VisuallyHidden/index.d.ts +3 -3
  291. package/libs-ui/react-core/src/WarningText/index.d.ts +3 -3
  292. package/libs-ui/react-core/src/index.d.ts +141 -0
  293. package/package.json +7 -5
  294. package/utils.js +64 -48
  295. package/validators/index.js +197 -0
  296. package/validators/types.js +5 -0
  297. package/validators/utils/afm.js +45 -0
  298. package/validators/utils/file.js +62 -0
  299. package/validators/utils/iban.js +134 -0
  300. package/validators/utils/index.js +188 -0
  301. package/validators/utils/phone.js +144 -0
  302. package/validators/utils/postal_code.js +40 -0
  303. package/validators/utils/uuid4.js +30 -0
  304. package/validators/validators.spec.js +88 -0
  305. package/es/validators.js +0 -626
  306. package/esm/validators.js +0 -626
  307. package/libs/form/src/validators.d.ts +0 -14
  308. package/validators.js +0 -662
  309. package/validators.spec.js +0 -88
@@ -0,0 +1,138 @@
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
+ trigger = _useContext.trigger,
84
+ clearErrors = _useContext.clearErrors,
85
+ errors = _useContext.errors,
86
+ registerField = _useContext.registerField,
87
+ watch = _useContext.watch,
88
+ componentRegistry = _useContext.componentRegistry,
89
+ getFieldState = _useContext.getFieldState,
90
+ setValue = _useContext.setValue,
91
+ getValues = _useContext.getValues,
92
+ unregister = _useContext.unregister,
93
+ formState = _useContext.formState;
94
+
95
+ useMemo(function () {
96
+ return (customField === null || customField === void 0 ? void 0 : customField.type) && registerField(_extends({}, customField, {
97
+ key: name
98
+ }));
99
+ }, [customField, name, registerField]);
100
+ return {
101
+ field: customField || fieldsMap[name],
102
+ control: control,
103
+ register: register,
104
+ trigger: trigger,
105
+ watch: watch,
106
+ componentRegistry: componentRegistry,
107
+ getFieldState: getFieldState,
108
+ setValue: setValue,
109
+ clearErrors: clearErrors,
110
+ getValues: getValues,
111
+ unregister: unregister,
112
+ formState: formState,
113
+ error: errors[name]
114
+ };
115
+ };
116
+ export function evaluateFieldWithConditions(field, variables) {
117
+ var newField = _extends({}, field);
118
+
119
+ if (variables) {
120
+ for (var key in variables) {
121
+ if (field.condition[key] && field.condition[key].is === variables[key]) {
122
+ var then = field.condition[key].then || {};
123
+
124
+ for (var attr in then) {
125
+ newField[attr] = then[attr];
126
+ }
127
+ } else if (field.condition[key]) {
128
+ var otherwise = field.condition[key]["else"] || {};
129
+
130
+ for (var _attr in otherwise) {
131
+ newField[_attr] = otherwise[_attr];
132
+ }
133
+ }
134
+ }
135
+ }
136
+
137
+ return newField;
138
+ }
@@ -0,0 +1,7 @@
1
+ import FieldArray from '@digigov/form/FieldArray';
2
+ export default {
3
+ title: 'Digigov Form/FieldArray',
4
+ component: FieldArray
5
+ };
6
+ export * from '@digigov/form/FieldArray/__stories__/Default';
7
+ export * from '@digigov/form/FieldArray/__stories__/WithExactLength';
@@ -0,0 +1,88 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { Suspense } from 'react';
3
+ import FormBuilder, { Field } from '@digigov/form';
4
+ import { Button } from '@digigov/ui/core';
5
+ var fields = [{
6
+ key: 'string',
7
+ type: 'string',
8
+ label: {
9
+ primary: 'Πεδίο 1',
10
+ secondary: 'Το multiplicity field είναι ένα πεδίο οπότε φαίνεται και είναι μέρος της φόρμας'
11
+ }
12
+ }, {
13
+ key: 'multiplicity',
14
+ type: 'array',
15
+ label: {
16
+ primary: 'Συνυπογράφοντες',
17
+ secondary: 'Οι συνυπογράφοντες είναι άνθρωποι σαν και εμάς'
18
+ },
19
+ extra: {
20
+ label: {
21
+ question: {
22
+ title: 'Θέλετε να προσθέσετε επιπλέον συνυπογράφοντες;',
23
+ yes: 'Ναι',
24
+ no: 'Όχι'
25
+ },
26
+ edit: 'Επεξεργασία',
27
+ add: 'Προσθέστε τα στοιχεία του επόμενου συνυπογράφοντα',
28
+ "delete": 'Αφαίρεση συνυπογράφοντος',
29
+ save: 'Αποθήκευση'
30
+ },
31
+ min: 2,
32
+ max: 4,
33
+ of: {
34
+ type: 'object',
35
+ extra: {
36
+ fields: [{
37
+ key: 'afm',
38
+ type: 'afm',
39
+ required: true,
40
+ label: {
41
+ primary: 'ΑΦΜ'
42
+ }
43
+ }, {
44
+ key: 'firstName',
45
+ required: true,
46
+ type: 'string',
47
+ label: {
48
+ primary: 'Όνομα'
49
+ }
50
+ }, {
51
+ key: 'lastName',
52
+ required: true,
53
+ type: 'string',
54
+ label: {
55
+ primary: 'Επώνυμο'
56
+ }
57
+ }]
58
+ }
59
+ }
60
+ }
61
+ }, {
62
+ key: 'phonenumber',
63
+ type: 'phone_number',
64
+ required: true,
65
+ label: {
66
+ primary: 'Πεδίο 2',
67
+ secondary: 'Το multiplicity field είναι ένα πεδίο οπότε φαίνεται και είναι μέρος της φόρμας'
68
+ }
69
+ }];
70
+
71
+ var _ref = /*#__PURE__*/React.createElement(Button, null, "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1");
72
+
73
+ export var Default = function Default() {
74
+ return /*#__PURE__*/React.createElement(Suspense, {
75
+ fallback: "loading"
76
+ }, /*#__PURE__*/React.createElement(FormBuilder, {
77
+ onSubmit: function onSubmit(data) {
78
+ debugger;
79
+ console.log(data);
80
+ }
81
+ }, /*#__PURE__*/React.createElement(Field, _extends({
82
+ name: "string"
83
+ }, fields[0])), /*#__PURE__*/React.createElement(Field, _extends({
84
+ name: "multiplicity"
85
+ }, fields[1])), /*#__PURE__*/React.createElement(Field, _extends({
86
+ name: "phonenumber"
87
+ }, fields[2])), _ref));
88
+ };
@@ -0,0 +1,87 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { Suspense } from 'react';
3
+ import FormBuilder, { Field } from '@digigov/form';
4
+ import { Button } from '@digigov/ui/core';
5
+ var fields = [{
6
+ key: 'string',
7
+ type: 'string',
8
+ label: {
9
+ primary: 'Πεδίο 1',
10
+ secondary: 'Το multiplicity field είναι ένα πεδίο οπότε φαίνεται και είναι μέρος της φόρμας'
11
+ }
12
+ }, {
13
+ key: 'multiplicity',
14
+ type: 'array',
15
+ label: {
16
+ primary: 'Συνυπογράφοντες',
17
+ secondary: 'Οι συνυπογράφοντες είναι άνθρωποι σαν και εμάς'
18
+ },
19
+ extra: {
20
+ label: {
21
+ question: {
22
+ title: 'Θέλετε να προσθέσετε επιπλέον συνυπογράφοντες;',
23
+ yes: 'Ναι',
24
+ no: 'Όχι'
25
+ },
26
+ edit: 'Επεξεργασία',
27
+ add: 'Προσθέστε τα στοιχεία του επόμενου συνυπογράφοντα',
28
+ "delete": 'Αφαίρεση συνυπογράφοντος',
29
+ save: 'Αποθήκευση'
30
+ },
31
+ length: 2,
32
+ of: {
33
+ type: 'object',
34
+ extra: {
35
+ fields: [{
36
+ key: 'afm',
37
+ type: 'afm',
38
+ required: true,
39
+ label: {
40
+ primary: 'ΑΦΜ'
41
+ }
42
+ }, {
43
+ key: 'firstName',
44
+ required: true,
45
+ type: 'string',
46
+ label: {
47
+ primary: 'Όνομα'
48
+ }
49
+ }, {
50
+ key: 'lastName',
51
+ required: true,
52
+ type: 'string',
53
+ label: {
54
+ primary: 'Επώνυμο'
55
+ }
56
+ }]
57
+ }
58
+ }
59
+ }
60
+ }, {
61
+ key: 'phonenumber',
62
+ type: 'phone_number',
63
+ required: true,
64
+ label: {
65
+ primary: 'Πεδίο 2',
66
+ secondary: 'Το multiplicity field είναι ένα πεδίο οπότε φαίνεται και είναι μέρος της φόρμας'
67
+ }
68
+ }];
69
+
70
+ var _ref = /*#__PURE__*/React.createElement(Button, null, "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1");
71
+
72
+ export var WithExactLength = function WithExactLength() {
73
+ return /*#__PURE__*/React.createElement(Suspense, {
74
+ fallback: "loading"
75
+ }, /*#__PURE__*/React.createElement(FormBuilder, {
76
+ onSubmit: function onSubmit(data) {
77
+ debugger;
78
+ console.log(data);
79
+ }
80
+ }, /*#__PURE__*/React.createElement(Field, _extends({
81
+ name: "string"
82
+ }, fields[0])), /*#__PURE__*/React.createElement(Field, _extends({
83
+ name: "multiplicity"
84
+ }, fields[1])), /*#__PURE__*/React.createElement(Field, _extends({
85
+ name: "phonenumber"
86
+ }, fields[2])), _ref));
87
+ };
@@ -0,0 +1,65 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["name", "register", "control", "formState", "error", "layout", "label"];
4
+ import React from 'react';
5
+ import { DevTool } from '@hookform/devtools';
6
+ import { useFieldArray } from 'react-hook-form';
7
+ import FieldObject from '@digigov/form/FieldObject';
8
+ import { Button, Card } from '@digigov/ui/core';
9
+ import { FieldsetLabel } from '@digigov/form/Fieldset';
10
+ import Fieldset from '@digigov/react-core/Fieldset';
11
+ import FieldContainer from '@digigov/form/Field/FieldContainer';
12
+ export var FieldArray = function FieldArray(_ref) {
13
+ var name = _ref.name,
14
+ register = _ref.register,
15
+ control = _ref.control,
16
+ formState = _ref.formState,
17
+ error = _ref.error,
18
+ layout = _ref.layout,
19
+ label = _ref.label,
20
+ customField = _objectWithoutProperties(_ref, _excluded);
21
+
22
+ var _useFieldArray = useFieldArray({
23
+ control: control,
24
+ name: name
25
+ }),
26
+ fields = _useFieldArray.fields,
27
+ append = _useFieldArray.append,
28
+ remove = _useFieldArray.remove;
29
+
30
+ return /*#__PURE__*/React.createElement(FieldContainer, {
31
+ label: label,
32
+ layout: layout,
33
+ error: formState.isSubmitted && !formState.isSubmitting && error !== null && error !== void 0 && error.message && error ? error : undefined,
34
+ wrapper: "fieldset",
35
+ name: name
36
+ }, /*#__PURE__*/React.createElement(DevTool, {
37
+ control: control
38
+ }), fields.map(function (field, index) {
39
+ var _customField$extra;
40
+
41
+ return /*#__PURE__*/React.createElement(Card, {
42
+ variant: "border",
43
+ key: field.id
44
+ }, /*#__PURE__*/React.createElement(Fieldset, null, /*#__PURE__*/React.createElement(FieldsetLabel, null, "\u03A3\u03C5\u03BD\u03C5\u03C0\u03BF\u03B3\u03C1\u03AC\u03C6\u03BF\u03BD\u03C4\u03B1\u03C2 ", index + 1), /*#__PURE__*/React.createElement(FieldObject, _extends({
45
+ name: "".concat(name, ".").concat(index),
46
+ error: Array.isArray(error) && error[index],
47
+ register: register,
48
+ control: control
49
+ }, (_customField$extra = customField.extra) === null || _customField$extra === void 0 ? void 0 : _customField$extra.of)), /*#__PURE__*/React.createElement(Button, {
50
+ type: "button",
51
+ color: "warning",
52
+ onClick: function onClick() {
53
+ return remove(index);
54
+ }
55
+ }, "Remove")));
56
+ }), /*#__PURE__*/React.createElement(Button, {
57
+ type: "button",
58
+ color: "secondary",
59
+ onClick: function onClick(ev) {
60
+ ev.preventDefault();
61
+ append({});
62
+ }
63
+ }, "\u03A0\u03C1\u03BF\u03C3\u03B8\u03AE\u03BA\u03B7 \u03C3\u03C5\u03BD\u03C5\u03C0\u03BF\u03B3\u03C1\u03AC\u03C6\u03BF\u03BD\u03C4\u03B1"));
64
+ };
65
+ export default FieldArray;
@@ -0,0 +1,55 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useMemo } from 'react';
3
+ import Fieldset, { FieldsetCaption } from '@digigov/form/Fieldset';
4
+ import { useTranslation } from '@digigov/ui/app/i18n';
5
+ import { FieldBase } from '@digigov/form/Field/FieldBase';
6
+ import { calculateField } from '@digigov/form/Field/utils';
7
+ import { FieldsetLegend } from '@digigov/react-core';
8
+ export var FieldObject = function FieldObject(_ref) {
9
+ var name = _ref.name,
10
+ label = _ref.label,
11
+ extra = _ref.extra,
12
+ error = _ref.error,
13
+ control = _ref.control,
14
+ register = _ref.register,
15
+ formState = _ref.formState;
16
+
17
+ var _useTranslation = useTranslation(),
18
+ t = _useTranslation.t;
19
+
20
+ return /*#__PURE__*/React.createElement(Fieldset, null, (label === null || label === void 0 ? void 0 : label.primary) && /*#__PURE__*/React.createElement(FieldsetLegend, {
21
+ size: "s"
22
+ }, t(label.primary)), (label === null || label === void 0 ? void 0 : label.secondary) && /*#__PURE__*/React.createElement(FieldsetCaption, null, t(label.secondary)), extra === null || extra === void 0 ? void 0 : extra.fields.map(function (field) {
23
+ return /*#__PURE__*/React.createElement(FieldObjectItem, {
24
+ key: "".concat(name, ".").concat(field.key),
25
+ name: "".concat(name, ".").concat(field.key),
26
+ control: control,
27
+ register: register,
28
+ field: field,
29
+ error: error && error[field.key],
30
+ formState: formState
31
+ });
32
+ }));
33
+ };
34
+
35
+ var FieldObjectItem = function FieldObjectItem(_ref2) {
36
+ var name = _ref2.name,
37
+ children = _ref2.children,
38
+ field = _ref2.field,
39
+ error = _ref2.error,
40
+ control = _ref2.control,
41
+ formState = _ref2.formState,
42
+ register = _ref2.register;
43
+ var calculatedField = useMemo(function () {
44
+ return calculateField(children, field);
45
+ }, [field]);
46
+ var customError = error ? error : formState === null || formState === void 0 ? void 0 : formState.errors[name];
47
+ return /*#__PURE__*/React.createElement(FieldBase, _extends({}, calculatedField, {
48
+ name: name,
49
+ control: control,
50
+ register: register,
51
+ error: customError
52
+ }));
53
+ };
54
+
55
+ export default FieldObject;
package/es/FormBuilder.js CHANGED
@@ -1,19 +1,18 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
2
  import _extends from "@babel/runtime/helpers/extends";
4
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- var _excluded = ["onSubmit", "children", "registerField", "fieldsMap", "fieldsetsMap", "resolver", "mode", "initial", "reValidateMode", "shouldFocusError", "criteriaMode", "componentRegistry"],
6
- _excluded2 = ["fields", "fieldsets", "initial", "onSubmit", "children", "reValidateMode", "mode", "shouldFocusError", "criteriaMode", "auto", "validatorRegistry", "componentRegistry"];
4
+ var _excluded = ["onSubmit", "children", "registerField", "fieldsMap", "fieldsetsMap", "resolver", "mode", "initial", "reValidateMode", "shouldFocusError", "criteriaMode", "componentRegistry", "grid"],
5
+ _excluded2 = ["fields", "fieldsets", "initial", "onSubmit", "children", "reValidateMode", "mode", "shouldFocusError", "criteriaMode", "auto", "validatorRegistry", "componentRegistry", "grid"];
7
6
 
8
7
  /* eslint-disable @typescript-eslint/no-explicit-any */
9
8
  import React, { useCallback, useRef } from 'react';
10
9
  import { useForm } from 'react-hook-form';
11
10
  import { yupResolver } from '@digigov/form/utils';
12
- import Grid from '@digigov/ui/layouts/Grid';
13
11
  import { useValidationSchema } from '@digigov/form/validators';
14
12
  import Fieldset from '@digigov/form/Fieldset';
15
13
  import Field from '@digigov/form/Field';
16
14
  import { FormContext } from '@digigov/form/FormContext';
15
+ import { Form } from '@digigov/react-core/Form';
17
16
  export var FormBase = /*#__PURE__*/React.forwardRef(function FormBase(_ref, ref) {
18
17
  var onSubmit = _ref.onSubmit,
19
18
  children = _ref.children,
@@ -27,6 +26,7 @@ export var FormBase = /*#__PURE__*/React.forwardRef(function FormBase(_ref, ref)
27
26
  shouldFocusError = _ref.shouldFocusError,
28
27
  criteriaMode = _ref.criteriaMode,
29
28
  componentRegistry = _ref.componentRegistry,
29
+ grid = _ref.grid,
30
30
  props = _objectWithoutProperties(_ref, _excluded);
31
31
 
32
32
  var form = useForm({
@@ -38,35 +38,33 @@ export var FormBase = /*#__PURE__*/React.forwardRef(function FormBase(_ref, ref)
38
38
  criteriaMode: criteriaMode
39
39
  });
40
40
  var handleSubmit = useCallback(function (data) {
41
- var errors = onSubmit && onSubmit(data);
42
-
43
- if (errors) {
44
- for (var key in errors) {
45
- form.setError(key, errors[key]);
46
- }
47
- }
41
+ onSubmit && onSubmit(data);
48
42
  }, [onSubmit]);
49
43
  var ctx = {
50
44
  fieldsMap: fieldsMap,
51
45
  fieldsetsMap: fieldsetsMap,
52
46
  control: form.control,
53
47
  register: form.register,
48
+ watch: form.watch,
54
49
  registerField: registerField,
55
- errors: form.errors,
50
+ errors: form.formState.errors,
51
+ formState: form.formState,
56
52
  reset: form.reset,
53
+ trigger: form.trigger,
54
+ getFieldState: form.getFieldState,
55
+ setValue: form.setValue,
56
+ clearErrors: form.clearErrors,
57
+ getValues: form.getValues,
58
+ unregister: form.unregister,
57
59
  componentRegistry: componentRegistry
58
60
  };
59
61
  return /*#__PURE__*/React.createElement(FormContext.Provider, {
60
62
  value: ctx
61
- }, /*#__PURE__*/React.createElement("form", _extends({
63
+ }, /*#__PURE__*/React.createElement(Form, _extends({
64
+ grid: grid,
62
65
  onSubmit: form.handleSubmit(handleSubmit),
63
66
  ref: ref
64
- }, props), /*#__PURE__*/React.createElement(Grid, {
65
- container: true
66
- }, /*#__PURE__*/React.createElement(Grid, {
67
- item: true,
68
- xs: 12
69
- }, children))));
67
+ }, props), children));
70
68
  });
71
69
  export var FormBuilder = /*#__PURE__*/React.forwardRef(function FormBuilder(_ref2, ref) {
72
70
  var _ref2$fields = _ref2.fields,
@@ -83,11 +81,13 @@ export var FormBuilder = /*#__PURE__*/React.forwardRef(function FormBuilder(_ref
83
81
  _ref2$shouldFocusErro = _ref2.shouldFocusError,
84
82
  shouldFocusError = _ref2$shouldFocusErro === void 0 ? true : _ref2$shouldFocusErro,
85
83
  _ref2$criteriaMode = _ref2.criteriaMode,
86
- criteriaMode = _ref2$criteriaMode === void 0 ? 'firstError' : _ref2$criteriaMode,
84
+ criteriaMode = _ref2$criteriaMode === void 0 ? 'all' : _ref2$criteriaMode,
87
85
  _ref2$auto = _ref2.auto,
88
86
  auto = _ref2$auto === void 0 ? false : _ref2$auto,
89
87
  validatorRegistry = _ref2.validatorRegistry,
90
88
  componentRegistry = _ref2.componentRegistry,
89
+ _ref2$grid = _ref2.grid,
90
+ grid = _ref2$grid === void 0 ? false : _ref2$grid,
91
91
  props = _objectWithoutProperties(_ref2, _excluded2);
92
92
 
93
93
  var fieldsState = useRef(fields);
@@ -96,7 +96,17 @@ export var FormBuilder = /*#__PURE__*/React.forwardRef(function FormBuilder(_ref
96
96
  }, []);
97
97
  var schema = useValidationSchema(fieldsState, validatorRegistry);
98
98
  var registerField = useCallback(function (field) {
99
- setFieldsState([].concat(_toConsumableArray(fieldsState.current), [field]));
99
+ var fieldIndex = fieldsState.current.findIndex(function (f) {
100
+ return f.key === field.key;
101
+ });
102
+
103
+ if (fieldIndex > -1) {
104
+ fieldsState.current[fieldIndex] = field;
105
+ } else {
106
+ fieldsState.current.push(field);
107
+ }
108
+
109
+ setFieldsState(fieldsState.current);
100
110
  }, []);
101
111
  var resolver;
102
112
  var fieldsMap;
@@ -142,7 +152,8 @@ export var FormBuilder = /*#__PURE__*/React.forwardRef(function FormBuilder(_ref
142
152
  criteriaMode: criteriaMode,
143
153
  onSubmit: onSubmit,
144
154
  componentRegistry: componentRegistry,
145
- ref: ref
155
+ ref: ref,
156
+ grid: grid
146
157
  }, props), fieldChildren, children);
147
158
  });
148
159
  export default FormBuilder;
@@ -0,0 +1,10 @@
1
+ import MultiplicityField from '@digigov/form/MultiplicityField';
2
+ export default {
3
+ title: 'Digigov Form/MultiplicityField',
4
+ component: MultiplicityField
5
+ };
6
+ export * from '@digigov/form/MultiplicityField/__stories__/Default';
7
+ export * from '@digigov/form/MultiplicityField/__stories__/WithMinLength';
8
+ export * from '@digigov/form/MultiplicityField/__stories__/WithMaxLength';
9
+ export * from '@digigov/form/MultiplicityField/__stories__/WithMinAndMaxLength';
10
+ export * from '@digigov/form/MultiplicityField/__stories__/WithExactLength';
@@ -0,0 +1,100 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { Suspense } from 'react';
3
+ import FormBuilder, { Field } from '@digigov/form';
4
+ import { Button } from '@digigov/ui/core';
5
+ var fields = [{
6
+ key: 'string',
7
+ type: 'string',
8
+ label: {
9
+ primary: 'Πεδίο 1',
10
+ secondary: 'Το multiplicity field είναι ένα πεδίο οπότε φαίνεται και είναι μέρος της φόρμας'
11
+ }
12
+ }, {
13
+ key: 'multiplicity',
14
+ type: 'array',
15
+ multiplicity: true,
16
+ label: {
17
+ primary: 'Συνυπογράφοντες',
18
+ secondary: 'Οι συνυπογράφοντες είναι άνθρωποι σαν και εμάς'
19
+ },
20
+ extra: {
21
+ border: true,
22
+ label: {
23
+ object: {
24
+ title: 'Συνυπογράφοντας',
25
+ title_added: 'Οι συνυπογράφοντες που έχετε προσθέσει',
26
+ add: 'Προσθήκη',
27
+ "delete": 'Αφαίρεση συνυπογράφοντος'
28
+ },
29
+ question: {
30
+ title: 'Θέλετε να προσθέσετε επιπλέον συνυπογράφοντες;',
31
+ objectLabel: {
32
+ primary: 'Προσθήκη νέου συνυπογράφοντα',
33
+ secondary: 'Συμπληρώστε τα στοιχεία και μετά πατήστε «Προσθήκη»'
34
+ },
35
+ yes: 'Ναι',
36
+ no: 'Όχι'
37
+ }
38
+ },
39
+ of: {
40
+ type: 'object',
41
+ label: {
42
+ primary: 'Στοιχεία συνυπογράφοντα',
43
+ secondary: 'Δείτε και αλλάξτε τα στοιχεία του συνυπογράφοντα'
44
+ },
45
+ extra: {
46
+ fields: [{
47
+ key: 'afm',
48
+ type: 'afm',
49
+ required: true,
50
+ label: {
51
+ primary: 'ΑΦΜ'
52
+ }
53
+ }, {
54
+ key: 'firstName',
55
+ required: true,
56
+ type: 'string',
57
+ label: {
58
+ primary: 'Όνομα'
59
+ }
60
+ }, {
61
+ key: 'lastName',
62
+ required: true,
63
+ type: 'string',
64
+ label: {
65
+ primary: 'Επώνυμο'
66
+ }
67
+ }]
68
+ }
69
+ }
70
+ }
71
+ }, {
72
+ key: 'phonenumber',
73
+ type: 'phone_number',
74
+ required: true,
75
+ label: {
76
+ primary: 'Πεδίο 2',
77
+ secondary: 'Το multiplicity field είναι ένα πεδίο οπότε φαίνεται και είναι μέρος της φόρμας'
78
+ }
79
+ }];
80
+
81
+ var _ref = /*#__PURE__*/React.createElement(Button, {
82
+ type: "submit"
83
+ }, "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1");
84
+
85
+ export var Default = function Default() {
86
+ return /*#__PURE__*/React.createElement(Suspense, {
87
+ fallback: "loading"
88
+ }, /*#__PURE__*/React.createElement(FormBuilder, {
89
+ onSubmit: function onSubmit(data) {
90
+ debugger;
91
+ console.log(data);
92
+ }
93
+ }, /*#__PURE__*/React.createElement(Field, _extends({
94
+ name: "string"
95
+ }, fields[0])), /*#__PURE__*/React.createElement(Field, _extends({
96
+ name: "multiplicity"
97
+ }, fields[1])), /*#__PURE__*/React.createElement(Field, _extends({
98
+ name: "phonenumber"
99
+ }, fields[2])), _ref));
100
+ };