@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))), totalSections !== completeSections && /*#__PURE__*/_react.default.createElement("p", {
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 _render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
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 = _render2.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 _render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
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 = _render3.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 _render4 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
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 = _render4.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 _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
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 = _render5.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 _render6 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
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 = _render6.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 _render7 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
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 = _render7.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];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "5.81.2",
3
+ "version": "5.82.0",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",