@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.
- package/dist/components/CheckYourAnswers/Answer.js +18 -7
- package/dist/components/CheckYourAnswers/Answer.test.js +137 -0
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +70 -46
- package/dist/components/CheckYourAnswers/CheckYourAnswers.stories.mdx +410 -0
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +551 -0
- package/dist/components/CollectionPage/CollectionPage.js +15 -10
- package/dist/components/CollectionPage/CollectionPage.test.js +382 -0
- package/dist/components/FormComponent/Collection.js +91 -48
- package/dist/components/FormComponent/Collection.scss +2 -1
- package/dist/components/FormComponent/Collection.test.js +807 -0
- package/dist/components/FormComponent/Container.js +35 -16
- package/dist/components/FormComponent/Container.test.js +370 -0
- package/dist/components/FormComponent/FormComponent.js +45 -14
- package/dist/components/FormComponent/FormComponent.stories.mdx +184 -0
- package/dist/components/FormComponent/FormComponent.test.js +226 -0
- package/dist/components/FormComponent/helpers/addLabel.js +5 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +16 -0
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +29 -0
- package/dist/components/FormComponent/helpers/index.js +8 -1
- package/dist/components/FormPage/FormPage.js +69 -30
- package/dist/components/FormPage/FormPage.stories.mdx +155 -0
- package/dist/components/FormPage/FormPage.test.js +330 -0
- package/dist/components/FormRenderer/FormRenderer.js +142 -228
- package/dist/components/FormRenderer/FormRenderer.stories.mdx +183 -0
- package/dist/components/FormRenderer/FormRenderer.test.js +968 -0
- package/dist/components/FormRenderer/handlers/index.js +1 -2
- package/dist/components/FormRenderer/handlers/navigate.js +3 -1
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +35 -14
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +88 -5
- package/dist/components/FormRenderer/helpers/getCYA.js +11 -2
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -7
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +10 -2
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -1
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +2 -2
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +6 -2
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +171 -51
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +307 -24
- package/dist/components/FormRenderer/helpers/index.js +1 -2
- package/dist/components/FormRenderer/onCYAAction.js +108 -0
- package/dist/components/FormRenderer/onCYAAction.test.js +583 -0
- package/dist/components/FormRenderer/onPageAction.js +145 -0
- package/dist/components/FormRenderer/onPageAction.test.js +678 -0
- package/dist/components/FormRenderer/onTaskAction.js +48 -0
- package/dist/components/FormRenderer/onTaskAction.test.js +251 -0
- package/dist/components/PageActions/ActionButton.js +0 -3
- package/dist/components/PageActions/ActionButton.test.js +93 -0
- package/dist/components/PageActions/PageActions.js +2 -2
- package/dist/components/PageActions/PageActions.stories.mdx +74 -0
- package/dist/components/PageActions/PageActions.test.js +132 -0
- package/dist/components/SummaryList/GroupAction.js +2 -2
- package/dist/components/SummaryList/GroupAction.test.js +80 -0
- package/dist/components/SummaryList/RowAction.js +2 -2
- package/dist/components/SummaryList/RowAction.test.js +80 -0
- package/dist/components/SummaryList/SummaryList.js +29 -12
- package/dist/components/SummaryList/SummaryList.scss +19 -0
- package/dist/components/SummaryList/SummaryList.stories.mdx +90 -0
- package/dist/components/SummaryList/SummaryList.test.js +400 -0
- package/dist/components/SummaryList/SummaryListHeadingRow.js +30 -0
- package/dist/components/SummaryList/SummaryListRow.js +5 -2
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +2 -1
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +2 -1
- package/dist/components/TaskList/Task.js +3 -3
- package/dist/components/TaskList/Task.test.js +167 -0
- package/dist/components/TaskList/TaskList.js +76 -23
- package/dist/components/TaskList/TaskList.stories.mdx +164 -0
- package/dist/components/TaskList/TaskList.test.js +389 -0
- package/dist/components/TaskList/TaskState.js +2 -2
- package/dist/components/TaskList/TaskState.test.js +86 -0
- package/dist/components/index.js +14 -0
- package/dist/context/HooksContext/HooksContext.js +72 -8
- package/dist/context/HooksContext/HooksContext.test.js +44 -0
- package/dist/context/ValidationContext/ValidationContext.js +38 -28
- package/dist/context/ValidationContext/ValidationContext.test.js +84 -0
- package/dist/hooks/useAxios.js +10 -12
- package/dist/hooks/useGetRequest.js +48 -49
- package/dist/hooks/useRefData.js +7 -4
- package/dist/index.js +34 -1
- package/dist/json/addressDetails.json +149 -0
- package/dist/json/areYouACivilServant.json +7 -0
- package/dist/json/firstForm.json +94 -0
- package/dist/json/grade.json +108 -0
- package/dist/json/group.data.json +21 -0
- package/dist/json/group.json +402 -0
- package/dist/json/groupOfRow.json +137 -0
- package/dist/json/groupOfRowData.json +15 -0
- package/dist/json/port.json +346 -0
- package/dist/json/saveAndContinue.json +98 -0
- package/dist/json/sublocation.json +859 -0
- package/dist/json/taskList.json +265 -0
- package/dist/json/team.json +17351 -0
- package/dist/json/terminal.json +81 -0
- package/dist/json/userProfile.data.json +21 -0
- package/dist/json/userProfile.json +276 -0
- package/dist/models/ComponentTypes.js +8 -0
- package/dist/models/PageAction.js +4 -1
- package/dist/models/TaskStates.js +10 -2
- package/dist/models/index.js +16 -1
- package/dist/setupTests.js +46 -0
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +121 -0
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +6 -2
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +71 -0
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +6 -2
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +55 -0
- package/dist/utils/CheckYourAnswers/getCYARow.js +14 -11
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +291 -0
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +4 -1
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +70 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +15 -10
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +288 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +94 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +414 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +21 -7
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +486 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +11 -3
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +346 -0
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +19 -3
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +143 -0
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +5 -1
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +40 -0
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +53 -0
- package/dist/utils/CollectionPage/mergeCollectionPages.js +25 -17
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +130 -0
- package/dist/utils/Component/addShowWhen.js +44 -0
- package/dist/utils/Component/addShowWhen.test.js +216 -0
- package/dist/utils/Component/applyToComponentTree.js +71 -0
- package/dist/utils/Component/applyToComponentTree.test.js +127 -0
- package/dist/utils/Component/cleanAttributes.js +8 -2
- package/dist/utils/Component/cleanAttributes.test.js +68 -0
- package/dist/utils/Component/elevateNestedComponents.js +4 -1
- package/dist/utils/Component/elevateNestedComponents.test.js +122 -0
- package/dist/utils/Component/getComponent.js +80 -11
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +4 -4
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +25 -24
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +66 -5
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +9 -7
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +44 -0
- package/dist/utils/Component/getComponentTests/{getComponent.textarea.test.js → getComponent.multifile.test.js} +29 -21
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +159 -83
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +43 -0
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +55 -5
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +3 -9
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +109 -0
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +7 -7
- package/dist/utils/Component/getDefaultValue.js +4 -1
- package/dist/utils/Component/getDefaultValue.test.js +50 -0
- package/dist/utils/Component/index.js +2 -0
- package/dist/utils/Component/isEditable.js +2 -2
- package/dist/utils/Component/isEditable.test.js +43 -0
- package/dist/utils/Component/optionIsSelected.js +22 -0
- package/dist/utils/Component/optionIsSelected.test.js +42 -0
- package/dist/utils/Component/setupContainerComponentsPath.js +40 -0
- package/dist/utils/Component/setupContainerComponentsPath.test.js +78 -0
- package/dist/utils/Component/showComponent.test.js +156 -0
- package/dist/utils/Component/wrapInFormGroup.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.test.js +61 -0
- package/dist/utils/Condition/meetsCondition.js +74 -4
- package/dist/utils/Condition/meetsCondition.test.js +763 -0
- package/dist/utils/Condition/meetsOneCondition.js +1 -1
- package/dist/utils/Condition/meetsOneCondition.test.js +100 -0
- package/dist/utils/Condition/setupConditions.js +6 -3
- package/dist/utils/Condition/setupConditions.test.js +33 -0
- package/dist/utils/Container/getEditableComponents.test.js +135 -0
- package/dist/utils/Container/setupNesting.js +21 -2
- package/dist/utils/Container/setupNesting.test.js +145 -0
- package/dist/utils/Container/showContainer.test.js +178 -0
- package/dist/utils/Data/applyFormula.js +20 -11
- package/dist/utils/Data/applyFormula.test.js +263 -0
- package/dist/utils/Data/getAutocompleteSource.js +6 -2
- package/dist/utils/Data/getAutocompleteSource.test.js +352 -0
- package/dist/utils/Data/getDataPath.test.js +48 -0
- package/dist/utils/Data/getOptions.js +17 -3
- package/dist/utils/Data/getOptions.test.js +140 -0
- package/dist/utils/Data/getSourceData.js +2 -2
- package/dist/utils/Data/getSourceData.test.js +153 -0
- package/dist/utils/Data/refDataToOptions.js +4 -1
- package/dist/utils/Data/refDataToOptions.test.js +196 -0
- package/dist/utils/Data/setDataItem.test.js +110 -0
- package/dist/utils/Data/setupFormData.js +39 -16
- package/dist/utils/Data/setupFormData.test.js +410 -0
- package/dist/utils/Data/setupRefDataUrlForComponent.js +4 -1
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +131 -0
- package/dist/utils/FormPage/applyConditionalProperties.js +35 -0
- package/dist/utils/FormPage/applyConditionalProperties.test.js +61 -0
- package/dist/utils/FormPage/getFormPage.js +5 -2
- package/dist/utils/FormPage/getFormPage.test.js +206 -0
- package/dist/utils/FormPage/getFormPages.js +4 -1
- package/dist/utils/FormPage/getFormPages.test.js +97 -0
- package/dist/utils/FormPage/getPageActions.js +8 -4
- package/dist/utils/FormPage/getPageActions.test.js +114 -0
- package/dist/utils/FormPage/getParagraphFromText.test.js +27 -0
- package/dist/utils/FormPage/index.js +2 -0
- package/dist/utils/FormPage/showFormPage.js +2 -2
- package/dist/utils/FormPage/showFormPage.test.js +180 -0
- package/dist/utils/FormPage/showFormPageCYA.js +1 -0
- package/dist/utils/FormPage/showFormPageCYA.test.js +28 -0
- package/dist/utils/FormPage/useComponent.js +29 -14
- package/dist/utils/FormPage/useComponent.test.js +167 -0
- package/dist/utils/Format/formatData.test.js +45 -0
- package/dist/utils/Format/formatDataForComponent.js +2 -1
- package/dist/utils/Format/formatDataForComponent.test.js +142 -0
- package/dist/utils/Format/formatDataForForm.js +4 -1
- package/dist/utils/Format/formatDataForForm.test.js +81 -0
- package/dist/utils/Format/formatDataForPage.test.js +99 -0
- package/dist/utils/Hub/getFormHub.test.js +105 -0
- package/dist/utils/Meta/documents/getDocuments.test.js +4 -1
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +31 -0
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +59 -0
- package/dist/utils/Operate/checkValueIsTruthy.test.js +42 -0
- package/dist/utils/Operate/getFirstOf.js +31 -0
- package/dist/utils/Operate/getFirstOf.test.js +86 -0
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +163 -0
- package/dist/utils/Operate/persistValueInFormData.js +2 -1
- package/dist/utils/Operate/persistValueInFormData.test.js +115 -0
- package/dist/utils/Operate/runPageOperations.js +3 -1
- package/dist/utils/Operate/runPageOperations.test.js +105 -0
- package/dist/utils/Operate/setValueInFormData.test.js +44 -0
- package/dist/utils/Operate/shouldRun.js +16 -13
- package/dist/utils/Operate/shouldRun.test.js +66 -0
- package/dist/utils/Validate/additional/conditionallyRequired.js +24 -0
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +73 -0
- package/dist/utils/Validate/additional/index.js +13 -4
- package/dist/utils/Validate/additional/mustBeAfter.js +8 -6
- package/dist/utils/Validate/additional/mustBeAfter.test.js +15 -1
- package/dist/utils/Validate/additional/mustBeBefore.js +9 -5
- package/dist/utils/Validate/additional/mustBeBefore.test.js +14 -0
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +1 -1
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +6 -3
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +22 -0
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +56 -0
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +1 -1
- package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
- package/dist/utils/Validate/additional/mustBeLessThan.js +7 -6
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +11 -1
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +9 -5
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +10 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +1 -0
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +4 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +19 -0
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +36 -0
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +29 -0
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +52 -0
- package/dist/utils/Validate/additional/utils.js +18 -18
- package/dist/utils/Validate/index.js +6 -0
- package/dist/utils/Validate/validateCollection.js +20 -5
- package/dist/utils/Validate/validateCollection.test.js +125 -0
- package/dist/utils/Validate/validateComponent.js +36 -20
- package/dist/utils/Validate/validateComponent.test.js +365 -0
- package/dist/utils/Validate/validateContainer.js +9 -3
- package/dist/utils/Validate/validateContainer.test.js +75 -0
- package/dist/utils/Validate/validateDate.js +4 -3
- package/dist/utils/Validate/validateDate.test.js +114 -0
- package/dist/utils/Validate/validateEmail.js +14 -1
- package/dist/utils/Validate/validateEmail.test.js +74 -0
- package/dist/utils/Validate/validateMultifile.js +32 -0
- package/dist/utils/Validate/validateMultifile.test.js +47 -0
- package/dist/utils/Validate/validatePage.js +12 -6
- package/dist/utils/Validate/validatePage.test.js +472 -0
- package/dist/utils/Validate/validateRegex.js +2 -5
- package/dist/utils/Validate/validateRegex.test.js +42 -0
- package/dist/utils/Validate/validateRequired.js +2 -4
- package/dist/utils/Validate/validateRequired.test.js +63 -0
- package/dist/utils/Validate/validateTextArea.js +37 -0
- package/dist/utils/Validate/validateTextArea.test.js +42 -0
- package/dist/utils/Validate/validateTime.js +2 -2
- package/dist/utils/Validate/validateTime.test.js +59 -0
- package/dist/utils/index.js +4 -1
- package/package.json +35 -50
- package/dist/utils/Meta/documents/setDocumentForField.js +0 -29
- package/dist/utils/Meta/documents/setDocumentForField.test.js +0 -49
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.DEFAULT_CLASS = void 0;
|
|
8
8
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _context = require("../../context");
|
|
12
12
|
var _hooks = require("../../hooks");
|
|
13
13
|
var _models = require("../../models");
|
|
@@ -18,19 +18,27 @@ var _FormPage = _interopRequireDefault(require("../FormPage"));
|
|
|
18
18
|
var _TaskList = _interopRequireDefault(require("../TaskList"));
|
|
19
19
|
var _handlers = _interopRequireDefault(require("./handlers"));
|
|
20
20
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
21
|
+
var _onCYAAction = _interopRequireDefault(require("./onCYAAction"));
|
|
22
|
+
var _onPageAction = _interopRequireDefault(require("./onPageAction"));
|
|
23
|
+
var _onTaskAction2 = _interopRequireDefault(require("./onTaskAction"));
|
|
21
24
|
require("./FormRenderer.scss");
|
|
25
|
+
var _excluded = ["noTaskCYAs", "nonSequential"];
|
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
27
|
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); }
|
|
23
28
|
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; }
|
|
24
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
29
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
30
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
31
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
26
32
|
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; }
|
|
27
33
|
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; }
|
|
28
|
-
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; }
|
|
34
|
+
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; }
|
|
35
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
36
|
+
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); }
|
|
29
37
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
30
38
|
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."); }
|
|
31
39
|
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); }
|
|
32
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
33
|
-
function _iterableToArrayLimit(arr, i) { var _i =
|
|
40
|
+
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; }
|
|
41
|
+
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; } }
|
|
34
42
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
43
|
var FormRenderer = function FormRenderer(_ref) {
|
|
36
44
|
var title = _ref.title,
|
|
@@ -40,11 +48,12 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
40
48
|
hub = _ref.hub,
|
|
41
49
|
cya = _ref.cya,
|
|
42
50
|
data = _ref.data,
|
|
51
|
+
hashLink = _ref.hashLink,
|
|
43
52
|
hooks = _ref.hooks,
|
|
44
53
|
classBlock = _ref.classBlock,
|
|
45
54
|
classModifiers = _ref.classModifiers,
|
|
46
55
|
className = _ref.className,
|
|
47
|
-
|
|
56
|
+
hideTitle = _ref.hide_title,
|
|
48
57
|
summaryListClassModifiers = _ref.summaryListClassModifiers,
|
|
49
58
|
noChangeAction = _ref.noChangeAction,
|
|
50
59
|
newPageId = _ref.newPageId,
|
|
@@ -62,7 +71,8 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
62
71
|
classBlock: classBlock,
|
|
63
72
|
classModifiers: classModifiers,
|
|
64
73
|
className: className,
|
|
65
|
-
|
|
74
|
+
hashLink: hashLink,
|
|
75
|
+
hide_title: hideTitle,
|
|
66
76
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
67
77
|
noChangeAction: noChangeAction,
|
|
68
78
|
newPageId: newPageId,
|
|
@@ -72,7 +82,7 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
72
82
|
var DEFAULT_CLASS = 'hods-form';
|
|
73
83
|
exports.DEFAULT_CLASS = DEFAULT_CLASS;
|
|
74
84
|
var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
75
|
-
var _formState$page4;
|
|
85
|
+
var _formState$page4, _formState$page$actio, _formState$cya$hideCh, _formState$cya$hideGr;
|
|
76
86
|
var title = _ref2.title,
|
|
77
87
|
type = _ref2.type,
|
|
78
88
|
components = _ref2.components,
|
|
@@ -83,7 +93,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
83
93
|
classBlock = _ref2.classBlock,
|
|
84
94
|
classModifiers = _ref2.classModifiers,
|
|
85
95
|
className = _ref2.className,
|
|
86
|
-
|
|
96
|
+
hashLink = _ref2.hashLink,
|
|
97
|
+
hideTitle = _ref2.hide_title,
|
|
87
98
|
summaryListClassModifiers = _ref2.summaryListClassModifiers,
|
|
88
99
|
noChangeAction = _ref2.noChangeAction,
|
|
89
100
|
newPageId = _ref2.newPageId,
|
|
@@ -141,10 +152,21 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
141
152
|
validate = _useValidation.validate;
|
|
142
153
|
|
|
143
154
|
// Need to set submission data when going back
|
|
144
|
-
window.onpopstate = function () {
|
|
155
|
+
window.onpopstate = function (e) {
|
|
145
156
|
var _formState$page;
|
|
157
|
+
if (document.location.hash) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (e.state && e.state.fullPages !== undefined) {
|
|
161
|
+
setCurrentTask(function (prev) {
|
|
162
|
+
var _e$state;
|
|
163
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
164
|
+
fullPages: (_e$state = e.state) === null || _e$state === void 0 ? void 0 : _e$state.fullPages
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
}
|
|
146
168
|
setGoingBack(true);
|
|
147
|
-
hooks.onGoingBack();
|
|
169
|
+
hooks.onGoingBack(e.state ? e.state : null);
|
|
148
170
|
clearErrors();
|
|
149
171
|
if (components && pages && data && (_formState$page = formState.page) !== null && _formState$page !== void 0 && _formState$page.formData && pagePoint === undefined) {
|
|
150
172
|
var submissionData = _utils.default.Format.form({
|
|
@@ -197,14 +219,17 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
197
219
|
// Call the onFormLoad hook just when this component first renders.
|
|
198
220
|
(0, _react.useEffect)(function () {
|
|
199
221
|
setPagePoint(undefined);
|
|
200
|
-
|
|
222
|
+
// In case of refresh the current task needs to be reset
|
|
223
|
+
hooks.onFormLoad(function (currentTask) {
|
|
224
|
+
setCurrentTask(currentTask);
|
|
225
|
+
});
|
|
201
226
|
}, [hooks]);
|
|
202
227
|
(0, _react.useEffect)(function () {
|
|
203
228
|
setHubDetails(_hub);
|
|
204
229
|
}, [_hub]);
|
|
205
230
|
|
|
206
231
|
// Calling setData directly within the hooks.onSubmit success handler
|
|
207
|
-
// resulted in a
|
|
232
|
+
// resulted in a synchronisation error. Handling it in a useEffect appears
|
|
208
233
|
// to be the way to deal with this... and it certainly seems to work.
|
|
209
234
|
(0, _react.useEffect)(function () {
|
|
210
235
|
if (submitted !== null && submitted !== void 0 && submitted.data) {
|
|
@@ -212,13 +237,17 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
212
237
|
setSubmitted(undefined);
|
|
213
238
|
}
|
|
214
239
|
}, [submitted, setData, setSubmitted]);
|
|
215
|
-
|
|
240
|
+
var theSections = _hub === null || _hub === void 0 ? void 0 : _hub.sections;
|
|
241
|
+
var nonSequential = _hub === null || _hub === void 0 ? void 0 : _hub.nonSequential;
|
|
216
242
|
// Update task list pages with form data and update states
|
|
217
243
|
(0, _react.useEffect)(function () {
|
|
218
244
|
var pages = currentTask.fullPages;
|
|
219
245
|
if (pages) {
|
|
220
246
|
pages.forEach(function (page) {
|
|
221
|
-
|
|
247
|
+
var p = page;
|
|
248
|
+
if (p) {
|
|
249
|
+
p.formData = data;
|
|
250
|
+
}
|
|
222
251
|
});
|
|
223
252
|
setCurrentTask(function (prev) {
|
|
224
253
|
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
@@ -226,280 +255,165 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
226
255
|
});
|
|
227
256
|
});
|
|
228
257
|
}
|
|
229
|
-
if (
|
|
258
|
+
if (theSections) {
|
|
230
259
|
var _data$formStatus2;
|
|
231
260
|
var tasks = (data === null || data === void 0 ? void 0 : (_data$formStatus2 = data.formStatus) === null || _data$formStatus2 === void 0 ? void 0 : _data$formStatus2.tasks) || {};
|
|
232
|
-
var updatedSections = _helpers.default.getUpdatedSectionStates(
|
|
261
|
+
var updatedSections = _helpers.default.getUpdatedSectionStates(theSections, tasks, nonSequential, data);
|
|
233
262
|
setHubDetails(function (prev) {
|
|
234
|
-
return _objectSpread(_objectSpread({}, prev),
|
|
263
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
264
|
+
sections: [].concat(updatedSections)
|
|
265
|
+
});
|
|
235
266
|
});
|
|
236
267
|
}
|
|
237
|
-
}, [currentTask.fullPages, data,
|
|
268
|
+
}, [currentTask.fullPages, data, theSections, nonSequential]);
|
|
238
269
|
var onPageChange = function onPageChange(newPageId) {
|
|
270
|
+
var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
239
271
|
clearErrors();
|
|
240
272
|
setPageId(newPageId);
|
|
241
|
-
hooks.onPageChange(newPageId);
|
|
273
|
+
hooks.onPageChange(newPageId, state);
|
|
242
274
|
};
|
|
243
275
|
(0, _react.useEffect)(function () {
|
|
244
276
|
if (newPageId !== undefined) setPageId(newPageId);
|
|
245
277
|
}, [newPageId]);
|
|
246
278
|
|
|
247
|
-
// Handle
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
// for display purposes after submission.)
|
|
251
|
-
var onPageAction = function onPageAction(action, patch, patchLabel) {
|
|
252
|
-
if (action.type === _models.PageAction.TYPES.CANCEL) {
|
|
253
|
-
hooks.onCancel();
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
// Re-apply the patch to the page's formData.
|
|
257
|
-
// This should normally have no effect but will prevent issues
|
|
258
|
-
// with validation if formData happens to have been wiped.
|
|
259
|
-
formState.page.formData = _objectSpread(_objectSpread({}, formState.page.formData), patch);
|
|
260
|
-
// Check to see whether the action is able to proceed, which in
|
|
261
|
-
// in the case of a submission will validate the fields in the page.
|
|
262
|
-
if (_helpers.default.canActionProceed(action, formState.page, validate.page)) {
|
|
263
|
-
patch = _helpers.default.cleanHiddenNestedData(patch, formState.page);
|
|
264
|
-
if (action.addToFormData) {
|
|
265
|
-
formState.page.formData[action.addToFormData.field] = action.addToFormData.value;
|
|
266
|
-
}
|
|
267
|
-
if (action.type === _models.PageAction.TYPES.NAVIGATE) {
|
|
268
|
-
_handlers.default.navigate(action, pageId, onPageChange);
|
|
269
|
-
} else {
|
|
270
|
-
var pageUpdate = function pageUpdate(next) {
|
|
271
|
-
return onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, next));
|
|
272
|
-
};
|
|
273
|
-
switch (action.type) {
|
|
274
|
-
case _models.PageAction.TYPES.SUBMIT:
|
|
275
|
-
setPagePoint('submit');
|
|
276
|
-
break;
|
|
277
|
-
case _models.PageAction.TYPES.SAVE_AND_NAVIGATE:
|
|
278
|
-
pageUpdate = function pageUpdate() {
|
|
279
|
-
return _handlers.default.navigate(action, pageId, onPageChange);
|
|
280
|
-
};
|
|
281
|
-
break;
|
|
282
|
-
case _models.PageAction.TYPES.COLLECTION_ADD:
|
|
283
|
-
formState.page.formData["".concat(action.collection, "ActiveId")] = Date.now().toString();
|
|
284
|
-
pageUpdate = function pageUpdate() {
|
|
285
|
-
return _handlers.default.navigate(action, pageId, onPageChange);
|
|
286
|
-
};
|
|
287
|
-
break;
|
|
288
|
-
case _models.PageAction.TYPES.COLLECTION_DUPLICATE:
|
|
289
|
-
if (_utils.default.CollectionPage.duplicateActiveEntry(action.collection, formState.page.formData)) {
|
|
290
|
-
pageUpdate = function pageUpdate() {
|
|
291
|
-
return _handlers.default.navigate(action, pageId, onPageChange);
|
|
292
|
-
};
|
|
293
|
-
}
|
|
294
|
-
break;
|
|
295
|
-
case _models.PageAction.TYPES.COLLECTION_REMOVE:
|
|
296
|
-
var activeId = formState.page.formData["".concat(action.collection, "ActiveId")];
|
|
297
|
-
formState.page.formData["".concat(action.collection)] = formState.page.formData["".concat(action.collection)].filter(function (entry) {
|
|
298
|
-
return entry.id !== activeId;
|
|
299
|
-
});
|
|
300
|
-
break;
|
|
301
|
-
default:
|
|
302
|
-
break;
|
|
303
|
-
}
|
|
304
|
-
// Save draft or submit.
|
|
305
|
-
var submissionData = _utils.default.Format.form({
|
|
306
|
-
pages: pages,
|
|
307
|
-
components: components
|
|
308
|
-
}, _objectSpread(_objectSpread(_objectSpread({}, data), patch), formState.page.formData), _models.EventTypes.SUBMIT);
|
|
309
|
-
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true, hubDetails === null || hubDetails === void 0 ? void 0 : hubDetails.sections);
|
|
310
|
-
if (patch) {
|
|
311
|
-
setData(submissionData);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// In case of hub-and-spoke if patchLabel has changed then
|
|
315
|
-
// save name and value to variables for call to onSubmit hook
|
|
316
|
-
var changedFieldName;
|
|
317
|
-
var changedFieldValue;
|
|
318
|
-
if (type === _models.FormTypes.HUB && Object.keys(patchLabel).length > 0) {
|
|
319
|
-
changedFieldName = Object.keys(patchLabel)[0];
|
|
320
|
-
changedFieldValue = Object.values(patchLabel)[0];
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
// Now submit the data to the backend...
|
|
324
|
-
hooks.onSubmit(action.type, submissionData, function (response) {
|
|
325
|
-
// The backend response may well contain data we need so apply it...
|
|
326
|
-
// ... but this needs to happen in a useEffect, not right away.
|
|
327
|
-
var sData = _objectSpread(_objectSpread({}, submissionData), response);
|
|
328
|
-
setSubmitted({
|
|
329
|
-
data: sData
|
|
330
|
-
});
|
|
331
|
-
pageUpdate(sData);
|
|
332
|
-
}, function (errors) {
|
|
333
|
-
_handlers.default.submissionError(errors, addErrors);
|
|
334
|
-
}, changedFieldName, changedFieldValue);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
279
|
+
// Handle change to form data in pages.
|
|
280
|
+
var onChange = function onChange(data) {
|
|
281
|
+
hooks.onChange(data);
|
|
337
282
|
};
|
|
338
283
|
|
|
339
284
|
// Handle navigation from "Check your answers".
|
|
340
285
|
// Passing a dataCallback allows changes to formData from the
|
|
341
|
-
// CYA screen. This is necessary to
|
|
286
|
+
// CYA screen. This is necessary to allow changing the active
|
|
342
287
|
// entry in page collections.
|
|
343
288
|
var onCYARowAction = function onCYARowAction(page, dataCallback) {
|
|
289
|
+
var _formState$page3;
|
|
344
290
|
if (typeof dataCallback === 'function') {
|
|
345
291
|
var newData = dataCallback(_objectSpread({}, data));
|
|
346
292
|
if (newData) {
|
|
347
293
|
setData(newData);
|
|
348
294
|
}
|
|
349
295
|
}
|
|
350
|
-
if (page) {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
var onTaskAction = function onTaskAction(currentTask) {
|
|
357
|
-
if (currentTask) {
|
|
358
|
-
currentTask.fullPages = [];
|
|
359
|
-
currentTask.pages.forEach(function (page) {
|
|
360
|
-
currentTask.fullPages.push(_helpers.default.getPage(page, pages));
|
|
361
|
-
});
|
|
362
|
-
setCurrentTask(currentTask);
|
|
363
|
-
if (currentTask.state === _models.TaskStates.TYPES.COMPLETE) {
|
|
364
|
-
if (hubDetails !== null && hubDetails !== void 0 && hubDetails.noTaskCYAs) {
|
|
365
|
-
var currentPage = data.formStatus.tasks[currentTask.name].currentPage;
|
|
366
|
-
onPageChange(currentPage || currentTask.pages[0]);
|
|
367
|
-
} else {
|
|
368
|
-
onPageChange(_models.FormPages.CYA);
|
|
369
|
-
}
|
|
370
|
-
} else if (currentTask.state === _models.TaskStates.TYPES.IN_PROGRESS) {
|
|
371
|
-
var _currentPage = data.formStatus.tasks[currentTask.name].currentPage;
|
|
372
|
-
onPageChange(_currentPage || currentTask.pages[0]);
|
|
373
|
-
} else if (currentTask.firstPage) {
|
|
374
|
-
var _currentPage2 = currentTask.firstPage;
|
|
375
|
-
onPageChange(_currentPage2 || currentTask.pages[0]);
|
|
376
|
-
} else {
|
|
377
|
-
onPageChange(currentTask.pages[0]);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
};
|
|
381
|
-
|
|
382
|
-
// Handle actions from "Check your answers".
|
|
383
|
-
var onCYAAction = function onCYAAction(action) {
|
|
384
|
-
// Check to see whether the action is able to proceed, which in
|
|
385
|
-
// in the case of a submission will validate the fields in the page.
|
|
386
|
-
if (action.type === _models.PageAction.TYPES.SUBMIT) {
|
|
387
|
-
setPagePoint('submit');
|
|
388
|
-
if (_helpers.default.canCYASubmit(pages, validate.pages)) {
|
|
389
|
-
// Submit.
|
|
390
|
-
var submissionData = _utils.default.Format.form({
|
|
391
|
-
pages: pages,
|
|
392
|
-
components: components
|
|
393
|
-
}, _objectSpread({}, data), _models.EventTypes.SUBMIT);
|
|
394
|
-
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
|
|
395
|
-
setData(submissionData);
|
|
396
|
-
// Now submit the data to the backend...
|
|
397
|
-
hooks.onSubmit(action.type, submissionData, function () {
|
|
398
|
-
return hooks.onFormComplete();
|
|
399
|
-
}, function (errors) {
|
|
400
|
-
return _handlers.default.submissionError(errors, addErrors);
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
if (action.type === _models.PageAction.TYPES.SAVE_AND_CONTINUE && hub === _models.HubFormats.TASK) {
|
|
405
|
-
if (_helpers.default.canCYASubmit(currentTask.fullPages, validate.pages)) {
|
|
406
|
-
var _submissionData = _utils.default.Format.form({
|
|
407
|
-
pages: pages,
|
|
408
|
-
components: components
|
|
409
|
-
}, _objectSpread({}, data), _models.EventTypes.SUBMIT);
|
|
410
|
-
_submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData, currentTask, true);
|
|
411
|
-
setData(_submissionData);
|
|
412
|
-
hooks.onSubmit(action.type, _submissionData, function () {
|
|
413
|
-
return onPageChange(_models.FormPages.HUB);
|
|
414
|
-
}, function (errors) {
|
|
415
|
-
return _handlers.default.submissionError(errors, addErrors);
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
if (action.type === _models.PageAction.TYPES.SAVE_AND_RETURN) {
|
|
420
|
-
if (_helpers.default.canCYASubmit(currentTask.fullPages, validate.pages)) {
|
|
421
|
-
var _submissionData2 = _utils.default.Format.form({
|
|
422
|
-
pages: pages,
|
|
423
|
-
components: components
|
|
424
|
-
}, _objectSpread({}, data), _models.EventTypes.SUBMIT);
|
|
425
|
-
_submissionData2.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData2, currentTask);
|
|
426
|
-
setData(_submissionData2);
|
|
427
|
-
hooks.onSubmit(action.type, _submissionData2, function () {
|
|
428
|
-
if (type === _models.FormTypes.TASK) {
|
|
429
|
-
onPageChange(undefined);
|
|
430
|
-
} else {
|
|
431
|
-
onPageChange(_models.FormPages.HUB);
|
|
296
|
+
if (((_formState$page3 = formState.page) === null || _formState$page3 === void 0 ? void 0 : _formState$page3.type) === _models.FormPages.PARTIAL_CYA) {
|
|
297
|
+
hubDetails.sections.every(function (section) {
|
|
298
|
+
return section.tasks.every(function (task) {
|
|
299
|
+
if (task.pages.includes(page.pageId) && task.name !== currentTask.name) {
|
|
300
|
+
(0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
|
|
301
|
+
return false;
|
|
432
302
|
}
|
|
433
|
-
|
|
434
|
-
return _handlers.default.submissionError(errors, addErrors);
|
|
303
|
+
return true;
|
|
435
304
|
});
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
if (action.type === _models.PageAction.TYPES.NAVIGATE) {
|
|
439
|
-
var _formState$page3;
|
|
440
|
-
onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, (_formState$page3 = formState.page) === null || _formState$page3 === void 0 ? void 0 : _formState$page3.formData));
|
|
305
|
+
});
|
|
441
306
|
}
|
|
442
|
-
if (
|
|
443
|
-
|
|
307
|
+
if (page) {
|
|
308
|
+
_handlers.default.cyaAction(page, pageId, onPageChange);
|
|
444
309
|
}
|
|
445
310
|
};
|
|
446
311
|
var classes = _utils.default.classBuilder(classBlock, classModifiers, className);
|
|
447
312
|
if (hub === _models.HubFormats.TASK) {
|
|
448
|
-
|
|
313
|
+
var currentCYA = cya;
|
|
314
|
+
currentCYA.actions = [_models.PageAction.TYPES.SAVE_AND_CONTINUE, _models.PageAction.TYPES.SAVE_AND_RETURN];
|
|
449
315
|
}
|
|
316
|
+
|
|
317
|
+
// filter out invalid attribs
|
|
318
|
+
var _noCYA = hubDetails.noTaskCYAs,
|
|
319
|
+
_nonSeq = hubDetails.nonSequential,
|
|
320
|
+
taskDetails = _objectWithoutProperties(hubDetails, _excluded);
|
|
450
321
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
451
322
|
className: classes()
|
|
452
|
-
}, title && !
|
|
323
|
+
}, title && !hideTitle && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
|
|
453
324
|
pages: _helpers.default.getRelevantPages(formState, pages, currentTask.fullPages)
|
|
454
325
|
}, cya, ((_formState$page4 = formState.page) === null || _formState$page4 === void 0 ? void 0 : _formState$page4.type) === _models.FormPages.PARTIAL_CYA && {
|
|
455
|
-
actions: formState.page.actions
|
|
326
|
+
actions: (_formState$page$actio = formState.page.actions) === null || _formState$page$actio === void 0 ? void 0 : _formState$page$actio.filter(function (action) {
|
|
327
|
+
return _utils.default.Component.show(action, data);
|
|
328
|
+
})
|
|
456
329
|
}, formState.cya, {
|
|
457
|
-
onAction:
|
|
330
|
+
onAction: function onAction(action) {
|
|
331
|
+
(0, _onCYAAction.default)(setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState);
|
|
332
|
+
},
|
|
458
333
|
onRowAction: onCYARowAction,
|
|
459
334
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
460
|
-
hide_title:
|
|
461
|
-
noChangeAction: noChangeAction,
|
|
335
|
+
hide_title: hideTitle,
|
|
336
|
+
noChangeAction: (_formState$cya$hideCh = formState.cya.hideChangeActions) !== null && _formState$cya$hideCh !== void 0 ? _formState$cya$hideCh : noChangeAction,
|
|
337
|
+
noGroupAction: (_formState$cya$hideGr = formState.cya.hideGroupActions) !== null && _formState$cya$hideGr !== void 0 ? _formState$cya$hideGr : false,
|
|
462
338
|
sections: typeof hubDetails !== 'undefined' ? hubDetails.sections : [],
|
|
463
339
|
type: type
|
|
464
|
-
})), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, _extends({},
|
|
340
|
+
})), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, _extends({}, taskDetails, {
|
|
465
341
|
refNumber: data.businessKey,
|
|
466
|
-
onTaskAction: onTaskAction
|
|
342
|
+
onTaskAction: function onTaskAction(task) {
|
|
343
|
+
(0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
|
|
344
|
+
},
|
|
345
|
+
formData: data
|
|
467
346
|
})), formState.page && !formState.cya && !formState.page.collection && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
|
|
468
347
|
page: formState.page,
|
|
469
|
-
onAction:
|
|
348
|
+
onAction: function onAction(action, patch, patchLabel) {
|
|
349
|
+
(0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors);
|
|
350
|
+
},
|
|
351
|
+
onChange: onChange,
|
|
352
|
+
hashLink: hashLink,
|
|
353
|
+
classModifiers: formState.page.classModifiers,
|
|
354
|
+
className: formState.page.className
|
|
470
355
|
}), formState.page && !formState.cya && formState.page.collection && /*#__PURE__*/_react.default.createElement(_CollectionPage.default, {
|
|
471
356
|
page: formState.page,
|
|
472
|
-
onAction:
|
|
357
|
+
onAction: function onAction(action, patch, patchLabel) {
|
|
358
|
+
(0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors);
|
|
359
|
+
},
|
|
360
|
+
classModifiers: formState.page.classModifiers,
|
|
361
|
+
className: formState.page.className
|
|
473
362
|
}));
|
|
474
363
|
};
|
|
475
|
-
|
|
476
|
-
title: _propTypes.default.string,
|
|
477
|
-
/** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
|
|
478
|
-
type: _propTypes.default.oneOf([_models.FormTypes.CYA, _models.FormTypes.FORM, _models.FormTypes.HUB, _models.FormTypes.TASK, _models.FormTypes.WIZARD, _models.FormTypes.TASK_CYA, _models.FormTypes.FORM_WITH_TASK]).isRequired,
|
|
479
|
-
components: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
480
|
-
pages: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
481
|
-
hub: _propTypes.default.object,
|
|
482
|
-
cya: _propTypes.default.object,
|
|
483
|
-
data: _propTypes.default.object,
|
|
484
|
-
hooks: _propTypes.default.object,
|
|
364
|
+
var propTypes = {
|
|
485
365
|
classBlock: _propTypes.default.string,
|
|
486
366
|
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
487
367
|
className: _propTypes.default.string,
|
|
368
|
+
components: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
|
|
369
|
+
cya: _propTypes.default.shape({
|
|
370
|
+
actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({}), _propTypes.default.string]))
|
|
371
|
+
}),
|
|
372
|
+
data: _propTypes.default.shape({
|
|
373
|
+
formStatus: _propTypes.default.shape({
|
|
374
|
+
page: _propTypes.default.shape({})
|
|
375
|
+
})
|
|
376
|
+
}),
|
|
377
|
+
hashLink: _propTypes.default.bool,
|
|
488
378
|
hide_title: _propTypes.default.bool,
|
|
489
|
-
|
|
379
|
+
hooks: _propTypes.default.shape({}),
|
|
380
|
+
hub: _propTypes.default.shape({
|
|
381
|
+
nonSequential: _propTypes.default.bool,
|
|
382
|
+
sections: _propTypes.default.arrayOf(_propTypes.default.shape({}))
|
|
383
|
+
}),
|
|
384
|
+
newPageId: _propTypes.default.string,
|
|
490
385
|
noChangeAction: _propTypes.default.bool,
|
|
386
|
+
pages: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
|
|
387
|
+
summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
388
|
+
title: _propTypes.default.string,
|
|
389
|
+
/** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
|
|
390
|
+
type: _propTypes.default.oneOf([_models.FormTypes.CYA, _models.FormTypes.FORM, _models.FormTypes.HUB, _models.FormTypes.TASK, _models.FormTypes.WIZARD, _models.FormTypes.TASK_CYA, _models.FormTypes.FORM_WITH_TASK]).isRequired,
|
|
491
391
|
viewOnly: _propTypes.default.bool
|
|
492
392
|
};
|
|
493
|
-
|
|
494
|
-
type: _models.FormTypes.HUB,
|
|
495
|
-
components: [],
|
|
496
|
-
pages: [],
|
|
393
|
+
var defaultProps = {
|
|
497
394
|
classBlock: DEFAULT_CLASS,
|
|
395
|
+
className: '',
|
|
498
396
|
classModifiers: [],
|
|
397
|
+
cya: {
|
|
398
|
+
actions: []
|
|
399
|
+
},
|
|
400
|
+
data: null,
|
|
401
|
+
hashLink: false,
|
|
499
402
|
hide_title: false,
|
|
500
|
-
|
|
403
|
+
hooks: null,
|
|
404
|
+
hub: {
|
|
405
|
+
nonSequential: false,
|
|
406
|
+
sections: []
|
|
407
|
+
},
|
|
408
|
+
newPageId: '',
|
|
501
409
|
noChangeAction: false,
|
|
410
|
+
summaryListClassModifiers: [],
|
|
411
|
+
title: '',
|
|
502
412
|
viewOnly: true
|
|
503
413
|
};
|
|
414
|
+
FormRenderer.propTypes = propTypes;
|
|
415
|
+
InternalFormRenderer.propTypes = propTypes;
|
|
416
|
+
FormRenderer.defaultProps = defaultProps;
|
|
417
|
+
InternalFormRenderer.defaultProps = defaultProps;
|
|
504
418
|
var _default = FormRenderer;
|
|
505
419
|
exports.default = _default;
|