@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,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getNextStep = getNextStep;
7
+
8
+ function getNextStep(currentStep, steps, data) {
9
+ if (currentStep.nextStep) {
10
+ var nextStepName = currentStep.nextStep(data);
11
+
12
+ if (nextStepName) {
13
+ return steps.find(function (step) {
14
+ return step.name === nextStepName;
15
+ });
16
+ }
17
+ }
18
+
19
+ var currentStepIndex = steps.findIndex(function (step) {
20
+ return step.name === currentStep.name;
21
+ });
22
+ var nextStep = steps.slice(currentStepIndex + 1).find(function (step) {
23
+ if (step.show) {
24
+ return step.show(data);
25
+ }
26
+
27
+ return true;
28
+ });
29
+ return nextStep;
30
+ }
@@ -1,21 +1,12 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
3
  Object.defineProperty(exports, "__esModule", {
8
4
  value: true
9
5
  });
10
- var _exportNames = {
11
- QuestionsContext: true,
12
- Questions: true
13
- };
14
- exports["default"] = exports.QuestionsContext = exports.Questions = void 0;
15
-
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
6
+ var _exportNames = {};
7
+ exports["default"] = void 0;
17
8
 
18
- var _react = _interopRequireWildcard(require("react"));
9
+ var _Questions = require("@digigov/form/Questions/Questions");
19
10
 
20
11
  var _Step = require("@digigov/form/Questions/Step");
21
12
 
@@ -30,142 +21,5 @@ Object.keys(_Step).forEach(function (key) {
30
21
  }
31
22
  });
32
23
  });
33
-
34
- var _form = require("@digigov/form");
35
-
36
- Object.keys(_form).forEach(function (key) {
37
- if (key === "default" || key === "__esModule") return;
38
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
39
- if (key in exports && exports[key] === _form[key]) return;
40
- Object.defineProperty(exports, key, {
41
- enumerable: true,
42
- get: function get() {
43
- return _form[key];
44
- }
45
- });
46
- });
47
-
48
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
-
50
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
51
-
52
- var isBrowser = typeof window !== 'undefined';
53
- var defaultStep = {
54
- name: ''
55
- };
56
- var QuestionsContext = /*#__PURE__*/(0, _react.createContext)({
57
- currentStep: defaultStep,
58
- steps: [],
59
- submitStep: function submitStep() {
60
- return null;
61
- }
62
- });
63
- exports.QuestionsContext = QuestionsContext;
64
-
65
- function getNextStep(currentStep, steps, data) {
66
- if (currentStep.nextStep) {
67
- var nextStepName = currentStep.nextStep(data);
68
-
69
- if (nextStepName) {
70
- return steps.find(function (step) {
71
- return step.name === nextStepName;
72
- });
73
- }
74
- }
75
-
76
- var currentStepIndex = steps.findIndex(function (step) {
77
- return step.name === currentStep.name;
78
- });
79
- var nextStep = steps.slice(currentStepIndex + 1).find(function (step) {
80
- if (step.show) {
81
- return step.show(data);
82
- }
83
-
84
- return true;
85
- });
86
- return nextStep;
87
- }
88
- /**
89
- * The Question component accepts question data as props
90
- * uses composable components to provide a wholesome UX
91
- *
92
- */
93
-
94
-
95
- var Questions = function Questions(_ref) {
96
- var name = _ref.name,
97
- steps = _ref.steps,
98
- _ref$initialData = _ref.initialData,
99
- initialData = _ref$initialData === void 0 ? {} : _ref$initialData,
100
- onChange = _ref.onChange,
101
- onSubmit = _ref.onSubmit,
102
- onActiveStep = _ref.onActiveStep,
103
- forceStepName = _ref.forceStepName,
104
- _ref$localDraft = _ref.localDraft,
105
- localDraft = _ref$localDraft === void 0 ? false : _ref$localDraft,
106
- children = _ref.children;
107
-
108
- var _useState = (0, _react.useState)({
109
- name: ''
110
- }),
111
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
112
- currentStep = _useState2[0],
113
- setCurrentStep = _useState2[1];
114
-
115
- (0, _react.useEffect)(function () {
116
- if (!forceStepName) {
117
- setCurrentStep(steps[0]);
118
- }
119
- }, [forceStepName, steps]);
120
- (0, _react.useEffect)(function () {
121
- if (forceStepName !== currentStep.name) {
122
- var forceStep = steps.find(function (_ref2) {
123
- var name = _ref2.name;
124
- return name === forceStepName;
125
- });
126
- forceStep && setCurrentStep(forceStep);
127
- }
128
- }, [forceStepName]);
129
- var localData = isBrowser && localDraft && window.localStorage.getItem("questions-".concat(name));
130
-
131
- var _useState3 = (0, _react.useState)(localData && JSON.parse(localData) || initialData),
132
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
133
- data = _useState4[0],
134
- setData = _useState4[1];
135
-
136
- var submitStep = function submitStep(stepName, stepData) {
137
- data[stepName] = stepData;
138
-
139
- if (localDraft) {
140
- isBrowser && window.localStorage.setItem("questions-".concat(name), JSON.stringify(data));
141
- }
142
-
143
- if (onChange) {
144
- onChange && onChange(data);
145
- }
146
-
147
- setData(data);
148
- var nextStep = getNextStep(currentStep, steps, data);
149
-
150
- if (nextStep) {
151
- onActiveStep && onActiveStep(nextStep);
152
- setCurrentStep(nextStep);
153
- } else {
154
- onSubmit(data);
155
- }
156
- };
157
-
158
- return /*#__PURE__*/_react["default"].createElement(QuestionsContext.Provider, {
159
- value: {
160
- steps: steps,
161
- currentStep: currentStep,
162
- submitStep: submitStep,
163
- data: data,
164
- onActiveStep: onActiveStep
165
- }
166
- }, children);
167
- };
168
-
169
- exports.Questions = Questions;
170
- var _default = Questions;
24
+ var _default = _Questions.Questions;
171
25
  exports["default"] = _default;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,93 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["required", "name", "component", "wrapper", "control", "type", "controlled", "enabled", "editable", "defaultValue", "label", "extra", "layout", "error", "register"];
