@ukhomeoffice/cop-react-form-renderer 5.81.2 → 5.82.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.
|
@@ -352,6 +352,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
352
352
|
onTaskAction: function onTaskAction(task) {
|
|
353
353
|
(0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
|
|
354
354
|
},
|
|
355
|
+
annotations: (hubDetails === null || hubDetails === void 0 ? void 0 : hubDetails.taskListAnnotations) || [],
|
|
355
356
|
formData: data
|
|
356
357
|
})), formState.page && !formState.cya && !formState.page.collection && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
|
|
357
358
|
page: formState.page,
|
|
@@ -12,7 +12,7 @@ var _models = require("../../models");
|
|
|
12
12
|
var _Task = _interopRequireDefault(require("./Task"));
|
|
13
13
|
var _showComponent = _interopRequireDefault(require("../../utils/Component/showComponent"));
|
|
14
14
|
require("./TaskList.scss");
|
|
15
|
-
var _excluded = ["id", "refTitle", "refNumber", "notes", "incompleteTitle", "sections", "fieldId", "onTaskAction", "classBlock", "classModifiers", "className", "formData"];
|
|
15
|
+
var _excluded = ["id", "refTitle", "refNumber", "notes", "incompleteTitle", "sections", "fieldId", "onTaskAction", "classBlock", "classModifiers", "className", "formData", "annotations"];
|
|
16
16
|
/* eslint-disable import/no-duplicates */
|
|
17
17
|
// Global Imports
|
|
18
18
|
// Local Imports
|
|
@@ -43,6 +43,7 @@ var TaskList = function TaskList(_ref) {
|
|
|
43
43
|
classModifiers = _ref.classModifiers,
|
|
44
44
|
className = _ref.className,
|
|
45
45
|
formData = _ref.formData,
|
|
46
|
+
annotations = _ref.annotations,
|
|
46
47
|
attrs = _objectWithoutProperties(_ref, _excluded);
|
|
47
48
|
var classes = _copReactComponents.Utils.classBuilder(classBlock, classModifiers, className);
|
|
48
49
|
var cleanedHtmlAttrs = _copReactComponents.Utils.cleanHtmlAttributes(attrs);
|
|
@@ -78,7 +79,15 @@ var TaskList = function TaskList(_ref) {
|
|
|
78
79
|
className: "tasklist-summary"
|
|
79
80
|
}, "".concat(refTitle))), /*#__PURE__*/_react.default.createElement("p", {
|
|
80
81
|
className: "govuk-body govuk-!-font-weight-regular"
|
|
81
|
-
}, "".concat(refNumber))),
|
|
82
|
+
}, "".concat(refNumber))), annotations.length > 0 && annotations.map(function (annotation) {
|
|
83
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
84
|
+
className: classes('annotation')
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
86
|
+
className: "".concat(classes('annotation-key'), " govuk-body")
|
|
87
|
+
}, _copReactComponents.Utils.interpolateString(annotation.key, formData)), /*#__PURE__*/_react.default.createElement("p", {
|
|
88
|
+
className: "".concat(classes('annotation-value'), " govuk-body")
|
|
89
|
+
}, _copReactComponents.Utils.interpolateString(annotation.value, formData)));
|
|
90
|
+
}), totalSections !== completeSections && /*#__PURE__*/_react.default.createElement("p", {
|
|
82
91
|
className: "govuk-body govuk-!-margin-bottom-0"
|
|
83
92
|
}, /*#__PURE__*/_react.default.createElement("strong", {
|
|
84
93
|
className: "tasklist-summary"
|
|
@@ -139,7 +148,11 @@ TaskList.propTypes = {
|
|
|
139
148
|
firstPage: _propTypes.default.string,
|
|
140
149
|
alwaysShowFirstPage: _propTypes.default.bool
|
|
141
150
|
})).isRequired
|
|
142
|
-
})).isRequired
|
|
151
|
+
})).isRequired,
|
|
152
|
+
annotations: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
153
|
+
key: _propTypes.default.string,
|
|
154
|
+
value: _propTypes.default.string
|
|
155
|
+
}))
|
|
143
156
|
};
|
|
144
157
|
TaskList.defaultProps = {
|
|
145
158
|
classBlock: DEFAULT_CLASS,
|
|
@@ -152,6 +165,7 @@ TaskList.defaultProps = {
|
|
|
152
165
|
notes: {},
|
|
153
166
|
onTaskAction: undefined,
|
|
154
167
|
refNumber: undefined,
|
|
155
|
-
refTitle: undefined
|
|
168
|
+
refTitle: undefined,
|
|
169
|
+
annotations: []
|
|
156
170
|
};
|
|
157
171
|
var _default = exports.default = TaskList;
|
|
@@ -58,6 +58,26 @@
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
.hods-task-list__annotation {
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-flow: row wrap;
|
|
64
|
+
margin-bottom: govuk-spacing(2);
|
|
65
|
+
|
|
66
|
+
.hods-task-list__annotation-key {
|
|
67
|
+
font-weight: bold;
|
|
68
|
+
margin-top: 0;
|
|
69
|
+
margin-bottom: 0;
|
|
70
|
+
margin-right: govuk-spacing(1)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.hods-task-list__annotation-value {
|
|
74
|
+
font-weight: normal;
|
|
75
|
+
margin-top: 0;
|
|
76
|
+
margin-bottom: 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
}
|
|
80
|
+
|
|
61
81
|
.hods-task-list__task-name {
|
|
62
82
|
display: block;
|
|
63
83
|
cursor: auto;
|
|
@@ -101,6 +101,73 @@ describe('components', function () {
|
|
|
101
101
|
expect(subSectionTwoLabel.textContent).toEqual('This is the label for your extra tasks');
|
|
102
102
|
expect(subSectionTwoList.childNodes.length).toEqual(3);
|
|
103
103
|
});
|
|
104
|
+
it('should render any provided annotations', function () {
|
|
105
|
+
var COP_REF = '123';
|
|
106
|
+
var REF_TITLE = 'COP reference number';
|
|
107
|
+
var sections = [{
|
|
108
|
+
name: 'These are your tasks',
|
|
109
|
+
label: 'This is the label for your first tasks',
|
|
110
|
+
tasks: [{
|
|
111
|
+
name: 'Nice task',
|
|
112
|
+
state: 'complete',
|
|
113
|
+
pages: ['pageOne']
|
|
114
|
+
}, {
|
|
115
|
+
name: 'Ok task',
|
|
116
|
+
state: 'inProgress',
|
|
117
|
+
pages: ['pageTwo']
|
|
118
|
+
}, {
|
|
119
|
+
name: 'Terrible task',
|
|
120
|
+
state: 'notStarted',
|
|
121
|
+
pages: ['pageThree']
|
|
122
|
+
}]
|
|
123
|
+
}, {
|
|
124
|
+
name: 'These are your extra bonus tasks',
|
|
125
|
+
label: 'This is the label for your extra tasks',
|
|
126
|
+
tasks: [{
|
|
127
|
+
name: 'Nice task',
|
|
128
|
+
state: 'complete',
|
|
129
|
+
pages: ['pageFour']
|
|
130
|
+
}, {
|
|
131
|
+
name: 'Ok task',
|
|
132
|
+
state: 'cannotStartYet',
|
|
133
|
+
pages: ['pageFive']
|
|
134
|
+
}, {
|
|
135
|
+
name: 'Terrible task',
|
|
136
|
+
state: 'cannotStartYet',
|
|
137
|
+
pages: ['pageSix']
|
|
138
|
+
}]
|
|
139
|
+
}];
|
|
140
|
+
var FORM_DATA = {
|
|
141
|
+
port: {
|
|
142
|
+
name: 'Heathrow Airport'
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
var ANNOTATIONS = [{
|
|
146
|
+
key: 'Port',
|
|
147
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
148
|
+
value: '${port.name}'
|
|
149
|
+
}];
|
|
150
|
+
var _render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
151
|
+
refNumber: COP_REF,
|
|
152
|
+
refTitle: REF_TITLE,
|
|
153
|
+
sections: sections,
|
|
154
|
+
annotations: ANNOTATIONS,
|
|
155
|
+
formData: FORM_DATA
|
|
156
|
+
})),
|
|
157
|
+
container = _render2.container;
|
|
158
|
+
var childNodes = container.childNodes;
|
|
159
|
+
expect(childNodes.length).toEqual(1);
|
|
160
|
+
expect(childNodes[0].childNodes.length).toEqual(11);
|
|
161
|
+
var annotation = childNodes[0].childNodes[2];
|
|
162
|
+
expect(annotation.children[0]).toMatchObject({
|
|
163
|
+
tagName: 'P',
|
|
164
|
+
textContent: 'Port'
|
|
165
|
+
});
|
|
166
|
+
expect(annotation.childNodes[1]).toMatchObject({
|
|
167
|
+
tagName: 'P',
|
|
168
|
+
textContent: 'Heathrow Airport'
|
|
169
|
+
});
|
|
170
|
+
});
|
|
104
171
|
it('should not show incomplete title if form is complete', function () {
|
|
105
172
|
var COP_REF = '123';
|
|
106
173
|
var REF_TITLE = 'COP reference number';
|
|
@@ -135,12 +202,12 @@ describe('components', function () {
|
|
|
135
202
|
pages: ['pageSix']
|
|
136
203
|
}]
|
|
137
204
|
}];
|
|
138
|
-
var
|
|
205
|
+
var _render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
139
206
|
refNumber: COP_REF,
|
|
140
207
|
refTitle: REF_TITLE,
|
|
141
208
|
sections: sections
|
|
142
209
|
})),
|
|
143
|
-
container =
|
|
210
|
+
container = _render3.container;
|
|
144
211
|
var childNodes = container.childNodes;
|
|
145
212
|
expect(childNodes[0].childNodes.length).toEqual(7);
|
|
146
213
|
var _childNodes$0$childNo2 = _slicedToArray(childNodes[0].childNodes, 3),
|
|
@@ -179,12 +246,12 @@ describe('components', function () {
|
|
|
179
246
|
pages: ['pageThree']
|
|
180
247
|
}]
|
|
181
248
|
}];
|
|
182
|
-
var
|
|
249
|
+
var _render4 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
183
250
|
refNumber: COP_REF,
|
|
184
251
|
refTitle: REF_TITLE,
|
|
185
252
|
sections: sections
|
|
186
253
|
})),
|
|
187
|
-
container =
|
|
254
|
+
container = _render4.container;
|
|
188
255
|
var childNodes = container.childNodes;
|
|
189
256
|
var subSectionOne = childNodes[0].childNodes[4];
|
|
190
257
|
expect(subSectionOne.childNodes[0].textContent).toEqual('');
|
|
@@ -223,11 +290,11 @@ describe('components', function () {
|
|
|
223
290
|
pages: ['pageSix']
|
|
224
291
|
}]
|
|
225
292
|
}];
|
|
226
|
-
var
|
|
293
|
+
var _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
227
294
|
refNumber: COP_REF,
|
|
228
295
|
sections: sections
|
|
229
296
|
})),
|
|
230
|
-
container =
|
|
297
|
+
container = _render5.container;
|
|
231
298
|
var childNodes = container.childNodes;
|
|
232
299
|
expect(childNodes.length).toEqual(1);
|
|
233
300
|
expect(childNodes[0].childNodes.length).toEqual(6);
|
|
@@ -273,12 +340,12 @@ describe('components', function () {
|
|
|
273
340
|
pages: ['pageSix']
|
|
274
341
|
}]
|
|
275
342
|
}];
|
|
276
|
-
var
|
|
343
|
+
var _render6 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
277
344
|
refNumber: COP_REF,
|
|
278
345
|
sections: sections,
|
|
279
346
|
incompleteTitle: INCOMPLETE_TITLE
|
|
280
347
|
})),
|
|
281
|
-
container =
|
|
348
|
+
container = _render6.container;
|
|
282
349
|
var childNodes = container.childNodes;
|
|
283
350
|
// The first child is now the incomplete text.
|
|
284
351
|
var incompleteForm = childNodes[0].childNodes[0];
|
|
@@ -319,12 +386,12 @@ describe('components', function () {
|
|
|
319
386
|
pages: ['pageSix']
|
|
320
387
|
}]
|
|
321
388
|
}];
|
|
322
|
-
var
|
|
389
|
+
var _render7 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
323
390
|
refNumber: COP_REF,
|
|
324
391
|
sections: sections,
|
|
325
392
|
incompleteTitle: INCOMPLETE_TITLE
|
|
326
393
|
})),
|
|
327
|
-
container =
|
|
394
|
+
container = _render7.container;
|
|
328
395
|
var childNodes = container.childNodes;
|
|
329
396
|
expect(childNodes.length).toEqual(1);
|
|
330
397
|
var children = childNodes[0].childNodes;
|
|
@@ -357,13 +424,13 @@ describe('components', function () {
|
|
|
357
424
|
pages: ['pageThree']
|
|
358
425
|
}]
|
|
359
426
|
}];
|
|
360
|
-
var
|
|
427
|
+
var _render8 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
361
428
|
refNumber: COP_REF,
|
|
362
429
|
refTitle: REF_TITLE,
|
|
363
430
|
sections: sections,
|
|
364
431
|
onTaskAction: ON_CLICK
|
|
365
432
|
})),
|
|
366
|
-
container =
|
|
433
|
+
container = _render8.container;
|
|
367
434
|
var taskList = container.childNodes[0].childNodes[5].childNodes;
|
|
368
435
|
var firstTask = taskList[0].childNodes[0].childNodes[0];
|
|
369
436
|
var secondTask = taskList[1].childNodes[0].childNodes[0];
|