@ukhomeoffice/cop-react-form-renderer 5.0.0-alpha → 5.0.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 (277) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +18 -7
  2. package/dist/components/CheckYourAnswers/Answer.test.js +137 -0
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +70 -46
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.stories.mdx +410 -0
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +551 -0
  6. package/dist/components/CollectionPage/CollectionPage.js +15 -10
  7. package/dist/components/CollectionPage/CollectionPage.test.js +382 -0
  8. package/dist/components/FormComponent/Collection.js +91 -48
  9. package/dist/components/FormComponent/Collection.scss +2 -1
  10. package/dist/components/FormComponent/Collection.test.js +807 -0
  11. package/dist/components/FormComponent/Container.js +35 -16
  12. package/dist/components/FormComponent/Container.test.js +370 -0
  13. package/dist/components/FormComponent/FormComponent.js +39 -13
  14. package/dist/components/FormComponent/FormComponent.stories.mdx +184 -0
  15. package/dist/components/FormComponent/FormComponent.test.js +226 -0
  16. package/dist/components/FormComponent/helpers/addLabel.js +5 -4
  17. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +16 -0
  18. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +29 -0
  19. package/dist/components/FormComponent/helpers/index.js +8 -1
  20. package/dist/components/FormPage/FormPage.js +69 -30
  21. package/dist/components/FormPage/FormPage.stories.mdx +155 -0
  22. package/dist/components/FormPage/FormPage.test.js +330 -0
  23. package/dist/components/FormRenderer/FormRenderer.js +142 -228
  24. package/dist/components/FormRenderer/FormRenderer.stories.mdx +183 -0
  25. package/dist/components/FormRenderer/FormRenderer.test.js +968 -0
  26. package/dist/components/FormRenderer/handlers/index.js +1 -2
  27. package/dist/components/FormRenderer/handlers/navigate.js +3 -1
  28. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +35 -14
  29. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +88 -5
  30. package/dist/components/FormRenderer/helpers/getCYA.js +11 -2
  31. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -7
  32. package/dist/components/FormRenderer/helpers/getRelevantPages.js +10 -2
  33. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -1
  34. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +2 -2
  35. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +6 -2
  36. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +171 -51
  37. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +307 -24
  38. package/dist/components/FormRenderer/helpers/index.js +1 -2
  39. package/dist/components/FormRenderer/onCYAAction.js +108 -0
  40. package/dist/components/FormRenderer/onCYAAction.test.js +583 -0
  41. package/dist/components/FormRenderer/onPageAction.js +145 -0
  42. package/dist/components/FormRenderer/onPageAction.test.js +678 -0
  43. package/dist/components/FormRenderer/onTaskAction.js +48 -0
  44. package/dist/components/FormRenderer/onTaskAction.test.js +217 -0
  45. package/dist/components/PageActions/ActionButton.js +0 -3
  46. package/dist/components/PageActions/ActionButton.test.js +93 -0
  47. package/dist/components/PageActions/PageActions.js +2 -2
  48. package/dist/components/PageActions/PageActions.stories.mdx +74 -0
  49. package/dist/components/PageActions/PageActions.test.js +132 -0
  50. package/dist/components/SummaryList/GroupAction.js +2 -2
  51. package/dist/components/SummaryList/GroupAction.test.js +80 -0
  52. package/dist/components/SummaryList/RowAction.js +2 -2
  53. package/dist/components/SummaryList/RowAction.test.js +80 -0
  54. package/dist/components/SummaryList/SummaryList.js +29 -12
  55. package/dist/components/SummaryList/SummaryList.scss +19 -0
  56. package/dist/components/SummaryList/SummaryList.stories.mdx +90 -0
  57. package/dist/components/SummaryList/SummaryList.test.js +400 -0
  58. package/dist/components/SummaryList/SummaryListHeadingRow.js +30 -0
  59. package/dist/components/SummaryList/SummaryListRow.js +5 -2
  60. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +2 -1
  61. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +2 -1
  62. package/dist/components/TaskList/Task.js +3 -3
  63. package/dist/components/TaskList/Task.test.js +167 -0
  64. package/dist/components/TaskList/TaskList.js +73 -22
  65. package/dist/components/TaskList/TaskList.stories.mdx +164 -0
  66. package/dist/components/TaskList/TaskList.test.js +389 -0
  67. package/dist/components/TaskList/TaskState.js +2 -2
  68. package/dist/components/TaskList/TaskState.test.js +86 -0
  69. package/dist/components/index.js +14 -0
  70. package/dist/context/HooksContext/HooksContext.js +72 -8
  71. package/dist/context/HooksContext/HooksContext.test.js +44 -0
  72. package/dist/context/ValidationContext/ValidationContext.js +38 -28
  73. package/dist/context/ValidationContext/ValidationContext.test.js +84 -0
  74. package/dist/hooks/useAxios.js +10 -12
  75. package/dist/hooks/useGetRequest.js +48 -49
  76. package/dist/hooks/useRefData.js +7 -4
  77. package/dist/index.js +34 -1
  78. package/dist/json/addressDetails.json +149 -0
  79. package/dist/json/areYouACivilServant.json +7 -0
  80. package/dist/json/firstForm.json +94 -0
  81. package/dist/json/grade.json +108 -0
  82. package/dist/json/group.data.json +21 -0
  83. package/dist/json/group.json +402 -0
  84. package/dist/json/groupOfRow.json +137 -0
  85. package/dist/json/groupOfRowData.json +15 -0
  86. package/dist/json/port.json +346 -0
  87. package/dist/json/saveAndContinue.json +98 -0
  88. package/dist/json/sublocation.json +859 -0
  89. package/dist/json/taskList.json +265 -0
  90. package/dist/json/team.json +17351 -0
  91. package/dist/json/terminal.json +81 -0
  92. package/dist/json/userProfile.data.json +21 -0
  93. package/dist/json/userProfile.json +276 -0
  94. package/dist/models/ComponentTypes.js +8 -0
  95. package/dist/models/PageAction.js +4 -1
  96. package/dist/models/TaskStates.js +10 -2
  97. package/dist/models/index.js +16 -1
  98. package/dist/setupTests.js +46 -0
  99. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  100. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +121 -0
  101. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +6 -2
  102. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +71 -0
  103. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +6 -2
  104. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +55 -0
  105. package/dist/utils/CheckYourAnswers/getCYARow.js +14 -11
  106. package/dist/utils/CheckYourAnswers/getCYARow.test.js +291 -0
  107. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +4 -1
  108. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +70 -0
  109. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +15 -10
  110. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +288 -0
  111. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +94 -36
  112. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +414 -0
  113. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +21 -7
  114. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +486 -0
  115. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +11 -3
  116. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +346 -0
  117. package/dist/utils/CheckYourAnswers/showComponentCYA.js +19 -3
  118. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +143 -0
  119. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +5 -1
  120. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +40 -0
  121. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +53 -0
  122. package/dist/utils/CollectionPage/mergeCollectionPages.js +25 -17
  123. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +130 -0
  124. package/dist/utils/Component/addShowWhen.js +44 -0
  125. package/dist/utils/Component/addShowWhen.test.js +216 -0
  126. package/dist/utils/Component/applyToComponentTree.js +71 -0
  127. package/dist/utils/Component/applyToComponentTree.test.js +127 -0
  128. package/dist/utils/Component/cleanAttributes.js +8 -2
  129. package/dist/utils/Component/cleanAttributes.test.js +68 -0
  130. package/dist/utils/Component/elevateNestedComponents.js +4 -1
  131. package/dist/utils/Component/elevateNestedComponents.test.js +122 -0
  132. package/dist/utils/Component/getComponent.js +80 -11
  133. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +4 -4
  134. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +25 -24
  135. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +66 -5
  136. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +2 -2
  137. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +9 -7
  138. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +3 -3
  139. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +3 -3
  140. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +44 -0
  141. package/dist/utils/Component/getComponentTests/{getComponent.textarea.test.js → getComponent.multifile.test.js} +29 -21
  142. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +159 -83
  143. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +43 -0
  144. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +3 -3
  145. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +55 -5
  146. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +3 -9
  147. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +3 -3
  148. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +109 -0
  149. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +7 -7
  150. package/dist/utils/Component/getDefaultValue.js +4 -1
  151. package/dist/utils/Component/getDefaultValue.test.js +50 -0
  152. package/dist/utils/Component/index.js +2 -0
  153. package/dist/utils/Component/isEditable.js +2 -2
  154. package/dist/utils/Component/isEditable.test.js +43 -0
  155. package/dist/utils/Component/optionIsSelected.js +22 -0
  156. package/dist/utils/Component/optionIsSelected.test.js +42 -0
  157. package/dist/utils/Component/setupContainerComponentsPath.js +40 -0
  158. package/dist/utils/Component/setupContainerComponentsPath.test.js +78 -0
  159. package/dist/utils/Component/showComponent.test.js +156 -0
  160. package/dist/utils/Component/wrapInFormGroup.js +1 -1
  161. package/dist/utils/Condition/meetsAllConditions.js +1 -1
  162. package/dist/utils/Condition/meetsAllConditions.test.js +61 -0
  163. package/dist/utils/Condition/meetsCondition.js +74 -4
  164. package/dist/utils/Condition/meetsCondition.test.js +763 -0
  165. package/dist/utils/Condition/meetsOneCondition.js +1 -1
  166. package/dist/utils/Condition/meetsOneCondition.test.js +100 -0
  167. package/dist/utils/Condition/setupConditions.js +6 -3
  168. package/dist/utils/Condition/setupConditions.test.js +33 -0
  169. package/dist/utils/Container/getEditableComponents.test.js +135 -0
  170. package/dist/utils/Container/setupNesting.js +21 -2
  171. package/dist/utils/Container/setupNesting.test.js +145 -0
  172. package/dist/utils/Container/showContainer.test.js +178 -0
  173. package/dist/utils/Data/applyFormula.js +20 -11
  174. package/dist/utils/Data/applyFormula.test.js +263 -0
  175. package/dist/utils/Data/getAutocompleteSource.js +6 -2
  176. package/dist/utils/Data/getAutocompleteSource.test.js +352 -0
  177. package/dist/utils/Data/getDataPath.test.js +48 -0
  178. package/dist/utils/Data/getOptions.js +17 -3
  179. package/dist/utils/Data/getOptions.test.js +140 -0
  180. package/dist/utils/Data/getSourceData.js +2 -2
  181. package/dist/utils/Data/getSourceData.test.js +153 -0
  182. package/dist/utils/Data/refDataToOptions.js +4 -1
  183. package/dist/utils/Data/refDataToOptions.test.js +196 -0
  184. package/dist/utils/Data/setDataItem.test.js +110 -0
  185. package/dist/utils/Data/setupFormData.js +39 -16
  186. package/dist/utils/Data/setupFormData.test.js +410 -0
  187. package/dist/utils/Data/setupRefDataUrlForComponent.js +4 -1
  188. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +131 -0
  189. package/dist/utils/FormPage/applyConditionalProperties.js +35 -0
  190. package/dist/utils/FormPage/applyConditionalProperties.test.js +61 -0
  191. package/dist/utils/FormPage/getFormPage.js +5 -2
  192. package/dist/utils/FormPage/getFormPage.test.js +206 -0
  193. package/dist/utils/FormPage/getFormPages.js +4 -1
  194. package/dist/utils/FormPage/getFormPages.test.js +97 -0
  195. package/dist/utils/FormPage/getPageActions.js +8 -4
  196. package/dist/utils/FormPage/getPageActions.test.js +114 -0
  197. package/dist/utils/FormPage/getParagraphFromText.test.js +27 -0
  198. package/dist/utils/FormPage/index.js +2 -0
  199. package/dist/utils/FormPage/showFormPage.js +2 -2
  200. package/dist/utils/FormPage/showFormPage.test.js +180 -0
  201. package/dist/utils/FormPage/showFormPageCYA.js +1 -0
  202. package/dist/utils/FormPage/showFormPageCYA.test.js +28 -0
  203. package/dist/utils/FormPage/useComponent.js +29 -14
  204. package/dist/utils/FormPage/useComponent.test.js +167 -0
  205. package/dist/utils/Format/formatData.test.js +45 -0
  206. package/dist/utils/Format/formatDataForComponent.js +2 -1
  207. package/dist/utils/Format/formatDataForComponent.test.js +142 -0
  208. package/dist/utils/Format/formatDataForForm.js +4 -1
  209. package/dist/utils/Format/formatDataForForm.test.js +81 -0
  210. package/dist/utils/Format/formatDataForPage.test.js +99 -0
  211. package/dist/utils/Hub/getFormHub.test.js +105 -0
  212. package/dist/utils/Meta/documents/getDocuments.test.js +4 -1
  213. package/dist/utils/Meta/documents/index.js +2 -2
  214. package/dist/utils/Meta/documents/setDocumentsForField.js +31 -0
  215. package/dist/utils/Meta/documents/setDocumentsForField.test.js +59 -0
  216. package/dist/utils/Operate/checkValueIsTruthy.test.js +42 -0
  217. package/dist/utils/Operate/getFirstOf.js +31 -0
  218. package/dist/utils/Operate/getFirstOf.test.js +86 -0
  219. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +163 -0
  220. package/dist/utils/Operate/persistValueInFormData.js +2 -1
  221. package/dist/utils/Operate/persistValueInFormData.test.js +115 -0
  222. package/dist/utils/Operate/runPageOperations.js +3 -1
  223. package/dist/utils/Operate/runPageOperations.test.js +105 -0
  224. package/dist/utils/Operate/setValueInFormData.test.js +44 -0
  225. package/dist/utils/Operate/shouldRun.js +16 -13
  226. package/dist/utils/Operate/shouldRun.test.js +66 -0
  227. package/dist/utils/Validate/additional/conditionallyRequired.js +24 -0
  228. package/dist/utils/Validate/additional/conditionallyRequired.test.js +73 -0
  229. package/dist/utils/Validate/additional/index.js +13 -4
  230. package/dist/utils/Validate/additional/mustBeAfter.js +8 -6
  231. package/dist/utils/Validate/additional/mustBeAfter.test.js +15 -1
  232. package/dist/utils/Validate/additional/mustBeBefore.js +9 -5
  233. package/dist/utils/Validate/additional/mustBeBefore.test.js +14 -0
  234. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +1 -1
  235. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +6 -3
  236. package/dist/utils/Validate/additional/mustBeGreaterThan.js +22 -0
  237. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +56 -0
  238. package/dist/utils/Validate/additional/mustBeInTheFuture.js +1 -1
  239. package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
  240. package/dist/utils/Validate/additional/mustBeLessThan.js +7 -6
  241. package/dist/utils/Validate/additional/mustBeLessThan.test.js +11 -1
  242. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +9 -5
  243. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +10 -2
  244. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +1 -0
  245. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +4 -1
  246. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +19 -0
  247. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +36 -0
  248. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +29 -0
  249. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +52 -0
  250. package/dist/utils/Validate/additional/utils.js +18 -18
  251. package/dist/utils/Validate/index.js +6 -0
  252. package/dist/utils/Validate/validateCollection.js +20 -5
  253. package/dist/utils/Validate/validateCollection.test.js +125 -0
  254. package/dist/utils/Validate/validateComponent.js +36 -20
  255. package/dist/utils/Validate/validateComponent.test.js +365 -0
  256. package/dist/utils/Validate/validateContainer.js +9 -3
  257. package/dist/utils/Validate/validateContainer.test.js +75 -0
  258. package/dist/utils/Validate/validateDate.js +4 -3
  259. package/dist/utils/Validate/validateDate.test.js +114 -0
  260. package/dist/utils/Validate/validateEmail.js +14 -1
  261. package/dist/utils/Validate/validateEmail.test.js +74 -0
  262. package/dist/utils/Validate/validateMultifile.js +32 -0
  263. package/dist/utils/Validate/validateMultifile.test.js +47 -0
  264. package/dist/utils/Validate/validatePage.js +12 -6
  265. package/dist/utils/Validate/validatePage.test.js +472 -0
  266. package/dist/utils/Validate/validateRegex.js +2 -5
  267. package/dist/utils/Validate/validateRegex.test.js +42 -0
  268. package/dist/utils/Validate/validateRequired.js +2 -4
  269. package/dist/utils/Validate/validateRequired.test.js +63 -0
  270. package/dist/utils/Validate/validateTextArea.js +37 -0
  271. package/dist/utils/Validate/validateTextArea.test.js +42 -0
  272. package/dist/utils/Validate/validateTime.js +2 -2
  273. package/dist/utils/Validate/validateTime.test.js +59 -0
  274. package/dist/utils/index.js +4 -1
  275. package/package.json +35 -50
  276. package/dist/utils/Meta/documents/setDocumentForField.js +0 -29
  277. package/dist/utils/Meta/documents/setDocumentForField.test.js +0 -49
