@ukhomeoffice/cop-react-form-renderer 5.0.0-alpha → 5.0.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 (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 +45 -14
  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 +251 -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 +76 -23
  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,389 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+ var _react = require("@testing-library/react");
5
+ var _react2 = _interopRequireDefault(require("react"));
6
+ var _TaskList = _interopRequireWildcard(require("./TaskList"));
7
+ 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); }
8
+ 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; }
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
+ describe('components', function () {
17
+ describe('TaskList', function () {
18
+ it('should render a TaskList', function () {
19
+ var COP_REF = '123';
20
+ var REF_TITLE = 'COP reference number';
21
+ var sections = [{
22
+ name: 'These are your tasks',
23
+ label: 'This is the label for your first tasks',
24
+ tasks: [{
25
+ name: 'Nice task',
26
+ state: 'complete',
27
+ pages: ['pageOne']
28
+ }, {
29
+ name: 'Ok task',
30
+ state: 'inProgress',
31
+ pages: ['pageTwo']
32
+ }, {
33
+ name: 'Terrible task',
34
+ state: 'notStarted',
35
+ pages: ['pageThree']
36
+ }]
37
+ }, {
38
+ name: 'These are your extra bonus tasks',
39
+ label: 'This is the label for your extra tasks',
40
+ tasks: [{
41
+ name: 'Nice task',
42
+ state: 'complete',
43
+ pages: ['pageFour']
44
+ }, {
45
+ name: 'Ok task',
46
+ state: 'cannotStartYet',
47
+ pages: ['pageFive']
48
+ }, {
49
+ name: 'Terrible task',
50
+ state: 'cannotStartYet',
51
+ pages: ['pageSix']
52
+ }]
53
+ }];
54
+ var _render = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
55
+ refNumber: COP_REF,
56
+ refTitle: REF_TITLE,
57
+ sections: sections
58
+ })),
59
+ container = _render.container;
60
+ var childNodes = container.childNodes;
61
+ expect(childNodes.length).toEqual(1);
62
+ expect(childNodes[0].childNodes.length).toEqual(8);
63
+ var _childNodes$0$childNo = _slicedToArray(childNodes[0].childNodes, 8),
64
+ referenceHeading = _childNodes$0$childNo[0],
65
+ referenceNumber = _childNodes$0$childNo[1],
66
+ incompleteForm = _childNodes$0$childNo[2],
67
+ numComplete = _childNodes$0$childNo[3],
68
+ subSectionOneHeading = _childNodes$0$childNo[4],
69
+ subSectionOneList = _childNodes$0$childNo[5],
70
+ subSectionTwoHeading = _childNodes$0$childNo[6],
71
+ subSectionTwoList = _childNodes$0$childNo[7];
72
+ expect(referenceHeading).toMatchObject({
73
+ tagName: 'P',
74
+ textContent: 'COP reference number'
75
+ });
76
+ expect(referenceNumber).toMatchObject({
77
+ tagName: 'P',
78
+ textContent: '123'
79
+ });
80
+ expect(incompleteForm).toMatchObject({
81
+ tagName: 'P',
82
+ textContent: _TaskList.DEFAULT_INCOMPLETE_TITLE
83
+ });
84
+ expect(numComplete).toMatchObject({
85
+ tagName: 'P',
86
+ textContent: 'You have completed 2 of 6 sections'
87
+ });
88
+ expect(subSectionOneHeading).toMatchObject({
89
+ tagName: 'H2',
90
+ textContent: '1. These are your tasks'
91
+ });
92
+ expect(subSectionOneList.childNodes.length).toEqual(4);
93
+ expect(subSectionTwoHeading).toMatchObject({
94
+ tagName: 'H2',
95
+ textContent: '2. These are your extra bonus tasks'
96
+ });
97
+ expect(subSectionTwoList.childNodes.length).toEqual(4);
98
+ var subSectionOneLabel = childNodes[0].childNodes[5].firstChild;
99
+ expect(subSectionOneLabel.textContent).toEqual('This is the label for your first tasks');
100
+ var subSectionTwoLabel = childNodes[0].childNodes[7].firstChild;
101
+ expect(subSectionTwoLabel.textContent).toEqual('This is the label for your extra tasks');
102
+ });
103
+ it('should not show incomplete title if form is complete', function () {
104
+ var COP_REF = '123';
105
+ var REF_TITLE = 'COP reference number';
106
+ var sections = [{
107
+ name: 'These are your tasks',
108
+ tasks: [{
109
+ name: 'Nice task',
110
+ state: 'complete',
111
+ pages: ['pageOne']
112
+ }, {
113
+ name: 'Ok task',
114
+ state: 'complete',
115
+ pages: ['pageTwo']
116
+ }, {
117
+ name: 'Terrible task',
118
+ state: 'complete',
119
+ pages: ['pageThree']
120
+ }]
121
+ }, {
122
+ name: 'These are your extra bonus tasks',
123
+ tasks: [{
124
+ name: 'Nice task',
125
+ state: 'complete',
126
+ pages: ['pageFour']
127
+ }, {
128
+ name: 'Ok task',
129
+ state: 'complete',
130
+ pages: ['pageFive']
131
+ }, {
132
+ name: 'Terrible task',
133
+ state: 'complete',
134
+ pages: ['pageSix']
135
+ }]
136
+ }];
137
+ var _render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
138
+ refNumber: COP_REF,
139
+ refTitle: REF_TITLE,
140
+ sections: sections
141
+ })),
142
+ container = _render2.container;
143
+ var childNodes = container.childNodes;
144
+ expect(childNodes[0].childNodes.length).toEqual(7);
145
+ var _childNodes$0$childNo2 = _slicedToArray(childNodes[0].childNodes, 3),
146
+ referenceHeading = _childNodes$0$childNo2[0],
147
+ referenceNumber = _childNodes$0$childNo2[1],
148
+ numComplete = _childNodes$0$childNo2[2];
149
+ expect(referenceHeading).toMatchObject({
150
+ tagName: 'P',
151
+ textContent: 'COP reference number'
152
+ });
153
+ expect(referenceNumber).toMatchObject({
154
+ tagName: 'P',
155
+ textContent: '123'
156
+ });
157
+ expect(numComplete).toMatchObject({
158
+ tagName: 'P',
159
+ textContent: 'You have completed 6 of 6 sections'
160
+ });
161
+ });
162
+ it('should not show numbers on section headings if there is only one section', function () {
163
+ var COP_REF = '123';
164
+ var REF_TITLE = 'COP reference number';
165
+ var sections = [{
166
+ name: 'These are your tasks',
167
+ tasks: [{
168
+ name: 'Nice task',
169
+ state: 'complete',
170
+ pages: ['pageOne']
171
+ }, {
172
+ name: 'Ok task',
173
+ state: 'complete',
174
+ pages: ['pageTwo']
175
+ }, {
176
+ name: 'Terrible task',
177
+ state: 'notStarted',
178
+ pages: ['pageThree']
179
+ }]
180
+ }];
181
+ var _render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
182
+ refNumber: COP_REF,
183
+ refTitle: REF_TITLE,
184
+ sections: sections
185
+ })),
186
+ container = _render3.container;
187
+ var childNodes = container.childNodes;
188
+ var subSectionOne = childNodes[0].childNodes[4];
189
+ expect(subSectionOne.childNodes[0].textContent).toEqual('');
190
+ expect(subSectionOne.childNodes[1].textContent).toEqual('These are your tasks');
191
+ });
192
+ it('should not display the reference if there is no reference title', function () {
193
+ var COP_REF = '123';
194
+ var sections = [{
195
+ name: 'These are your tasks',
196
+ tasks: [{
197
+ name: 'Nice task',
198
+ state: 'complete',
199
+ pages: ['pageOne']
200
+ }, {
201
+ name: 'Ok task',
202
+ state: 'inProgress',
203
+ pages: ['pageTwo']
204
+ }, {
205
+ name: 'Terrible task',
206
+ state: 'notStarted',
207
+ pages: ['pageThree']
208
+ }]
209
+ }, {
210
+ name: 'These are your extra bonus tasks',
211
+ tasks: [{
212
+ name: 'Nice task',
213
+ state: 'complete',
214
+ pages: ['pageFour']
215
+ }, {
216
+ name: 'Ok task',
217
+ state: 'cannotStartYet',
218
+ pages: ['pageFive']
219
+ }, {
220
+ name: 'Terrible task',
221
+ state: 'cannotStartYet',
222
+ pages: ['pageSix']
223
+ }]
224
+ }];
225
+ var _render4 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
226
+ refNumber: COP_REF,
227
+ sections: sections
228
+ })),
229
+ container = _render4.container;
230
+ var childNodes = container.childNodes;
231
+ expect(childNodes.length).toEqual(1);
232
+ expect(childNodes[0].childNodes.length).toEqual(6);
233
+
234
+ // The first child is now the incomplete text.
235
+ var incompleteForm = childNodes[0].childNodes[0];
236
+ expect(incompleteForm).toMatchObject({
237
+ tagName: 'P',
238
+ textContent: _TaskList.DEFAULT_INCOMPLETE_TITLE
239
+ });
240
+ });
241
+ it('should show the correct incomplete title', function () {
242
+ var INCOMPLETE_TITLE = 'Alpha Bravo';
243
+ var COP_REF = '123';
244
+ var sections = [{
245
+ name: 'These are your tasks',
246
+ tasks: [{
247
+ name: 'Nice task',
248
+ state: 'complete',
249
+ pages: ['pageOne']
250
+ }, {
251
+ name: 'Ok task',
252
+ state: 'inProgress',
253
+ pages: ['pageTwo']
254
+ }, {
255
+ name: 'Terrible task',
256
+ state: 'notStarted',
257
+ pages: ['pageThree']
258
+ }]
259
+ }, {
260
+ name: 'These are your extra bonus tasks',
261
+ tasks: [{
262
+ name: 'Nice task',
263
+ state: 'complete',
264
+ pages: ['pageFour']
265
+ }, {
266
+ name: 'Ok task',
267
+ state: 'cannotStartYet',
268
+ pages: ['pageFive']
269
+ }, {
270
+ name: 'Terrible task',
271
+ state: 'cannotStartYet',
272
+ pages: ['pageSix']
273
+ }]
274
+ }];
275
+ var _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
276
+ refNumber: COP_REF,
277
+ sections: sections,
278
+ incompleteTitle: INCOMPLETE_TITLE
279
+ })),
280
+ container = _render5.container;
281
+ var childNodes = container.childNodes;
282
+ // The first child is now the incomplete text.
283
+ var incompleteForm = childNodes[0].childNodes[0];
284
+ expect(incompleteForm.textContent).toEqual(INCOMPLETE_TITLE);
285
+ });
286
+ it('should not show skipped sections', function () {
287
+ var INCOMPLETE_TITLE = 'Alpha Bravo';
288
+ var COP_REF = '123';
289
+ var sections = [{
290
+ name: 'These are your tasks',
291
+ skipped: true,
292
+ tasks: [{
293
+ name: 'Nice task',
294
+ state: 'complete',
295
+ pages: ['pageOne']
296
+ }, {
297
+ name: 'Ok task',
298
+ state: 'inProgress',
299
+ pages: ['pageTwo']
300
+ }, {
301
+ name: 'Terrible task',
302
+ state: 'notStarted',
303
+ pages: ['pageThree']
304
+ }]
305
+ }, {
306
+ name: 'These are your extra bonus tasks',
307
+ tasks: [{
308
+ name: 'Nice task',
309
+ state: 'complete',
310
+ pages: ['pageFour']
311
+ }, {
312
+ name: 'Ok task',
313
+ state: 'cannotStartYet',
314
+ pages: ['pageFive']
315
+ }, {
316
+ name: 'Terrible task',
317
+ state: 'cannotStartYet',
318
+ pages: ['pageSix']
319
+ }]
320
+ }];
321
+ var _render6 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
322
+ refNumber: COP_REF,
323
+ sections: sections,
324
+ incompleteTitle: INCOMPLETE_TITLE
325
+ })),
326
+ container = _render6.container;
327
+ var childNodes = container.childNodes;
328
+ expect(childNodes.length).toEqual(1);
329
+ var children = childNodes[0].childNodes;
330
+ expect(children.length).toEqual(4);
331
+ expect(children[0].textContent).toEqual(INCOMPLETE_TITLE);
332
+ expect(children[1].textContent).toEqual('You have completed 1 of 3 sections');
333
+ expect(children[2].textContent).toEqual("1. ".concat(sections[1].name));
334
+ });
335
+ });
336
+ it('should pass the selected task to the given onTaskAction function', function () {
337
+ var COP_REF = '123';
338
+ var REF_TITLE = 'COP reference number';
339
+ var ON_CLICK_CALLS = [];
340
+ var ON_CLICK = function ON_CLICK(value) {
341
+ ON_CLICK_CALLS.push(value);
342
+ };
343
+ var sections = [{
344
+ name: 'These are your tasks',
345
+ tasks: [{
346
+ name: 'Nice task',
347
+ state: 'complete',
348
+ pages: ['pageOne']
349
+ }, {
350
+ name: 'Ok task',
351
+ state: 'complete',
352
+ pages: ['pageTwo']
353
+ }, {
354
+ name: 'Terrible task',
355
+ state: 'notStarted',
356
+ pages: ['pageThree']
357
+ }]
358
+ }];
359
+ var _render7 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
360
+ refNumber: COP_REF,
361
+ refTitle: REF_TITLE,
362
+ sections: sections,
363
+ onTaskAction: ON_CLICK
364
+ })),
365
+ container = _render7.container;
366
+ var taskList = container.childNodes[0].childNodes[5].childNodes;
367
+ var firstTask = taskList[1].childNodes[0].childNodes[0];
368
+ var secondTask = taskList[2].childNodes[0].childNodes[0];
369
+ var thirdTask = taskList[3].childNodes[0].childNodes[0];
370
+ _react.fireEvent.click(firstTask.childNodes[0]);
371
+ expect(ON_CLICK_CALLS[0]).toEqual({
372
+ pages: ['pageOne'],
373
+ name: "Nice task",
374
+ state: 'complete'
375
+ });
376
+ _react.fireEvent.click(secondTask.childNodes[0]);
377
+ expect(ON_CLICK_CALLS[1]).toEqual({
378
+ pages: ['pageTwo'],
379
+ name: "Ok task",
380
+ state: 'complete'
381
+ });
382
+ _react.fireEvent.click(thirdTask.childNodes[0]);
383
+ expect(ON_CLICK_CALLS[2]).toEqual({
384
+ pages: ['pageThree'],
385
+ name: "Terrible task",
386
+ state: 'notStarted'
387
+ });
388
+ });
389
+ });
@@ -9,9 +9,9 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
10
10
  var _models = require("../../models");
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- //Global Imports
12
+ // Global Imports
13
13
 
