@ukhomeoffice/cop-react-form-renderer 4.74.0 → 4.76.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/Answer.js +10 -4
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +51 -27
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +6 -5
- package/dist/components/CollectionPage/CollectionPage.js +7 -5
- package/dist/components/FormComponent/Collection.js +25 -17
- package/dist/components/FormComponent/Container.js +23 -13
- package/dist/components/FormComponent/FormComponent.js +24 -9
- package/dist/components/FormComponent/helpers/addLabel.js +4 -3
- package/dist/components/FormPage/FormPage.js +30 -19
- package/dist/components/FormRenderer/FormRenderer.js +90 -34
- package/dist/components/FormRenderer/FormRenderer.test.js +29 -27
- package/dist/components/FormRenderer/handlers/index.js +1 -2
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +19 -15
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +8 -8
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -1
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -7
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +10 -2
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -1
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +38 -24
- package/dist/components/FormRenderer/helpers/index.js +1 -2
- package/dist/components/FormRenderer/onCYAAction.js +2 -2
- package/dist/components/FormRenderer/onCYAAction.test.js +13 -13
- package/dist/components/FormRenderer/onPageAction.js +27 -11
- package/dist/components/FormRenderer/onPageAction.test.js +16 -16
- package/dist/components/FormRenderer/onTaskAction.js +14 -11
- package/dist/components/PageActions/ActionButton.js +0 -3
- package/dist/components/PageActions/PageActions.js +2 -2
- package/dist/components/SummaryList/SummaryList.js +13 -8
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -2
- package/dist/components/SummaryList/SummaryListRow.js +5 -2
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +2 -1
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +2 -1
- package/dist/components/TaskList/Task.js +1 -1
- package/dist/components/TaskList/TaskList.js +21 -12
- package/dist/components/TaskList/TaskState.js +2 -2
- package/dist/components/index.js +7 -0
- package/dist/context/HooksContext/HooksContext.js +33 -1
- package/dist/context/ValidationContext/ValidationContext.js +8 -1
- package/dist/context/ValidationContext/ValidationContext.test.js +8 -2
- package/dist/hooks/useGetRequest.js +3 -2
- package/dist/hooks/useRefData.js +1 -0
- package/dist/index.js +6 -0
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +34 -34
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +2 -1
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +4 -4
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +2 -1
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +2 -2
- package/dist/utils/CheckYourAnswers/getCYARow.js +13 -11
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +8 -8
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +25 -22
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +1 -0
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +1 -1
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +1 -0
- package/dist/utils/CollectionPage/mergeCollectionPages.js +7 -6
- package/dist/utils/Component/applyToComponentTree.js +4 -2
- package/dist/utils/Component/cleanAttributes.js +7 -1
- package/dist/utils/Component/cleanAttributes.test.js +4 -4
- package/dist/utils/Component/getComponent.js +8 -6
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +4 -4
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +1 -0
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +1 -1
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +5 -5
- package/dist/utils/Component/setupContainerComponentsPath.js +2 -0
- package/dist/utils/Condition/meetsCondition.js +2 -1
- package/dist/utils/Condition/setupConditions.js +2 -2
- package/dist/utils/Container/setupNesting.js +5 -1
- package/dist/utils/Data/applyFormula.js +16 -10
- package/dist/utils/Data/getAutocompleteSource.js +3 -1
- package/dist/utils/Data/getOptions.js +3 -2
- package/dist/utils/Data/setupFormData.js +4 -2
- package/dist/utils/FormPage/getFormPage.js +1 -1
- package/dist/utils/FormPage/getPageActions.js +5 -3
- package/dist/utils/FormPage/showFormPage.js +2 -2
- package/dist/utils/FormPage/showFormPageCYA.js +1 -0
- package/dist/utils/FormPage/useComponent.js +1 -0
- package/dist/utils/Format/formatDataForComponent.js +2 -1
- package/dist/utils/Meta/index.js +1 -2
- package/dist/utils/Operate/getFirstOf.test.js +1 -0
- package/dist/utils/Operate/persistValueInFormData.js +1 -0
- package/dist/utils/Operate/persistValueInFormData.test.js +1 -1
- package/dist/utils/Operate/shouldRun.js +16 -13
- package/dist/utils/Validate/additional/index.js +2 -1
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +1 -1
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +1 -1
- package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +1 -0
- package/dist/utils/Validate/additional/utils.js +16 -16
- package/dist/utils/Validate/validateCollection.js +16 -4
- package/dist/utils/Validate/validateCollection.test.js +17 -0
- package/dist/utils/Validate/validateComponent.js +26 -20
- package/dist/utils/Validate/validateContainer.js +2 -2
- package/dist/utils/Validate/validateDate.js +2 -1
- package/dist/utils/Validate/validateEmail.js +1 -0
- package/dist/utils/Validate/validatePage.js +6 -3
- package/dist/utils/Validate/validatePage.test.js +9 -18
- package/dist/utils/Validate/validateRegex.js +2 -5
- package/dist/utils/Validate/validateRequired.js +2 -4
- package/package.json +3 -2
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _VisuallyHidden = _interopRequireDefault(require("@ukhomeoffice/cop-react-components/dist/VisuallyHidden"));
|
|
10
10
|
var _FormComponent = _interopRequireDefault(require("../FormComponent"));
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -23,7 +23,7 @@ var Answer = function Answer(_ref) {
|
|
|
23
23
|
return /*#__PURE__*/_react.default.createElement(_VisuallyHidden.default, null, "No answer");
|
|
24
24
|
}
|
|
25
25
|
if (!component) {
|
|
26
|
-
return
|
|
26
|
+
return Object.prototype.hasOwnProperty.call(value, 'label') ? value.label : value;
|
|
27
27
|
}
|
|
28
28
|
return /*#__PURE__*/_react.default.createElement(_FormComponent.default, {
|
|
29
29
|
component: _objectSpread(_objectSpread({}, component), {}, {
|
|
@@ -35,8 +35,14 @@ var Answer = function Answer(_ref) {
|
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
37
|
Answer.propTypes = {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
component: _propTypes.default.shape({}),
|
|
39
|
+
formData: _propTypes.default.shape({}),
|
|
40
|
+
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({})])
|
|
41
|
+
};
|
|
42
|
+
Answer.defaultProps = {
|
|
43
|
+
component: null,
|
|
44
|
+
formData: null,
|
|
45
|
+
value: null
|
|
40
46
|
};
|
|
41
47
|
var _default = Answer;
|
|
42
48
|
exports.default = _default;
|
|
@@ -6,17 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.DEFAULT_TITLE = exports.DEFAULT_MARGIN_BOTTOM = exports.DEFAULT_CLASS = void 0;
|
|
8
8
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _hooks = require("../../hooks");
|
|
12
12
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
13
13
|
var _PageActions = _interopRequireDefault(require("../PageActions"));
|
|
14
14
|
var _SummaryList = _interopRequireDefault(require("../SummaryList"));
|
|
15
15
|
var _Answer = _interopRequireDefault(require("./Answer"));
|
|
16
16
|
require("./CheckYourAnswers.scss");
|
|
17
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
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; }
|
|
21
21
|
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; }
|
|
22
22
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -93,10 +93,16 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
93
93
|
(0, _react.useEffect)(function () {
|
|
94
94
|
var groupsList = function groupsList() {
|
|
95
95
|
var groupIds = [];
|
|
96
|
-
groups !== undefined
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
if (groups !== undefined) {
|
|
97
|
+
if (groups.length) {
|
|
98
|
+
groups.forEach(function (group) {
|
|
99
|
+
var groupedPageId = group.pageId;
|
|
100
|
+
groupIds.push(groupedPageId);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
;
|
|
104
|
+
}
|
|
105
|
+
;
|
|
100
106
|
setListOfGroups(groupIds);
|
|
101
107
|
};
|
|
102
108
|
groupsList();
|
|
@@ -121,16 +127,18 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
121
127
|
if (override) {
|
|
122
128
|
return override;
|
|
123
129
|
}
|
|
130
|
+
;
|
|
124
131
|
var isGroup = function isGroup(pageId) {
|
|
125
132
|
return listOfGroups.includes(pageId);
|
|
126
133
|
};
|
|
127
134
|
var getGroupForPage = function getGroupForPage(pageId) {
|
|
128
135
|
var groupAnswer;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
}
|
|
136
|
+
if (groups !== undefined) {
|
|
137
|
+
groupAnswer = groups.find(function (group) {
|
|
138
|
+
return group.pageId === pageId;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
;
|
|
134
142
|
return groupAnswer;
|
|
135
143
|
};
|
|
136
144
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -150,12 +158,16 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
150
158
|
className: "govuk-heading-m govuk-!-margin-top-8 govuk-!-margin-bottom-0"
|
|
151
159
|
}, filterPages.length > 0 && task.name), filterPages.map(function (page, pageIndex) {
|
|
152
160
|
var hideActionButtons;
|
|
153
|
-
isGroup(page.id)
|
|
161
|
+
if (isGroup(page.id)) {
|
|
162
|
+
hideActionButtons = true;
|
|
163
|
+
} else {
|
|
164
|
+
hideActionButtons = noChangeAction;
|
|
165
|
+
}
|
|
154
166
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
155
167
|
key: pageIndex
|
|
156
|
-
}, !hide_page_titles && page.title && !isGroup(page.id) && /*#__PURE__*/_react.default.createElement(
|
|
168
|
+
}, !hide_page_titles && page.title && !isGroup(page.id) && /*#__PURE__*/_react.default.createElement("h4", {
|
|
157
169
|
className: "govuk-heading-m govuk-!-margin-top-6 govuk-!-margin-bottom-5"
|
|
158
|
-
}, _utils.default.interpolateString(page.title, page.formData))
|
|
170
|
+
}, _utils.default.interpolateString(page.title, page.formData)), /*#__PURE__*/_react.default.createElement(_SummaryList.default, {
|
|
159
171
|
rows: page.rows,
|
|
160
172
|
classModifiers: summaryListClassModifiers,
|
|
161
173
|
noChangeAction: hideActionButtons,
|
|
@@ -167,10 +179,17 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
167
179
|
}), type !== 'task-list-cya' && pages && pages.map(function (page, pageIndex, array) {
|
|
168
180
|
var pageMarginBottom = isLastPage(pageIndex) || isGroup(array[pageIndex].id) || isGroup(array[pageIndex + 1].id) ? DEFAULT_MARGIN_BOTTOM : listMarginBottom;
|
|
169
181
|
var currentGroup;
|
|
170
|
-
|
|
182
|
+
if (isGroup(page.id)) {
|
|
183
|
+
currentGroup = getGroupForPage(page.id);
|
|
184
|
+
}
|
|
185
|
+
;
|
|
171
186
|
var className = "govuk-!-margin-bottom-".concat(pageMarginBottom);
|
|
172
187
|
var hideActionButtons;
|
|
173
|
-
isGroup(page.id)
|
|
188
|
+
if (isGroup(page.id)) {
|
|
189
|
+
hideActionButtons = true;
|
|
190
|
+
} else {
|
|
191
|
+
hideActionButtons = noChangeAction;
|
|
192
|
+
}
|
|
174
193
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
175
194
|
key: pageIndex
|
|
176
195
|
}, !hide_page_titles && page.title && !isGroup(page.id) && /*#__PURE__*/_react.default.createElement(_copReactComponents.MediumHeading, null, _utils.default.interpolateString(page.title, page.formData)), isGroup(page.id) && /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -191,35 +210,40 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
191
210
|
}));
|
|
192
211
|
};
|
|
193
212
|
CheckYourAnswers.propTypes = {
|
|
194
|
-
title: _propTypes.default.string.isRequired,
|
|
195
|
-
pages: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
196
213
|
actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string])),
|
|
197
|
-
|
|
198
|
-
onRowAction: _propTypes.default.func.isRequired,
|
|
199
|
-
hide_page_titles: _propTypes.default.bool,
|
|
214
|
+
groups: _propTypes.default.shape([]),
|
|
200
215
|
hide_actions: _propTypes.default.bool,
|
|
216
|
+
hide_page_titles: _propTypes.default.bool,
|
|
201
217
|
hide_title: _propTypes.default.bool,
|
|
202
|
-
summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
203
218
|
noChangeAction: _propTypes.default.bool,
|
|
204
219
|
noGroupAction: _propTypes.default.bool,
|
|
220
|
+
onAction: _propTypes.default.func.isRequired,
|
|
221
|
+
onRowAction: _propTypes.default.func.isRequired,
|
|
222
|
+
pages: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
|
|
205
223
|
sections: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
206
224
|
name: _propTypes.default.string.isRequired,
|
|
207
225
|
tasks: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
208
226
|
name: _propTypes.default.string.isRequired,
|
|
209
|
-
pages: _propTypes.default.
|
|
227
|
+
pages: _propTypes.default.shape([]).isRequired,
|
|
210
228
|
state: _propTypes.default.string.isRequired
|
|
211
229
|
})).isRequired
|
|
212
230
|
})),
|
|
231
|
+
summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
232
|
+
title: _propTypes.default.string,
|
|
213
233
|
type: _propTypes.default.string
|
|
214
234
|
};
|
|
215
235
|
CheckYourAnswers.defaultProps = {
|
|
216
|
-
|
|
217
|
-
|
|
236
|
+
actions: [],
|
|
237
|
+
groups: [],
|
|
218
238
|
hide_actions: false,
|
|
239
|
+
hide_page_titles: false,
|
|
219
240
|
hide_title: false,
|
|
220
|
-
summaryListClassModifiers: null,
|
|
221
241
|
noChangeAction: false,
|
|
222
|
-
|
|
242
|
+
noGroupAction: false,
|
|
243
|
+
sections: [],
|
|
244
|
+
summaryListClassModifiers: null,
|
|
245
|
+
title: DEFAULT_TITLE,
|
|
246
|
+
type: null
|
|
223
247
|
};
|
|
224
248
|
var _default = CheckYourAnswers;
|
|
225
249
|
exports.default = _default;
|
|
@@ -69,8 +69,9 @@ describe('components', function () {
|
|
|
69
69
|
container.remove();
|
|
70
70
|
container = null;
|
|
71
71
|
});
|
|
72
|
-
var checkCYA = function checkCYA(
|
|
73
|
-
var
|
|
72
|
+
var checkCYA = function checkCYA(cyaContainer) {
|
|
73
|
+
var checkCYAContainer = cyaContainer;
|
|
74
|
+
var cya = checkCYAContainer.childNodes[0];
|
|
74
75
|
expect(cya.tagName).toEqual('DIV');
|
|
75
76
|
expect(cya.classList).toContain(_CheckYourAnswers.DEFAULT_CLASS);
|
|
76
77
|
return cya;
|
|
@@ -358,12 +359,12 @@ describe('components', function () {
|
|
|
358
359
|
}, _callee14);
|
|
359
360
|
})));
|
|
360
361
|
it('Show answers from multiple address fields into in one DL', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {
|
|
361
|
-
var
|
|
362
|
+
var ADDRESS_DATA, GROUP_PAGES, cya, groupedComponent, keyGroup, valueGroup, changeButtonDiv, changeButton;
|
|
362
363
|
return _regeneratorRuntime().wrap(function _callee16$(_context16) {
|
|
363
364
|
while (1) switch (_context16.prev = _context16.next) {
|
|
364
365
|
case 0:
|
|
365
|
-
|
|
366
|
-
GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, _objectSpread({},
|
|
366
|
+
ADDRESS_DATA = _utils.default.Data.setupForm(_group.default.pages, _group.default.components, _groupData.default);
|
|
367
|
+
GROUP_PAGES = _utils.default.FormPage.getAll(_group.default.pages, _group.default.components, _objectSpread({}, ADDRESS_DATA));
|
|
367
368
|
_context16.next = 4;
|
|
368
369
|
return (0, _testUtils.act)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {
|
|
369
370
|
return _regeneratorRuntime().wrap(function _callee15$(_context15) {
|
|
@@ -45,10 +45,11 @@ var CollectionPage = function CollectionPage(_ref) {
|
|
|
45
45
|
* This is so that the overall form data isn't affected until such
|
|
46
46
|
* time as the onAction handler is invoked.
|
|
47
47
|
*/
|
|
48
|
+
var currentPage = page;
|
|
48
49
|
var onPageChange = function onPageChange(_ref2) {
|
|
49
50
|
var target = _ref2.target;
|
|
50
|
-
|
|
51
|
-
data =
|
|
51
|
+
currentPage.formData[target.name] = target.value;
|
|
52
|
+
data = currentPage.formData[currentPage.collection.name] || patch[currentPage.collection.name] || [];
|
|
52
53
|
setPatch(function (prev) {
|
|
53
54
|
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, target.name, target.value));
|
|
54
55
|
});
|
|
@@ -108,8 +109,8 @@ CollectionPage.propTypes = {
|
|
|
108
109
|
name: _propTypes.default.string.isRequired
|
|
109
110
|
}).isRequired,
|
|
110
111
|
components: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object])).isRequired,
|
|
111
|
-
actions: _propTypes.default.
|
|
112
|
-
formData: _propTypes.default.
|
|
112
|
+
actions: _propTypes.default.shape([]),
|
|
113
|
+
formData: _propTypes.default.shape({}).isRequired
|
|
113
114
|
}).isRequired,
|
|
114
115
|
onAction: _propTypes.default.func.isRequired,
|
|
115
116
|
classBlock: _propTypes.default.string,
|
|
@@ -118,7 +119,8 @@ CollectionPage.propTypes = {
|
|
|
118
119
|
};
|
|
119
120
|
CollectionPage.defaultProps = {
|
|
120
121
|
classBlock: DEFAULT_CLASS,
|
|
121
|
-
classModifiers: []
|
|
122
|
+
classModifiers: [],
|
|
123
|
+
className: ''
|
|
122
124
|
};
|
|
123
125
|
var _default = CollectionPage;
|
|
124
126
|
exports.default = _default;
|
|
@@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.DEFAULT_CLASS = void 0;
|
|
8
8
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _models = require("../../models");
|
|
12
12
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
13
13
|
var _Container = _interopRequireDefault(require("./Container"));
|
|
14
14
|
require("./Collection.scss");
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
17
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
18
|
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
19
|
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; }
|
|
20
20
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -90,7 +90,6 @@ var Collection = function Collection(_ref) {
|
|
|
90
90
|
if (config.minimumEntries && !value.length) {
|
|
91
91
|
onAddAnother();
|
|
92
92
|
}
|
|
93
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
94
93
|
}, [config.minimumEntries, value.length]);
|
|
95
94
|
var onRemoveItem = /*#__PURE__*/function () {
|
|
96
95
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(item) {
|
|
@@ -121,7 +120,7 @@ var Collection = function Collection(_ref) {
|
|
|
121
120
|
className: classes('title')
|
|
122
121
|
}, config.label), value && value.map(function (item, index) {
|
|
123
122
|
var _config$removeLocatio;
|
|
124
|
-
var
|
|
123
|
+
var fullPath = "".concat(config.fullPath || config.fieldId, "[").concat(index, "]");
|
|
125
124
|
var labelCount = (config.countOffset || 0) + index + 1;
|
|
126
125
|
var itemTitle = _utils.default.interpolateString(labels.item, _objectSpread(_objectSpread({}, item), {}, {
|
|
127
126
|
index: labelCount
|
|
@@ -148,14 +147,14 @@ var Collection = function Collection(_ref) {
|
|
|
148
147
|
fieldId: item.id,
|
|
149
148
|
type: 'container',
|
|
150
149
|
required: config.required,
|
|
151
|
-
full_path:
|
|
150
|
+
full_path: fullPath,
|
|
152
151
|
components: config.item.map(function (component) {
|
|
153
152
|
return _objectSpread(_objectSpread({}, component), {}, {
|
|
154
153
|
readonly: config.readonly ? true : component.readonly,
|
|
155
154
|
label: _utils.default.interpolateString(component.label, _objectSpread(_objectSpread({}, item), {}, {
|
|
156
155
|
index: labelCount
|
|
157
156
|
})),
|
|
158
|
-
|
|
157
|
+
fullPath: "".concat(fullPath, ".").concat(component.fieldId)
|
|
159
158
|
});
|
|
160
159
|
})
|
|
161
160
|
},
|
|
@@ -177,30 +176,39 @@ var Collection = function Collection(_ref) {
|
|
|
177
176
|
};
|
|
178
177
|
Collection.propTypes = {
|
|
179
178
|
config: _propTypes.default.shape({
|
|
179
|
+
className: _propTypes.default.string,
|
|
180
|
+
countOffset: _propTypes.default.number,
|
|
181
|
+
disableAddAndRemove: _propTypes.default.bool,
|
|
180
182
|
id: _propTypes.default.string.isRequired,
|
|
181
183
|
fieldId: _propTypes.default.string.isRequired,
|
|
184
|
+
fullPath: _propTypes.default.string,
|
|
185
|
+
item: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
186
|
+
fieldId: _propTypes.default.string,
|
|
187
|
+
type: _propTypes.default.string
|
|
188
|
+
})),
|
|
182
189
|
label: _propTypes.default.string,
|
|
183
190
|
labels: _propTypes.default.shape({
|
|
184
191
|
item: _propTypes.default.string,
|
|
185
192
|
add: _propTypes.default.string,
|
|
186
193
|
remove: _propTypes.default.string
|
|
187
194
|
}),
|
|
195
|
+
minimumEntries: _propTypes.default.string,
|
|
196
|
+
readonly: _propTypes.default.bool,
|
|
188
197
|
removeLocation: _propTypes.default.string,
|
|
189
|
-
|
|
190
|
-
countOffset: _propTypes.default.number,
|
|
191
|
-
className: _propTypes.default.string,
|
|
192
|
-
item: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
193
|
-
fieldId: _propTypes.default.string,
|
|
194
|
-
type: _propTypes.default.string
|
|
195
|
-
}))
|
|
198
|
+
required: _propTypes.default.bool
|
|
196
199
|
}).isRequired,
|
|
200
|
+
formData: _propTypes.default.shape({}),
|
|
201
|
+
onChange: _propTypes.default.func,
|
|
202
|
+
onTopLevelChange: _propTypes.default.func,
|
|
197
203
|
value: _propTypes.default.arrayOf(_propTypes.default.shape()),
|
|
198
|
-
|
|
199
|
-
wrap: _propTypes.default.bool,
|
|
200
|
-
onChange: _propTypes.default.func
|
|
204
|
+
wrap: _propTypes.default.bool
|
|
201
205
|
};
|
|
202
206
|
Collection.defaultProps = {
|
|
203
|
-
|
|
207
|
+
formData: null,
|
|
208
|
+
onChange: undefined,
|
|
209
|
+
onTopLevelChange: undefined,
|
|
210
|
+
value: [],
|
|
211
|
+
wrap: false
|
|
204
212
|
};
|
|
205
213
|
var _default = Collection;
|
|
206
214
|
exports.default = _default;
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.DEFAULT_CLASS = void 0;
|
|
8
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _models = require("../../models");
|
|
11
11
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
12
12
|
var _FormComponent = _interopRequireDefault(require("./FormComponent"));
|
|
@@ -49,14 +49,14 @@ var Container = function Container(_ref) {
|
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
var shouldShow = function shouldShow(options) {
|
|
52
|
-
var
|
|
52
|
+
var fullPath = "".concat(container.full_path || container.fieldId, ".").concat(options.fieldId);
|
|
53
53
|
if (options.type === _models.ComponentTypes.CONTAINER) {
|
|
54
54
|
return _utils.default.Container.show(_objectSpread(_objectSpread({}, options), {}, {
|
|
55
|
-
|
|
55
|
+
fullPath: fullPath
|
|
56
56
|
}), formData);
|
|
57
57
|
}
|
|
58
58
|
return _utils.default.Component.show(_objectSpread(_objectSpread({}, options), {}, {
|
|
59
|
-
|
|
59
|
+
fullPath: fullPath
|
|
60
60
|
}), formData);
|
|
61
61
|
};
|
|
62
62
|
var classes = _utils.default.classBuilder(DEFAULT_CLASS, [], container.className);
|
|
@@ -66,12 +66,12 @@ var Container = function Container(_ref) {
|
|
|
66
66
|
}), container.components && container.components.filter(shouldShow).map(function (component, index) {
|
|
67
67
|
var defaultValue = component.type === _models.ComponentTypes.FILE ? {} : '';
|
|
68
68
|
var val = value ? value[component.fieldId] : defaultValue;
|
|
69
|
-
var
|
|
69
|
+
var fullPath = "".concat(container.full_path || container.fieldId, ".").concat(component.fieldId);
|
|
70
70
|
return /*#__PURE__*/_react.default.createElement(_FormComponent.default, _extends({
|
|
71
71
|
key: index
|
|
72
72
|
}, attrs, {
|
|
73
73
|
component: _objectSpread(_objectSpread({}, component), {}, {
|
|
74
|
-
full_path:
|
|
74
|
+
full_path: fullPath,
|
|
75
75
|
readonly: container.readonly ? true : component.readonly
|
|
76
76
|
}),
|
|
77
77
|
formData: formData,
|
|
@@ -84,19 +84,29 @@ var Container = function Container(_ref) {
|
|
|
84
84
|
};
|
|
85
85
|
Container.propTypes = {
|
|
86
86
|
container: _propTypes.default.shape({
|
|
87
|
-
|
|
88
|
-
fieldId: _propTypes.default.string.isRequired,
|
|
87
|
+
className: _propTypes.default.string,
|
|
89
88
|
components: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
90
89
|
fieldId: _propTypes.default.string,
|
|
91
90
|
type: _propTypes.default.string
|
|
92
|
-
}))
|
|
91
|
+
})),
|
|
92
|
+
fieldId: _propTypes.default.string,
|
|
93
|
+
full_path: _propTypes.default.string,
|
|
94
|
+
id: _propTypes.default.string,
|
|
95
|
+
readonly: _propTypes.default.bool
|
|
93
96
|
}).isRequired,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
formData: _propTypes.default.shape({}),
|
|
98
|
+
fullPath: _propTypes.default.string,
|
|
99
|
+
onChange: _propTypes.default.func,
|
|
100
|
+
onTopLevelChange: _propTypes.default.func,
|
|
101
|
+
value: _propTypes.default.string,
|
|
102
|
+
wrap: _propTypes.default.bool
|
|
98
103
|
};
|
|
99
104
|
Container.defaultProps = {
|
|
105
|
+
formData: null,
|
|
106
|
+
fullPath: '',
|
|
107
|
+
onChange: undefined,
|
|
108
|
+
onTopLevelChange: undefined,
|
|
109
|
+
value: null,
|
|
100
110
|
wrap: true
|
|
101
111
|
};
|
|
102
112
|
var _default = Container;
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _hooks = require("../../hooks");
|
|
11
11
|
var _models = require("../../models");
|
|
12
12
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
@@ -15,9 +15,9 @@ var _Collection = _interopRequireDefault(require("./Collection"));
|
|
|
15
15
|
var _Container = _interopRequireDefault(require("./Container"));
|
|
16
16
|
var _helpers = require("./helpers");
|
|
17
17
|
var _excluded = ["component", "value", "formData", "wrap", "onChange", "onTopLevelChange"];
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
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; }
|
|
22
22
|
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; }
|
|
23
23
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -59,8 +59,10 @@ var FormComponent = function FormComponent(_ref) {
|
|
|
59
59
|
var target = _ref2.target;
|
|
60
60
|
if (typeof onChange === 'function') {
|
|
61
61
|
if (component.type === _models.ComponentTypes.EMAIL) {
|
|
62
|
-
|
|
62
|
+
// eslint-disable-next-line no-param-reassign
|
|
63
|
+
target.value = target.value.trim();
|
|
63
64
|
}
|
|
65
|
+
// eslint-disable-next-line no-param-reassign
|
|
64
66
|
target = (0, _helpers.addLabel)(target, component, data);
|
|
65
67
|
onChange({
|
|
66
68
|
target: target
|
|
@@ -130,21 +132,34 @@ var FormComponent = function FormComponent(_ref) {
|
|
|
130
132
|
};
|
|
131
133
|
FormComponent.propTypes = {
|
|
132
134
|
component: _propTypes.default.shape({
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
135
|
+
additionalValidation: _propTypes.default.shape([]),
|
|
136
|
+
allowMultiple: _propTypes.default.bool,
|
|
137
|
+
content: _propTypes.default.shape({}),
|
|
138
|
+
cya_label: _propTypes.default.string,
|
|
136
139
|
data: _propTypes.default.shape({
|
|
137
140
|
options: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object])),
|
|
138
141
|
url: _propTypes.default.string
|
|
139
|
-
})
|
|
142
|
+
}),
|
|
143
|
+
disabled: _propTypes.default.bool,
|
|
144
|
+
fieldId: _propTypes.default.string,
|
|
145
|
+
full_path: _propTypes.default.string,
|
|
146
|
+
hint: _propTypes.default.string,
|
|
147
|
+
id: _propTypes.default.string,
|
|
148
|
+
label: _propTypes.default.string,
|
|
149
|
+
suffix: _propTypes.default.string,
|
|
150
|
+
type: _propTypes.default.string
|
|
140
151
|
}).isRequired,
|
|
141
|
-
value: _propTypes.default.
|
|
142
|
-
formData: _propTypes.default.
|
|
152
|
+
value: _propTypes.default.string,
|
|
153
|
+
formData: _propTypes.default.shape({}),
|
|
143
154
|
wrap: _propTypes.default.bool,
|
|
144
155
|
onChange: _propTypes.default.func,
|
|
145
156
|
onTopLevelChange: _propTypes.default.func
|
|
146
157
|
};
|
|
147
158
|
FormComponent.defaultProps = {
|
|
159
|
+
formData: null,
|
|
160
|
+
onChange: undefined,
|
|
161
|
+
onTopLevelChange: undefined,
|
|
162
|
+
value: null,
|
|
148
163
|
wrap: true
|
|
149
164
|
};
|
|
150
165
|
var _default = FormComponent;
|
|
@@ -10,7 +10,8 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
10
10
|
* @param {object} target The target to be updated.
|
|
11
11
|
* @returns The updated target.
|
|
12
12
|
*/
|
|
13
|
-
var addLabel = function addLabel(
|
|
13
|
+
var addLabel = function addLabel(paramTarget, component, data) {
|
|
14
|
+
var target = paramTarget;
|
|
14
15
|
// target.value can be an object in which case use value in object attribute
|
|
15
16
|
var value = _typeof(target.value) === 'object' ? target.value.value : target.value;
|
|
16
17
|
// find the reference data item using the value
|
|
@@ -18,8 +19,8 @@ var addLabel = function addLabel(target, component, data) {
|
|
|
18
19
|
return String(e.id) === value;
|
|
19
20
|
});
|
|
20
21
|
// if item is null it means that the target.value can be used as a label otherwise use item.label
|
|
21
|
-
target
|
|
22
|
-
target
|
|
22
|
+
target.label = item === undefined ? target.value : item.label;
|
|
23
|
+
target.component = component.cya_label;
|
|
23
24
|
return target;
|
|
24
25
|
};
|
|
25
26
|
var _default = addLabel;
|