@@ -0,0 +1,346 @@
1
+ {
2
+ "data": [
3
+ {
4
+ "id": 5,
5
+ "countryid": 234,
6
+ "commandid": 27,
7
+ "locationid": null,
8
+ "name": "Abbotsbury",
9
+ "addressid": null,
10
+ "subdivision": "DOR",
11
+ "municipality": null,
12
+ "geolong": null,
13
+ "geolat": null,
14
+ "air": false,
15
+ "land": false,
16
+ "sea": true,
17
+ "rail": false,
18
+ "iata": null,
19
+ "icao": null,
20
+ "localcode": null,
21
+ "unlocode": "AOT",
22
+ "helipad": false,
23
+ "fixedpcp": null,
24
+ "portablepcp": null,
25
+ "egates": null,
26
+ "nonoperational": false,
27
+ "portsizeid": 3,
28
+ "juxtaposed": false,
29
+ "freightparcelposthub": false,
30
+ "validfrom": "2019-01-01T00:01:00.000Z",
31
+ "validto": null,
32
+ "updatedby": null
33
+ },
34
+ {
35
+ "id": 7947,
36
+ "countryid": 234,
37
+ "commandid": null,
38
+ "locationid": null,
39
+ "name": "Whitehall",
40
+ "addressid": null,
41
+ "subdivision": "NA",
42
+ "municipality": null,
43
+ "geolong": "-1.14934",
44
+ "geolat": "51.79353",
45
+ "air": true,
46
+ "land": false,
47
+ "sea": false,
48
+ "rail": false,
49
+ "iata": null,
50
+ "icao": null,
51
+ "localcode": null,
52
+ "unlocode": null,
53
+ "helipad": false,
54
+ "fixedpcp": null,
55
+ "portablepcp": null,
56
+ "egates": null,
57
+ "nonoperational": false,
58
+ "portsizeid": 3,
59
+ "juxtaposed": false,
60
+ "freightparcelposthub": false,
61
+ "validfrom": "2019-01-01T00:01:00.000Z",
62
+ "validto": null,
63
+ "updatedby": null
64
+ },
65
+ {
66
+ "id": 9887,
67
+ "countryid": 234,
68
+ "commandid": 20,
69
+ "locationid": null,
70
+ "name": "The Manor House Castle Combe",
71
+ "addressid": null,
72
+ "subdivision": "NA",
73
+ "municipality": null,
74
+ "geolong": "-2.23211",
75
+ "geolat": "51.49378",
76
+ "air": true,
77
+ "land": false,
78
+ "sea": false,
79
+ "rail": false,
80
+ "iata": null,
81
+ "icao": null,
82
+ "localcode": null,
83
+ "unlocode": null,
84
+ "helipad": true,
85
+ "fixedpcp": null,
86
+ "portablepcp": null,
87
+ "egates": null,
88
+ "nonoperational": false,
89
+ "portsizeid": 3,
90
+ "juxtaposed": false,
91
+ "freightparcelposthub": false,
92
+ "validfrom": "2019-01-01T00:01:00.000Z",
93
+ "validto": null,
94
+ "updatedby": null
95
+ },
96
+ {
97
+ "id": 13418,
98
+ "countryid": 14,
99
+ "commandid": null,
100
+ "locationid": null,
101
+ "name": "Ballast Head",
102
+ "addressid": null,
103
+ "subdivision": "SA",
104
+ "municipality": null,
105
+ "geolong": null,
106
+ "geolat": null,
107
+ "air": false,
108
+ "land": false,
109
+ "sea": true,
110
+ "rail": false,
111
+ "iata": null,
112
+ "icao": null,
113
+ "localcode": null,
114
+ "unlocode": "BAH",
115
+ "helipad": null,
116
+ "fixedpcp": null,
117
+ "portablepcp": null,
118
+ "egates": null,
119
+ "nonoperational": false,
120
+ "portsizeid": null,
121
+ "juxtaposed": false,
122
+ "freightparcelposthub": false,
123
+ "validfrom": "2019-01-01T00:01:00.000Z",
124
+ "validto": null,
125
+ "updatedby": null
126
+ },
127
+ {
128
+ "id": 17391,
129
+ "countryid": 22,
130
+ "commandid": null,
131
+ "locationid": null,
132
+ "name": "Thuin",
133
+ "addressid": null,
134
+ "subdivision": "WHT",
135
+ "municipality": null,
136
+ "geolong": "4.28333",
137
+ "geolat": "50.33333",
138
+ "air": false,
139
+ "land": false,
140
+ "sea": true,
141
+ "rail": false,
142
+ "iata": null,
143
+ "icao": null,
144
+ "localcode": null,
145
+ "unlocode": "THU",
146
+ "helipad": null,
147
+ "fixedpcp": null,
148
+ "portablepcp": null,
149
+ "egates": null,
150
+ "nonoperational": false,
151
+ "portsizeid": null,
152
+ "juxtaposed": false,
153
+ "freightparcelposthub": false,
154
+ "validfrom": "2019-01-01T00:01:00.000Z",
155
+ "validto": null,
156
+ "updatedby": null
157
+ },
158
+ {
159
+ "id": 27077,
160
+ "countryid": 47,
161
+ "commandid": null,
162
+ "locationid": null,
163
+ "name": "Pudongxinqu Pt",
164
+ "addressid": null,
165
+ "subdivision": "31",
166
+ "municipality": null,
167
+ "geolong": null,
168
+ "geolat": null,
169
+ "air": false,
170
+ "land": false,
171
+ "sea": true,
172
+ "rail": false,
173
+ "iata": null,
174
+ "icao": null,
175
+ "localcode": null,
176
+ "unlocode": "PDX",
177
+ "helipad": null,
178
+ "fixedpcp": null,
179
+ "portablepcp": null,
180
+ "egates": null,
181
+ "nonoperational": false,
182
+ "portsizeid": null,
183
+ "juxtaposed": false,
184
+ "freightparcelposthub": false,
185
+ "validfrom": "2019-01-01T00:01:00.000Z",
186
+ "validto": null,
187
+ "updatedby": null
188
+ },
189
+ {
190
+ "id": 52061,
191
+ "countryid": 80,
192
+ "commandid": null,
193
+ "locationid": null,
194
+ "name": "Jouques",
195
+ "addressid": null,
196
+ "subdivision": "13",
197
+ "municipality": null,
198
+ "geolong": "5.63333",
199
+ "geolat": "43.63333",
200
+ "air": false,
201
+ "land": false,
202
+ "sea": true,
203
+ "rail": false,
204
+ "iata": null,
205
+ "icao": null,
206
+ "localcode": null,
207
+ "unlocode": "QUU",
208
+ "helipad": null,
209
+ "fixedpcp": null,
210
+ "portablepcp": null,
211
+ "egates": null,
212
+ "nonoperational": false,
213
+ "portsizeid": null,
214
+ "juxtaposed": false,
215
+ "freightparcelposthub": false,
216
+ "validfrom": "2019-01-01T00:01:00.000Z",
217
+ "validto": null,
218
+ "updatedby": null
219
+ },
220
+ {
221
+ "id": 63838,
222
+ "countryid": 107,
223
+ "commandid": null,
224
+ "locationid": null,
225
+ "name": "Panjang",
226
+ "addressid": null,
227
+ "subdivision": null,
228
+ "municipality": null,
229
+ "geolong": null,
230
+ "geolat": null,
231
+ "air": false,
232
+ "land": false,
233
+ "sea": true,
234
+ "rail": false,
235
+ "iata": null,
236
+ "icao": null,
237
+ "localcode": null,
238
+ "unlocode": "PNJ",
239
+ "helipad": null,
240
+ "fixedpcp": null,
241
+ "portablepcp": null,
242
+ "egates": null,
243
+ "nonoperational": false,
244
+ "portsizeid": null,
245
+ "juxtaposed": false,
246
+ "freightparcelposthub": false,
247
+ "validfrom": "2019-01-01T00:01:00.000Z",
248
+ "validto": null,
249
+ "updatedby": null
250
+ },
251
+ {
252
+ "id": 78550,
253
+ "countryid": 155,
254
+ "commandid": null,
255
+ "locationid": null,
256
+ "name": "Hoek van Holland",
257
+ "addressid": null,
258
+ "subdivision": null,
259
+ "municipality": null,
260
+ "geolong": null,
261
+ "geolat": null,
262
+ "air": false,
263
+ "land": false,
264
+ "sea": true,
265
+ "rail": false,
266
+ "iata": null,
267
+ "icao": null,
268
+ "localcode": null,
269
+ "unlocode": "HVH",
270
+ "helipad": null,
271
+ "fixedpcp": null,
272
+ "portablepcp": null,
273
+ "egates": null,
274
+ "nonoperational": false,
275
+ "portsizeid": null,
276
+ "juxtaposed": false,
277
+ "freightparcelposthub": false,
278
+ "validfrom": "2019-01-01T00:01:00.000Z",
279
+ "validto": null,
280
+ "updatedby": null
281
+ },
282
+ {
283
+ "id": 102163,
284
+ "countryid": 238,
285
+ "commandid": null,
286
+ "locationid": null,
287
+ "name": "Lolita",
288
+ "addressid": null,
289
+ "subdivision": "TX",
290
+ "municipality": null,
291
+ "geolong": "-96.53333",
292
+ "geolat": "28.83333",
293
+ "air": false,
294
+ "land": false,
295
+ "sea": true,
296
+ "rail": false,
297
+ "iata": null,
298
+ "icao": null,
299
+ "localcode": null,
300
+ "unlocode": "OIT",
301
+ "helipad": null,
302
+ "fixedpcp": null,
303
+ "portablepcp": null,
304
+ "egates": null,
305
+ "nonoperational": false,
306
+ "portsizeid": null,
307
+ "juxtaposed": false,
308
+ "freightparcelposthub": false,
309
+ "validfrom": "2019-01-01T00:01:00.000Z",
310
+ "validto": null,
311
+ "updatedby": null
312
+ },
313
+ {
314
+ "id": 113626,
315
+ "countryid": 234,
316
+ "commandid": 6,
317
+ "locationid": null,
318
+ "name": "Rotterdam Central Station",
319
+ "addressid": null,
320
+ "subdivision": "ZH",
321
+ "municipality": null,
322
+ "geolong": "4.469093",
323
+ "geolat": "51.92468",
324
+ "air": false,
325
+ "land": false,
326
+ "sea": false,
327
+ "rail": true,
328
+ "iata": null,
329
+ "icao": null,
330
+ "localcode": null,
331
+ "unlocode": "RTM",
332
+ "helipad": null,
333
+ "fixedpcp": null,
334
+ "portablepcp": null,
335
+ "egates": null,
336
+ "nonoperational": false,
337
+ "portsizeid": 2,
338
+ "juxtaposed": true,
339
+ "freightparcelposthub": false,
340
+ "validfrom": "2022-01-11T00:00:01.000Z",
341
+ "validto": null,
342
+ "updatedby": "Mohammed Abdul Odud"
343
+ }
344
+ ]
345
+ }
346
+
@@ -0,0 +1,98 @@
1
+ {
2
+ "id": "saveAndContinue",
3
+ "version": "1",
4
+ "name": "saveAndContinue",
5
+ "title": "Save and continue example",
6
+ "type": "hub-and-spoke",
7
+ "components": [
8
+ {
9
+ "id": "firstName",
10
+ "fieldId": "firstName",
11
+ "label": "First name",
12
+ "type": "text",
13
+ "required": true
14
+ },
15
+ {
16
+ "id": "surname",
17
+ "fieldId": "surname",
18
+ "label": "Last name",
19
+ "type": "text",
20
+ "required": true
21
+ },
22
+ {
23
+ "id": "email",
24
+ "fieldId": "email",
25
+ "label": "Your email address",
26
+ "type": "email",
27
+ "required": true
28
+ },
29
+ {
30
+ "id": "location",
31
+ "fieldId": "location",
32
+ "label": "Incident location",
33
+ "type": "text",
34
+ "required": true
35
+ },
36
+ {
37
+ "id": "when",
38
+ "fieldId": "when",
39
+ "label": "Incident date and start time",
40
+ "type": "text",
41
+ "required": true
42
+ },
43
+ {
44
+ "id": "seizedItems",
45
+ "fieldId": "seizedItems",
46
+ "type": "collection",
47
+ "required": true,
48
+ "components": [
49
+ { "use": "type" },
50
+ { "use": "description" },
51
+ {
52
+ "id": "status",
53
+ "fieldId": "status",
54
+ "label": "What is the seized status of this item?",
55
+ "type": "radios",
56
+ "required": true
57
+ }
58
+ ],
59
+ "_description": "Required means at least 1 item"
60
+ }
61
+ ],
62
+ "pages": [
63
+ {
64
+ "id": "details",
65
+ "name": "details",
66
+ "title": "Your details",
67
+ "components": [
68
+ { "use": "firstName" },
69
+ { "use": "surname" },
70
+ { "use": "email" }
71
+ ],
72
+ "actions": [
73
+ { "type": "saveDraft", "validate": true, "label": "Save and continue" },
74
+ { "type": "saveAndReturn", "validate": true, "label": "Save and return later", "classModifiers": "secondary" }
75
+ ],
76
+ "cya_link": {
77
+ "page": "details",
78
+ "aria_suffix": "your details"
79
+ }
80
+ },
81
+ {
82
+ "id": "where-and-when",
83
+ "name": "where-and-when",
84
+ "title": "Where and when",
85
+ "components": [
86
+ { "use": "location" },
87
+ { "use": "when" }
88
+ ],
89
+ "actions": ["submit"],
90
+ "cya_link": {
91
+ "page": "where-and-when",
92
+ "aria_suffix": "where and when"
93
+ }
94
+ }
95
+ ],
96
+ "hub": { "format": "CYA" },
97
+ "cya": {}
98
+ }