14
- //Local imports
14
+ // Local imports
15
15
 
16
16
  var DEFAULT_CLASS = 'hods-task-list';
17
17
  exports.DEFAULT_CLASS = DEFAULT_CLASS;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _react = require("@testing-library/react");
4
+ var _react2 = _interopRequireDefault(require("react"));
5
+ var _TaskState = _interopRequireDefault(require("./TaskState"));
6
+ var _models = require("../../models");
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ // Global imports
9
+
10
+ // Local imports
11
+
12
+ describe('components', function () {
13
+ describe('TaskList.TaskState', function () {
14
+ var checkIsCannotStartYet = function checkIsCannotStartYet(container) {
15
+ expect(container.childNodes.length).toEqual(1);
16
+ expect(container.childNodes[0].classList).toContain('hods-tag');
17
+ expect(container.childNodes[0].classList).toContain("hods-tag--".concat(_models.TaskStates.DETAILS.cannotStartYet.colour));
18
+ expect(container.childNodes[0].textContent).toEqual(_models.TaskStates.DETAILS.cannotStartYet.label);
19
+ return true;
20
+ };
21
+ it('should render a complete state icon', function () {
22
+ var STATE = _models.TaskStates.TYPES.COMPLETE;
23
+ var _render = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskState.default, {
24
+ state: STATE
25
+ })),
26
+ container = _render.container;
27
+ expect(container.childNodes.length).toEqual(1);
28
+ expect(container.childNodes[0].classList).toContain('hods-tag');
29
+ expect(container.childNodes[0].textContent).toEqual(_models.TaskStates.DETAILS.complete.label);
30
+ });
31
+ it('should render an in progress state icon', function () {
32
+ var STATE = _models.TaskStates.TYPES.IN_PROGRESS;
33
+ var _render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskState.default, {
34
+ state: STATE
35
+ })),
36
+ container = _render2.container;
37
+ expect(container.childNodes.length).toEqual(1);
38
+ expect(container.childNodes[0].classList).toContain('hods-tag');
39
+ expect(container.childNodes[0].classList).toContain("hods-tag--".concat(_models.TaskStates.DETAILS.inProgress.colour));
40
+ expect(container.childNodes[0].textContent).toEqual(_models.TaskStates.DETAILS.inProgress.label);
41
+ });
42
+ it('should render a not started state icon', function () {
43
+ var STATE = _models.TaskStates.TYPES.NOT_STARTED;
44
+ var _render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskState.default, {
45
+ state: STATE
46
+ })),
47
+ container = _render3.container;
48
+ expect(container.childNodes.length).toEqual(1);
49
+ expect(container.childNodes[0].classList).toContain('hods-tag');
50
+ expect(container.childNodes[0].classList).toContain("hods-tag--".concat(_models.TaskStates.DETAILS.notStarted.colour));
51
+ expect(container.childNodes[0].textContent).toEqual(_models.TaskStates.DETAILS.notStarted.label);
52
+ });
53
+ it('should render a cannot start state icon', function () {
54
+ var STATE = _models.TaskStates.TYPES.CANNOT_START_YET;
55
+ var _render4 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskState.default, {
56
+ state: STATE
57
+ })),
58
+ container = _render4.container;
59
+ expect(checkIsCannotStartYet(container)).toBeTruthy();
60
+ });
61
+ it('should render the "Cannot start yet" state if given an unknown value', function () {
62
+ var STATE = 'spellingError';
63
+ var _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskState.default, {
64
+ state: STATE
65
+ })),
66
+ container = _render5.container;
67
+ expect(checkIsCannotStartYet(container)).toBeTruthy();
68
+ });
69
+ it('should render the "Cannot start yet" state if given null', function () {
70
+ var STATE = null;
71
+ var _render6 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskState.default, {
72
+ state: STATE
73
+ })),
74
+ container = _render6.container;
75
+ expect(checkIsCannotStartYet(container)).toBeTruthy();
76
+ });
77
+ it('should render the "Cannot start yet" state if given undefined', function () {
78
+ var STATE = undefined;
79
+ var _render7 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskState.default, {
80
+ state: STATE
81
+ })),
82
+ container = _render7.container;
83
+ expect(checkIsCannotStartYet(container)).toBeTruthy();
84
+ });
85
+ });
86
+ });
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "CheckYourAnswers", {
9
9
  return _CheckYourAnswers.default;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "Container", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _Container.default;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "FormComponent", {
13
19
  enumerable: true,
14
20
  get: function get() {
@@ -27,15 +33,23 @@ Object.defineProperty(exports, "FormRenderer", {
27
33
  return _FormRenderer.default;
28
34
  }
29
35
  });
36
+ Object.defineProperty(exports, "PageActions", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _PageActions.default;
40
+ }
41
+ });
30
42
  Object.defineProperty(exports, "SummaryList", {
31
43
  enumerable: true,
32
44
  get: function get() {
33
45
  return _SummaryList.default;
34
46
  }
35
47
  });
