@ukhomeoffice/cop-react-form-renderer 4.47.0 → 4.48.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.
@@ -109,12 +109,19 @@ var getCYARowsForCollectionPage = function getCYARowsForCollectionPage(page, onA
109
109
  }
110
110
 
111
111
  (_page$formData = page.formData) === null || _page$formData === void 0 ? void 0 : (_page$formData$page$c = _page$formData[page.collection.name]) === null || _page$formData$page$c === void 0 ? void 0 : _page$formData$page$c.forEach(function (item, index) {
112
+ var _page$collection2;
113
+
112
114
  var labelCount = index + 1;
115
+ var actionPosition = ((_page$collection2 = page.collection) === null || _page$collection2 === void 0 ? void 0 : _page$collection2.actionPosition) || 'top';
113
116
  var full_path = "".concat(page.collection.name, "[").concat(index, "]");
114
117
  var titleRow = getTitleRowForItem(page, item, page.id, labelCount, full_path);
115
118
  var actionRows = getActionRows(page, item, onAction, labelCount);
116
119
  rows = rows.concat(titleRow);
117
- rows = rows.concat(actionRows);
120
+
121
+ if (actionPosition === 'top') {
122
+ rows = rows.concat(actionRows);
123
+ }
124
+
118
125
  page.collectionPages.forEach(function (p) {
119
126
  if (p.collection.route) {
120
127
  var pageWithRoute = (0, _addShowWhen.default)(p, p.collection.route);
@@ -132,6 +139,10 @@ var getCYARowsForCollectionPage = function getCYARowsForCollectionPage(page, onA
132
139
  rows = rows.concat(containerRows);
133
140
  }
134
141
  });
142
+
143
+ if (actionPosition === 'bottom') {
144
+ rows = rows.concat(actionRows);
145
+ }
135
146
  });
136
147
  return rows.filter(function (row) {
137
148
  return !!row;
@@ -331,4 +331,61 @@ describe('utils.CheckYourAnswers.getCYARowsForCollectionPage', function () {
331
331
  size: 's'
332
332
  });
333
333
  });
334
+ it('should position actions under the title if actionPosition flag is not specified', function () {
335
+ var FORM_DATA = {
336
+ collection: [{
337
+ id: '01',
338
+ testText: 'value'
339
+ }]
340
+ };
341
+
342
+ var PAGE = _objectSpread(_objectSpread({}, MASTER_PAGE), {}, {
343
+ formData: FORM_DATA
344
+ });
345
+
346
+ var ROWS = (0, _getCYARowsForCollectionPage.default)(PAGE, null);
347
+ expect(ROWS[2].action.label).toEqual('Change');
348
+ expect(ROWS[3].action.label).toEqual('custom remove label');
349
+ expect(ROWS[4].action.label).toEqual('custom change label');
350
+ });
351
+ it('should position actions under the title if actionPosition flag is top', function () {
352
+ var FORM_DATA = {
353
+ collection: [{
354
+ id: '01',
355
+ testText: 'value'
356
+ }]
357
+ };
358
+
359
+ var PAGE = _objectSpread(_objectSpread({}, MASTER_PAGE), {}, {
360
+ collection: _objectSpread(_objectSpread({}, MASTER_PAGE.collection), {}, {
361
+ actionPosition: 'top'
362
+ }),
363
+ formData: FORM_DATA
364
+ });
365
+
366
+ var ROWS = (0, _getCYARowsForCollectionPage.default)(PAGE, null);
367
+ expect(ROWS[2].action.label).toEqual('Change');
368
+ expect(ROWS[3].action.label).toEqual('custom remove label');
369
+ expect(ROWS[4].action.label).toEqual('custom change label');
370
+ });
371
+ it('should position actions under all other rows if actionPosition flag is bottom', function () {
372
+ var FORM_DATA = {
373
+ collection: [{
374
+ id: '01',
375
+ testText: 'value'
376
+ }]
377
+ };
378
+
379
+ var PAGE = _objectSpread(_objectSpread({}, MASTER_PAGE), {}, {
380
+ collection: _objectSpread(_objectSpread({}, MASTER_PAGE.collection), {}, {
381
+ actionPosition: 'bottom'
382
+ }),
383
+ formData: FORM_DATA
384
+ });
385
+
386
+ var ROWS = (0, _getCYARowsForCollectionPage.default)(PAGE, null);
387
+ expect(ROWS[ROWS.length - 3].action.label).toEqual('Change');
388
+ expect(ROWS[ROWS.length - 2].action.label).toEqual('custom remove label');
389
+ expect(ROWS[ROWS.length - 1].action.label).toEqual('custom change label');
390
+ });
334
391
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "4.47.0",
3
+ "version": "4.48.0",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",