4
+ import React from 'react';
5
+ import FieldContainer from '@digigov/form/Field/FieldContainer';
6
+ import { Controller } from 'react-hook-form';
7
+ export var FieldBase = function FieldBase(props) {
8
+ var required = props.required,
9
+ name = props.name,
10
+ Component = props.component,
11
+ wrapper = props.wrapper,
12
+ control = props.control,
13
+ type = props.type,
14
+ _props$controlled = props.controlled,
15
+ controlled = _props$controlled === void 0 ? false : _props$controlled,
16
+ _props$enabled = props.enabled,
17
+ enabled = _props$enabled === void 0 ? true : _props$enabled,
18
+ editable = props.editable,
19
+ defaultValue = props.defaultValue,
20
+ label = props.label,
21
+ _props$extra = props.extra,
22
+ extra = _props$extra === void 0 ? {} : _props$extra,
23
+ layout = props.layout,
24
+ error = props.error,
25
+ register = props.register,
26
+ componentProps = _objectWithoutProperties(props, _excluded);
27
+
28
+ if (!enabled) {
29
+ return null;
30
+ }
31
+
32
+ if (controlled) {
33
+ return /*#__PURE__*/React.createElement(FieldContainer, {
34
+ label: label,
35
+ layout: layout,
36
+ error: error,
37
+ wrapper: wrapper,
38
+ name: name
39
+ }, /*#__PURE__*/React.createElement(Controller, {
40
+ control: control,
41
+ name: name,
42
+ render: function render(_ref) {
43
+ var onChange = _ref.onChange,
44
+ onBlur = _ref.onBlur,
45
+ value = _ref.value;
46
+ return /*#__PURE__*/React.createElement(Component, _extends({
47
+ name: name,
48
+ onChange: onChange,
49
+ onBlur: onBlur,
50
+ value: value,
51
+ defaultValue: defaultValue,
52
+ extra: extra,
53
+ error: !!error,
54
+ type: type,
55
+ "aria-required": !!required,
56
+ "aria-describedby": error && "".concat(name, "-error"),
57
+ required: required,
58
+ disabled: editable === false
59
+ }, componentProps));
60
+ }
61
+ }));
62
+ }
63
+
64
+ return /*#__PURE__*/React.createElement(FieldContainer, {
65
+ label: label,
66
+ layout: layout,
67
+ error: error,
68
+ wrapper: wrapper,
69
+ name: name
70
+ }, Component !== null && Component !== void 0 && Component.render ? /*#__PURE__*/React.createElement(Component, _extends({
71
+ name: name,
72
+ ref: register,
73
+ control: control,
74
+ error: !!error,
75
+ extra: extra,
76
+ type: type,
77
+ "aria-required": !!required,
78
+ "aria-describedby": error && "".concat(name, "-error"),
79
+ required: required,
80
+ disabled: editable === false
81
+ }, componentProps)) : /*#__PURE__*/React.createElement(Component, _extends({
82
+ name: name,
83
+ register: register,
84
+ control: control,
85
+ error: !!error,
86
+ extra: extra,
87
+ type: type,
88
+ "aria-required": !!required,
89
+ "aria-describedby": error && "".concat(name, "-error"),
90
+ required: required,
91
+ disabled: editable === false
92
+ }, componentProps)));
93
+ };
@@ -1,32 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { useWatch } from 'react-hook-form';
4
- import { FieldBase } from '@digigov/form/Field/';
5
-
6
- function evaluateFieldWithConditions(field, variables) {
7
- var newField = _extends({}, field);
8
-
9
- if (variables) {
10
- for (var key in variables) {
11
- if (field.condition[key] && field.condition[key].is === variables[key]) {
12
- var then = field.condition[key].then || {};
13
-
14
- for (var attr in then) {
15
- newField[attr] = then[attr];
16
- }
17
- } else if (field.condition[key]) {
18
- var otherwise = field.condition[key]["else"] || {};
19
-
20
- for (var _attr in otherwise) {
21
- newField[_attr] = otherwise[_attr];
22
- }
23
- }
24
- }
25
- }
26
-
27
- return newField;
28
- }
29
-
4
+ import { evaluateFieldWithConditions } from '@digigov/form/Field/utils';
5
+ import { FieldBase } from '@digigov/form/Field/FieldBase';
30
6
  var ChildFieldMemo = /*#__PURE__*/React.memo(function ChildField(_ref) {
31
7
  var dependencies = _ref.dependencies,
32
8
  field = _ref.field,
@@ -57,7 +33,7 @@ var ChildFieldMemo = /*#__PURE__*/React.memo(function ChildField(_ref) {
57
33
 
58
34
  return true;
59
35
  });
60
- export var ConditionalField = function ConditionalField(_ref2) {
36
+ export var FieldConditional = function FieldConditional(_ref2) {
61
37
  var control = _ref2.control,
62
38
  field = _ref2.field,
63
39
  register = _ref2.register,
@@ -74,4 +50,5 @@ export var ConditionalField = function ConditionalField(_ref2) {
74
50
  register: register,
75
51
  error: error
76
52
  });
77
- };
53
+ };
54
+ export default FieldConditional;
@@ -0,0 +1,40 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import CoreField from '@digigov/react-core/Field';
4
+ import CoreLabel from '@digigov/react-core/Label';
5
+ import CoreFieldset from '@digigov/react-core/Fieldset';
6
+ import Hint from '@digigov/react-core/Hint';
7
+ import FieldsetLegend from '@digigov/react-core/FieldsetLegend';
8
+ import ErrorMessage from '@digigov/react-core/ErrorMessage';
9
+ import { useTranslation } from '@digigov/ui/app/i18n';
10
+ import Label from '@digigov/form/inputs/Label';
11
+ export var FieldContainer = function FieldContainer(_ref) {
12
+ var name = _ref.name,
13
+ wrapper = _ref.wrapper,
14
+ label = _ref.label,
15
+ children = _ref.children,
16
+ error = _ref.error,
17
+ layout = _ref.layout;
18
+
19
+ var _useTranslation = useTranslation(),
20
+ t = _useTranslation.t;
21
+
22
+ if (wrapper === 'fieldset') {
23
+ return /*#__PURE__*/React.createElement(CoreField, _extends({
24
+ error: !!error
25
+ }, layout), /*#__PURE__*/React.createElement(CoreFieldset, null, /*#__PURE__*/React.createElement(FieldsetLegend, {
26
+ size: "s"
27
+ }, label && label.primary, label && label.secondary && /*#__PURE__*/React.createElement(Hint, null, t(label.secondary)), error && /*#__PURE__*/React.createElement(ErrorMessage, {
28
+ id: "".concat(name, "-error")
29
+ }, t((error === null || error === void 0 ? void 0 : error.message) || ''))), children));
30
+ } else {
31
+ return /*#__PURE__*/React.createElement(CoreField, _extends({
32
+ error: !!error
33
+ }, layout), /*#__PURE__*/React.createElement(CoreLabel, null, label && /*#__PURE__*/React.createElement(Label, {
34
+ label: label
35
+ }), error && /*#__PURE__*/React.createElement(ErrorMessage, {
36
+ id: "".concat(name, "-error")
37
+ }, t((error === null || error === void 0 ? void 0 : error.message) || '')), children));
38
+ }
39
+ };
40
+ export default FieldContainer;
package/es/Field/index.js CHANGED
@@ -1,239 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["required", "name", "component", "wrapper", "control", "type", "controlled", "enabled", "editable", "defaultValue", "label", "extra", "layout", "error", "register"],
4
- _excluded2 = ["name", "children"];
5
- import React, { useContext, useMemo } from 'react';
6
- import { ConditionalField } from '@digigov/form/Field/ConditionalField';
7
- import { Controller } from 'react-hook-form';
8
- import { FormContext } from '@digigov/form';
9
- import CoreField from '@digigov/react-core/Field';
10
- import CoreLabel from '@digigov/react-core/Label';
11
- import CoreFieldset from '@digigov/react-core/Fieldset';
12
- import Hint from '@digigov/react-core/Hint';
13
- import FieldsetLegend from '@digigov/react-core/FieldsetLegend';
14
- import ErrorMessage from '@digigov/react-core/ErrorMessage';
15
- import Input from '@digigov/form/inputs/Input';
16
- import Checkboxes from '@digigov/form/inputs/Checkboxes';
17
- import Radio from '@digigov/form/inputs/Radio';
18
- import Select from '@digigov/form/inputs/Select';
19
- import FileInput from '@digigov/form/inputs/FileInput';
20
- import DateInput from '@digigov/form/inputs/DateInput';
21
- import Label from '@digigov/form/inputs/Label';
22
- import { useTranslation } from '@digigov/ui/app/i18n';
23
- var FIELD_COMPONENTS = {
24
- text: {
25
- component: Input
26
- },
27
- string: {
28
- component: Input
29
- },
30
- file: {
31
- wrapper: 'fieldset',
32
- component: FileInput
33
- },
34
- date: {
35
- wrapper: 'fieldset',
36
- controlled: true,
37
- component: DateInput
38
- },
39
- 'choice:multiple': {
40
- wrapper: 'fieldset',
41
- controlled: true,
42
- component: Checkboxes
43
- },
44
- 'choice:single': {
45
- wrapper: 'fieldset',
46
- controlled: false,
47
- component: Radio
48
- }
49
- };
50
- var ALTERNATIVE_COMPONENTS = {
51
- Select: {
52
- component: Select,
53
- controlled: false
54
- }
55
- };
56
-
57
- var FieldContainer = function FieldContainer(_ref) {
3
+ var _excluded = ["name", "children"];
4
+ import React, { useMemo } from 'react';
5
+ import { FieldBase } from '@digigov/form/Field/FieldBase';
6
+ import FieldConditional from '@digigov/form/Field/FieldConditional';
7
+ import { useField, calculateField } from '@digigov/form/Field/utils';
8
+ export var Field = function Field(_ref) {
58
9
  var name = _ref.name,
59
- wrapper = _ref.wrapper,
60
- label = _ref.label,
61
10
  children = _ref.children,
62
- error = _ref.error;
63
-
64
- var _useTranslation = useTranslation(),
65
- t = _useTranslation.t;
66
-
67
- if (wrapper === 'fieldset') {
68
- return /*#__PURE__*/React.createElement(CoreField, {
69
- error: !!error
70
- }, /*#__PURE__*/React.createElement(CoreFieldset, null, /*#__PURE__*/React.createElement(FieldsetLegend, {
71
- size: "s"
72
- }, label && label.primary, label && label.secondary && /*#__PURE__*/React.createElement(Hint, null, t(label.secondary)), error && /*#__PURE__*/React.createElement(ErrorMessage, {
73
- id: "".concat(name, "-error")
74
- }, t((error === null || error === void 0 ? void 0 : error.message) || ''))), children));
75
- } else {
76
- return /*#__PURE__*/React.createElement(CoreField, {
77
- error: !!error
78
- }, /*#__PURE__*/React.createElement(CoreLabel, null, label && /*#__PURE__*/React.createElement(Label, {
79
- label: label
80
- }), error && /*#__PURE__*/React.createElement(ErrorMessage, {
81
- id: "".concat(name, "-error")
82
- }, t((error === null || error === void 0 ? void 0 : error.message) || '')), children));
83
- }
84
- };
85
-
86
- export var FieldBase = function FieldBase(props) {
87
- var required = props.required,
88
- name = props.name,
89
- Component = props.component,
90
- wrapper = props.wrapper,
91
- control = props.control,
92
- type = props.type,
93
- _props$controlled = props.controlled,
94
- controlled = _props$controlled === void 0 ? false : _props$controlled,
95
- _props$enabled = props.enabled,
96
- enabled = _props$enabled === void 0 ? true : _props$enabled,
97
- editable = props.editable,
98
- defaultValue = props.defaultValue,
99
- label = props.label,
100
- _props$extra = props.extra,
101
- extra = _props$extra === void 0 ? {} : _props$extra,
102
- layout = props.layout,
103
- error = props.error,
104
- register = props.register,
105
- componentProps = _objectWithoutProperties(props, _excluded);
106
-
107
- if (!enabled) {
108
- return null;
109
- }
110
-
111
- if (controlled) {
112
- return /*#__PURE__*/React.createElement(FieldContainer, {
113
- label: label,
114
- layout: layout,
115
- error: error,
116
- wrapper: wrapper,
117
- name: name
118
- }, /*#__PURE__*/React.createElement(Controller, {
119
- control: control,
120
- name: name,
121
- render: function render(_ref2) {
122
- var onChange = _ref2.onChange,
123
- onBlur = _ref2.onBlur,
124
- value = _ref2.value;
125
- return /*#__PURE__*/React.createElement(Component, _extends({
126
- name: name,
127
- onChange: onChange,
128
- onBlur: onBlur,
129
- value: value,
130
- defaultValue: defaultValue,
131
- extra: extra,
132
- error: !!error,
133
- type: type,
134
- "aria-required": !!required,
135
- "aria-describedby": error && "".concat(name, "-error"),
136
- required: required,
137
- disabled: editable === false
138
- }, componentProps));
139
- }
140
- }));
141
- }
142
-
143
- return /*#__PURE__*/React.createElement(FieldContainer, {
144
- label: label,
145
- layout: layout,
146
- error: error,
147
- wrapper: wrapper,
148
- name: name
149
- }, Component !== null && Component !== void 0 && Component.render ? /*#__PURE__*/React.createElement(Component, _extends({
150
- name: name,
151
- ref: register,
152
- control: control,
153
- error: !!error,
154
- extra: extra,
155
- type: type,
156
- "aria-required": !!required,
157
- "aria-describedby": error && "".concat(name, "-error"),
158
- required: required,
159
- disabled: editable === false
160
- }, componentProps)) : /*#__PURE__*/React.createElement(Component, _extends({
161
- name: name,
162
- register: register,
163
- control: control,
164
- error: !!error,
165
- extra: extra,
166
- type: type,
167
- "aria-required": !!required,
168
- "aria-describedby": error && "".concat(name, "-error"),
169
- required: required,
170
- disabled: editable === false
171
- }, componentProps)));
172
- };
173
-
174
- var useField = function useField(name, customField) {
175
- var _useContext = useContext(FormContext),
176
- fieldsMap = _useContext.fieldsMap,
177
- control = _useContext.control,
178
- register = _useContext.register,
179
- errors = _useContext.errors,
180
- registerField = _useContext.registerField,
181
- componentRegistry = _useContext.componentRegistry;
182
-
183
- useMemo(function () {
184
- return (customField === null || customField === void 0 ? void 0 : customField.type) && registerField(_extends({}, customField, {
185
- key: name
186
- }));
187
- }, [customField, name, registerField]);
188
- return {
189
- field: customField || fieldsMap[name],
190
- control: control,
191
- register: register,
192
- componentRegistry: componentRegistry,
193
- error: errors[name]
194
- };
195
- };
196
-
197
- function calculateField(children, field, componentRegistry) {
198
- var _field$extra;
199
-
200
- var calculatedField = _extends({}, field);
201
-
202
- var FieldComponentRegistry = _extends({}, FIELD_COMPONENTS, componentRegistry);
203
-
204
- if (children) {
205
- calculatedField.component = children;
206
- } else if (typeof field.component === 'function') {// leave as is
207
- } else if (!field.component && !field.type) {
208
- var _FieldComponentRegist;
209
-
210
- calculatedField.component = FieldComponentRegistry.string.component;
211
- calculatedField.controlled = ((_FieldComponentRegist = FieldComponentRegistry.string) === null || _FieldComponentRegist === void 0 ? void 0 : _FieldComponentRegist.controlled) || false;
212
- } 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]) {
213
- var _ALTERNATIVE_COMPONEN;
214
-
215
- calculatedField.controlled = ((_ALTERNATIVE_COMPONEN = ALTERNATIVE_COMPONENTS[field.extra.component]) === null || _ALTERNATIVE_COMPONEN === void 0 ? void 0 : _ALTERNATIVE_COMPONEN.controlled) || false;
216
- calculatedField.component = ALTERNATIVE_COMPONENTS[field.extra.component].component;
217
- } else if (!field.component && field.type && FieldComponentRegistry[field.type]) {
218
- var _FieldComponentRegist2;
219
-
220
- calculatedField.component = FieldComponentRegistry[field.type].component;
221
- calculatedField.wrapper = FieldComponentRegistry[field.type].wrapper;
222
- calculatedField.controlled = ((_FieldComponentRegist2 = FieldComponentRegistry[field.type]) === null || _FieldComponentRegist2 === void 0 ? void 0 : _FieldComponentRegist2.controlled) || false;
223
- } else {
224
- var _FieldComponentRegist3;
225
-
226
- calculatedField.component = FieldComponentRegistry.string.component;
227
- calculatedField.controlled = ((_FieldComponentRegist3 = FieldComponentRegistry.string) === null || _FieldComponentRegist3 === void 0 ? void 0 : _FieldComponentRegist3.controlled) || false;
228
- }
229
-
230
- return calculatedField;
231
- }
232
-
233
- export var Field = function Field(_ref3) {
234
- var name = _ref3.name,
235
- children = _ref3.children,
236
- customField = _objectWithoutProperties(_ref3, _excluded2);
11
+ customField = _objectWithoutProperties(_ref, _excluded);
237
12
 
238
13
  var _useField = useField(name, customField !== null && customField !== void 0 && customField.type ? customField : null),
239
14
  field = _useField.field,
@@ -247,7 +22,7 @@ export var Field = function Field(_ref3) {
247
22
  }, [field]);
248
23
 
249
24
  if (calculatedField.condition) {
250
- return /*#__PURE__*/React.createElement(ConditionalField, {
25
+ return /*#__PURE__*/React.createElement(FieldConditional, {
251
26
  control: control,
252
27
  register: register,
253
28
  field: calculatedField,
@@ -0,0 +1 @@
1
+ export {};