@ukhomeoffice/cop-react-form-renderer 4.79.0 → 4.80.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/CheckYourAnswers.js +15 -42
- package/dist/components/CollectionPage/CollectionPage.js +1 -1
- package/dist/components/FormComponent/Collection.js +7 -3
- package/dist/components/FormComponent/Container.js +9 -3
- package/dist/components/FormComponent/FormComponent.js +7 -3
- package/dist/components/FormPage/FormPage.js +3 -4
- package/dist/components/FormRenderer/FormRenderer.js +13 -7
- package/dist/components/PageActions/PageActions.js +1 -1
- package/dist/components/SummaryList/SummaryList.js +2 -2
- package/dist/components/SummaryList/SummaryList.test.js +30 -20
- package/dist/components/SummaryList/SummaryListRow.js +1 -1
- package/dist/components/TaskList/Task.js +1 -1
- package/dist/components/TaskList/TaskList.js +6 -4
- package/dist/context/ValidationContext/ValidationContext.test.js +1 -1
- package/dist/utils/Component/cleanAttributes.js +1 -1
- package/dist/utils/Component/getComponent.js +5 -1
- package/dist/utils/Component/wrapInFormGroup.js +1 -1
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _hooks = require("../../hooks");
|
|
12
|
+
var _models = require("../../models");
|
|
12
13
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
13
14
|
var _PageActions = _interopRequireDefault(require("../PageActions"));
|
|
14
15
|
var _SummaryList = _interopRequireDefault(require("../SummaryList"));
|
|
@@ -78,7 +79,7 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
78
79
|
var pagesWithMergedCollections = _utils.default.CollectionPage.mergePages(_pages);
|
|
79
80
|
var pagesWithRows = pagesWithMergedCollections.map(function (page, index) {
|
|
80
81
|
var rows = getRows(page, index);
|
|
81
|
-
return rows
|
|
82
|
+
return rows !== null && rows !== void 0 && rows.length ? _objectSpread(_objectSpread({}, page), {}, {
|
|
82
83
|
rows: rows
|
|
83
84
|
}) : null;
|
|
84
85
|
}).filter(function (p) {
|
|
@@ -92,17 +93,9 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
92
93
|
};
|
|
93
94
|
(0, _react.useEffect)(function () {
|
|
94
95
|
var groupsList = function groupsList() {
|
|
95
|
-
var groupIds =
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
groups.forEach(function (group) {
|
|
99
|
-
var groupedPageId = group.pageId;
|
|
100
|
-
groupIds.push(groupedPageId);
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
;
|
|
104
|
-
}
|
|
105
|
-
;
|
|
96
|
+
var groupIds = Array.isArray(groups) ? groups.map(function (group) {
|
|
97
|
+
return group.pageId;
|
|
98
|
+
}) : [];
|
|
106
99
|
setListOfGroups(groupIds);
|
|
107
100
|
};
|
|
108
101
|
groupsList();
|
|
@@ -127,19 +120,13 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
127
120
|
if (override) {
|
|
128
121
|
return override;
|
|
129
122
|
}
|
|
130
|
-
;
|
|
131
123
|
var isGroup = function isGroup(pageId) {
|
|
132
124
|
return listOfGroups.includes(pageId);
|
|
133
125
|
};
|
|
134
126
|
var getGroupForPage = function getGroupForPage(pageId) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
return group.pageId === pageId;
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
;
|
|
142
|
-
return groupAnswer;
|
|
127
|
+
return groups === null || groups === void 0 ? void 0 : groups.find(function (group) {
|
|
128
|
+
return group.pageId === pageId;
|
|
129
|
+
});
|
|
143
130
|
};
|
|
144
131
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
145
132
|
className: DEFAULT_CLASS
|
|
@@ -147,7 +134,7 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
147
134
|
key: "heading"
|
|
148
135
|
}, title), errors && errors.length > 0 && /*#__PURE__*/_react.default.createElement(_copReactComponents.ErrorSummary, {
|
|
149
136
|
errors: errors
|
|
150
|
-
}), type ===
|
|
137
|
+
}), type === _models.FormTypes.TASK_CYA && pages.length > 0 && sections && sections.map(function (section) {
|
|
151
138
|
return section.tasks.map(function (task) {
|
|
152
139
|
var filterPages = pages.filter(function (page) {
|
|
153
140
|
return task.pages.some(function (p) {
|
|
@@ -157,12 +144,7 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
157
144
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h3", {
|
|
158
145
|
className: "govuk-heading-m govuk-!-margin-top-8 govuk-!-margin-bottom-0"
|
|
159
146
|
}, filterPages.length > 0 && task.name), filterPages.map(function (page, pageIndex) {
|
|
160
|
-
var hideActionButtons;
|
|
161
|
-
if (isGroup(page.id)) {
|
|
162
|
-
hideActionButtons = true;
|
|
163
|
-
} else {
|
|
164
|
-
hideActionButtons = noChangeAction;
|
|
165
|
-
}
|
|
147
|
+
var hideActionButtons = isGroup(page.id) || noChangeAction;
|
|
166
148
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
167
149
|
key: pageIndex
|
|
168
150
|
}, !hide_page_titles && page.title && !isGroup(page.id) && /*#__PURE__*/_react.default.createElement("h4", {
|
|
@@ -176,20 +158,11 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
176
158
|
}));
|
|
177
159
|
}));
|
|
178
160
|
});
|
|
179
|
-
}), type !==
|
|
161
|
+
}), type !== _models.FormTypes.TASK_CYA && pages && pages.map(function (page, pageIndex, array) {
|
|
180
162
|
var pageMarginBottom = isLastPage(pageIndex) || isGroup(array[pageIndex].id) || isGroup(array[pageIndex + 1].id) ? DEFAULT_MARGIN_BOTTOM : listMarginBottom;
|
|
181
|
-
var currentGroup;
|
|
182
|
-
if (isGroup(page.id)) {
|
|
183
|
-
currentGroup = getGroupForPage(page.id);
|
|
184
|
-
}
|
|
185
|
-
;
|
|
163
|
+
var currentGroup = isGroup(page.id) ? getGroupForPage(page.id) : undefined;
|
|
186
164
|
var className = "govuk-!-margin-bottom-".concat(pageMarginBottom);
|
|
187
|
-
var hideActionButtons;
|
|
188
|
-
if (isGroup(page.id)) {
|
|
189
|
-
hideActionButtons = true;
|
|
190
|
-
} else {
|
|
191
|
-
hideActionButtons = noChangeAction;
|
|
192
|
-
}
|
|
165
|
+
var hideActionButtons = isGroup(page.id) || noChangeAction;
|
|
193
166
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
194
167
|
key: pageIndex
|
|
195
168
|
}, !hide_page_titles && page.title && !isGroup(page.id) && /*#__PURE__*/_react.default.createElement(_copReactComponents.MediumHeading, null, _utils.default.interpolateString(page.title, page.formData)), isGroup(page.id) && /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -211,7 +184,7 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
211
184
|
};
|
|
212
185
|
CheckYourAnswers.propTypes = {
|
|
213
186
|
actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string])),
|
|
214
|
-
groups: _propTypes.default.shape(
|
|
187
|
+
groups: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
215
188
|
hide_actions: _propTypes.default.bool,
|
|
216
189
|
hide_page_titles: _propTypes.default.bool,
|
|
217
190
|
hide_title: _propTypes.default.bool,
|
|
@@ -224,7 +197,7 @@ CheckYourAnswers.propTypes = {
|
|
|
224
197
|
name: _propTypes.default.string.isRequired,
|
|
225
198
|
tasks: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
226
199
|
name: _propTypes.default.string.isRequired,
|
|
227
|
-
pages: _propTypes.default.
|
|
200
|
+
pages: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
228
201
|
state: _propTypes.default.string.isRequired
|
|
229
202
|
})).isRequired
|
|
230
203
|
})),
|
|
@@ -109,7 +109,7 @@ CollectionPage.propTypes = {
|
|
|
109
109
|
name: _propTypes.default.string.isRequired
|
|
110
110
|
}).isRequired,
|
|
111
111
|
components: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object])).isRequired,
|
|
112
|
-
actions: _propTypes.default.shape(
|
|
112
|
+
actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({}), _propTypes.default.string])),
|
|
113
113
|
formData: _propTypes.default.shape({}).isRequired
|
|
114
114
|
}).isRequired,
|
|
115
115
|
onAction: _propTypes.default.func.isRequired,
|
|
@@ -150,7 +150,7 @@ var Collection = function Collection(_ref) {
|
|
|
150
150
|
full_path: fullPath,
|
|
151
151
|
components: config.item.map(function (component) {
|
|
152
152
|
return _objectSpread(_objectSpread({}, component), {}, {
|
|
153
|
-
readonly: config.readonly
|
|
153
|
+
readonly: !!(config !== null && config !== void 0 && config.readonly || component.readonly),
|
|
154
154
|
label: _utils.default.interpolateString(component.label, _objectSpread(_objectSpread({}, item), {}, {
|
|
155
155
|
index: labelCount
|
|
156
156
|
})),
|
|
@@ -192,7 +192,7 @@ Collection.propTypes = {
|
|
|
192
192
|
add: _propTypes.default.string,
|
|
193
193
|
remove: _propTypes.default.string
|
|
194
194
|
}),
|
|
195
|
-
minimumEntries: _propTypes.default.
|
|
195
|
+
minimumEntries: _propTypes.default.number,
|
|
196
196
|
readonly: _propTypes.default.bool,
|
|
197
197
|
removeLocation: _propTypes.default.string,
|
|
198
198
|
required: _propTypes.default.bool
|
|
@@ -200,7 +200,11 @@ Collection.propTypes = {
|
|
|
200
200
|
formData: _propTypes.default.shape({}),
|
|
201
201
|
onChange: _propTypes.default.func,
|
|
202
202
|
onTopLevelChange: _propTypes.default.func,
|
|
203
|
-
value: _propTypes.default.
|
|
203
|
+
value: _propTypes.default.oneOfType([_propTypes.default.node,
|
|
204
|
+
// not included in node
|
|
205
|
+
_propTypes.default.shape({
|
|
206
|
+
id: _propTypes.default.string
|
|
207
|
+
}), _propTypes.default.arrayOf(_propTypes.default.shape({}))]),
|
|
204
208
|
wrap: _propTypes.default.bool
|
|
205
209
|
};
|
|
206
210
|
Collection.defaultProps = {
|
|
@@ -9,6 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _models = require("../../models");
|
|
11
11
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
12
|
+
var _cleanAttributes = _interopRequireDefault(require("../../utils/Component/cleanAttributes"));
|
|
12
13
|
var _FormComponent = _interopRequireDefault(require("./FormComponent"));
|
|
13
14
|
var _excluded = ["container", "value", "formData", "onChange", "wrap", "onTopLevelChange"];
|
|
14
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -60,7 +61,8 @@ var Container = function Container(_ref) {
|
|
|
60
61
|
}), formData);
|
|
61
62
|
};
|
|
62
63
|
var classes = _utils.default.classBuilder(DEFAULT_CLASS, [], container.className);
|
|
63
|
-
|
|
64
|
+
var htmlAttrs = (0, _cleanAttributes.default)(attrs);
|
|
65
|
+
return /*#__PURE__*/_react.default.createElement("div", _extends({}, htmlAttrs, {
|
|
64
66
|
className: classes(),
|
|
65
67
|
id: container.id
|
|
66
68
|
}), container.components && container.components.filter(shouldShow).map(function (component, index) {
|
|
@@ -72,7 +74,7 @@ var Container = function Container(_ref) {
|
|
|
72
74
|
}, attrs, {
|
|
73
75
|
component: _objectSpread(_objectSpread({}, component), {}, {
|
|
74
76
|
full_path: fullPath,
|
|
75
|
-
readonly: container.readonly
|
|
77
|
+
readonly: !!(container.readonly || component.readonly)
|
|
76
78
|
}),
|
|
77
79
|
formData: formData,
|
|
78
80
|
value: val || defaultValue,
|
|
@@ -98,7 +100,11 @@ Container.propTypes = {
|
|
|
98
100
|
fullPath: _propTypes.default.string,
|
|
99
101
|
onChange: _propTypes.default.func,
|
|
100
102
|
onTopLevelChange: _propTypes.default.func,
|
|
101
|
-
value: _propTypes.default.
|
|
103
|
+
value: _propTypes.default.oneOfType([_propTypes.default.node,
|
|
104
|
+
// not included in node
|
|
105
|
+
_propTypes.default.shape({
|
|
106
|
+
id: _propTypes.default.string
|
|
107
|
+
}), _propTypes.default.arrayOf(_propTypes.default.shape({}))]),
|
|
102
108
|
wrap: _propTypes.default.bool
|
|
103
109
|
};
|
|
104
110
|
Container.defaultProps = {
|
|
@@ -132,9 +132,9 @@ var FormComponent = function FormComponent(_ref) {
|
|
|
132
132
|
};
|
|
133
133
|
FormComponent.propTypes = {
|
|
134
134
|
component: _propTypes.default.shape({
|
|
135
|
-
additionalValidation: _propTypes.default.shape(
|
|
135
|
+
additionalValidation: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
136
136
|
allowMultiple: _propTypes.default.bool,
|
|
137
|
-
content: _propTypes.default.
|
|
137
|
+
content: _propTypes.default.string,
|
|
138
138
|
cya_label: _propTypes.default.string,
|
|
139
139
|
data: _propTypes.default.shape({
|
|
140
140
|
options: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object])),
|
|
@@ -149,7 +149,11 @@ FormComponent.propTypes = {
|
|
|
149
149
|
suffix: _propTypes.default.string,
|
|
150
150
|
type: _propTypes.default.string
|
|
151
151
|
}).isRequired,
|
|
152
|
-
value: _propTypes.default.
|
|
152
|
+
value: _propTypes.default.oneOfType([_propTypes.default.node,
|
|
153
|
+
// not included in node
|
|
154
|
+
_propTypes.default.shape({
|
|
155
|
+
id: _propTypes.default.string
|
|
156
|
+
}), _propTypes.default.arrayOf(_propTypes.default.shape({}))]),
|
|
153
157
|
formData: _propTypes.default.shape({}),
|
|
154
158
|
wrap: _propTypes.default.bool,
|
|
155
159
|
onChange: _propTypes.default.func,
|
|
@@ -69,7 +69,6 @@ var FormPage = function FormPage(_ref) {
|
|
|
69
69
|
if (typeof onChange === 'function') {
|
|
70
70
|
onChange(page.formData);
|
|
71
71
|
}
|
|
72
|
-
;
|
|
73
72
|
};
|
|
74
73
|
(0, _react.useEffect)(function () {
|
|
75
74
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -115,7 +114,7 @@ FormPage.propTypes = {
|
|
|
115
114
|
classBlock: _propTypes.default.string,
|
|
116
115
|
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
117
116
|
className: _propTypes.default.string,
|
|
118
|
-
hashLink: _propTypes.default.
|
|
117
|
+
hashLink: _propTypes.default.bool,
|
|
119
118
|
onAction: _propTypes.default.func.isRequired,
|
|
120
119
|
// If passed in, this function will override the default
|
|
121
120
|
// onPageChange functionality. Useful for anything that
|
|
@@ -127,7 +126,7 @@ FormPage.propTypes = {
|
|
|
127
126
|
id: _propTypes.default.string.isRequired,
|
|
128
127
|
title: _propTypes.default.string,
|
|
129
128
|
components: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({})])).isRequired,
|
|
130
|
-
actions: _propTypes.default.shape(
|
|
129
|
+
actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({}), _propTypes.default.string])),
|
|
131
130
|
formData: _propTypes.default.shape({}).isRequired
|
|
132
131
|
}).isRequired
|
|
133
132
|
};
|
|
@@ -135,7 +134,7 @@ FormPage.defaultProps = {
|
|
|
135
134
|
classBlock: DEFAULT_CLASS,
|
|
136
135
|
classModifiers: [],
|
|
137
136
|
className: '',
|
|
138
|
-
hashLink:
|
|
137
|
+
hashLink: false,
|
|
139
138
|
onChange: undefined,
|
|
140
139
|
onTopLevelChange: undefined,
|
|
141
140
|
onWrapperChange: undefined
|
|
@@ -22,10 +22,13 @@ var _onCYAAction = _interopRequireDefault(require("./onCYAAction"));
|
|
|
22
22
|
var _onPageAction = _interopRequireDefault(require("./onPageAction"));
|
|
23
23
|
var _onTaskAction2 = _interopRequireDefault(require("./onTaskAction"));
|
|
24
24
|
require("./FormRenderer.scss");
|
|
25
|
+
var _excluded = ["noTaskCYAs", "nonSequential"];
|
|
25
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
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); }
|
|
27
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; }
|
|
28
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; }
|
|
29
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; }
|
|
30
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; }
|
|
31
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; }
|
|
@@ -218,8 +221,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
218
221
|
setPagePoint(undefined);
|
|
219
222
|
// In case of refresh the current task needs to be reset
|
|
220
223
|
hooks.onFormLoad(function (currentTask) {
|
|
221
|
-
|
|
222
|
-
setCurrentTask(task);
|
|
224
|
+
setCurrentTask(currentTask);
|
|
223
225
|
});
|
|
224
226
|
}, [hooks]);
|
|
225
227
|
(0, _react.useEffect)(function () {
|
|
@@ -227,7 +229,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
227
229
|
}, [_hub]);
|
|
228
230
|
|
|
229
231
|
// Calling setData directly within the hooks.onSubmit success handler
|
|
230
|
-
// resulted in a
|
|
232
|
+
// resulted in a synchronisation error. Handling it in a useEffect appears
|
|
231
233
|
// to be the way to deal with this... and it certainly seems to work.
|
|
232
234
|
(0, _react.useEffect)(function () {
|
|
233
235
|
if (submitted !== null && submitted !== void 0 && submitted.data) {
|
|
@@ -302,7 +304,6 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
302
304
|
});
|
|
303
305
|
});
|
|
304
306
|
}
|
|
305
|
-
;
|
|
306
307
|
if (page) {
|
|
307
308
|
_handlers.default.cyaAction(page, pageId, onPageChange);
|
|
308
309
|
}
|
|
@@ -312,6 +313,11 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
312
313
|
var currentCYA = cya;
|
|
313
314
|
currentCYA.actions = [_models.PageAction.TYPES.SAVE_AND_CONTINUE, _models.PageAction.TYPES.SAVE_AND_RETURN];
|
|
314
315
|
}
|
|
316
|
+
|
|
317
|
+
// filter out invalid attribs
|
|
318
|
+
var _noCYA = hubDetails.noTaskCYAs,
|
|
319
|
+
_nonSeq = hubDetails.nonSequential,
|
|
320
|
+
taskDetails = _objectWithoutProperties(hubDetails, _excluded);
|
|
315
321
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
316
322
|
className: classes()
|
|
317
323
|
}, title && !hideTitle && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
|
|
@@ -331,7 +337,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
331
337
|
noGroupAction: (_formState$cya$hideGr = formState.cya.hideGroupActions) !== null && _formState$cya$hideGr !== void 0 ? _formState$cya$hideGr : false,
|
|
332
338
|
sections: typeof hubDetails !== 'undefined' ? hubDetails.sections : [],
|
|
333
339
|
type: type
|
|
334
|
-
})), 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, {
|
|
335
341
|
refNumber: data.businessKey,
|
|
336
342
|
onTaskAction: function onTaskAction(task) {
|
|
337
343
|
(0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
|
|
@@ -357,7 +363,7 @@ var propTypes = {
|
|
|
357
363
|
className: _propTypes.default.string,
|
|
358
364
|
components: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
|
|
359
365
|
cya: _propTypes.default.shape({
|
|
360
|
-
actions: _propTypes.default.shape(
|
|
366
|
+
actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({}), _propTypes.default.string]))
|
|
361
367
|
}),
|
|
362
368
|
data: _propTypes.default.shape({
|
|
363
369
|
formStatus: _propTypes.default.shape({
|
|
@@ -369,7 +375,7 @@ var propTypes = {
|
|
|
369
375
|
hooks: _propTypes.default.shape({}),
|
|
370
376
|
hub: _propTypes.default.shape({
|
|
371
377
|
nonSequential: _propTypes.default.bool,
|
|
372
|
-
sections: _propTypes.default.shape(
|
|
378
|
+
sections: _propTypes.default.arrayOf(_propTypes.default.shape({}))
|
|
373
379
|
}),
|
|
374
380
|
newPageId: _propTypes.default.string,
|
|
375
381
|
noChangeAction: _propTypes.default.bool,
|
|
@@ -28,7 +28,7 @@ var PageActions = function PageActions(_ref) {
|
|
|
28
28
|
}));
|
|
29
29
|
};
|
|
30
30
|
PageActions.propTypes = {
|
|
31
|
-
actions: _propTypes.default.shape(
|
|
31
|
+
actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({}), _propTypes.default.string])).isRequired,
|
|
32
32
|
onAction: _propTypes.default.func.isRequired
|
|
33
33
|
};
|
|
34
34
|
var _default = PageActions;
|
|
@@ -34,7 +34,7 @@ var SummaryList = function SummaryList(_ref) {
|
|
|
34
34
|
var rowActions = rows.filter(function (r) {
|
|
35
35
|
return !!r.action;
|
|
36
36
|
});
|
|
37
|
-
groupActionRow = rowActions
|
|
37
|
+
groupActionRow = rowActions !== null && rowActions !== void 0 && rowActions.length ? rowActions[0] : null;
|
|
38
38
|
}
|
|
39
39
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
40
40
|
className: "group-of-rows"
|
|
@@ -90,7 +90,7 @@ SummaryList.propTypes = {
|
|
|
90
90
|
fieldId: _propTypes.default.string.isRequired,
|
|
91
91
|
full_path: _propTypes.default.string,
|
|
92
92
|
key: _propTypes.default.string.isRequired,
|
|
93
|
-
value: _propTypes.default.
|
|
93
|
+
value: _propTypes.default.node,
|
|
94
94
|
action: _propTypes.default.shape({
|
|
95
95
|
page: _propTypes.default.string,
|
|
96
96
|
label: _propTypes.default.string,
|
|
@@ -83,19 +83,20 @@ describe('components', function () {
|
|
|
83
83
|
it('should handle rows with no actions and string values', function () {
|
|
84
84
|
var ID = 'test-id';
|
|
85
85
|
var ROWS = [{
|
|
86
|
+
key: 'a',
|
|
86
87
|
pageId: 'p1',
|
|
87
88
|
fieldId: 'a',
|
|
88
|
-
key: 'Alpha',
|
|
89
89
|
value: 'Alpha value'
|
|
90
90
|
}, {
|
|
91
|
+
key: 'b',
|
|
91
92
|
pageId: 'p2',
|
|
92
93
|
fieldId: 'b',
|
|
93
|
-
key: 'Bravo',
|
|
94
94
|
value: 'Bravo value'
|
|
95
95
|
}];
|
|
96
96
|
var _render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_SummaryList.default, {
|
|
97
97
|
"data-testid": ID,
|
|
98
|
-
rows: ROWS
|
|
98
|
+
rows: ROWS,
|
|
99
|
+
noGroupAction: true
|
|
99
100
|
})),
|
|
100
101
|
container = _render2.container;
|
|
101
102
|
var summaryList = checkSummaryList(container, ID);
|
|
@@ -114,19 +115,19 @@ describe('components', function () {
|
|
|
114
115
|
it('should handle title rows', function () {
|
|
115
116
|
var ID = 'test-id';
|
|
116
117
|
var ROWS = [{
|
|
118
|
+
key: 'Title',
|
|
117
119
|
pageId: 'p1',
|
|
118
120
|
fieldId: 'a',
|
|
119
|
-
type: 'title'
|
|
120
|
-
key: 'Title'
|
|
121
|
+
type: 'title'
|
|
121
122
|
}, {
|
|
123
|
+
key: 'b',
|
|
122
124
|
pageId: 'p1',
|
|
123
|
-
fieldId: '
|
|
124
|
-
key: 'Alpha',
|
|
125
|
+
fieldId: 'b',
|
|
125
126
|
value: 'Alpha value'
|
|
126
127
|
}, {
|
|
128
|
+
key: 'c',
|
|
127
129
|
pageId: 'p2',
|
|
128
|
-
fieldId: '
|
|
129
|
-
key: 'Bravo',
|
|
130
|
+
fieldId: 'c',
|
|
130
131
|
value: 'Bravo value'
|
|
131
132
|
}];
|
|
132
133
|
var _render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_SummaryList.default, {
|
|
@@ -161,6 +162,7 @@ describe('components', function () {
|
|
|
161
162
|
it('should handle action rows', function () {
|
|
162
163
|
var ID = 'test-id';
|
|
163
164
|
var ROWS = [{
|
|
165
|
+
key: 'a',
|
|
164
166
|
pageId: 'p1',
|
|
165
167
|
fieldId: 'a',
|
|
166
168
|
type: 'action',
|
|
@@ -168,6 +170,7 @@ describe('components', function () {
|
|
|
168
170
|
label: 'Do action'
|
|
169
171
|
}
|
|
170
172
|
}, {
|
|
173
|
+
key: 'b',
|
|
171
174
|
pageId: 'p2',
|
|
172
175
|
fieldId: 'b',
|
|
173
176
|
type: 'action',
|
|
@@ -175,6 +178,7 @@ describe('components', function () {
|
|
|
175
178
|
label: 'Do action'
|
|
176
179
|
}
|
|
177
180
|
}, {
|
|
181
|
+
key: 'c',
|
|
178
182
|
pageId: 'p3',
|
|
179
183
|
fieldId: 'c',
|
|
180
184
|
type: 'action',
|
|
@@ -200,6 +204,7 @@ describe('components', function () {
|
|
|
200
204
|
it('should hide actions rows if flag is given', function () {
|
|
201
205
|
var ID = 'test-id';
|
|
202
206
|
var ROWS = [{
|
|
207
|
+
key: 'a',
|
|
203
208
|
pageId: 'p1',
|
|
204
209
|
fieldId: 'a',
|
|
205
210
|
type: 'action',
|
|
@@ -207,6 +212,7 @@ describe('components', function () {
|
|
|
207
212
|
label: 'Do action'
|
|
208
213
|
}
|
|
209
214
|
}, {
|
|
215
|
+
key: 'b',
|
|
210
216
|
pageId: 'p2',
|
|
211
217
|
fieldId: 'b',
|
|
212
218
|
type: 'action',
|
|
@@ -214,6 +220,7 @@ describe('components', function () {
|
|
|
214
220
|
label: 'Do action'
|
|
215
221
|
}
|
|
216
222
|
}, {
|
|
223
|
+
key: 'c',
|
|
217
224
|
pageId: 'p3',
|
|
218
225
|
fieldId: 'c',
|
|
219
226
|
type: 'action',
|
|
@@ -234,14 +241,14 @@ describe('components', function () {
|
|
|
234
241
|
var ID = 'test-id';
|
|
235
242
|
var VALUES = ['Alpha component value', 'Bravo component value'];
|
|
236
243
|
var ROWS = [{
|
|
244
|
+
key: 'a',
|
|
237
245
|
pageId: 'p1',
|
|
238
246
|
fieldId: 'a',
|
|
239
|
-
key: 'Alpha',
|
|
240
247
|
value: /*#__PURE__*/_react2.default.createElement("div", null, VALUES[0])
|
|
241
248
|
}, {
|
|
249
|
+
key: 'b',
|
|
242
250
|
pageId: 'p2',
|
|
243
251
|
fieldId: 'b',
|
|
244
|
-
key: 'Bravo',
|
|
245
252
|
value: /*#__PURE__*/_react2.default.createElement("div", null, VALUES[1])
|
|
246
253
|
}];
|
|
247
254
|
var _render6 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_SummaryList.default, {
|
|
@@ -272,18 +279,18 @@ describe('components', function () {
|
|
|
272
279
|
ON_ACTION_CALLS.push(row);
|
|
273
280
|
};
|
|
274
281
|
var ROWS = [{
|
|
282
|
+
key: 'a',
|
|
275
283
|
pageId: 'p1',
|
|
276
284
|
fieldId: 'a',
|
|
277
|
-
key: 'Alpha',
|
|
278
285
|
value: 'Alpha value',
|
|
279
286
|
action: {
|
|
280
287
|
label: 'Change A',
|
|
281
288
|
onAction: ON_ACTION
|
|
282
289
|
}
|
|
283
290
|
}, {
|
|
291
|
+
key: 'b',
|
|
284
292
|
pageId: 'p2',
|
|
285
293
|
fieldId: 'b',
|
|
286
|
-
key: 'Bravo',
|
|
287
294
|
value: 'Bravo value',
|
|
288
295
|
action: {
|
|
289
296
|
label: 'Change B',
|
|
@@ -316,14 +323,14 @@ describe('components', function () {
|
|
|
316
323
|
var ID = 'test-id';
|
|
317
324
|
var VALUES = ['Alpha component value', 'Bravo component value'];
|
|
318
325
|
var ROWS = [{
|
|
326
|
+
key: 'a',
|
|
319
327
|
pageId: 'p1',
|
|
320
328
|
fieldId: 'a',
|
|
321
|
-
key: 'Alpha',
|
|
322
329
|
value: /*#__PURE__*/_react2.default.createElement("div", null, VALUES[0])
|
|
323
330
|
}, {
|
|
331
|
+
key: 'b',
|
|
324
332
|
pageId: 'p2',
|
|
325
333
|
fieldId: 'b',
|
|
326
|
-
key: 'Bravo',
|
|
327
334
|
value: /*#__PURE__*/_react2.default.createElement("div", null, VALUES[1])
|
|
328
335
|
}];
|
|
329
336
|
var _render8 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_SummaryList.default, {
|
|
@@ -346,24 +353,27 @@ describe('components', function () {
|
|
|
346
353
|
expect(valueDiv.textContent).toEqual(VALUES[index]);
|
|
347
354
|
});
|
|
348
355
|
});
|
|
349
|
-
it('should render groups of rows
|
|
356
|
+
it('should render groups of rows correctly', function () {
|
|
350
357
|
var ID = 'test-id';
|
|
351
358
|
var VALUES = ['Alpha component value', 'Bravo component value', 'Charlie component value'];
|
|
352
359
|
var ISGROUP = true;
|
|
353
360
|
var ROWS = [{
|
|
361
|
+
key: 'a',
|
|
354
362
|
pageId: 'p1',
|
|
355
363
|
fieldId: 'a',
|
|
356
|
-
|
|
357
|
-
|
|
364
|
+
value: /*#__PURE__*/_react2.default.createElement("div", null, VALUES[0]),
|
|
365
|
+
action: {
|
|
366
|
+
label: 'action'
|
|
367
|
+
}
|
|
358
368
|
}, {
|
|
369
|
+
key: 'b',
|
|
359
370
|
pageId: 'p1',
|
|
360
371
|
fieldId: 'b',
|
|
361
|
-
key: 'Bravo',
|
|
362
372
|
value: /*#__PURE__*/_react2.default.createElement("div", null, VALUES[1])
|
|
363
373
|
}, {
|
|
374
|
+
key: 'c',
|
|
364
375
|
pageId: 'p1',
|
|
365
376
|
fieldId: 'c',
|
|
366
|
-
key: 'Charlie',
|
|
367
377
|
value: /*#__PURE__*/_react2.default.createElement("div", null, VALUES[2])
|
|
368
378
|
}];
|
|
369
379
|
var _render9 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_SummaryList.default, {
|
|
@@ -33,7 +33,7 @@ SummaryListRow.propTypes = {
|
|
|
33
33
|
row: _propTypes.default.shape({
|
|
34
34
|
key: _propTypes.default.string.isRequired,
|
|
35
35
|
required: _propTypes.default.bool,
|
|
36
|
-
value: _propTypes.default.
|
|
36
|
+
value: _propTypes.default.node,
|
|
37
37
|
action: _propTypes.default.shape({
|
|
38
38
|
page: _propTypes.default.string,
|
|
39
39
|
label: _propTypes.default.string,
|
|
@@ -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.arrayOf(_propTypes.default.string).isRequired,
|
|
63
63
|
state: _propTypes.default.string,
|
|
64
64
|
displayName: _propTypes.default.string
|
|
65
65
|
}).isRequired,
|
|
@@ -127,14 +127,14 @@ TaskList.propTypes = {
|
|
|
127
127
|
text: _propTypes.default.string
|
|
128
128
|
}),
|
|
129
129
|
onTaskAction: _propTypes.default.func,
|
|
130
|
-
refTitle: _propTypes.default.string
|
|
131
|
-
refNumber: _propTypes.default.string
|
|
130
|
+
refTitle: _propTypes.default.string,
|
|
131
|
+
refNumber: _propTypes.default.string,
|
|
132
132
|
sections: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
133
133
|
name: _propTypes.default.string.isRequired,
|
|
134
134
|
label: _propTypes.default.string,
|
|
135
135
|
tasks: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
136
136
|
name: _propTypes.default.string.isRequired,
|
|
137
|
-
pages: _propTypes.default.
|
|
137
|
+
pages: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
138
138
|
state: _propTypes.default.string,
|
|
139
139
|
displayName: _propTypes.default.string
|
|
140
140
|
})).isRequired
|
|
@@ -149,7 +149,9 @@ TaskList.defaultProps = {
|
|
|
149
149
|
id: '',
|
|
150
150
|
incompleteTitle: DEFAULT_INCOMPLETE_TITLE,
|
|
151
151
|
onTaskAction: undefined,
|
|
152
|
-
notes:
|
|
152
|
+
notes: {},
|
|
153
|
+
refTitle: undefined,
|
|
154
|
+
refNumber: undefined
|
|
153
155
|
};
|
|
154
156
|
var _default = TaskList;
|
|
155
157
|
exports.default = _default;
|
|
@@ -77,7 +77,7 @@ describe('context.ValidationContext', function () {
|
|
|
77
77
|
})));
|
|
78
78
|
});
|
|
79
79
|
TestComponent.propTypes = {
|
|
80
|
-
customErrors: _propTypes.default.shape(
|
|
80
|
+
customErrors: _propTypes.default.arrayOf(_propTypes.default.shape({}))
|
|
81
81
|
};
|
|
82
82
|
TestComponent.defaultProps = {
|
|
83
83
|
customErrors: null
|
|
@@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
10
10
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
11
11
|
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); }
|
|
12
12
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
13
|
-
var JSON_ONLY_PROPERTIES = ['source', 'use', 'show_when', 'options', 'additionalValidation', 'full_path', 'formData'];
|
|
13
|
+
var JSON_ONLY_PROPERTIES = ['source', 'use', 'show_when', 'options', 'additionalValidation', 'full_path', 'fullPath', 'formData'];
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* This method removes and properties that are entirely specific to the JSON
|
|
@@ -22,6 +22,7 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
22
22
|
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); }
|
|
23
23
|
var LIST_CLASS = 'govuk-list';
|
|
24
24
|
var BODY_CLASS = 'govuk-body';
|
|
25
|
+
var INPUT_CLASS = 'govuk-input';
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
28
|
* Separate function for each component type for the sake of
|
|
@@ -158,7 +159,10 @@ var getTextArea = function getTextArea(config) {
|
|
|
158
159
|
};
|
|
159
160
|
var getTextInput = function getTextInput(config) {
|
|
160
161
|
var attrs = (0, _cleanAttributes.default)(config);
|
|
161
|
-
|
|
162
|
+
var classes = _copReactComponents.Utils.classBuilder(INPUT_CLASS, attrs.fixedWidth ? [attrs.fixedWidth] : [], attrs.fluidWidth ? [attrs.fluidWidth] : undefined);
|
|
163
|
+
return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextInput, _extends({}, attrs, {
|
|
164
|
+
className: classes()
|
|
165
|
+
}));
|
|
162
166
|
};
|
|
163
167
|
var getTime = function getTime(config) {
|
|
164
168
|
var attrs = (0, _cleanAttributes.default)(config);
|
|
@@ -10,7 +10,7 @@ var _cleanAttributes = _interopRequireDefault(require("./cleanAttributes"));
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
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); }
|
|
12
12
|
var wrapInFormGroup = function wrapInFormGroup(config, children) {
|
|
13
|
-
var attrs = (0, _cleanAttributes.default)(config, ['fieldId', 'displayMenu']);
|
|
13
|
+
var attrs = (0, _cleanAttributes.default)(config, ['fieldId', 'displayMenu', 'showCharacterCount']);
|
|
14
14
|
return /*#__PURE__*/_react.default.createElement(_copReactComponents.FormGroup, _extends({}, attrs, {
|
|
15
15
|
onChange: null
|
|
16
16
|
}), children);
|