@ukhomeoffice/cop-react-form-renderer 3.32.4 → 3.33.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/FormRenderer/FormRenderer.js +7 -0
- package/dist/components/FormRenderer/helpers/getNextPageId.js +9 -1
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +54 -0
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +1 -0
- package/dist/components/SummaryList/SummaryList.js +8 -0
- package/dist/models/CollectionLabels.js +1 -0
- package/dist/models/PageAction.js +3 -1
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +50 -0
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +76 -0
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +44 -0
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +59 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +24 -13
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +27 -11
- package/package.json +1 -1
|
@@ -332,6 +332,13 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
332
332
|
|
|
333
333
|
break;
|
|
334
334
|
|
|
335
|
+
case _models.PageAction.TYPES.COLLECTION_REMOVE:
|
|
336
|
+
var activeId = formState.page.formData["".concat(action.collection, "ActiveId")];
|
|
337
|
+
formState.page.formData["".concat(action.collection)] = formState.page.formData["".concat(action.collection)].filter(function (entry) {
|
|
338
|
+
return entry.id !== activeId;
|
|
339
|
+
});
|
|
340
|
+
break;
|
|
341
|
+
|
|
335
342
|
default:
|
|
336
343
|
break;
|
|
337
344
|
} // Save draft or submit.
|
|
@@ -17,7 +17,15 @@ var getNextHubPageId = function getNextHubPageId(action, currentPageId, pages, f
|
|
|
17
17
|
if (!currentPageId && formType === _models.FormTypes.FORM_WITH_TASK) {
|
|
18
18
|
var _formData$formStatus;
|
|
19
19
|
|
|
20
|
-
if (formData !== null && formData !== void 0 && (_formData$formStatus = formData.formStatus) !== null && _formData$formStatus !== void 0 && _formData$formStatus.
|
|
20
|
+
if (formData !== null && formData !== void 0 && (_formData$formStatus = formData.formStatus) !== null && _formData$formStatus !== void 0 && _formData$formStatus.taskPage) {
|
|
21
|
+
var currentPage = pages.find(function (page) {
|
|
22
|
+
return page.id === formData.formStatus.taskPage;
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
if ((currentPage === null || currentPage === void 0 ? void 0 : currentPage.type) === 'pre-task-list') {
|
|
26
|
+
return currentPage.id;
|
|
27
|
+
}
|
|
28
|
+
|
|
21
29
|
return _models.FormPages.HUB;
|
|
22
30
|
}
|
|
23
31
|
|
|
@@ -233,6 +233,60 @@ describe('components', function () {
|
|
|
233
233
|
fieldOne: 'valueTwo'
|
|
234
234
|
})).toEqual(FORM_WITH_TASK_PAGES[3].id);
|
|
235
235
|
});
|
|
236
|
+
it("should take the user to the hub if they saved and returned mid task", function () {
|
|
237
|
+
var EXIT_MID_TASK_PAGES = [{
|
|
238
|
+
id: 'alpha',
|
|
239
|
+
type: 'pre-task-list'
|
|
240
|
+
}, {
|
|
241
|
+
id: 'bravo',
|
|
242
|
+
type: 'pre-task-list'
|
|
243
|
+
}, {
|
|
244
|
+
id: 'charlie',
|
|
245
|
+
components: [RADIOS]
|
|
246
|
+
}, {
|
|
247
|
+
id: 'delta',
|
|
248
|
+
components: [TEXT]
|
|
249
|
+
}, {
|
|
250
|
+
id: 'echo',
|
|
251
|
+
components: [HTML]
|
|
252
|
+
}, {
|
|
253
|
+
id: 'foxtrot',
|
|
254
|
+
components: [TEXT]
|
|
255
|
+
}];
|
|
256
|
+
var EXIT_MID_TASK_DATA = {
|
|
257
|
+
formStatus: {
|
|
258
|
+
taskPage: 'charlie'
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
expect((0, _getNextPageId.default)(FORM_TYPE, EXIT_MID_TASK_PAGES, undefined, undefined, EXIT_MID_TASK_DATA)).toEqual(_models.FormPages.HUB);
|
|
262
|
+
});
|
|
263
|
+
it('should take the user to the pre task page if they saved and exited before reaching the task list', function () {
|
|
264
|
+
var EXIT_MID_TASK_PAGES = [{
|
|
265
|
+
id: 'alpha',
|
|
266
|
+
type: 'pre-task-list'
|
|
267
|
+
}, {
|
|
268
|
+
id: 'bravo',
|
|
269
|
+
type: 'pre-task-list'
|
|
270
|
+
}, {
|
|
271
|
+
id: 'charlie',
|
|
272
|
+
components: [RADIOS]
|
|
273
|
+
}, {
|
|
274
|
+
id: 'delta',
|
|
275
|
+
components: [TEXT]
|
|
276
|
+
}, {
|
|
277
|
+
id: 'echo',
|
|
278
|
+
components: [HTML]
|
|
279
|
+
}, {
|
|
280
|
+
id: 'foxtrot',
|
|
281
|
+
components: [TEXT]
|
|
282
|
+
}];
|
|
283
|
+
var EXIT_PRE_TASK_DATA = {
|
|
284
|
+
formStatus: {
|
|
285
|
+
taskPage: 'bravo'
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
expect((0, _getNextPageId.default)(FORM_TYPE, EXIT_MID_TASK_PAGES, undefined, undefined, EXIT_PRE_TASK_DATA)).toEqual('bravo');
|
|
289
|
+
});
|
|
236
290
|
});
|
|
237
291
|
});
|
|
238
292
|
});
|
|
@@ -67,6 +67,14 @@ var SummaryList = function SummaryList(_ref) {
|
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
if (row.type === 'action') {
|
|
71
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
72
|
+
key: "".concat(key, "-actions")
|
|
73
|
+
}, /*#__PURE__*/_react.default.createElement(_GroupAction.default, {
|
|
74
|
+
group: row
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
|
|
70
78
|
return /*#__PURE__*/_react.default.createElement(_SummaryListRow.default, {
|
|
71
79
|
key: key,
|
|
72
80
|
row: row,
|
|
@@ -12,6 +12,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
12
12
|
var TYPE_CANCEL = 'cancel';
|
|
13
13
|
var TYPE_COLLECTION_ADD = 'collectionAdd';
|
|
14
14
|
var TYPE_COLLECTION_DUPLICATE = 'collectionDuplicate';
|
|
15
|
+
var TYPE_COLLECTION_REMOVE = 'collectionRemove';
|
|
15
16
|
var TYPE_NAVIGATE = 'navigate';
|
|
16
17
|
var TYPE_SAVE_AND_CONTINUE = 'saveAndContinue';
|
|
17
18
|
var TYPE_SAVE_AND_NAVIGATE = 'saveAndNavigate';
|
|
@@ -21,6 +22,7 @@ var PageActionTypes = {
|
|
|
21
22
|
CANCEL: TYPE_CANCEL,
|
|
22
23
|
COLLECTION_ADD: TYPE_COLLECTION_ADD,
|
|
23
24
|
COLLECTION_DUPLICATE: TYPE_COLLECTION_DUPLICATE,
|
|
25
|
+
COLLECTION_REMOVE: TYPE_COLLECTION_REMOVE,
|
|
24
26
|
NAVIGATE: TYPE_NAVIGATE,
|
|
25
27
|
SAVE_AND_CONTINUE: TYPE_SAVE_AND_CONTINUE,
|
|
26
28
|
SAVE_AND_NAVIGATE: TYPE_SAVE_AND_NAVIGATE,
|
|
@@ -33,7 +35,7 @@ var DefaultPageActions = (_DefaultPageActions = {}, _defineProperty(_DefaultPage
|
|
|
33
35
|
validate: false,
|
|
34
36
|
label: 'Cancel',
|
|
35
37
|
classModifiers: 'secondary'
|
|
36
|
-
}), _defineProperty(_DefaultPageActions, TYPE_COLLECTION_ADD, undefined), _defineProperty(_DefaultPageActions, TYPE_COLLECTION_DUPLICATE, undefined), _defineProperty(_DefaultPageActions, TYPE_NAVIGATE, undefined), _defineProperty(_DefaultPageActions, TYPE_SAVE_AND_CONTINUE, {
|
|
38
|
+
}), _defineProperty(_DefaultPageActions, TYPE_COLLECTION_ADD, undefined), _defineProperty(_DefaultPageActions, TYPE_COLLECTION_DUPLICATE, undefined), _defineProperty(_DefaultPageActions, TYPE_COLLECTION_REMOVE, undefined), _defineProperty(_DefaultPageActions, TYPE_NAVIGATE, undefined), _defineProperty(_DefaultPageActions, TYPE_SAVE_AND_CONTINUE, {
|
|
37
39
|
type: TYPE_SAVE_AND_CONTINUE,
|
|
38
40
|
validate: true,
|
|
39
41
|
label: 'Save and continue'
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
|
+
|
|
10
|
+
var _models = require("../../models");
|
|
11
|
+
|
|
12
|
+
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; }
|
|
13
|
+
|
|
14
|
+
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; }
|
|
15
|
+
|
|
16
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
|
|
18
|
+
var getCYACollectionChangeAction = function getCYACollectionChangeAction(page, item, _onAction, labelCount, action) {
|
|
19
|
+
var label = (action === null || action === void 0 ? void 0 : action.label) || _models.CollectionLabels.change;
|
|
20
|
+
return {
|
|
21
|
+
pageId: page.id,
|
|
22
|
+
fieldId: "change".concat(labelCount).concat(action.page),
|
|
23
|
+
key: "change".concat(labelCount).concat(action.page),
|
|
24
|
+
type: 'action',
|
|
25
|
+
action: {
|
|
26
|
+
onAction: function onAction(row) {
|
|
27
|
+
var changeCallback = function changeCallback(data) {
|
|
28
|
+
data["".concat(page.collection.name, "ActiveId")] = item.id;
|
|
29
|
+
return data;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
var nextPage = row;
|
|
33
|
+
|
|
34
|
+
if (action.page) {
|
|
35
|
+
nextPage = {
|
|
36
|
+
pageId: action.page
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
_onAction(nextPage, changeCallback);
|
|
41
|
+
},
|
|
42
|
+
label: _copReactComponents.Utils.interpolateString(label, _objectSpread(_objectSpread({}, item), {}, {
|
|
43
|
+
index: labelCount
|
|
44
|
+
}))
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var _default = getCYACollectionChangeAction;
|
|
50
|
+
exports.default = _default;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _getCYACollectionChangeAction = _interopRequireDefault(require("./getCYACollectionChangeAction"));
|
|
4
|
+
|
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
|
|
7
|
+
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; }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
|
|
13
|
+
describe('utils', function () {
|
|
14
|
+
describe('CheckYourAnswers', function () {
|
|
15
|
+
describe('getCYACollectionChangeAction', function () {
|
|
16
|
+
var PAGE = {
|
|
17
|
+
id: 2,
|
|
18
|
+
collection: {
|
|
19
|
+
name: 'collectionName'
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
var ITEM = {
|
|
23
|
+
id: 2
|
|
24
|
+
};
|
|
25
|
+
var TEST_DATA = {
|
|
26
|
+
page: _objectSpread({}, PAGE),
|
|
27
|
+
collectionName: [{
|
|
28
|
+
id: 1
|
|
29
|
+
}, {
|
|
30
|
+
id: 2
|
|
31
|
+
}, {
|
|
32
|
+
id: 3
|
|
33
|
+
}],
|
|
34
|
+
collectionNameActiveId: 3
|
|
35
|
+
};
|
|
36
|
+
it('should change activeId to the selected item and call onAction with the correct page', function () {
|
|
37
|
+
var ON_ACTION = function ON_ACTION(row, call_back) {
|
|
38
|
+
expect(row.id).toEqual(2);
|
|
39
|
+
TEST_DATA = call_back(TEST_DATA);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var action = (0, _getCYACollectionChangeAction.default)(PAGE, ITEM, ON_ACTION, 0, {});
|
|
43
|
+
action.action.onAction(PAGE);
|
|
44
|
+
expect(TEST_DATA.collectionNameActiveId).toEqual(2);
|
|
45
|
+
});
|
|
46
|
+
it('should get label to custom value', function () {
|
|
47
|
+
var action = (0, _getCYACollectionChangeAction.default)(PAGE, ITEM, function () {}, 0, {
|
|
48
|
+
label: 'customName'
|
|
49
|
+
});
|
|
50
|
+
expect(action.action.label).toEqual('customName');
|
|
51
|
+
});
|
|
52
|
+
it('should call onAction with a custom page', function () {
|
|
53
|
+
var PAGE_WITH_CUSTOM_DESTINATION = {
|
|
54
|
+
id: 2,
|
|
55
|
+
collection: {
|
|
56
|
+
name: 'collectionName',
|
|
57
|
+
actions: [{
|
|
58
|
+
type: 'change',
|
|
59
|
+
label: 'confirm delete',
|
|
60
|
+
page: 'confirmDelete'
|
|
61
|
+
}]
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var ON_ACTION = function ON_ACTION(page, call_back) {
|
|
66
|
+
expect(page.pageId).toEqual('confirmDelete');
|
|
67
|
+
TEST_DATA = call_back(TEST_DATA);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var action = (0, _getCYACollectionChangeAction.default)(PAGE_WITH_CUSTOM_DESTINATION, ITEM, ON_ACTION, 0, PAGE_WITH_CUSTOM_DESTINATION.collection.actions[0]);
|
|
71
|
+
action.action.onAction({});
|
|
72
|
+
expect(TEST_DATA.collectionNameActiveId).toEqual(2);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
|
+
|
|
10
|
+
var _models = require("../../models");
|
|
11
|
+
|
|
12
|
+
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; }
|
|
13
|
+
|
|
14
|
+
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; }
|
|
15
|
+
|
|
16
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
|
|
18
|
+
var getCYACollectionDeleteAction = function getCYACollectionDeleteAction(page, item, _onAction, labelCount, action) {
|
|
19
|
+
var label = (action === null || action === void 0 ? void 0 : action.label) || _models.CollectionLabels.remove;
|
|
20
|
+
return {
|
|
21
|
+
pageId: page.id,
|
|
22
|
+
fieldId: "delete".concat(labelCount),
|
|
23
|
+
key: "delete".concat(labelCount),
|
|
24
|
+
type: 'action',
|
|
25
|
+
action: {
|
|
26
|
+
onAction: function onAction() {
|
|
27
|
+
var deleteCallback = function deleteCallback(data) {
|
|
28
|
+
data["".concat(page.collection.name)] = data["".concat(page.collection.name)].filter(function (i) {
|
|
29
|
+
return i.id !== item.id;
|
|
30
|
+
});
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
_onAction(null, deleteCallback);
|
|
35
|
+
},
|
|
36
|
+
label: _copReactComponents.Utils.interpolateString(label, _objectSpread(_objectSpread({}, item), {}, {
|
|
37
|
+
index: labelCount
|
|
38
|
+
}))
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
var _default = getCYACollectionDeleteAction;
|
|
44
|
+
exports.default = _default;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _getCYACollectionDeleteAction = _interopRequireDefault(require("./getCYACollectionDeleteAction"));
|
|
4
|
+
|
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
|
|
7
|
+
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; }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
|
|
13
|
+
describe('utils', function () {
|
|
14
|
+
describe('CheckYourAnswers', function () {
|
|
15
|
+
describe('getCYACollectionDeleteAction', function () {
|
|
16
|
+
var PAGE = {
|
|
17
|
+
id: 'pageid',
|
|
18
|
+
collection: {
|
|
19
|
+
name: 'collectionName',
|
|
20
|
+
labels: {
|
|
21
|
+
remove: 'customName'
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
var ITEM = {
|
|
26
|
+
id: 2
|
|
27
|
+
};
|
|
28
|
+
var TEST_DATA = {
|
|
29
|
+
page: _objectSpread({}, PAGE),
|
|
30
|
+
collectionName: [{
|
|
31
|
+
id: 1
|
|
32
|
+
}, {
|
|
33
|
+
id: 2
|
|
34
|
+
}, {
|
|
35
|
+
id: 3
|
|
36
|
+
}]
|
|
37
|
+
};
|
|
38
|
+
it('should remove selected item from the form data', function () {
|
|
39
|
+
var data = null;
|
|
40
|
+
|
|
41
|
+
var ON_ACTION = function ON_ACTION(undefined, call_back) {
|
|
42
|
+
data = call_back(TEST_DATA);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
var action = (0, _getCYACollectionDeleteAction.default)(PAGE, ITEM, ON_ACTION, 0, {});
|
|
46
|
+
action.action.onAction();
|
|
47
|
+
expect(data.collectionName.length).toEqual(2);
|
|
48
|
+
expect(data.collectionName[0].id).toEqual(1);
|
|
49
|
+
expect(data.collectionName[1].id).toEqual(3);
|
|
50
|
+
});
|
|
51
|
+
it('should get label to custom value', function () {
|
|
52
|
+
var action = (0, _getCYACollectionDeleteAction.default)(PAGE, ITEM, function () {}, 0, {
|
|
53
|
+
label: "customName"
|
|
54
|
+
});
|
|
55
|
+
expect(action.action.label).toEqual('customName');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -11,6 +11,10 @@ var _models = require("../../models");
|
|
|
11
11
|
|
|
12
12
|
var _getCYARowsForContainer = _interopRequireDefault(require("./getCYARowsForContainer"));
|
|
13
13
|
|
|
14
|
+
var _getCYACollectionDeleteAction = _interopRequireDefault(require("./getCYACollectionDeleteAction"));
|
|
15
|
+
|
|
16
|
+
var _getCYACollectionChangeAction = _interopRequireDefault(require("./getCYACollectionChangeAction"));
|
|
17
|
+
|
|
14
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
19
|
|
|
16
20
|
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; }
|
|
@@ -19,17 +23,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
19
23
|
|
|
20
24
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
21
25
|
|
|
22
|
-
var getChangeActionForItem = function getChangeActionForItem(page, item, onAction) {
|
|
23
|
-
return function (row) {
|
|
24
|
-
var changeCallback = function changeCallback(data) {
|
|
25
|
-
data["".concat(page.collection.name, "ActiveId")] = item.id;
|
|
26
|
-
return data;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
onAction(row, changeCallback);
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
|
|
33
26
|
var getContainerForPage = function getContainerForPage(page, item, labelCount, full_path) {
|
|
34
27
|
return {
|
|
35
28
|
id: item.id,
|
|
@@ -62,6 +55,23 @@ var getTitleRowForItem = function getTitleRowForItem(page, item, pageId, labelCo
|
|
|
62
55
|
};
|
|
63
56
|
};
|
|
64
57
|
|
|
58
|
+
var getActionRows = function getActionRows(page, item, onAction, labelCount) {
|
|
59
|
+
var _page$collection, _page$collection$acti;
|
|
60
|
+
|
|
61
|
+
var actions = (_page$collection = page.collection) === null || _page$collection === void 0 ? void 0 : (_page$collection$acti = _page$collection.actions) === null || _page$collection$acti === void 0 ? void 0 : _page$collection$acti.map(function (action) {
|
|
62
|
+
if (action.type === 'remove') {
|
|
63
|
+
return (0, _getCYACollectionDeleteAction.default)(page, item, onAction, labelCount, action);
|
|
64
|
+
} else if (action.type === 'change') {
|
|
65
|
+
return (0, _getCYACollectionChangeAction.default)(page, item, onAction, labelCount, action);
|
|
66
|
+
} else {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}).filter(function (action) {
|
|
70
|
+
return !!action;
|
|
71
|
+
});
|
|
72
|
+
return actions;
|
|
73
|
+
};
|
|
74
|
+
|
|
65
75
|
var getCYARowsForCollectionPage = function getCYARowsForCollectionPage(page, onAction) {
|
|
66
76
|
var _page$formData, _page$formData$page$c;
|
|
67
77
|
|
|
@@ -70,10 +80,11 @@ var getCYARowsForCollectionPage = function getCYARowsForCollectionPage(page, onA
|
|
|
70
80
|
var labelCount = index + 1;
|
|
71
81
|
var full_path = "".concat(page.collection.name, "[").concat(index, "]");
|
|
72
82
|
var container = getContainerForPage(page, item, labelCount, full_path);
|
|
73
|
-
var
|
|
74
|
-
var containerRows = (0, _getCYARowsForContainer.default)(page, container, item, itemChangeAction);
|
|
83
|
+
var containerRows = (0, _getCYARowsForContainer.default)(page, container, item, undefined);
|
|
75
84
|
var titleRow = getTitleRowForItem(page, item, page.id, labelCount, full_path);
|
|
85
|
+
var actionRows = getActionRows(page, item, onAction, labelCount);
|
|
76
86
|
rows = rows.concat(titleRow);
|
|
87
|
+
rows = rows.concat(actionRows);
|
|
77
88
|
rows = rows.concat(containerRows);
|
|
78
89
|
});
|
|
79
90
|
return rows.filter(function (row) {
|
|
@@ -23,7 +23,17 @@ describe('utils.CheckYourAnswers.getCYARowsForCollectionPage', function () {
|
|
|
23
23
|
name: 'collection',
|
|
24
24
|
labels: {
|
|
25
25
|
item: 'Collection entry ${index}'
|
|
26
|
-
}
|
|
26
|
+
},
|
|
27
|
+
actions: [{
|
|
28
|
+
type: 'change'
|
|
29
|
+
}, {
|
|
30
|
+
type: 'remove',
|
|
31
|
+
label: 'custom remove label'
|
|
32
|
+
}, {
|
|
33
|
+
type: 'change',
|
|
34
|
+
label: 'custom change label',
|
|
35
|
+
page: 'confirmDelete'
|
|
36
|
+
}]
|
|
27
37
|
},
|
|
28
38
|
title: 'Collection',
|
|
29
39
|
components: [TEXT_COMP]
|
|
@@ -51,7 +61,7 @@ describe('utils.CheckYourAnswers.getCYARowsForCollectionPage', function () {
|
|
|
51
61
|
});
|
|
52
62
|
|
|
53
63
|
var ROWS = (0, _getCYARowsForCollectionPage.default)(PAGE, null);
|
|
54
|
-
expect(ROWS.length).toEqual(
|
|
64
|
+
expect(ROWS.length).toEqual(5); // Title row + action rows + component row
|
|
55
65
|
|
|
56
66
|
expect(ROWS[0].key).toEqual('Collection entry 1');
|
|
57
67
|
});
|
|
@@ -71,7 +81,7 @@ describe('utils.CheckYourAnswers.getCYARowsForCollectionPage', function () {
|
|
|
71
81
|
});
|
|
72
82
|
|
|
73
83
|
var ROWS = (0, _getCYARowsForCollectionPage.default)(PAGE, null);
|
|
74
|
-
expect(ROWS.length).toEqual(
|
|
84
|
+
expect(ROWS.length).toEqual(5); // Title row + action rows + component row
|
|
75
85
|
|
|
76
86
|
expect(ROWS[0].key).toEqual('Item 1');
|
|
77
87
|
});
|
|
@@ -91,17 +101,23 @@ describe('utils.CheckYourAnswers.getCYARowsForCollectionPage', function () {
|
|
|
91
101
|
});
|
|
92
102
|
|
|
93
103
|
var ROWS = (0, _getCYARowsForCollectionPage.default)(PAGE, null);
|
|
94
|
-
expect(ROWS.length).toEqual(
|
|
104
|
+
expect(ROWS.length).toEqual(10); // Title row + component row for each item
|
|
95
105
|
|
|
96
106
|
expect(ROWS[0].type).toEqual('title');
|
|
97
107
|
expect(ROWS[0].key).toEqual('Collection entry 1'); // Formatted according to collection.labels.item
|
|
98
108
|
|
|
99
|
-
expect(ROWS[1].
|
|
100
|
-
expect(ROWS[
|
|
101
|
-
expect(ROWS[
|
|
102
|
-
expect(ROWS[
|
|
103
|
-
|
|
104
|
-
expect(ROWS[
|
|
105
|
-
expect(ROWS[
|
|
109
|
+
expect(ROWS[1].action.label).toEqual('Change');
|
|
110
|
+
expect(ROWS[2].action.label).toEqual('custom remove label');
|
|
111
|
+
expect(ROWS[3].action.label).toEqual('custom change label');
|
|
112
|
+
expect(ROWS[4].value).toEqual('value');
|
|
113
|
+
expect(ROWS[4].key).toEqual('Test text');
|
|
114
|
+
expect(ROWS[5].type).toEqual('title');
|
|
115
|
+
expect(ROWS[5].key).toEqual('Collection entry 2'); // Formatted according to collection.labels.item
|
|
116
|
+
|
|
117
|
+
expect(ROWS[6].action.label).toEqual('Change');
|
|
118
|
+
expect(ROWS[7].action.label).toEqual('custom remove label');
|
|
119
|
+
expect(ROWS[8].action.label).toEqual('custom change label');
|
|
120
|
+
expect(ROWS[9].value).toEqual('value');
|
|
121
|
+
expect(ROWS[9].key).toEqual('Test text');
|
|
106
122
|
});
|
|
107
123
|
});
|