@ukhomeoffice/cop-react-form-renderer 4.74.0 → 4.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +10 -4
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +51 -27
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +6 -5
- package/dist/components/CollectionPage/CollectionPage.js +7 -5
- package/dist/components/FormComponent/Collection.js +25 -17
- package/dist/components/FormComponent/Container.js +23 -13
- package/dist/components/FormComponent/FormComponent.js +24 -9
- package/dist/components/FormComponent/helpers/addLabel.js +4 -3
- package/dist/components/FormPage/FormPage.js +30 -19
- package/dist/components/FormRenderer/FormRenderer.js +90 -34
- package/dist/components/FormRenderer/FormRenderer.test.js +29 -27
- package/dist/components/FormRenderer/handlers/index.js +1 -2
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +19 -15
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +8 -8
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -1
- 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/getUpdatedSectionStates.js +38 -24
- package/dist/components/FormRenderer/helpers/index.js +1 -2
- package/dist/components/FormRenderer/onCYAAction.js +2 -2
- package/dist/components/FormRenderer/onCYAAction.test.js +13 -13
- package/dist/components/FormRenderer/onPageAction.js +27 -11
- package/dist/components/FormRenderer/onPageAction.test.js +16 -16
- package/dist/components/FormRenderer/onTaskAction.js +14 -11
- package/dist/components/PageActions/ActionButton.js +0 -3
- package/dist/components/PageActions/PageActions.js +2 -2
- package/dist/components/SummaryList/SummaryList.js +13 -8
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -2
- 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 +1 -1
- package/dist/components/TaskList/TaskList.js +21 -12
- package/dist/components/TaskList/TaskState.js +2 -2
- package/dist/components/index.js +7 -0
- package/dist/context/HooksContext/HooksContext.js +33 -1
- package/dist/context/ValidationContext/ValidationContext.js +8 -1
- package/dist/context/ValidationContext/ValidationContext.test.js +8 -2
- package/dist/hooks/useGetRequest.js +3 -2
- package/dist/hooks/useRefData.js +1 -0
- package/dist/index.js +6 -0
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +34 -34
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +2 -1
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +4 -4
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +2 -1
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +2 -2
- package/dist/utils/CheckYourAnswers/getCYARow.js +13 -11
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +8 -8
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +25 -22
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +1 -0
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +1 -1
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +1 -0
- package/dist/utils/CollectionPage/mergeCollectionPages.js +7 -6
- package/dist/utils/Component/applyToComponentTree.js +4 -2
- package/dist/utils/Component/cleanAttributes.js +7 -1
- package/dist/utils/Component/cleanAttributes.test.js +4 -4
- package/dist/utils/Component/getComponent.js +8 -6
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +4 -4
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +1 -0
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +5 -5
- package/dist/utils/Component/setupContainerComponentsPath.js +2 -0
- package/dist/utils/Condition/meetsCondition.js +2 -1
- package/dist/utils/Condition/setupConditions.js +2 -2
- package/dist/utils/Container/setupNesting.js +5 -1
- package/dist/utils/Data/applyFormula.js +16 -10
- package/dist/utils/Data/getAutocompleteSource.js +3 -1
- package/dist/utils/Data/getOptions.js +3 -2
- package/dist/utils/Data/setupFormData.js +4 -2
- package/dist/utils/FormPage/getFormPage.js +1 -1
- package/dist/utils/FormPage/getPageActions.js +5 -3
- package/dist/utils/FormPage/showFormPage.js +2 -2
- package/dist/utils/FormPage/showFormPageCYA.js +1 -0
- package/dist/utils/FormPage/useComponent.js +1 -0
- package/dist/utils/Format/formatDataForComponent.js +2 -1
- package/dist/utils/Meta/index.js +1 -2
- package/dist/utils/Operate/getFirstOf.test.js +1 -0
- package/dist/utils/Operate/persistValueInFormData.js +1 -0
- package/dist/utils/Operate/persistValueInFormData.test.js +1 -1
- package/dist/utils/Operate/shouldRun.js +16 -13
- package/dist/utils/Validate/additional/index.js +2 -1
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +1 -1
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +1 -1
- package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +1 -0
- package/dist/utils/Validate/additional/utils.js +16 -16
- package/dist/utils/Validate/validateCollection.js +3 -3
- package/dist/utils/Validate/validateComponent.js +26 -20
- package/dist/utils/Validate/validateContainer.js +2 -2
- package/dist/utils/Validate/validateDate.js +2 -1
- package/dist/utils/Validate/validateEmail.js +1 -0
- package/dist/utils/Validate/validatePage.js +6 -3
- package/dist/utils/Validate/validatePage.test.js +9 -18
- package/dist/utils/Validate/validateRegex.js +2 -5
- package/dist/utils/Validate/validateRequired.js +2 -4
- package/package.json +3 -2
|
@@ -6,16 +6,16 @@ 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 _hooks = require("../../hooks");
|
|
12
12
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
13
13
|
var _FormComponent = _interopRequireDefault(require("../FormComponent"));
|
|
14
14
|
var _PageActions = _interopRequireDefault(require("../PageActions"));
|
|
15
15
|
require("./FormPage.scss");
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
17
|
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); }
|
|
17
18
|
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; }
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
19
|
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; }
|
|
20
20
|
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; }
|
|
21
21
|
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; }
|
|
@@ -30,7 +30,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
30
30
|
var DEFAULT_CLASS = 'hods-form__page';
|
|
31
31
|
exports.DEFAULT_CLASS = DEFAULT_CLASS;
|
|
32
32
|
var FormPage = function FormPage(_ref) {
|
|
33
|
-
var
|
|
33
|
+
var _formPage$actions, _page$actions;
|
|
34
34
|
var page = _ref.page,
|
|
35
35
|
_onAction = _ref.onAction,
|
|
36
36
|
onWrapperChange = _ref.onWrapperChange,
|
|
@@ -58,7 +58,8 @@ var FormPage = function FormPage(_ref) {
|
|
|
58
58
|
*/
|
|
59
59
|
var onPageChange = function onPageChange(_ref2) {
|
|
60
60
|
var target = _ref2.target;
|
|
61
|
-
|
|
61
|
+
var formPage = page;
|
|
62
|
+
formPage.formData[target.name] = target.value;
|
|
62
63
|
setPatch(function (prev) {
|
|
63
64
|
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, target.name, target.value));
|
|
64
65
|
});
|
|
@@ -71,16 +72,19 @@ var FormPage = function FormPage(_ref) {
|
|
|
71
72
|
;
|
|
72
73
|
};
|
|
73
74
|
(0, _react.useEffect)(function () {
|
|
75
|
+
// eslint-disable-next-line no-useless-concat
|
|
74
76
|
var coreDocTitle = document.title.replace('Error: ', '');
|
|
77
|
+
// eslint-disable-next-line prefer-template
|
|
75
78
|
document.title = errors.length > 0 ? 'Error: ' + coreDocTitle : coreDocTitle;
|
|
76
79
|
}, [errors]);
|
|
77
80
|
var classes = _utils.default.classBuilder(classBlock, classModifiers, className);
|
|
78
|
-
|
|
81
|
+
var formPage = page;
|
|
82
|
+
formPage.actions = (_formPage$actions = formPage.actions) === null || _formPage$actions === void 0 ? void 0 : _formPage$actions.map(function (action) {
|
|
79
83
|
return action.label ? _objectSpread(_objectSpread({}, action), {}, {
|
|
80
|
-
label: _utils.default.interpolateString(action.label,
|
|
84
|
+
label: _utils.default.interpolateString(action.label, formPage.formData)
|
|
81
85
|
}) : action;
|
|
82
86
|
});
|
|
83
|
-
|
|
87
|
+
formPage.formData = _utils.default.Operate.runPageOperations(formPage, _objectSpread(_objectSpread({}, formPage.formData), patch), onWrapperChange || onPageChange);
|
|
84
88
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
85
89
|
className: classes(),
|
|
86
90
|
key: page.id
|
|
@@ -99,7 +103,7 @@ var FormPage = function FormPage(_ref) {
|
|
|
99
103
|
formData: page.formData
|
|
100
104
|
});
|
|
101
105
|
}), /*#__PURE__*/_react.default.createElement(_PageActions.default, {
|
|
102
|
-
actions: (_page$
|
|
106
|
+
actions: (_page$actions = page.actions) === null || _page$actions === void 0 ? void 0 : _page$actions.filter(function (action) {
|
|
103
107
|
return _utils.default.Component.show(action, page.formData);
|
|
104
108
|
}),
|
|
105
109
|
onAction: function onAction(action) {
|
|
@@ -108,26 +112,33 @@ var FormPage = function FormPage(_ref) {
|
|
|
108
112
|
}));
|
|
109
113
|
};
|
|
110
114
|
FormPage.propTypes = {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
actions: _propTypes.default.array,
|
|
116
|
-
formData: _propTypes.default.object.isRequired
|
|
117
|
-
}).isRequired,
|
|
115
|
+
classBlock: _propTypes.default.string,
|
|
116
|
+
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
117
|
+
className: _propTypes.default.string,
|
|
118
|
+
hashLink: _propTypes.default.string,
|
|
118
119
|
onAction: _propTypes.default.func.isRequired,
|
|
119
120
|
// If passed in, this function will override the default
|
|
120
121
|
// onPageChange functionality. Useful for anything that
|
|
121
122
|
// wants to wrap FormPage.
|
|
122
123
|
onWrapperChange: _propTypes.default.func,
|
|
123
124
|
onChange: _propTypes.default.func,
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
onTopLevelChange: _propTypes.default.func,
|
|
126
|
+
page: _propTypes.default.shape({
|
|
127
|
+
id: _propTypes.default.string.isRequired,
|
|
128
|
+
title: _propTypes.default.string,
|
|
129
|
+
components: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({})])).isRequired,
|
|
130
|
+
actions: _propTypes.default.shape([]),
|
|
131
|
+
formData: _propTypes.default.shape({}).isRequired
|
|
132
|
+
}).isRequired
|
|
127
133
|
};
|
|
128
134
|
FormPage.defaultProps = {
|
|
129
135
|
classBlock: DEFAULT_CLASS,
|
|
130
|
-
classModifiers: []
|
|
136
|
+
classModifiers: [],
|
|
137
|
+
className: '',
|
|
138
|
+
hashLink: '',
|
|
139
|
+
onChange: undefined,
|
|
140
|
+
onTopLevelChange: undefined,
|
|
141
|
+
onWrapperChange: undefined
|
|
131
142
|
};
|
|
132
143
|
var _default = FormPage;
|
|
133
144
|
exports.default = _default;
|
|
@@ -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");
|
|
@@ -20,11 +20,10 @@ var _handlers = _interopRequireDefault(require("./handlers"));
|
|
|
20
20
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
21
21
|
var _onCYAAction = _interopRequireDefault(require("./onCYAAction"));
|
|
22
22
|
var _onPageAction = _interopRequireDefault(require("./onPageAction"));
|
|
23
|
-
var _onTaskAction2 = _interopRequireDefault(require("./onTaskAction"));
|
|
24
23
|
require("./FormRenderer.scss");
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
25
|
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); }
|
|
26
26
|
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; }
|
|
27
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
27
|
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); }
|
|
29
28
|
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; }
|
|
30
29
|
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; }
|
|
@@ -50,7 +49,7 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
50
49
|
classBlock = _ref.classBlock,
|
|
51
50
|
classModifiers = _ref.classModifiers,
|
|
52
51
|
className = _ref.className,
|
|
53
|
-
|
|
52
|
+
hideTitle = _ref.hide_title,
|
|
54
53
|
summaryListClassModifiers = _ref.summaryListClassModifiers,
|
|
55
54
|
noChangeAction = _ref.noChangeAction,
|
|
56
55
|
newPageId = _ref.newPageId,
|
|
@@ -69,7 +68,7 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
69
68
|
classModifiers: classModifiers,
|
|
70
69
|
className: className,
|
|
71
70
|
hashLink: hashLink,
|
|
72
|
-
hide_title:
|
|
71
|
+
hide_title: hideTitle,
|
|
73
72
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
74
73
|
noChangeAction: noChangeAction,
|
|
75
74
|
newPageId: newPageId,
|
|
@@ -91,7 +90,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
91
90
|
classModifiers = _ref2.classModifiers,
|
|
92
91
|
className = _ref2.className,
|
|
93
92
|
hashLink = _ref2.hashLink,
|
|
94
|
-
|
|
93
|
+
hideTitle = _ref2.hide_title,
|
|
95
94
|
summaryListClassModifiers = _ref2.summaryListClassModifiers,
|
|
96
95
|
noChangeAction = _ref2.noChangeAction,
|
|
97
96
|
newPageId = _ref2.newPageId,
|
|
@@ -163,7 +162,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
163
162
|
});
|
|
164
163
|
}
|
|
165
164
|
setGoingBack(true);
|
|
166
|
-
hooks.onGoingBack(
|
|
165
|
+
hooks.onGoingBack();
|
|
167
166
|
clearErrors();
|
|
168
167
|
if (components && pages && data && (_formState$page = formState.page) !== null && _formState$page !== void 0 && _formState$page.formData && pagePoint === undefined) {
|
|
169
168
|
var submissionData = _utils.default.Format.form({
|
|
@@ -218,7 +217,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
218
217
|
setPagePoint(undefined);
|
|
219
218
|
// In case of refresh the current task needs to be reset
|
|
220
219
|
hooks.onFormLoad(function (currentTask) {
|
|
221
|
-
|
|
220
|
+
var task = currentTask;
|
|
221
|
+
setCurrentTask(task);
|
|
222
222
|
});
|
|
223
223
|
}, [hooks]);
|
|
224
224
|
(0, _react.useEffect)(function () {
|
|
@@ -241,8 +241,9 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
241
241
|
var pages = currentTask.fullPages;
|
|
242
242
|
if (pages) {
|
|
243
243
|
pages.forEach(function (page) {
|
|
244
|
-
|
|
245
|
-
|
|
244
|
+
var p = page;
|
|
245
|
+
if (p) {
|
|
246
|
+
p.formData = data;
|
|
246
247
|
}
|
|
247
248
|
});
|
|
248
249
|
setCurrentTask(function (prev) {
|
|
@@ -277,6 +278,38 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
277
278
|
hooks.onChange(data);
|
|
278
279
|
};
|
|
279
280
|
|
|
281
|
+
// Kick off a task, gather required pages and move to the correct point
|
|
282
|
+
var onTaskAction = function onTaskAction(currentTask) {
|
|
283
|
+
if (currentTask) {
|
|
284
|
+
var task = currentTask;
|
|
285
|
+
task.fullPages = [];
|
|
286
|
+
task.pages.forEach(function (page) {
|
|
287
|
+
task.fullPages.push(_helpers.default.getPage(page, pages));
|
|
288
|
+
});
|
|
289
|
+
setCurrentTask(task);
|
|
290
|
+
var state = _objectSpread({}, task);
|
|
291
|
+
if (task.state === _models.TaskStates.TYPES.COMPLETE) {
|
|
292
|
+
if (hubDetails !== null && hubDetails !== void 0 && hubDetails.noTaskCYAs) {
|
|
293
|
+
// If the task is complete and there are no CYA's then show user first page
|
|
294
|
+
var currentPage = data.formStatus.tasks[task.name].currentPage;
|
|
295
|
+
onPageChange(task.pages[0] || currentPage);
|
|
296
|
+
} else if (task.customCYA) {
|
|
297
|
+
onPageChange(task.customCYA);
|
|
298
|
+
} else {
|
|
299
|
+
onPageChange(_models.FormPages.CYA, state);
|
|
300
|
+
}
|
|
301
|
+
} else if (task.state === _models.TaskStates.TYPES.IN_PROGRESS) {
|
|
302
|
+
var _currentPage = data.formStatus.tasks[task.name].currentPage;
|
|
303
|
+
onPageChange(_currentPage || task.pages[0], state);
|
|
304
|
+
} else if (task.firstPage) {
|
|
305
|
+
var _currentPage2 = task.firstPage;
|
|
306
|
+
onPageChange(_currentPage2 || task.pages[0], state);
|
|
307
|
+
} else {
|
|
308
|
+
onPageChange(task.pages[0], state);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
|
|
280
313
|
// Handle navigation from "Check your answers".
|
|
281
314
|
// Passing a dataCallback allows changes to formData from the
|
|
282
315
|
// CYA screen. This is necessary to allow changing the active
|
|
@@ -293,24 +326,26 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
293
326
|
hubDetails.sections.every(function (section) {
|
|
294
327
|
return section.tasks.every(function (task) {
|
|
295
328
|
if (task.pages.includes(page.pageId) && task.name !== currentTask.name) {
|
|
296
|
-
(
|
|
329
|
+
onTaskAction(task);
|
|
297
330
|
return false;
|
|
298
331
|
}
|
|
299
332
|
return true;
|
|
300
333
|
});
|
|
301
334
|
});
|
|
302
335
|
}
|
|
336
|
+
;
|
|
303
337
|
if (page) {
|
|
304
338
|
_handlers.default.cyaAction(page, pageId, onPageChange);
|
|
305
339
|
}
|
|
306
340
|
};
|
|
307
341
|
var classes = _utils.default.classBuilder(classBlock, classModifiers, className);
|
|
308
342
|
if (hub === _models.HubFormats.TASK) {
|
|
309
|
-
|
|
343
|
+
var currentCYA = cya;
|
|
344
|
+
currentCYA.actions = [_models.PageAction.TYPES.SAVE_AND_CONTINUE, _models.PageAction.TYPES.SAVE_AND_RETURN];
|
|
310
345
|
}
|
|
311
346
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
312
347
|
className: classes()
|
|
313
|
-
}, title && !
|
|
348
|
+
}, title && !hideTitle && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
|
|
314
349
|
pages: _helpers.default.getRelevantPages(formState, pages, currentTask.fullPages)
|
|
315
350
|
}, cya, ((_formState$page4 = formState.page) === null || _formState$page4 === void 0 ? void 0 : _formState$page4.type) === _models.FormPages.PARTIAL_CYA && {
|
|
316
351
|
actions: (_formState$page$actio = formState.page.actions) === null || _formState$page$actio === void 0 ? void 0 : _formState$page$actio.filter(function (action) {
|
|
@@ -322,16 +357,14 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
322
357
|
},
|
|
323
358
|
onRowAction: onCYARowAction,
|
|
324
359
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
325
|
-
hide_title:
|
|
360
|
+
hide_title: hideTitle,
|
|
326
361
|
noChangeAction: (_formState$cya$hideCh = formState.cya.hideChangeActions) !== null && _formState$cya$hideCh !== void 0 ? _formState$cya$hideCh : noChangeAction,
|
|
327
362
|
noGroupAction: (_formState$cya$hideGr = formState.cya.hideGroupActions) !== null && _formState$cya$hideGr !== void 0 ? _formState$cya$hideGr : false,
|
|
328
363
|
sections: typeof hubDetails !== 'undefined' ? hubDetails.sections : [],
|
|
329
364
|
type: type
|
|
330
365
|
})), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, _extends({}, hubDetails, {
|
|
331
366
|
refNumber: data.businessKey,
|
|
332
|
-
onTaskAction:
|
|
333
|
-
(0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange, _models.FormPages);
|
|
334
|
-
},
|
|
367
|
+
onTaskAction: onTaskAction,
|
|
335
368
|
formData: data
|
|
336
369
|
})), formState.page && !formState.cya && !formState.page.collection && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
|
|
337
370
|
page: formState.page,
|
|
@@ -347,36 +380,59 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
347
380
|
}
|
|
348
381
|
}));
|
|
349
382
|
};
|
|
350
|
-
|
|
351
|
-
title: _propTypes.default.string,
|
|
352
|
-
/** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
|
|
353
|
-
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,
|
|
354
|
-
components: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
355
|
-
pages: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
356
|
-
hashLink: _propTypes.default.bool,
|
|
357
|
-
hub: _propTypes.default.object,
|
|
358
|
-
cya: _propTypes.default.object,
|
|
359
|
-
data: _propTypes.default.object,
|
|
360
|
-
hooks: _propTypes.default.object,
|
|
383
|
+
var propTypes = {
|
|
361
384
|
classBlock: _propTypes.default.string,
|
|
362
385
|
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
363
386
|
className: _propTypes.default.string,
|
|
387
|
+
components: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
|
|
388
|
+
cya: _propTypes.default.shape({
|
|
389
|
+
actions: _propTypes.default.shape([])
|
|
390
|
+
}),
|
|
391
|
+
data: _propTypes.default.shape({
|
|
392
|
+
formStatus: _propTypes.default.shape({
|
|
393
|
+
page: _propTypes.default.shape({})
|
|
394
|
+
})
|
|
395
|
+
}),
|
|
396
|
+
hashLink: _propTypes.default.bool,
|
|
364
397
|
hide_title: _propTypes.default.bool,
|
|
365
|
-
|
|
398
|
+
hooks: _propTypes.default.shape({}),
|
|
399
|
+
hub: _propTypes.default.shape({
|
|
400
|
+
nonSequential: _propTypes.default.bool,
|
|
401
|
+
sections: _propTypes.default.shape([])
|
|
402
|
+
}),
|
|
403
|
+
newPageId: _propTypes.default.string,
|
|
366
404
|
noChangeAction: _propTypes.default.bool,
|
|
405
|
+
pages: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
|
|
406
|
+
summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
407
|
+
title: _propTypes.default.string,
|
|
408
|
+
/** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
|
|
409
|
+
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,
|
|
367
410
|
viewOnly: _propTypes.default.bool
|
|
368
411
|
};
|
|
369
|
-
|
|
370
|
-
type: _models.FormTypes.HUB,
|
|
371
|
-
components: [],
|
|
372
|
-
pages: [],
|
|
412
|
+
var defaultProps = {
|
|
373
413
|
classBlock: DEFAULT_CLASS,
|
|
414
|
+
className: '',
|
|
374
415
|
classModifiers: [],
|
|
416
|
+
cya: {
|
|
417
|
+
actions: []
|
|
418
|
+
},
|
|
419
|
+
data: null,
|
|
375
420
|
hashLink: false,
|
|
376
421
|
hide_title: false,
|
|
377
|
-
|
|
422
|
+
hooks: null,
|
|
423
|
+
hub: {
|
|
424
|
+
nonSequential: false,
|
|
425
|
+
sections: []
|
|
426
|
+
},
|
|
427
|
+
newPageId: '',
|
|
378
428
|
noChangeAction: false,
|
|
429
|
+
summaryListClassModifiers: [],
|
|
430
|
+
title: '',
|
|
379
431
|
viewOnly: true
|
|
380
432
|
};
|
|
433
|
+
FormRenderer.propTypes = propTypes;
|
|
434
|
+
InternalFormRenderer.propTypes = propTypes;
|
|
435
|
+
FormRenderer.defaultProps = defaultProps;
|
|
436
|
+
InternalFormRenderer.defaultProps = defaultProps;
|
|
381
437
|
var _default = FormRenderer;
|
|
382
438
|
exports.default = _default;
|
|
@@ -51,8 +51,9 @@ describe('components', function () {
|
|
|
51
51
|
container.remove();
|
|
52
52
|
container = null;
|
|
53
53
|
});
|
|
54
|
-
var checkForm = function checkForm(
|
|
55
|
-
var
|
|
54
|
+
var checkForm = function checkForm(formContainer) {
|
|
55
|
+
var formWrapper = formContainer;
|
|
56
|
+
var form = formWrapper.childNodes[0];
|
|
56
57
|
expect(form.tagName).toEqual('DIV');
|
|
57
58
|
expect(form.classList).toContain(_FormRenderer.DEFAULT_CLASS);
|
|
58
59
|
return form;
|
|
@@ -395,7 +396,7 @@ describe('components', function () {
|
|
|
395
396
|
})));
|
|
396
397
|
case 2:
|
|
397
398
|
form = checkForm(container);
|
|
398
|
-
expect(form.childNodes.length).toEqual(1); //Hub page (= CYA)
|
|
399
|
+
expect(form.childNodes.length).toEqual(1); // Hub page (= CYA)
|
|
399
400
|
hub = form.childNodes[0];
|
|
400
401
|
expect(hub.tagName).toEqual('DIV');
|
|
401
402
|
expect(hub.classList).toContain(_CheckYourAnswers.DEFAULT_CLASS);
|
|
@@ -463,7 +464,7 @@ describe('components', function () {
|
|
|
463
464
|
while (1) switch (_context20.prev = _context20.next) {
|
|
464
465
|
case 0:
|
|
465
466
|
ON_SUBMIT_CALLS = [];
|
|
466
|
-
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess
|
|
467
|
+
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess) {
|
|
467
468
|
ON_SUBMIT_CALLS.push(payload);
|
|
468
469
|
onSuccess();
|
|
469
470
|
};
|
|
@@ -511,7 +512,7 @@ describe('components', function () {
|
|
|
511
512
|
while (1) switch (_context22.prev = _context22.next) {
|
|
512
513
|
case 0:
|
|
513
514
|
ON_SUBMIT_CALLS = [];
|
|
514
|
-
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess
|
|
515
|
+
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess) {
|
|
515
516
|
ON_SUBMIT_CALLS.push(payload);
|
|
516
517
|
onSuccess();
|
|
517
518
|
};
|
|
@@ -546,6 +547,7 @@ describe('components', function () {
|
|
|
546
547
|
case 7:
|
|
547
548
|
taskList = container.childNodes[0].childNodes[1];
|
|
548
549
|
taskList.childNodes.forEach(function (child) {
|
|
550
|
+
// eslint-disable-next-line no-console
|
|
549
551
|
console.log("taskList, child = ".concat(JSON.stringify(child.textContent)));
|
|
550
552
|
});
|
|
551
553
|
expect(taskList.childNodes[5].textContent).not.toEqual("test text");
|
|
@@ -562,7 +564,7 @@ describe('components', function () {
|
|
|
562
564
|
while (1) switch (_context24.prev = _context24.next) {
|
|
563
565
|
case 0:
|
|
564
566
|
ON_SUBMIT_CALLS = [];
|
|
565
|
-
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess
|
|
567
|
+
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess) {
|
|
566
568
|
ON_SUBMIT_CALLS.push(payload);
|
|
567
569
|
onSuccess();
|
|
568
570
|
};
|
|
@@ -584,18 +586,18 @@ describe('components', function () {
|
|
|
584
586
|
}, _callee23);
|
|
585
587
|
})));
|
|
586
588
|
case 5:
|
|
587
|
-
taskList = container.childNodes[0].childNodes[1]; //Check statuses are correct
|
|
589
|
+
taskList = container.childNodes[0].childNodes[1]; // Check statuses are correct
|
|
588
590
|
firstTaskStatus = taskList.childNodes[3].childNodes[1].childNodes[1];
|
|
589
591
|
expect(firstTaskStatus.textContent).toEqual(_models.TaskStates.DETAILS[_models.TaskStates.TYPES.NOT_STARTED].label);
|
|
590
592
|
secondTaskStatus = taskList.childNodes[3].childNodes[2].childNodes[1];
|
|
591
593
|
expect(secondTaskStatus.textContent).toEqual(_models.TaskStates.DETAILS[_models.TaskStates.TYPES.CANNOT_START_YET].label);
|
|
592
594
|
|
|
593
|
-
//Launch first task
|
|
595
|
+
// Launch first task
|
|
594
596
|
firstTask = taskList.childNodes[3].childNodes[1].childNodes[0].childNodes[0];
|
|
595
597
|
expect(firstTask.textContent).toEqual('Date, location and mode details');
|
|
596
598
|
_react.fireEvent.click(firstTask, {});
|
|
597
599
|
|
|
598
|
-
//Fill first page and navigate
|
|
600
|
+
// Fill first page and navigate
|
|
599
601
|
newPage = container.childNodes[0].childNodes[0];
|
|
600
602
|
expect(newPage.childNodes[0].textContent).toEqual('Event Date');
|
|
601
603
|
_react.fireEvent.change(newPage.childNodes[1].childNodes[0].childNodes[2].childNodes[0].childNodes[0].childNodes[1], {
|
|
@@ -619,7 +621,7 @@ describe('components', function () {
|
|
|
619
621
|
continueButton = newPage.childNodes[2].childNodes[0];
|
|
620
622
|
_react.fireEvent.click(continueButton, {});
|
|
621
623
|
|
|
622
|
-
//Fill second page and navigate
|
|
624
|
+
// Fill second page and navigate
|
|
623
625
|
newPage = container.childNodes[0].childNodes[0];
|
|
624
626
|
expect(newPage.childNodes[0].textContent).toEqual('Event Mode');
|
|
625
627
|
seaButton = newPage.childNodes[1].childNodes[0].childNodes[2].childNodes[0];
|
|
@@ -628,7 +630,7 @@ describe('components', function () {
|
|
|
628
630
|
continueButton = newPage.childNodes[2].childNodes[0];
|
|
629
631
|
_react.fireEvent.click(continueButton, {});
|
|
630
632
|
|
|
631
|
-
//Click change to mode on CYA page
|
|
633
|
+
// Click change to mode on CYA page
|
|
632
634
|
cyaPageChange = container.childNodes[0].childNodes[0];
|
|
633
635
|
expect(cyaPageChange.childNodes[0].textContent).toEqual('Check your answers');
|
|
634
636
|
modeChangeLink = cyaPageChange.childNodes[4].childNodes[0].childNodes[0].childNodes[2].childNodes[0];
|
|
@@ -645,23 +647,23 @@ describe('components', function () {
|
|
|
645
647
|
continueButton = changePage.childNodes[2].childNodes[0];
|
|
646
648
|
_react.fireEvent.click(continueButton, {});
|
|
647
649
|
|
|
648
|
-
//Continue on from CYA page
|
|
650
|
+
// Continue on from CYA page
|
|
649
651
|
cyaPage = container.childNodes[0].childNodes[0];
|
|
650
652
|
expect(cyaPage.childNodes[0].textContent).toEqual('Check your answers');
|
|
651
653
|
expect(cyaPage.childNodes[5].childNodes[0].textContent).toEqual('Save and continue');
|
|
652
654
|
expect(cyaPage.childNodes[5].childNodes[1].textContent).toEqual('Save and return later');
|
|
653
655
|
_react.fireEvent.click(cyaPage.childNodes[5].childNodes[0], {});
|
|
654
656
|
|
|
655
|
-
//Should be back at task list
|
|
657
|
+
// Should be back at task list
|
|
656
658
|
expect(container.childNodes[0].childNodes[0].textContent).toEqual('Task List Form');
|
|
657
659
|
|
|
658
|
-
//Check statuses are correct
|
|
660
|
+
// Check statuses are correct
|
|
659
661
|
firstTaskStatus = container.childNodes[0].childNodes[1].childNodes[3].childNodes[1].childNodes[1];
|
|
660
662
|
expect(firstTaskStatus.textContent).toEqual(_models.TaskStates.DETAILS[_models.TaskStates.TYPES.COMPLETE].label);
|
|
661
663
|
secondTaskStatus = container.childNodes[0].childNodes[1].childNodes[3].childNodes[2].childNodes[1];
|
|
662
664
|
expect(secondTaskStatus.textContent).toEqual(_models.TaskStates.DETAILS[_models.TaskStates.TYPES.NOT_STARTED].label);
|
|
663
665
|
|
|
664
|
-
//Check final data submitted to backend is as expected
|
|
666
|
+
// Check final data submitted to backend is as expected
|
|
665
667
|
finalSubmit = ON_SUBMIT_CALLS[ON_SUBMIT_CALLS.length - 1];
|
|
666
668
|
expect(finalSubmit.date).toEqual('7-7-2022');
|
|
667
669
|
expect(finalSubmit.mode).toEqual('air');
|
|
@@ -677,7 +679,7 @@ describe('components', function () {
|
|
|
677
679
|
return _regeneratorRuntime().wrap(function _callee26$(_context26) {
|
|
678
680
|
while (1) switch (_context26.prev = _context26.next) {
|
|
679
681
|
case 0:
|
|
680
|
-
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess
|
|
682
|
+
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess) {
|
|
681
683
|
onSuccess();
|
|
682
684
|
};
|
|
683
685
|
HOOKS = {
|
|
@@ -698,10 +700,10 @@ describe('components', function () {
|
|
|
698
700
|
}, _callee25);
|
|
699
701
|
})));
|
|
700
702
|
case 4:
|
|
701
|
-
taskList = container.childNodes[0].childNodes[1]; //Launch first task
|
|
703
|
+
taskList = container.childNodes[0].childNodes[1]; // Launch first task
|
|
702
704
|
_react.fireEvent.click(taskList.childNodes[3].childNodes[1].childNodes[0].childNodes[0], {});
|
|
703
705
|
|
|
704
|
-
//Fill first page and navigate
|
|
706
|
+
// Fill first page and navigate
|
|
705
707
|
newPage = container.childNodes[0].childNodes[0];
|
|
706
708
|
_react.fireEvent.change(newPage.childNodes[1].childNodes[0].childNodes[2].childNodes[0].childNodes[0].childNodes[1], {
|
|
707
709
|
target: {
|
|
@@ -723,18 +725,18 @@ describe('components', function () {
|
|
|
723
725
|
});
|
|
724
726
|
_react.fireEvent.click(newPage.childNodes[2].childNodes[0], {});
|
|
725
727
|
|
|
726
|
-
//Fill second page and navigate
|
|
728
|
+
// Fill second page and navigate
|
|
727
729
|
newPage = container.childNodes[0].childNodes[0];
|
|
728
730
|
_react.fireEvent.click(newPage.childNodes[1].childNodes[0].childNodes[2].childNodes[0].childNodes[0], {});
|
|
729
731
|
_react.fireEvent.click(newPage.childNodes[2].childNodes[0], {});
|
|
730
732
|
|
|
731
|
-
//Continue on from CYA page
|
|
733
|
+
// Continue on from CYA page
|
|
732
734
|
_react.fireEvent.click(container.childNodes[0].childNodes[0].childNodes[5].childNodes[0], {});
|
|
733
735
|
|
|
734
|
-
//Launch same task again
|
|
736
|
+
// Launch same task again
|
|
735
737
|
_react.fireEvent.click(container.childNodes[0].childNodes[1].childNodes[3].childNodes[1].childNodes[0].childNodes[0], {});
|
|
736
738
|
|
|
737
|
-
//Should be at CYA page
|
|
739
|
+
// Should be at CYA page
|
|
738
740
|
expect(container.childNodes[0].childNodes[0].childNodes[0].textContent).toEqual('Check your answers');
|
|
739
741
|
case 17:
|
|
740
742
|
case "end":
|
|
@@ -747,7 +749,7 @@ describe('components', function () {
|
|
|
747
749
|
return _regeneratorRuntime().wrap(function _callee28$(_context28) {
|
|
748
750
|
while (1) switch (_context28.prev = _context28.next) {
|
|
749
751
|
case 0:
|
|
750
|
-
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess
|
|
752
|
+
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess) {
|
|
751
753
|
onSuccess();
|
|
752
754
|
};
|
|
753
755
|
HOOKS = {
|
|
@@ -781,10 +783,10 @@ describe('components', function () {
|
|
|
781
783
|
}, _callee27);
|
|
782
784
|
})));
|
|
783
785
|
case 5:
|
|
784
|
-
taskList = container.childNodes[0].childNodes[1]; //Launch first task
|
|
786
|
+
taskList = container.childNodes[0].childNodes[1]; // Launch first task
|
|
785
787
|
_react.fireEvent.click(taskList.childNodes[3].childNodes[1].childNodes[0].childNodes[0], {});
|
|
786
788
|
|
|
787
|
-
//Should be at Event Mode page
|
|
789
|
+
// Should be at Event Mode page
|
|
788
790
|
expect(container.childNodes[0].childNodes[0].childNodes[0].textContent).toEqual('Event Mode');
|
|
789
791
|
case 8:
|
|
790
792
|
case "end":
|
|
@@ -797,7 +799,7 @@ describe('components', function () {
|
|
|
797
799
|
return _regeneratorRuntime().wrap(function _callee30$(_context30) {
|
|
798
800
|
while (1) switch (_context30.prev = _context30.next) {
|
|
799
801
|
case 0:
|
|
800
|
-
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess
|
|
802
|
+
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess) {
|
|
801
803
|
onSuccess();
|
|
802
804
|
};
|
|
803
805
|
HOOKS = {
|
|
@@ -918,7 +920,7 @@ describe('components', function () {
|
|
|
918
920
|
while (1) switch (_context34.prev = _context34.next) {
|
|
919
921
|
case 0:
|
|
920
922
|
ON_SUBMIT_CALLS = [];
|
|
921
|
-
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess
|
|
923
|
+
ON_SUBMIT = function ON_SUBMIT(type, payload, onSuccess) {
|
|
922
924
|
ON_SUBMIT_CALLS.push(payload);
|
|
923
925
|
onSuccess();
|
|
924
926
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
var _cyaAction = _interopRequireDefault(require("./cyaAction"));
|
|
8
8
|
var _navigate = _interopRequireDefault(require("./navigate"));
|
|
9
9
|
var _submissionError = _interopRequireDefault(require("./submissionError"));
|
|
@@ -13,6 +13,5 @@ var handlers = {
|
|
|
13
13
|
navigate: _navigate.default,
|
|
14
14
|
submissionError: _submissionError.default
|
|
15
15
|
};
|
|
16
|
-
exports.handlers = handlers;
|
|
17
16
|
var _default = handlers;
|
|
18
17
|
exports.default = _default;
|
|
@@ -13,38 +13,42 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
13
13
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
14
|
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); }
|
|
15
15
|
var parentComponents = ['radios', 'checkboxes'];
|
|
16
|
+
function getIdsToDelete(component, selectedValue) {
|
|
17
|
+
var _component$data, _component$data$optio;
|
|
18
|
+
var idsToDelete = [];
|
|
19
|
+
component === null || component === void 0 ? void 0 : (_component$data = component.data) === null || _component$data === void 0 ? void 0 : (_component$data$optio = _component$data.options) === null || _component$data$optio === void 0 ? void 0 : _component$data$optio.forEach(function (option) {
|
|
20
|
+
if (!(0, _optionIsSelected.default)(selectedValue, option) && option.nested) {
|
|
21
|
+
option.nested.forEach(function (nested) {
|
|
22
|
+
idsToDelete.push(nested.id);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return idsToDelete;
|
|
27
|
+
}
|
|
28
|
+
;
|
|
16
29
|
var cleanHiddenNestedData = function cleanHiddenNestedData(patch, page) {
|
|
17
30
|
page.components.forEach(function (component) {
|
|
18
31
|
if (!parentComponents.includes(component.type)) {
|
|
19
32
|
return;
|
|
20
33
|
}
|
|
21
|
-
var
|
|
34
|
+
var _patch = patch;
|
|
35
|
+
var idsToDelete = getIdsToDelete(component, _patch[component.id]);
|
|
22
36
|
idsToDelete.forEach(function (id) {
|
|
23
|
-
delete
|
|
37
|
+
delete _patch[id];
|
|
24
38
|
});
|
|
25
39
|
});
|
|
26
40
|
if (page.collection && patch[page.collection.name]) {
|
|
27
41
|
var _page$formData;
|
|
28
42
|
var activeId = patch["".concat(page.collection.name, "ActiveId")] || ((_page$formData = page.formData) === null || _page$formData === void 0 ? void 0 : _page$formData["".concat(page.collection.name, "ActiveId")]);
|
|
29
|
-
|
|
43
|
+
var _patch = patch;
|
|
44
|
+
_patch[page.collection.name] = _patch[page.collection.name].map(function (entry) {
|
|
30
45
|
return entry.id === activeId ? cleanHiddenNestedData(entry, _objectSpread(_objectSpread({}, page), {}, {
|
|
31
46
|
collection: undefined
|
|
32
47
|
})) : entry;
|
|
33
48
|
});
|
|
34
49
|
}
|
|
50
|
+
;
|
|
35
51
|
return patch;
|
|
36
52
|
};
|
|
37
|
-
function getIdsToDelete(component, selectedValue) {
|
|
38
|
-
var _component$data, _component$data$optio;
|
|
39
|
-
var idsToDelete = [];
|
|
40
|
-
component === null || component === void 0 ? void 0 : (_component$data = component.data) === null || _component$data === void 0 ? void 0 : (_component$data$optio = _component$data.options) === null || _component$data$optio === void 0 ? void 0 : _component$data$optio.forEach(function (option) {
|
|
41
|
-
if (!(0, _optionIsSelected.default)(selectedValue, option) && option.nested) {
|
|
42
|
-
option.nested.forEach(function (nested) {
|
|
43
|
-
idsToDelete.push(nested.id);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
return idsToDelete;
|
|
48
|
-
}
|
|
49
53
|
var _default = cleanHiddenNestedData;
|
|
50
54
|
exports.default = _default;
|