@ukhomeoffice/cop-react-form-renderer 3.11.1-alpha → 3.12.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 +40 -4
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +111 -42
- package/dist/components/FormComponent/FormComponent.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +14 -6
- package/dist/hooks/useRefData.js +10 -2
- package/dist/json/group.json +6 -6
- package/dist/models/FormTypes.js +3 -1
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +1 -1
- package/dist/utils/Data/setupRefDataUrlForComponent.js +4 -0
- package/package.json +1 -1
|
@@ -67,7 +67,9 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
67
67
|
hide_title = _ref.hide_title,
|
|
68
68
|
summaryListClassModifiers = _ref.summaryListClassModifiers,
|
|
69
69
|
noChangeAction = _ref.noChangeAction,
|
|
70
|
-
groups = _ref.groups
|
|
70
|
+
groups = _ref.groups,
|
|
71
|
+
sections = _ref.sections,
|
|
72
|
+
type = _ref.type;
|
|
71
73
|
|
|
72
74
|
var _useState = (0, _react.useState)([]),
|
|
73
75
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -145,7 +147,31 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
145
147
|
key: "heading"
|
|
146
148
|
}, title), errors && errors.length > 0 && /*#__PURE__*/_react.default.createElement(_copReactComponents.ErrorSummary, {
|
|
147
149
|
errors: errors
|
|
148
|
-
}),
|
|
150
|
+
}), type === 'task-list-cya' && pages.length > 0 && sections && sections.map(function (section) {
|
|
151
|
+
return section.tasks.map(function (task) {
|
|
152
|
+
var filterPages = pages.filter(function (page) {
|
|
153
|
+
return task.pages.some(function (p) {
|
|
154
|
+
return p === page.name;
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h3", {
|
|
158
|
+
className: "govuk-heading-m govuk-!-margin-top-8 govuk-!-margin-bottom-0"
|
|
159
|
+
}, filterPages.length > 0 && task.name), filterPages.map(function (page, pageIndex, array) {
|
|
160
|
+
var hideActionButtons;
|
|
161
|
+
isGroup(page.id) ? hideActionButtons = true : hideActionButtons = noChangeAction;
|
|
162
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
163
|
+
key: pageIndex
|
|
164
|
+
}, !hide_page_titles && page.title && !isGroup(page.id) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h4", {
|
|
165
|
+
className: "govuk-heading-m govuk-!-margin-top-6 govuk-!-margin-bottom-5"
|
|
166
|
+
}, _utils.default.interpolateString(page.title, page.formData))), /*#__PURE__*/_react.default.createElement(_SummaryList.default, {
|
|
167
|
+
rows: page.rows,
|
|
168
|
+
classModifiers: summaryListClassModifiers,
|
|
169
|
+
noChangeAction: hideActionButtons,
|
|
170
|
+
isGroup: isGroup(page.id)
|
|
171
|
+
}));
|
|
172
|
+
}));
|
|
173
|
+
});
|
|
174
|
+
}), type !== 'task-list-cya' && pages && pages.map(function (page, pageIndex, array) {
|
|
149
175
|
var pageMarginBottom = isLastPage(pageIndex) || isGroup(array[pageIndex].id) || isGroup(array[pageIndex + 1].id) ? DEFAULT_MARGIN_BOTTOM : listMarginBottom;
|
|
150
176
|
var currentGroup;
|
|
151
177
|
isGroup(page.id) && (currentGroup = getGroupForPage(page.id));
|
|
@@ -181,7 +207,16 @@ CheckYourAnswers.propTypes = {
|
|
|
181
207
|
hide_actions: _propTypes.default.bool,
|
|
182
208
|
hide_title: _propTypes.default.bool,
|
|
183
209
|
summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
184
|
-
noChangeAction: _propTypes.default.bool
|
|
210
|
+
noChangeAction: _propTypes.default.bool,
|
|
211
|
+
sections: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
212
|
+
name: _propTypes.default.string.isRequired,
|
|
213
|
+
tasks: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
214
|
+
name: _propTypes.default.string.isRequired,
|
|
215
|
+
pages: _propTypes.default.array.isRequired,
|
|
216
|
+
state: _propTypes.default.string.isRequired
|
|
217
|
+
})).isRequired
|
|
218
|
+
})),
|
|
219
|
+
type: _propTypes.default.string
|
|
185
220
|
};
|
|
186
221
|
CheckYourAnswers.defaultProps = {
|
|
187
222
|
title: DEFAULT_TITLE,
|
|
@@ -189,7 +224,8 @@ CheckYourAnswers.defaultProps = {
|
|
|
189
224
|
hide_actions: false,
|
|
190
225
|
hide_title: false,
|
|
191
226
|
summaryListClassModifiers: null,
|
|
192
|
-
noChangeAction: false
|
|
227
|
+
noChangeAction: false,
|
|
228
|
+
sections: []
|
|
193
229
|
};
|
|
194
230
|
var _default = CheckYourAnswers;
|
|
195
231
|
exports.default = _default;
|
|
@@ -384,25 +384,37 @@ describe('components', function () {
|
|
|
384
384
|
}
|
|
385
385
|
}, _callee12);
|
|
386
386
|
})));
|
|
387
|
-
it('
|
|
388
|
-
var
|
|
387
|
+
it('should show task list in CYA style', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() {
|
|
388
|
+
var sections, taskHeading1, namesPageHeading, taskHeading2, gradePageHeading;
|
|
389
389
|
return regeneratorRuntime.wrap(function _callee14$(_context14) {
|
|
390
390
|
while (1) {
|
|
391
391
|
switch (_context14.prev = _context14.next) {
|
|
392
392
|
case 0:
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
393
|
+
sections = [{
|
|
394
|
+
name: 'These are your tasks',
|
|
395
|
+
tasks: [{
|
|
396
|
+
name: 'Task 1',
|
|
397
|
+
state: 'complete',
|
|
398
|
+
pages: ['names']
|
|
399
|
+
}, {
|
|
400
|
+
name: 'Task 2',
|
|
401
|
+
state: 'complete',
|
|
402
|
+
pages: ['grade']
|
|
403
|
+
}]
|
|
404
|
+
}];
|
|
405
|
+
_context14.next = 3;
|
|
396
406
|
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() {
|
|
397
407
|
return regeneratorRuntime.wrap(function _callee13$(_context13) {
|
|
398
408
|
while (1) {
|
|
399
409
|
switch (_context13.prev = _context13.next) {
|
|
400
410
|
case 0:
|
|
401
411
|
(0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
|
|
402
|
-
pages:
|
|
412
|
+
pages: PAGES,
|
|
403
413
|
onRowAction: ON_ROW_ACTION,
|
|
404
414
|
onAction: ON_ACTION,
|
|
405
|
-
hide_title: true
|
|
415
|
+
hide_title: true,
|
|
416
|
+
sections: sections,
|
|
417
|
+
type: "task-list-cya"
|
|
406
418
|
}), container);
|
|
407
419
|
|
|
408
420
|
case 1:
|
|
@@ -413,6 +425,63 @@ describe('components', function () {
|
|
|
413
425
|
}, _callee13);
|
|
414
426
|
})));
|
|
415
427
|
|
|
428
|
+
case 3:
|
|
429
|
+
taskHeading1 = container.childNodes[0].childNodes[0];
|
|
430
|
+
expect(taskHeading1.tagName).toEqual('H3');
|
|
431
|
+
expect(taskHeading1.textContent).toEqual('Task 1');
|
|
432
|
+
expect(taskHeading1.classList).toContain("govuk-!-margin-top-8");
|
|
433
|
+
expect(taskHeading1.classList).toContain("govuk-!-margin-bottom-0");
|
|
434
|
+
namesPageHeading = container.childNodes[0].childNodes[1];
|
|
435
|
+
expect(namesPageHeading.tagName).toEqual('DIV');
|
|
436
|
+
expect(namesPageHeading.textContent).toContain('John');
|
|
437
|
+
expect(namesPageHeading.classList).toContain("group-of-rows");
|
|
438
|
+
taskHeading2 = container.childNodes[0].childNodes[2];
|
|
439
|
+
expect(taskHeading2.tagName).toEqual('H3');
|
|
440
|
+
expect(taskHeading2.textContent).toEqual('Task 2');
|
|
441
|
+
expect(taskHeading2.classList).toContain("govuk-!-margin-top-8");
|
|
442
|
+
expect(taskHeading2.classList).toContain("govuk-!-margin-bottom-0");
|
|
443
|
+
gradePageHeading = container.childNodes[0].childNodes[3];
|
|
444
|
+
expect(gradePageHeading.tagName).toEqual('H4');
|
|
445
|
+
expect(gradePageHeading.textContent).toEqual("What's your grade?");
|
|
446
|
+
expect(gradePageHeading.classList).toContain("govuk-!-margin-top-6");
|
|
447
|
+
expect(gradePageHeading.classList).toContain("govuk-!-margin-bottom-5");
|
|
448
|
+
|
|
449
|
+
case 22:
|
|
450
|
+
case "end":
|
|
451
|
+
return _context14.stop();
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}, _callee14);
|
|
455
|
+
})));
|
|
456
|
+
it('Show answers from multiple address fields into in one DL', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee16() {
|
|
457
|
+
var DATA, GROUP_PAGES, cya, groupedComponent, keyGroup, valueGroup, changeButtonDiv, changeButton;
|
|
458
|
+
return regeneratorRuntime.wrap(function _callee16$(_context16) {
|
|
459
|
+
while (1) {
|
|
460
|
+
switch (_context16.prev = _context16.next) {
|
|
461
|
+
case 0:
|
|
462
|
+
DATA = _utils.default.Data.setupForm(_group.default.pages, _group.default.components, _groupData.default);
|
|
463
|
+
GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, _objectSpread({}, DATA));
|
|
464
|
+
_context16.next = 4;
|
|
465
|
+
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15() {
|
|
466
|
+
return regeneratorRuntime.wrap(function _callee15$(_context15) {
|
|
467
|
+
while (1) {
|
|
468
|
+
switch (_context15.prev = _context15.next) {
|
|
469
|
+
case 0:
|
|
470
|
+
(0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
|
|
471
|
+
pages: GROUP_PAGES,
|
|
472
|
+
onRowAction: ON_ROW_ACTION,
|
|
473
|
+
onAction: ON_ACTION,
|
|
474
|
+
hide_title: true
|
|
475
|
+
}), container);
|
|
476
|
+
|
|
477
|
+
case 1:
|
|
478
|
+
case "end":
|
|
479
|
+
return _context15.stop();
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}, _callee15);
|
|
483
|
+
})));
|
|
484
|
+
|
|
416
485
|
case 4:
|
|
417
486
|
cya = checkCYA(container);
|
|
418
487
|
groupedComponent = cya.childNodes[10];
|
|
@@ -434,23 +503,23 @@ describe('components', function () {
|
|
|
434
503
|
|
|
435
504
|
case 21:
|
|
436
505
|
case "end":
|
|
437
|
-
return
|
|
506
|
+
return _context16.stop();
|
|
438
507
|
}
|
|
439
508
|
}
|
|
440
|
-
},
|
|
509
|
+
}, _callee16);
|
|
441
510
|
})));
|
|
442
|
-
it('should render a group with one action button', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
511
|
+
it('should render a group with one action button', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee18() {
|
|
443
512
|
var GROUP_PAGES, cya, namesGroup, firstNameRow, surname, changeButtonDiv, changeButton;
|
|
444
|
-
return regeneratorRuntime.wrap(function
|
|
513
|
+
return regeneratorRuntime.wrap(function _callee18$(_context18) {
|
|
445
514
|
while (1) {
|
|
446
|
-
switch (
|
|
515
|
+
switch (_context18.prev = _context18.next) {
|
|
447
516
|
case 0:
|
|
448
517
|
GROUP_PAGES = _utils.default.FormPage.getAll(_groupOfRow.default.pages, _groupOfRow.default.components, _objectSpread({}, DATA));
|
|
449
|
-
|
|
450
|
-
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
451
|
-
return regeneratorRuntime.wrap(function
|
|
518
|
+
_context18.next = 3;
|
|
519
|
+
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee17() {
|
|
520
|
+
return regeneratorRuntime.wrap(function _callee17$(_context17) {
|
|
452
521
|
while (1) {
|
|
453
|
-
switch (
|
|
522
|
+
switch (_context17.prev = _context17.next) {
|
|
454
523
|
case 0:
|
|
455
524
|
(0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
|
|
456
525
|
pages: GROUP_PAGES,
|
|
@@ -461,10 +530,10 @@ describe('components', function () {
|
|
|
461
530
|
|
|
462
531
|
case 1:
|
|
463
532
|
case "end":
|
|
464
|
-
return
|
|
533
|
+
return _context17.stop();
|
|
465
534
|
}
|
|
466
535
|
}
|
|
467
|
-
},
|
|
536
|
+
}, _callee17);
|
|
468
537
|
})));
|
|
469
538
|
|
|
470
539
|
case 3:
|
|
@@ -490,17 +559,17 @@ describe('components', function () {
|
|
|
490
559
|
|
|
491
560
|
case 22:
|
|
492
561
|
case "end":
|
|
493
|
-
return
|
|
562
|
+
return _context18.stop();
|
|
494
563
|
}
|
|
495
564
|
}
|
|
496
|
-
},
|
|
565
|
+
}, _callee18);
|
|
497
566
|
})));
|
|
498
|
-
it('should show page components corrently with interpolated title and cya_label, if label is missing', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
567
|
+
it('should show page components corrently with interpolated title and cya_label, if label is missing', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee20() {
|
|
499
568
|
var _PAGES, _COMPONENTS, T_PAGES, cya, _cya$childNodes5, cyaTitle, cyaChildNode, names, _names$childNodes3, firstName, surname, _firstName$childNodes, label;
|
|
500
569
|
|
|
501
|
-
return regeneratorRuntime.wrap(function
|
|
570
|
+
return regeneratorRuntime.wrap(function _callee20$(_context20) {
|
|
502
571
|
while (1) {
|
|
503
|
-
switch (
|
|
572
|
+
switch (_context20.prev = _context20.next) {
|
|
504
573
|
case 0:
|
|
505
574
|
_PAGES = [].concat(_userProfile.default.pages); // eslint-disable-next-line no-template-curly-in-string
|
|
506
575
|
|
|
@@ -515,11 +584,11 @@ describe('components', function () {
|
|
|
515
584
|
cya_label: "Text ${currentUser.familyName}"
|
|
516
585
|
});
|
|
517
586
|
T_PAGES = _utils.default.FormPage.getAll(_PAGES, _COMPONENTS, DATA);
|
|
518
|
-
|
|
519
|
-
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
520
|
-
return regeneratorRuntime.wrap(function
|
|
587
|
+
_context20.next = 7;
|
|
588
|
+
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee19() {
|
|
589
|
+
return regeneratorRuntime.wrap(function _callee19$(_context19) {
|
|
521
590
|
while (1) {
|
|
522
|
-
switch (
|
|
591
|
+
switch (_context19.prev = _context19.next) {
|
|
523
592
|
case 0:
|
|
524
593
|
(0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
|
|
525
594
|
pages: T_PAGES,
|
|
@@ -529,10 +598,10 @@ describe('components', function () {
|
|
|
529
598
|
|
|
530
599
|
case 1:
|
|
531
600
|
case "end":
|
|
532
|
-
return
|
|
601
|
+
return _context19.stop();
|
|
533
602
|
}
|
|
534
603
|
}
|
|
535
|
-
},
|
|
604
|
+
}, _callee19);
|
|
536
605
|
})));
|
|
537
606
|
|
|
538
607
|
case 7:
|
|
@@ -549,17 +618,17 @@ describe('components', function () {
|
|
|
549
618
|
|
|
550
619
|
case 17:
|
|
551
620
|
case "end":
|
|
552
|
-
return
|
|
621
|
+
return _context20.stop();
|
|
553
622
|
}
|
|
554
623
|
}
|
|
555
|
-
},
|
|
624
|
+
}, _callee20);
|
|
556
625
|
})));
|
|
557
|
-
it('should show page components corrently with no label, if label and cya_label are missing', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
626
|
+
it('should show page components corrently with no label, if label and cya_label are missing', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee22() {
|
|
558
627
|
var _PAGES, _COMPONENTS, T_PAGES, cya, _cya$childNodes6, cyaChildNode, names, _names$childNodes4, firstName, surname, _firstName$childNodes2, label;
|
|
559
628
|
|
|
560
|
-
return regeneratorRuntime.wrap(function
|
|
629
|
+
return regeneratorRuntime.wrap(function _callee22$(_context22) {
|
|
561
630
|
while (1) {
|
|
562
|
-
switch (
|
|
631
|
+
switch (_context22.prev = _context22.next) {
|
|
563
632
|
case 0:
|
|
564
633
|
_PAGES = [].concat(_userProfile.default.pages);
|
|
565
634
|
_COMPONENTS = [].concat(_userProfile.default.components);
|
|
@@ -569,11 +638,11 @@ describe('components', function () {
|
|
|
569
638
|
cya_label: undefined
|
|
570
639
|
});
|
|
571
640
|
T_PAGES = _utils.default.FormPage.getAll(_PAGES, _COMPONENTS, _objectSpread({}, DATA));
|
|
572
|
-
|
|
573
|
-
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
574
|
-
return regeneratorRuntime.wrap(function
|
|
641
|
+
_context22.next = 6;
|
|
642
|
+
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee21() {
|
|
643
|
+
return regeneratorRuntime.wrap(function _callee21$(_context21) {
|
|
575
644
|
while (1) {
|
|
576
|
-
switch (
|
|
645
|
+
switch (_context21.prev = _context21.next) {
|
|
577
646
|
case 0:
|
|
578
647
|
(0, _setupTests.renderDomWithValidation)( /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, {
|
|
579
648
|
pages: T_PAGES,
|
|
@@ -583,10 +652,10 @@ describe('components', function () {
|
|
|
583
652
|
|
|
584
653
|
case 1:
|
|
585
654
|
case "end":
|
|
586
|
-
return
|
|
655
|
+
return _context21.stop();
|
|
587
656
|
}
|
|
588
657
|
}
|
|
589
|
-
},
|
|
658
|
+
}, _callee21);
|
|
590
659
|
})));
|
|
591
660
|
|
|
592
661
|
case 6:
|
|
@@ -602,10 +671,10 @@ describe('components', function () {
|
|
|
602
671
|
|
|
603
672
|
case 15:
|
|
604
673
|
case "end":
|
|
605
|
-
return
|
|
674
|
+
return _context22.stop();
|
|
606
675
|
}
|
|
607
676
|
}
|
|
608
|
-
},
|
|
677
|
+
}, _callee22);
|
|
609
678
|
})));
|
|
610
679
|
});
|
|
611
680
|
});
|
|
@@ -68,7 +68,7 @@ var FormComponent = function FormComponent(_ref) {
|
|
|
68
68
|
|
|
69
69
|
var validation = (0, _hooks.useValidation)();
|
|
70
70
|
|
|
71
|
-
var _useRefData = (0, _hooks.useRefData)(component),
|
|
71
|
+
var _useRefData = (0, _hooks.useRefData)(component, formData),
|
|
72
72
|
data = _useRefData.data,
|
|
73
73
|
status = _useRefData.status;
|
|
74
74
|
|
|
@@ -73,7 +73,8 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
73
73
|
className = _ref.className,
|
|
74
74
|
hide_title = _ref.hide_title,
|
|
75
75
|
summaryListClassModifiers = _ref.summaryListClassModifiers,
|
|
76
|
-
noChangeAction = _ref.noChangeAction
|
|
76
|
+
noChangeAction = _ref.noChangeAction,
|
|
77
|
+
newPageId = _ref.newPageId;
|
|
77
78
|
return /*#__PURE__*/_react.default.createElement(_context.HooksContextProvider, {
|
|
78
79
|
overrides: hooks
|
|
79
80
|
}, /*#__PURE__*/_react.default.createElement(_context.ValidationContextProvider, null, /*#__PURE__*/_react.default.createElement(InternalFormRenderer, {
|
|
@@ -89,7 +90,8 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
89
90
|
className: className,
|
|
90
91
|
hide_title: hide_title,
|
|
91
92
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
92
|
-
noChangeAction: noChangeAction
|
|
93
|
+
noChangeAction: noChangeAction,
|
|
94
|
+
newPageId: newPageId
|
|
93
95
|
})));
|
|
94
96
|
};
|
|
95
97
|
|
|
@@ -109,7 +111,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
109
111
|
className = _ref2.className,
|
|
110
112
|
hide_title = _ref2.hide_title,
|
|
111
113
|
summaryListClassModifiers = _ref2.summaryListClassModifiers,
|
|
112
|
-
noChangeAction = _ref2.noChangeAction
|
|
114
|
+
noChangeAction = _ref2.noChangeAction,
|
|
115
|
+
newPageId = _ref2.newPageId;
|
|
113
116
|
|
|
114
117
|
// Set up the initial states.
|
|
115
118
|
var _useState = (0, _react.useState)({}),
|
|
@@ -240,8 +243,11 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
240
243
|
clearErrors();
|
|
241
244
|
setPageId(newPageId);
|
|
242
245
|
hooks.onPageChange(newPageId);
|
|
243
|
-
};
|
|
246
|
+
};
|
|
244
247
|
|
|
248
|
+
(0, _react.useEffect)(function () {
|
|
249
|
+
if (newPageId !== undefined) setPageId(newPageId);
|
|
250
|
+
}, [newPageId]); // Handle actions from pages.
|
|
245
251
|
|
|
246
252
|
var onPageAction = function onPageAction(action, patch) {
|
|
247
253
|
// Re-apply the patch to the page's formData.
|
|
@@ -399,7 +405,9 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
399
405
|
onRowAction: onCYARowAction,
|
|
400
406
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
401
407
|
hide_title: hide_title,
|
|
402
|
-
noChangeAction: noChangeAction
|
|
408
|
+
noChangeAction: noChangeAction,
|
|
409
|
+
sections: typeof hubDetails !== 'undefined' ? hubDetails.sections : [],
|
|
410
|
+
type: type
|
|
403
411
|
})), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, {
|
|
404
412
|
sections: hubDetails.sections,
|
|
405
413
|
refNumber: data['businessKey'],
|
|
@@ -415,7 +423,7 @@ FormRenderer.propTypes = InternalFormRenderer.propTypes = {
|
|
|
415
423
|
title: _propTypes.default.string,
|
|
416
424
|
|
|
417
425
|
/** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
|
|
418
|
-
type: _propTypes.default.oneOf([_models.FormTypes.CYA, _models.FormTypes.FORM, _models.FormTypes.HUB, _models.FormTypes.TASK, _models.FormTypes.WIZARD]).isRequired,
|
|
426
|
+
type: _propTypes.default.oneOf([_models.FormTypes.CYA, _models.FormTypes.FORM, _models.FormTypes.HUB, _models.FormTypes.TASK, _models.FormTypes.WIZARD, _models.FormTypes.TASKCYA]).isRequired,
|
|
419
427
|
components: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
420
428
|
pages: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
421
429
|
hub: _propTypes.default.object,
|
package/dist/hooks/useRefData.js
CHANGED
|
@@ -33,6 +33,12 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
33
33
|
|
|
34
34
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
35
|
|
|
36
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
37
|
+
|
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
39
|
+
|
|
40
|
+
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; }
|
|
41
|
+
|
|
36
42
|
var STATUS_LOADING = 'loading';
|
|
37
43
|
exports.STATUS_LOADING = STATUS_LOADING;
|
|
38
44
|
var STATUS_COMPLETE = 'complete';
|
|
@@ -48,8 +54,10 @@ var getRefDataUrl = function getRefDataUrl(component) {
|
|
|
48
54
|
return undefined;
|
|
49
55
|
};
|
|
50
56
|
|
|
51
|
-
var useRefData = function useRefData(component) {
|
|
52
|
-
var url = getRefDataUrl(component)
|
|
57
|
+
var useRefData = function useRefData(component, formData) {
|
|
58
|
+
var url = getRefDataUrl(_objectSpread(_objectSpread({}, component), {}, {
|
|
59
|
+
formData: formData
|
|
60
|
+
}));
|
|
53
61
|
|
|
54
62
|
var _useGetRequest = (0, _useGetRequest2.default)(url),
|
|
55
63
|
_status = _useGetRequest.status,
|
package/dist/json/group.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"label": "First name",
|
|
12
12
|
"type": "input",
|
|
13
13
|
"readonly": true,
|
|
14
|
-
"
|
|
14
|
+
"groupid": "addressDetails",
|
|
15
15
|
"source": {
|
|
16
16
|
"field": "currentUser.givenName"
|
|
17
17
|
}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"label": "Last name",
|
|
23
23
|
"type": "text",
|
|
24
24
|
"readonly": true,
|
|
25
|
-
"
|
|
25
|
+
"groupid": "addressDetails",
|
|
26
26
|
"source": {
|
|
27
27
|
"field": "currentUser.familyName"
|
|
28
28
|
}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"label": "Are you a civil servant?",
|
|
34
34
|
"type": "radios",
|
|
35
35
|
"required": true,
|
|
36
|
-
"
|
|
36
|
+
"groupid": "addressDetails",
|
|
37
37
|
"data": {
|
|
38
38
|
"url": "${urls.refData}/areYouACivilServant"
|
|
39
39
|
}
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"label": "Address",
|
|
131
131
|
"type": "text",
|
|
132
132
|
"required": true,
|
|
133
|
-
"
|
|
133
|
+
"groupid": "addressDetails",
|
|
134
134
|
"custom_errors": [
|
|
135
135
|
{
|
|
136
136
|
"type": "required",
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
"label": "City",
|
|
148
148
|
"type": "text",
|
|
149
149
|
"required": true,
|
|
150
|
-
"
|
|
150
|
+
"groupid": "addressDetails",
|
|
151
151
|
"custom_errors": [
|
|
152
152
|
{
|
|
153
153
|
"type": "required",
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
"label": "Postcode",
|
|
182
182
|
"type": "text",
|
|
183
183
|
"required": true,
|
|
184
|
-
"
|
|
184
|
+
"groupid": "addressDetails",
|
|
185
185
|
"custom_errors": [
|
|
186
186
|
{
|
|
187
187
|
"type": "required",
|
package/dist/models/FormTypes.js
CHANGED
|
@@ -9,12 +9,14 @@ var TYPE_CHECK_YOUR_ANSWERS = 'cya';
|
|
|
9
9
|
var TYPE_HUB_AND_SPOKE = 'hub-and-spoke';
|
|
10
10
|
var TYPE_TASK_LIST = 'task-list';
|
|
11
11
|
var TYPE_WIZARD = 'wizard';
|
|
12
|
+
var TYPE_TASK_LIST_CYA = 'task-list-cya';
|
|
12
13
|
var FormTypes = {
|
|
13
14
|
FORM: TYPE_FORM,
|
|
14
15
|
CYA: TYPE_CHECK_YOUR_ANSWERS,
|
|
15
16
|
HUB: TYPE_HUB_AND_SPOKE,
|
|
16
17
|
TASK: TYPE_TASK_LIST,
|
|
17
|
-
WIZARD: TYPE_WIZARD
|
|
18
|
+
WIZARD: TYPE_WIZARD,
|
|
19
|
+
TASKCYA: TYPE_TASK_LIST_CYA
|
|
18
20
|
};
|
|
19
21
|
var _default = FormTypes;
|
|
20
22
|
exports.default = _default;
|
|
@@ -15,7 +15,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
15
15
|
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; }
|
|
16
16
|
|
|
17
17
|
describe('utils.CheckYourAnswers.getCYARowsForCollection', function () {
|
|
18
|
-
it('should get a single
|
|
18
|
+
it('should get a single entry point row when there are no items', function () {
|
|
19
19
|
var FORM_DATA = undefined;
|
|
20
20
|
var PAGE = {
|
|
21
21
|
id: 'page',
|
|
@@ -43,6 +43,10 @@ var setupRefDataUrlForComponent = function setupRefDataUrlForComponent(component
|
|
|
43
43
|
return setupRefDataForCollection(component, data);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
if (component.type === _models.ComponentTypes.SELECT) {
|
|
47
|
+
return component;
|
|
48
|
+
}
|
|
49
|
+
|
|
46
50
|
if (component.data && component.data.url) {
|
|
47
51
|
return _objectSpread(_objectSpread({}, component), {}, {
|
|
48
52
|
data: _objectSpread(_objectSpread({}, component.data), {}, {
|