48
+ var _Container = _interopRequireDefault(require("./FormComponent/Container"));
36
49
  var _CheckYourAnswers = _interopRequireDefault(require("./CheckYourAnswers"));
37
50
  var _FormComponent = _interopRequireDefault(require("./FormComponent"));
38
51
  var _FormPage = _interopRequireDefault(require("./FormPage"));
39
52
  var _FormRenderer = _interopRequireDefault(require("./FormRenderer"));
53
+ var _PageActions = _interopRequireDefault(require("./PageActions"));
40
54
  var _SummaryList = _interopRequireDefault(require("./SummaryList"));
41
55
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -6,25 +6,44 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = exports.HooksContext = exports.ALLOWED_HOOKS = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
11
  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); }
10
12
  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; }
11
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
17
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
18
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
19
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
20
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
21
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
22
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
19
23
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
24
  var DEFAULT_HOOKS = {
21
- onGoingBack: function onGoingBack() {},
25
+ onAction: function onAction(formData, patch) {
26
+ return {
27
+ formData: formData,
28
+ patch: patch
29
+ };
30
+ },
31
+ onChange: function onChange(data) {},
22
32
  onFormComplete: function onFormComplete() {},
23
- onFormLoad: function onFormLoad() {},
33
+ onFormLoad: function onFormLoad(setCurrentTask) {},
24
34
  onGetComponent: function onGetComponent(config, wrap) {
25
35
  return null;
26
36
  },
27
- onPageChange: function onPageChange(pageId) {
37
+ onGetCYA: function onGetCYA(config) {
38
+ return null;
39
+ },
40
+ // onGetCYARows should return either a single row, or an array of rows for the given component.
41
+ // If it returns null then Form Renderer will attempt to get the default rows for the component.
42
+ onGetCYARows: function onGetCYARows(page, component, onAction) {
43
+ return null;
44
+ },
45
+ onGoingBack: function onGoingBack() {},
46
+ onPageChange: function onPageChange(pageId, state) {
28
47
  return pageId;
29
48
  },
30
49
  onRequest: function onRequest(req) {
@@ -33,6 +52,10 @@ var DEFAULT_HOOKS = {
33
52
  onSubmit: function onSubmit(type, payload, onSuccess, onError) {
34
53
  if (typeof onSuccess === 'function') onSuccess();
35
54
  },
55
+ onValidate: function onValidate(page, errors) {
56
+ return errors;
57
+ },
58
+ // Returns the list of errors already found in FR by default.
36
59
  onCancel: function onCancel() {} // Consuming application must provide function to action, else this does nothing.
37
60
  };
38
61
 
@@ -44,13 +67,18 @@ var HooksContextProvider = function HooksContextProvider(_ref) {
44
67
  var overrides = _ref.overrides,
45
68
  children = _ref.children;
46
69
  var _useState = (0, _react.useState)({
47
- onGoingBack: (overrides === null || overrides === void 0 ? void 0 : overrides.onGoingBack) || DEFAULT_HOOKS.onGoingBack,
70
+ onAction: (overrides === null || overrides === void 0 ? void 0 : overrides.onAction) || DEFAULT_HOOKS.onAction,
71
+ onChange: (overrides === null || overrides === void 0 ? void 0 : overrides.onChange) || DEFAULT_HOOKS.onChange,
48
72
  onFormComplete: (overrides === null || overrides === void 0 ? void 0 : overrides.onFormComplete) || DEFAULT_HOOKS.onFormComplete,
49
73
  onFormLoad: (overrides === null || overrides === void 0 ? void 0 : overrides.onFormLoad) || DEFAULT_HOOKS.onFormLoad,
50
74
  onGetComponent: (overrides === null || overrides === void 0 ? void 0 : overrides.onGetComponent) || DEFAULT_HOOKS.onGetComponent,
75
+ onGetCYA: (overrides === null || overrides === void 0 ? void 0 : overrides.onGetCYA) || DEFAULT_HOOKS.onGetCYA,
76
+ onGetCYARows: (overrides === null || overrides === void 0 ? void 0 : overrides.onGetCYARows) || DEFAULT_HOOKS.onGetCYARows,
77
+ onGoingBack: (overrides === null || overrides === void 0 ? void 0 : overrides.onGoingBack) || DEFAULT_HOOKS.onGoingBack,
51
78
  onPageChange: (overrides === null || overrides === void 0 ? void 0 : overrides.onPageChange) || DEFAULT_HOOKS.onPageChange,
52
79
  onRequest: (overrides === null || overrides === void 0 ? void 0 : overrides.onRequest) || DEFAULT_HOOKS.onRequest,
53
80
  onSubmit: (overrides === null || overrides === void 0 ? void 0 : overrides.onSubmit) || DEFAULT_HOOKS.onSubmit,
81
+ onValidate: (overrides === null || overrides === void 0 ? void 0 : overrides.onValidate) || DEFAULT_HOOKS.onValidate,
54
82
  onCancel: (overrides === null || overrides === void 0 ? void 0 : overrides.onCancel) || DEFAULT_HOOKS.onCancel
55
83
  }),
56
84
  _useState2 = _slicedToArray(_useState, 2),
@@ -79,4 +107,40 @@ var HooksContextProvider = function HooksContextProvider(_ref) {
79
107
  }, children);
80
108
  };
81
109
  var _default = HooksContextProvider;
82
- exports.default = _default;
110
+ exports.default = _default;
111
+ HooksContextProvider.propTypes = {
112
+ children: _propTypes.default.node,
113
+ overrides: _propTypes.default.shape({
114
+ onAction: _propTypes.default.func,
115
+ onCancel: _propTypes.default.func,
116
+ onChange: _propTypes.default.func,
117
+ onFormComplete: _propTypes.default.func,
118
+ onFormLoad: _propTypes.default.func,
119
+ onGetComponent: _propTypes.default.func,
120
+ onGetCYA: _propTypes.default.func,
121
+ onGetCYARows: _propTypes.default.func,
122
+ onGoingBack: _propTypes.default.func,
123
+ onPageChange: _propTypes.default.func,
124
+ onRequest: _propTypes.default.func,
125
+ onSubmit: _propTypes.default.func,
126
+ onValidate: _propTypes.default.func
127
+ })
128
+ };
129
+ HooksContextProvider.defaultProps = {
130
+ children: null,
131
+ overrides: {
132
+ onAction: undefined,
133
+ onCancel: undefined,
134
+ onChange: undefined,
135
+ onFormComplete: undefined,
136
+ onFormLoad: undefined,
137
+ onGetComponent: undefined,
138
+ onGetCYA: undefined,
139
+ onGetCYARows: undefined,
140
+ onGoingBack: undefined,
141
+ onPageChange: undefined,
142
+ onRequest: undefined,
143
+ onSubmit: undefined,
144
+ onValidate: undefined
145
+ }
146
+ };