@ukhomeoffice/cop-react-form-renderer 4.73.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/handlers/navigate.js +3 -1
- 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 +28 -9
- package/dist/components/FormRenderer/onPageAction.test.js +54 -18
- 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 +2 -1
- package/dist/utils/Operate/persistValueInFormData.js +1 -0
- package/dist/utils/Operate/persistValueInFormData.test.js +1 -1
- package/dist/utils/Operate/setValueInFormData.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
|
@@ -15,29 +15,32 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
|
|
|
15
15
|
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); }
|
|
16
16
|
var onTaskAction = function onTaskAction(currentTask, pages, setCurrentTask, hubDetails, data, onPageChange, FormPages) {
|
|
17
17
|
if (currentTask) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
var task = currentTask;
|
|
19
|
+
task.fullPages = [];
|
|
20
|
+
task.pages.forEach(function (page) {
|
|
21
|
+
task.fullPages.push(_helpers.default.getPage(page, pages));
|
|
21
22
|
});
|
|
22
23
|
setCurrentTask(currentTask);
|
|
23
|
-
var state = _objectSpread({},
|
|
24
|
-
if (
|
|
24
|
+
var state = _objectSpread({}, task);
|
|
25
|
+
if (task.state === _models.TaskStates.TYPES.COMPLETE) {
|
|
25
26
|
if (hubDetails !== null && hubDetails !== void 0 && hubDetails.noTaskCYAs) {
|
|
26
27
|
// If the task is complete and there are no CYA's then show user first page
|
|
28
|
+
/* eslint-disable prefer-destructuring */
|
|
27
29
|
var currentPage = data.formStatus.tasks[currentTask.name].currentPage;
|
|
28
|
-
onPageChange(
|
|
29
|
-
} else if (
|
|
30
|
-
onPageChange(
|
|
30
|
+
onPageChange(task.pages[0] || currentPage);
|
|
31
|
+
} else if (task.customCYA) {
|
|
32
|
+
onPageChange(task.customCYA);
|
|
31
33
|
} else {
|
|
32
34
|
onPageChange(FormPages.CYA, state);
|
|
33
35
|
}
|
|
34
|
-
} else if (
|
|
36
|
+
} else if (task.state === _models.TaskStates.TYPES.IN_PROGRESS) {
|
|
35
37
|
var _currentPage = data.formStatus.tasks[currentTask.name].currentPage;
|
|
38
|
+
/* eslint-enable prefer-destructuring */
|
|
36
39
|
onPageChange(_currentPage || currentTask.pages[0], state);
|
|
37
|
-
} else if (
|
|
40
|
+
} else if (task.firstPage) {
|
|
38
41
|
onPageChange(currentTask.firstPage, state);
|
|
39
42
|
} else {
|
|
40
|
-
onPageChange(
|
|
43
|
+
onPageChange(task.pages[0], state);
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
};
|
|
@@ -37,8 +37,5 @@ ActionButton.propTypes = {
|
|
|
37
37
|
action: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]).isRequired,
|
|
38
38
|
onAction: _propTypes.default.func.isRequired
|
|
39
39
|
};
|
|
40
|
-
ActionButton.defaultProps = {
|
|
41
|
-
action: ''
|
|
42
|
-
};
|
|
43
40
|
var _default = ActionButton;
|
|
44
41
|
exports.default = _default;
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _ActionButton = _interopRequireDefault(require("./ActionButton"));
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
12
|
// Global imports
|
|
@@ -28,7 +28,7 @@ var PageActions = function PageActions(_ref) {
|
|
|
28
28
|
}));
|
|
29
29
|
};
|
|
30
30
|
PageActions.propTypes = {
|
|
31
|
-
actions: _propTypes.default.
|
|
31
|
+
actions: _propTypes.default.shape([]).isRequired,
|
|
32
32
|
onAction: _propTypes.default.func.isRequired
|
|
33
33
|
};
|
|
34
34
|
var _default = PageActions;
|
|
@@ -79,28 +79,33 @@ var SummaryList = function SummaryList(_ref) {
|
|
|
79
79
|
}))));
|
|
80
80
|
};
|
|
81
81
|
SummaryList.propTypes = {
|
|
82
|
+
classBlock: _propTypes.default.string,
|
|
83
|
+
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
84
|
+
className: _propTypes.default.string,
|
|
85
|
+
isGroup: _propTypes.default.bool,
|
|
86
|
+
noChangeAction: _propTypes.default.bool,
|
|
87
|
+
noGroupAction: _propTypes.default.bool,
|
|
82
88
|
rows: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
83
89
|
pageId: _propTypes.default.string.isRequired,
|
|
84
90
|
fieldId: _propTypes.default.string.isRequired,
|
|
85
91
|
full_path: _propTypes.default.string,
|
|
86
92
|
key: _propTypes.default.string.isRequired,
|
|
87
|
-
value: _propTypes.default.
|
|
93
|
+
value: _propTypes.default.string,
|
|
88
94
|
action: _propTypes.default.shape({
|
|
89
95
|
page: _propTypes.default.string,
|
|
90
96
|
label: _propTypes.default.string,
|
|
91
97
|
aria_suffix: _propTypes.default.string,
|
|
92
98
|
onAction: _propTypes.default.func
|
|
93
99
|
})
|
|
94
|
-
})).isRequired
|
|
95
|
-
noChangeAction: _propTypes.default.bool,
|
|
96
|
-
isGroup: _propTypes.default.bool,
|
|
97
|
-
classBlock: _propTypes.default.string,
|
|
98
|
-
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
99
|
-
className: _propTypes.default.string
|
|
100
|
+
})).isRequired
|
|
100
101
|
};
|
|
101
102
|
SummaryList.defaultProps = {
|
|
102
103
|
classBlock: DEFAULT_CLASS,
|
|
103
|
-
|
|
104
|
+
classModifiers: [],
|
|
105
|
+
className: '',
|
|
106
|
+
isGroup: false,
|
|
107
|
+
noChangeAction: false,
|
|
108
|
+
noGroupAction: false
|
|
104
109
|
};
|
|
105
110
|
var _default = SummaryList;
|
|
106
111
|
exports.default = _default;
|
|
@@ -19,8 +19,12 @@ var SummaryListHeadingRow = function SummaryListHeadingRow(_ref) {
|
|
|
19
19
|
}, size === 's' && /*#__PURE__*/_react.default.createElement(_copReactComponents.SmallHeading, null, title), size === 'm' && /*#__PURE__*/_react.default.createElement(_copReactComponents.MediumHeading, null, title));
|
|
20
20
|
};
|
|
21
21
|
SummaryListHeadingRow.propTypes = {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
classes: _propTypes.default.func.isRequired,
|
|
23
|
+
size: _propTypes.default.string,
|
|
24
|
+
title: _propTypes.default.string.isRequired
|
|
25
|
+
};
|
|
26
|
+
SummaryListHeadingRow.defaultProps = {
|
|
27
|
+
size: 'm'
|
|
24
28
|
};
|
|
25
29
|
var _default = SummaryListHeadingRow;
|
|
26
30
|
exports.default = _default;
|
|
@@ -29,10 +29,11 @@ var SummaryListRow = function SummaryListRow(_ref) {
|
|
|
29
29
|
})));
|
|
30
30
|
};
|
|
31
31
|
SummaryListRow.propTypes = {
|
|
32
|
+
classes: _propTypes.default.func.isRequired,
|
|
32
33
|
row: _propTypes.default.shape({
|
|
33
34
|
key: _propTypes.default.string.isRequired,
|
|
34
35
|
required: _propTypes.default.bool,
|
|
35
|
-
value: _propTypes.default.
|
|
36
|
+
value: _propTypes.default.string,
|
|
36
37
|
action: _propTypes.default.shape({
|
|
37
38
|
page: _propTypes.default.string,
|
|
38
39
|
label: _propTypes.default.string,
|
|
@@ -40,8 +41,10 @@ SummaryListRow.propTypes = {
|
|
|
40
41
|
onAction: _propTypes.default.func
|
|
41
42
|
})
|
|
42
43
|
}).isRequired,
|
|
43
|
-
classes: _propTypes.default.func.isRequired,
|
|
44
44
|
showAction: _propTypes.default.bool
|
|
45
45
|
};
|
|
46
|
+
SummaryListRow.defaultProps = {
|
|
47
|
+
showAction: false
|
|
48
|
+
};
|
|
46
49
|
var _default = SummaryListRow;
|
|
47
50
|
exports.default = _default;
|
|
@@ -59,7 +59,7 @@ var Task = function Task(_ref) {
|
|
|
59
59
|
Task.propTypes = {
|
|
60
60
|
task: _propTypes.default.shape({
|
|
61
61
|
name: _propTypes.default.string.isRequired,
|
|
62
|
-
pages: _propTypes.default.
|
|
62
|
+
pages: _propTypes.default.shape([]).isRequired,
|
|
63
63
|
state: _propTypes.default.string,
|
|
64
64
|
displayName: _propTypes.default.string
|
|
65
65
|
}).isRequired,
|
|
@@ -46,7 +46,7 @@ var TaskList = function TaskList(_ref) {
|
|
|
46
46
|
attrs = _objectWithoutProperties(_ref, _excluded);
|
|
47
47
|
var classes = _copReactComponents.Utils.classBuilder(classBlock, classModifiers, className);
|
|
48
48
|
|
|
49
|
-
//TODO state will be retrieved from a document in S3 rather than given in the component definition, covered under COP-9885
|
|
49
|
+
// TODO state will be retrieved from a document in S3 rather than given in the component definition, covered under COP-9885
|
|
50
50
|
var _sections$filter$redu = sections.filter(function (section) {
|
|
51
51
|
return !section.skipped;
|
|
52
52
|
}).reduce(function (acc, current) {
|
|
@@ -61,7 +61,7 @@ var TaskList = function TaskList(_ref) {
|
|
|
61
61
|
completeSections = _sections$filter$redu2[0],
|
|
62
62
|
totalSections = _sections$filter$redu2[1];
|
|
63
63
|
var notesId = "".concat(id, "Notes");
|
|
64
|
-
var _ref2 = notes
|
|
64
|
+
var _ref2 = notes && notes || {},
|
|
65
65
|
notesTitle = _ref2.title,
|
|
66
66
|
notesText = _ref2.text;
|
|
67
67
|
var onClick = function onClick(task) {
|
|
@@ -115,32 +115,41 @@ var TaskList = function TaskList(_ref) {
|
|
|
115
115
|
}));
|
|
116
116
|
};
|
|
117
117
|
TaskList.propTypes = {
|
|
118
|
+
classBlock: _propTypes.default.string,
|
|
119
|
+
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
120
|
+
className: _propTypes.default.string,
|
|
121
|
+
fieldId: _propTypes.default.string,
|
|
122
|
+
formData: _propTypes.default.shape({}),
|
|
118
123
|
id: _propTypes.default.string,
|
|
119
|
-
|
|
120
|
-
refNumber: _propTypes.default.string,
|
|
124
|
+
incompleteTitle: _propTypes.default.string,
|
|
121
125
|
notes: _propTypes.default.shape({
|
|
122
126
|
title: _propTypes.default.string,
|
|
123
127
|
text: _propTypes.default.string
|
|
124
128
|
}),
|
|
125
|
-
|
|
129
|
+
onTaskAction: _propTypes.default.func,
|
|
130
|
+
refTitle: _propTypes.default.string.isRequired,
|
|
131
|
+
refNumber: _propTypes.default.string.isRequired,
|
|
126
132
|
sections: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
127
133
|
name: _propTypes.default.string.isRequired,
|
|
128
134
|
label: _propTypes.default.string,
|
|
129
135
|
tasks: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
130
136
|
name: _propTypes.default.string.isRequired,
|
|
131
|
-
pages: _propTypes.default.
|
|
137
|
+
pages: _propTypes.default.shape([]).isRequired,
|
|
132
138
|
state: _propTypes.default.string,
|
|
133
139
|
displayName: _propTypes.default.string
|
|
134
140
|
})).isRequired
|
|
135
|
-
})).isRequired
|
|
136
|
-
classBlock: _propTypes.default.string,
|
|
137
|
-
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
138
|
-
className: _propTypes.default.string,
|
|
139
|
-
formData: _propTypes.default.shape({})
|
|
141
|
+
})).isRequired
|
|
140
142
|
};
|
|
141
143
|
TaskList.defaultProps = {
|
|
142
144
|
classBlock: DEFAULT_CLASS,
|
|
143
|
-
|
|
145
|
+
classModifiers: [],
|
|
146
|
+
className: '',
|
|
147
|
+
fieldId: '',
|
|
148
|
+
formData: {},
|
|
149
|
+
id: '',
|
|
150
|
+
incompleteTitle: DEFAULT_INCOMPLETE_TITLE,
|
|
151
|
+
onTaskAction: undefined,
|
|
152
|
+
notes: ''
|
|
144
153
|
};
|
|
145
154
|
var _default = TaskList;
|
|
146
155
|
exports.default = _default;
|
|
@@ -9,9 +9,9 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
10
10
|
var _models = require("../../models");
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
//Global Imports
|
|
12
|
+
// Global Imports
|
|
13
13
|
|
|
14
|
-
//Local imports
|
|
14
|
+
// Local imports
|
|
15
15
|
|
|
16
16
|
var DEFAULT_CLASS = 'hods-task-list';
|
|
17
17
|
exports.DEFAULT_CLASS = DEFAULT_CLASS;
|
package/dist/components/index.js
CHANGED
|
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "CheckYourAnswers", {
|
|
|
9
9
|
return _CheckYourAnswers.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "Container", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _Container.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "FormComponent", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function get() {
|
|
@@ -39,6 +45,7 @@ Object.defineProperty(exports, "SummaryList", {
|
|
|
39
45
|
return _SummaryList.default;
|
|
40
46
|
}
|
|
41
47
|
});
|
|
48
|
+
var _Container = _interopRequireDefault(require("./FormComponent/Container"));
|
|
42
49
|
var _CheckYourAnswers = _interopRequireDefault(require("./CheckYourAnswers"));
|
|
43
50
|
var _FormComponent = _interopRequireDefault(require("./FormComponent"));
|
|
44
51
|
var _FormPage = _interopRequireDefault(require("./FormPage"));
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.HooksContext = exports.ALLOWED_HOOKS = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
11
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
12
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
13
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -87,4 +89,34 @@ var HooksContextProvider = function HooksContextProvider(_ref) {
|
|
|
87
89
|
}, children);
|
|
88
90
|
};
|
|
89
91
|
var _default = HooksContextProvider;
|
|
90
|
-
exports.default = _default;
|
|
92
|
+
exports.default = _default;
|
|
93
|
+
HooksContextProvider.propTypes = {
|
|
94
|
+
children: _propTypes.default.node,
|
|
95
|
+
overrides: _propTypes.default.shape({
|
|
96
|
+
onCancel: _propTypes.default.func,
|
|
97
|
+
onChange: _propTypes.default.func,
|
|
98
|
+
onFormComplete: _propTypes.default.func,
|
|
99
|
+
onFormLoad: _propTypes.default.func,
|
|
100
|
+
onGetComponent: _propTypes.default.func,
|
|
101
|
+
onGetCYA: _propTypes.default.func,
|
|
102
|
+
onGoingBack: _propTypes.default.func,
|
|
103
|
+
onPageChange: _propTypes.default.func,
|
|
104
|
+
onRequest: _propTypes.default.func,
|
|
105
|
+
onSubmit: _propTypes.default.func
|
|
106
|
+
})
|
|
107
|
+
};
|
|
108
|
+
HooksContextProvider.defaultProps = {
|
|
109
|
+
children: null,
|
|
110
|
+
overrides: {
|
|
111
|
+
onCancel: undefined,
|
|
112
|
+
onChange: undefined,
|
|
113
|
+
onFormComplete: undefined,
|
|
114
|
+
onFormLoad: undefined,
|
|
115
|
+
onGetComponent: undefined,
|
|
116
|
+
onGetCYA: undefined,
|
|
117
|
+
onGoingBack: undefined,
|
|
118
|
+
onPageChange: undefined,
|
|
119
|
+
onRequest: undefined,
|
|
120
|
+
onSubmit: undefined
|
|
121
|
+
}
|
|
122
|
+
};
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.ValidationContext = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
10
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
12
|
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); }
|
|
@@ -87,4 +88,10 @@ var ValidationContextProvider = function ValidationContextProvider(_ref) {
|
|
|
87
88
|
}, children);
|
|
88
89
|
};
|
|
89
90
|
var _default = ValidationContextProvider;
|
|
90
|
-
exports.default = _default;
|
|
91
|
+
exports.default = _default;
|
|
92
|
+
ValidationContextProvider.propTypes = {
|
|
93
|
+
children: _propTypes.default.node
|
|
94
|
+
};
|
|
95
|
+
ValidationContextProvider.defaultProps = {
|
|
96
|
+
children: null
|
|
97
|
+
};
|
|
@@ -4,6 +4,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
4
4
|
var _react = require("@testing-library/react");
|
|
5
5
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
6
6
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
7
8
|
var _hooks = require("../../hooks");
|
|
8
9
|
var _ValidationContext = _interopRequireDefault(require("./ValidationContext"));
|
|
9
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -23,7 +24,6 @@ var TestComponent = function TestComponent(_ref) {
|
|
|
23
24
|
if (customErrors) {
|
|
24
25
|
addErrors(customErrors);
|
|
25
26
|
}
|
|
26
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
27
27
|
}, [customErrors]);
|
|
28
28
|
return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, typeof addErrors === 'function' && /*#__PURE__*/_react2.default.createElement("span", null, "addErrors is a function"), typeof clearErrors === 'function' && /*#__PURE__*/_react2.default.createElement("span", null, "clearErrors is a function"), typeof validate.page === 'function' && /*#__PURE__*/_react2.default.createElement("span", null, "validate.page is a function"), Array.isArray(errors) && /*#__PURE__*/_react2.default.createElement("span", null, "errors is an array of length ", errors.length), (errors === null || errors === void 0 ? void 0 : errors.length) > 0 && /*#__PURE__*/_react2.default.createElement(_copReactComponents.ErrorSummary, {
|
|
29
29
|
errors: errors
|
|
@@ -74,4 +74,10 @@ describe('context.ValidationContext', function () {
|
|
|
74
74
|
}
|
|
75
75
|
}, _callee2);
|
|
76
76
|
})));
|
|
77
|
-
});
|
|
77
|
+
});
|
|
78
|
+
TestComponent.propTypes = {
|
|
79
|
+
customErrors: _propTypes.default.shape([])
|
|
80
|
+
};
|
|
81
|
+
TestComponent.defaultProps = {
|
|
82
|
+
customErrors: null
|
|
83
|
+
};
|
|
@@ -22,9 +22,10 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
22
22
|
var cache = {};
|
|
23
23
|
var errorCache = {};
|
|
24
24
|
var clearCache = function clearCache(cacheObject) {
|
|
25
|
-
var
|
|
25
|
+
var cachedObject = cacheObject;
|
|
26
|
+
var keys = Object.keys(cachedObject);
|
|
26
27
|
keys.forEach(function (key) {
|
|
27
|
-
delete
|
|
28
|
+
delete cachedObject[key];
|
|
28
29
|
});
|
|
29
30
|
};
|
|
30
31
|
var clear = function clear() {
|
package/dist/hooks/useRefData.js
CHANGED
|
@@ -28,6 +28,7 @@ exports.STATUS_LOADING = STATUS_LOADING;
|
|
|
28
28
|
var STATUS_COMPLETE = 'complete';
|
|
29
29
|
exports.STATUS_COMPLETE = STATUS_COMPLETE;
|
|
30
30
|
var getRefDataUrl = function getRefDataUrl(component) {
|
|
31
|
+
// eslint-disable-next-line prefer-destructuring
|
|
31
32
|
var data = component.data;
|
|
32
33
|
if (data && !data.options) {
|
|
33
34
|
return _copReactComponents.Utils.interpolateString(data.url, component.formData);
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,12 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
Object.defineProperty(exports, "Container", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _components.Container;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
7
13
|
Object.defineProperty(exports, "FormComponent", {
|
|
8
14
|
enumerable: true,
|
|
9
15
|
get: function get() {
|
|
@@ -29,12 +29,12 @@ var getPageFromCYALink = function getPageFromCYALink(link) {
|
|
|
29
29
|
* - `href: '/bravo'` => `page: 'bravo'`
|
|
30
30
|
*/
|
|
31
31
|
var getCYAAction = function getCYAAction(readonly, page, onAction) {
|
|
32
|
-
var
|
|
33
|
-
if (readonly !== true &&
|
|
32
|
+
var cyaLink = page === null || page === void 0 ? void 0 : page.cya_link;
|
|
33
|
+
if (readonly !== true && cyaLink) {
|
|
34
34
|
return {
|
|
35
|
-
page: getPageFromCYALink(
|
|
36
|
-
label:
|
|
37
|
-
aria_suffix:
|
|
35
|
+
page: getPageFromCYALink(cyaLink) || page.id || '#',
|
|
36
|
+
label: cyaLink.label || 'Change',
|
|
37
|
+
aria_suffix: cyaLink.aria_suffix,
|
|
38
38
|
onAction: onAction
|
|
39
39
|
};
|
|
40
40
|
}
|
|
@@ -7,9 +7,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
7
7
|
describe('utils', function () {
|
|
8
8
|
describe('CheckYourAnswers', function () {
|
|
9
9
|
describe('getCYAAction', function () {
|
|
10
|
-
var getPage = function getPage(
|
|
10
|
+
var getPage = function getPage(cyaLink, id) {
|
|
11
11
|
return {
|
|
12
|
-
cya_link:
|
|
12
|
+
cya_link: cyaLink,
|
|
13
13
|
id: id
|
|
14
14
|
};
|
|
15
15
|
};
|
|
@@ -20,100 +20,100 @@ describe('utils', function () {
|
|
|
20
20
|
expect((0, _getCYAAction.default)(false, null, function () {})).toBeNull();
|
|
21
21
|
});
|
|
22
22
|
it('should return a default action if the cya_link is empty and the page has no id', function () {
|
|
23
|
-
var
|
|
24
|
-
var
|
|
25
|
-
expect((0, _getCYAAction.default)(false, getPage(
|
|
23
|
+
var cyaLink = {};
|
|
24
|
+
var onAction = function onAction() {};
|
|
25
|
+
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
26
26
|
page: '#',
|
|
27
27
|
label: 'Change',
|
|
28
|
-
onAction:
|
|
28
|
+
onAction: onAction
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
31
|
it('should return a default action if the cya_link is empty but the page has an id', function () {
|
|
32
32
|
var PAGE_ID = 'page-id';
|
|
33
|
-
var
|
|
34
|
-
var
|
|
35
|
-
expect((0, _getCYAAction.default)(false, getPage(
|
|
33
|
+
var cyaLink = {};
|
|
34
|
+
var onAction = function onAction() {};
|
|
35
|
+
expect((0, _getCYAAction.default)(false, getPage(cyaLink, PAGE_ID), onAction)).toEqual({
|
|
36
36
|
page: PAGE_ID,
|
|
37
37
|
label: 'Change',
|
|
38
|
-
onAction:
|
|
38
|
+
onAction: onAction
|
|
39
39
|
});
|
|
40
40
|
});
|
|
41
41
|
it('should use page specified in cya_link', function () {
|
|
42
42
|
var PAGE = 'alpha';
|
|
43
|
-
var
|
|
43
|
+
var cyaLink = {
|
|
44
44
|
page: PAGE
|
|
45
45
|
};
|
|
46
|
-
var
|
|
47
|
-
expect((0, _getCYAAction.default)(false, getPage(
|
|
46
|
+
var onAction = function onAction() {};
|
|
47
|
+
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
48
48
|
page: PAGE,
|
|
49
49
|
label: 'Change',
|
|
50
|
-
onAction:
|
|
50
|
+
onAction: onAction
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
53
|
it('should convert an href specified in cya_link', function () {
|
|
54
54
|
var HREF = '/alpha/bravo';
|
|
55
|
-
var
|
|
55
|
+
var cyaLink = {
|
|
56
56
|
href: HREF
|
|
57
57
|
};
|
|
58
|
-
var
|
|
59
|
-
expect((0, _getCYAAction.default)(false, getPage(
|
|
58
|
+
var onAction = function onAction() {};
|
|
59
|
+
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
60
60
|
page: 'bravo',
|
|
61
61
|
label: 'Change',
|
|
62
|
-
onAction:
|
|
62
|
+
onAction: onAction
|
|
63
63
|
});
|
|
64
64
|
});
|
|
65
65
|
it('should convert a url specified in cya_link', function () {
|
|
66
66
|
var URL = '/alpha/bravo';
|
|
67
|
-
var
|
|
67
|
+
var cyaLink = {
|
|
68
68
|
url: URL
|
|
69
69
|
};
|
|
70
|
-
var
|
|
71
|
-
expect((0, _getCYAAction.default)(false, getPage(
|
|
70
|
+
var onAction = function onAction() {};
|
|
71
|
+
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
72
72
|
page: 'bravo',
|
|
73
73
|
label: 'Change',
|
|
74
|
-
onAction:
|
|
74
|
+
onAction: onAction
|
|
75
75
|
});
|
|
76
76
|
});
|
|
77
77
|
it('should use label specified in cya_link', function () {
|
|
78
78
|
var LABEL = 'Alpha Bravo Charlie';
|
|
79
|
-
var
|
|
79
|
+
var cyaLink = {
|
|
80
80
|
label: LABEL
|
|
81
81
|
};
|
|
82
|
-
var
|
|
83
|
-
expect((0, _getCYAAction.default)(false, getPage(
|
|
82
|
+
var onAction = function onAction() {};
|
|
83
|
+
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
84
84
|
page: '#',
|
|
85
85
|
label: LABEL,
|
|
86
|
-
onAction:
|
|
86
|
+
onAction: onAction
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
89
|
it('should use aria_suffix specified in cya_link', function () {
|
|
90
90
|
var ARIA_SUFFIX = 'This is hidden text';
|
|
91
|
-
var
|
|
91
|
+
var cyaLink = {
|
|
92
92
|
aria_suffix: ARIA_SUFFIX
|
|
93
93
|
};
|
|
94
|
-
var
|
|
95
|
-
expect((0, _getCYAAction.default)(false, getPage(
|
|
94
|
+
var onAction = function onAction() {};
|
|
95
|
+
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
96
96
|
page: '#',
|
|
97
97
|
label: 'Change',
|
|
98
98
|
aria_suffix: ARIA_SUFFIX,
|
|
99
|
-
onAction:
|
|
99
|
+
onAction: onAction
|
|
100
100
|
});
|
|
101
101
|
});
|
|
102
102
|
it('should use all properties specified in cya_link', function () {
|
|
103
103
|
var PAGE = 'alpha';
|
|
104
104
|
var LABEL = 'Alpha Bravo Charlie';
|
|
105
105
|
var ARIA_SUFFIX = 'This is hidden text';
|
|
106
|
-
var
|
|
106
|
+
var cyaLink = {
|
|
107
107
|
label: LABEL,
|
|
108
108
|
page: PAGE,
|
|
109
109
|
aria_suffix: ARIA_SUFFIX
|
|
110
110
|
};
|
|
111
|
-
var
|
|
112
|
-
expect((0, _getCYAAction.default)(false, getPage(
|
|
111
|
+
var onAction = function onAction() {};
|
|
112
|
+
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
113
113
|
page: PAGE,
|
|
114
114
|
label: LABEL,
|
|
115
115
|
aria_suffix: ARIA_SUFFIX,
|
|
116
|
-
onAction:
|
|
116
|
+
onAction: onAction
|
|
117
117
|
});
|
|
118
118
|
});
|
|
119
119
|
});
|
|
@@ -21,7 +21,8 @@ var getCYACollectionChangeAction = function getCYACollectionChangeAction(page, i
|
|
|
21
21
|
type: 'action',
|
|
22
22
|
action: {
|
|
23
23
|
onAction: function onAction(row) {
|
|
24
|
-
var changeCallback = function changeCallback(
|
|
24
|
+
var changeCallback = function changeCallback(cyaData) {
|
|
25
|
+
var data = cyaData;
|
|
25
26
|
data["".concat(page.collection.name, "ActiveId")] = item.id;
|
|
26
27
|
return data;
|
|
27
28
|
};
|
|
@@ -32,9 +32,9 @@ describe('utils', function () {
|
|
|
32
32
|
collectionNameActiveId: 3
|
|
33
33
|
};
|
|
34
34
|
it('should change activeId to the selected item and call onAction with the correct page', function () {
|
|
35
|
-
var ON_ACTION = function ON_ACTION(row,
|
|
35
|
+
var ON_ACTION = function ON_ACTION(row, callback) {
|
|
36
36
|
expect(row.id).toEqual(2);
|
|
37
|
-
TEST_DATA =
|
|
37
|
+
TEST_DATA = callback(TEST_DATA);
|
|
38
38
|
};
|
|
39
39
|
var action = (0, _getCYACollectionChangeAction.default)(PAGE, ITEM, ON_ACTION, 0, {});
|
|
40
40
|
action.action.onAction(PAGE);
|
|
@@ -58,9 +58,9 @@ describe('utils', function () {
|
|
|
58
58
|
}]
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
|
-
var ON_ACTION = function ON_ACTION(page,
|
|
61
|
+
var ON_ACTION = function ON_ACTION(page, callback) {
|
|
62
62
|
expect(page.pageId).toEqual('confirmDelete');
|
|
63
|
-
TEST_DATA =
|
|
63
|
+
TEST_DATA = callback(TEST_DATA);
|
|
64
64
|
};
|
|
65
65
|
var action = (0, _getCYACollectionChangeAction.default)(PAGE_WITH_CUSTOM_DESTINATION, ITEM, ON_ACTION, 0, PAGE_WITH_CUSTOM_DESTINATION.collection.actions[0]);
|
|
66
66
|
action.action.onAction({});
|
|
@@ -21,7 +21,8 @@ var getCYACollectionDeleteAction = function getCYACollectionDeleteAction(page, i
|
|
|
21
21
|
type: 'action',
|
|
22
22
|
action: {
|
|
23
23
|
onAction: function onAction() {
|
|
24
|
-
var deleteCallback = function deleteCallback(
|
|
24
|
+
var deleteCallback = function deleteCallback(cyaData) {
|
|
25
|
+
var data = cyaData;
|
|
25
26
|
data["".concat(page.collection.name)] = data["".concat(page.collection.name)].filter(function (i) {
|
|
26
27
|
return i.id !== item.id;
|
|
27
28
|
});
|
|
@@ -35,8 +35,8 @@ describe('utils', function () {
|
|
|
35
35
|
};
|
|
36
36
|
it('should remove selected item from the form data', function () {
|
|
37
37
|
var data = null;
|
|
38
|
-
var ON_ACTION = function ON_ACTION(_,
|
|
39
|
-
data =
|
|
38
|
+
var ON_ACTION = function ON_ACTION(_, callback) {
|
|
39
|
+
data = callback(TEST_DATA);
|
|
40
40
|
};
|
|
41
41
|
var action = (0, _getCYACollectionDeleteAction.default)(PAGE, ITEM, ON_ACTION, 0, {});
|
|
42
42
|
action.action.onAction();
|