@ukhomeoffice/cop-react-form-renderer 0.1.0-beta
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/README.md +38 -0
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +77 -0
- package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +9 -0
- package/dist/components/CheckYourAnswers/index.js +13 -0
- package/dist/components/FormComponent/FormComponent.js +95 -0
- package/dist/components/FormComponent/index.js +13 -0
- package/dist/components/FormPage/FormPage.js +121 -0
- package/dist/components/FormPage/FormPage.scss +7 -0
- package/dist/components/FormPage/index.js +13 -0
- package/dist/components/FormRenderer/FormRenderer.js +203 -0
- package/dist/components/FormRenderer/FormRenderer.scss +5 -0
- package/dist/components/FormRenderer/helpers.js +66 -0
- package/dist/components/FormRenderer/helpers.test.js +158 -0
- package/dist/components/FormRenderer/index.js +13 -0
- package/dist/components/PageActions/PageActions.js +49 -0
- package/dist/components/PageActions/index.js +13 -0
- package/dist/components/SummaryList/RowAction.js +75 -0
- package/dist/components/SummaryList/SummaryList.js +93 -0
- package/dist/components/SummaryList/SummaryList.scss +2 -0
- package/dist/components/SummaryList/index.js +13 -0
- package/dist/components/index.js +31 -0
- package/dist/hooks/index.js +39 -0
- package/dist/hooks/useAxios.js +80 -0
- package/dist/hooks/useGetRequest.js +149 -0
- package/dist/hooks/useHooks.js +51 -0
- package/dist/hooks/useRefData.js +91 -0
- package/dist/index.js +48 -0
- package/dist/models/ComponentTypes.js +26 -0
- package/dist/models/FormTypes.js +18 -0
- package/dist/models/HubFormats.js +12 -0
- package/dist/models/index.js +31 -0
- package/dist/utils/CheckYourAnswers/getCYAAction.js +22 -0
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +92 -0
- package/dist/utils/CheckYourAnswers/getCYARow.js +27 -0
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +151 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +24 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +134 -0
- package/dist/utils/CheckYourAnswers/index.js +17 -0
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +37 -0
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +54 -0
- package/dist/utils/Component/cleanAttributes.js +55 -0
- package/dist/utils/Component/cleanAttributes.test.js +69 -0
- package/dist/utils/Component/getComponent.js +117 -0
- package/dist/utils/Component/getComponent.test.js +329 -0
- package/dist/utils/Component/index.js +28 -0
- package/dist/utils/Component/isEditable.js +19 -0
- package/dist/utils/Component/isEditable.test.js +42 -0
- package/dist/utils/Component/showComponent.js +44 -0
- package/dist/utils/Component/showComponent.test.js +94 -0
- package/dist/utils/Component/wrapInFormGroup.js +23 -0
- package/dist/utils/Data/getAutocompleteSource.js +28 -0
- package/dist/utils/Data/getAutocompleteSource.test.js +146 -0
- package/dist/utils/Data/getOptions.js +21 -0
- package/dist/utils/Data/getOptions.test.js +71 -0
- package/dist/utils/Data/getSourceData.js +34 -0
- package/dist/utils/Data/getSourceData.test.js +125 -0
- package/dist/utils/Data/index.js +34 -0
- package/dist/utils/Data/refDataToOptions.js +33 -0
- package/dist/utils/Data/refDataToOptions.test.js +99 -0
- package/dist/utils/Data/setupFormData.js +63 -0
- package/dist/utils/Data/setupFormData.test.js +216 -0
- package/dist/utils/Data/setupRefDataUrlForComponent.js +29 -0
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +83 -0
- package/dist/utils/FormPage/getFormPage.js +45 -0
- package/dist/utils/FormPage/getFormPages.js +33 -0
- package/dist/utils/FormPage/getParagraphFromText.js +20 -0
- package/dist/utils/FormPage/index.js +19 -0
- package/dist/utils/FormPage/useComponent.js +31 -0
- package/dist/utils/Hub/getFormHub.js +30 -0
- package/dist/utils/Hub/index.js +20 -0
- package/dist/utils/Validate/index.js +26 -0
- package/dist/utils/Validate/validateComponent.js +49 -0
- package/dist/utils/Validate/validateComponent.test.js +119 -0
- package/dist/utils/Validate/validateEmail.js +39 -0
- package/dist/utils/Validate/validateEmail.test.js +57 -0
- package/dist/utils/Validate/validatePage.js +35 -0
- package/dist/utils/Validate/validatePage.test.js +122 -0
- package/dist/utils/Validate/validateRequired.js +38 -0
- package/dist/utils/Validate/validateRequired.test.js +50 -0
- package/dist/utils/index.js +43 -0
- package/dist/utils/meetsCondition.js +79 -0
- package/package.json +91 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPage = exports.getFormState = exports.getCYA = exports.canActionProceed = void 0;
|
|
7
|
+
|
|
8
|
+
var _models = require("../../models");
|
|
9
|
+
|
|
10
|
+
var _utils = _interopRequireDefault(require("../../utils"));
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
// Local imports
|
|
15
|
+
var getCYA = function getCYA(pageId, hub) {
|
|
16
|
+
if (pageId === 'hub' && hub === _models.HubFormats.CYA) {
|
|
17
|
+
return {
|
|
18
|
+
title: ''
|
|
19
|
+
};
|
|
20
|
+
} else if (pageId === _models.HubFormats.CYA) {
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return undefined;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
exports.getCYA = getCYA;
|
|
28
|
+
|
|
29
|
+
var getPage = function getPage(pageId, pages, hub) {
|
|
30
|
+
if (pageId) {
|
|
31
|
+
if (pageId === 'hub') {
|
|
32
|
+
return hub === _models.HubFormats.CYA ? undefined : hub;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return pages.find(function (p) {
|
|
36
|
+
return p.id === pageId;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return undefined;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.getPage = getPage;
|
|
44
|
+
|
|
45
|
+
var getFormState = function getFormState(pageId, pages, hub) {
|
|
46
|
+
return {
|
|
47
|
+
pageId: pageId,
|
|
48
|
+
cya: getCYA(pageId, hub),
|
|
49
|
+
page: getPage(pageId, pages, hub)
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
exports.getFormState = getFormState;
|
|
54
|
+
|
|
55
|
+
var canActionProceed = function canActionProceed(action, page, onError) {
|
|
56
|
+
if (action.validate) {
|
|
57
|
+
var errors = _utils.default.Validate.page(page.components, page.formData);
|
|
58
|
+
|
|
59
|
+
onError(errors);
|
|
60
|
+
return errors.length === 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return true;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
exports.canActionProceed = canActionProceed;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _helpers = require("./helpers");
|
|
4
|
+
|
|
5
|
+
var _models = require("../../models");
|
|
6
|
+
|
|
7
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
8
|
+
|
|
9
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
+
|
|
11
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
+
|
|
13
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
14
|
+
|
|
15
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
16
|
+
|
|
17
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
18
|
+
|
|
19
|
+
describe('components', function () {
|
|
20
|
+
describe('FormRenderer', function () {
|
|
21
|
+
describe('helpers', function () {
|
|
22
|
+
var HUB = {
|
|
23
|
+
id: 'hub',
|
|
24
|
+
components: []
|
|
25
|
+
};
|
|
26
|
+
var PAGES = [{
|
|
27
|
+
id: 'alpha',
|
|
28
|
+
components: ['x']
|
|
29
|
+
}, {
|
|
30
|
+
id: 'bravo',
|
|
31
|
+
components: ['y', 'z']
|
|
32
|
+
}, HUB];
|
|
33
|
+
describe('getCYA', function () {
|
|
34
|
+
it('should give an empty object if the pageId is "CYA"', function () {
|
|
35
|
+
expect((0, _helpers.getCYA)(_models.HubFormats.CYA)).toEqual({});
|
|
36
|
+
});
|
|
37
|
+
it('should give an object with a blank title if the pageId is "hub" and the hub is the CYA', function () {
|
|
38
|
+
expect((0, _helpers.getCYA)('hub', _models.HubFormats.CYA)).toEqual({
|
|
39
|
+
title: ''
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
it('should give undefined if pageId is "hub" and the hub is NOT the CYA', function () {
|
|
43
|
+
expect((0, _helpers.getCYA)('hub', HUB)).toBeUndefined();
|
|
44
|
+
});
|
|
45
|
+
it('should give undefined if pageId is NOT "hub" and the hub is NOT the CYA', function () {
|
|
46
|
+
expect((0, _helpers.getCYA)('bob', HUB)).toBeUndefined();
|
|
47
|
+
});
|
|
48
|
+
it('should give undefined if pageId is NOT "hub" and the hub is the CYA', function () {
|
|
49
|
+
expect((0, _helpers.getCYA)('bob', _models.HubFormats.CYA)).toBeUndefined();
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe('getPage', function () {
|
|
53
|
+
it('should give undefined if the pageId is undefined', function () {
|
|
54
|
+
expect((0, _helpers.getPage)(undefined, PAGES, _models.HubFormats.CYA)).toBeUndefined();
|
|
55
|
+
});
|
|
56
|
+
it('should give undefined if the pageId is "hub" but the hub is the CYA', function () {
|
|
57
|
+
expect((0, _helpers.getPage)('hub', PAGES, _models.HubFormats.CYA)).toBeUndefined();
|
|
58
|
+
});
|
|
59
|
+
it('should give hub if the pageId is "hub" and the hub is NOT the CYA', function () {
|
|
60
|
+
expect((0, _helpers.getPage)('hub', PAGES, HUB)).toEqual(HUB);
|
|
61
|
+
});
|
|
62
|
+
it('should give find the appropriate page if the pageId is not "hub"', function () {
|
|
63
|
+
expect((0, _helpers.getPage)('alpha', PAGES, HUB)).toEqual({
|
|
64
|
+
id: 'alpha',
|
|
65
|
+
components: ['x']
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
it('should give undefined if the pageId is not "hub" and not found in the pages collection', function () {
|
|
69
|
+
expect((0, _helpers.getPage)('charlie', PAGES, HUB)).toBeUndefined();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('getFormState', function () {
|
|
73
|
+
it('should set up accordingly when viewing a hub that is the CYA', function () {
|
|
74
|
+
expect((0, _helpers.getFormState)('hub', PAGES, _models.HubFormats.CYA)).toEqual({
|
|
75
|
+
pageId: 'hub',
|
|
76
|
+
cya: {
|
|
77
|
+
title: ''
|
|
78
|
+
},
|
|
79
|
+
page: undefined
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
it('should set up accordingly when viewing a hub that is NOT the CYA', function () {
|
|
83
|
+
expect((0, _helpers.getFormState)('hub', PAGES, HUB)).toEqual({
|
|
84
|
+
pageId: 'hub',
|
|
85
|
+
cya: undefined,
|
|
86
|
+
page: HUB
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
it('should set up accordingly when viewing the CYA', function () {
|
|
90
|
+
expect((0, _helpers.getFormState)(_models.HubFormats.CYA, PAGES, HUB)).toEqual({
|
|
91
|
+
pageId: _models.HubFormats.CYA,
|
|
92
|
+
cya: {},
|
|
93
|
+
page: undefined
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
it('should set up accordingly when viewing a standard page', function () {
|
|
97
|
+
expect((0, _helpers.getFormState)('bravo', PAGES, HUB)).toEqual({
|
|
98
|
+
pageId: 'bravo',
|
|
99
|
+
cya: undefined,
|
|
100
|
+
page: {
|
|
101
|
+
id: 'bravo',
|
|
102
|
+
components: ['y', 'z']
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
describe('canActionProceed', function () {
|
|
108
|
+
it('should return true when the action does not require validation', function () {
|
|
109
|
+
var ACTION = {
|
|
110
|
+
validate: false
|
|
111
|
+
};
|
|
112
|
+
expect((0, _helpers.canActionProceed)(ACTION, {}, function () {})).toBeTruthy();
|
|
113
|
+
});
|
|
114
|
+
it('should return true when the page is valid', function () {
|
|
115
|
+
var ACTION = {
|
|
116
|
+
validate: true
|
|
117
|
+
};
|
|
118
|
+
var PAGE = {
|
|
119
|
+
components: [{
|
|
120
|
+
id: 'a',
|
|
121
|
+
fieldId: 'a',
|
|
122
|
+
label: 'Alpha',
|
|
123
|
+
required: true
|
|
124
|
+
}],
|
|
125
|
+
formData: {
|
|
126
|
+
a: 'Bravo'
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
expect((0, _helpers.canActionProceed)(ACTION, PAGE, function () {})).toBeTruthy();
|
|
130
|
+
});
|
|
131
|
+
it('should return false when the page is invalid and should have called the onErrors method appropriately', function () {
|
|
132
|
+
var ACTION = {
|
|
133
|
+
validate: true
|
|
134
|
+
};
|
|
135
|
+
var PAGE = {
|
|
136
|
+
components: [{
|
|
137
|
+
id: 'a',
|
|
138
|
+
fieldId: 'a',
|
|
139
|
+
label: 'Alpha',
|
|
140
|
+
required: true
|
|
141
|
+
}],
|
|
142
|
+
formData: {}
|
|
143
|
+
};
|
|
144
|
+
var ERRORS = [];
|
|
145
|
+
|
|
146
|
+
var ON_ERROR = function ON_ERROR(errors) {
|
|
147
|
+
ERRORS.push.apply(ERRORS, _toConsumableArray(errors));
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
expect((0, _helpers.canActionProceed)(ACTION, PAGE, ON_ERROR)).toBeFalsy();
|
|
151
|
+
expect(ERRORS.length).toEqual(1);
|
|
152
|
+
expect(ERRORS[0].id).toEqual('a');
|
|
153
|
+
expect(ERRORS[0].error).toEqual('Alpha is required');
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _FormRenderer = _interopRequireDefault(require("./FormRenderer"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var _default = _FormRenderer.default;
|
|
13
|
+
exports.default = _default;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.DEFAULT_LABEL = exports.DEFAULT_ACTIONS = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
// Global imports
|
|
17
|
+
var DEFAULT_LABEL = 'Continue';
|
|
18
|
+
exports.DEFAULT_LABEL = DEFAULT_LABEL;
|
|
19
|
+
var DEFAULT_ACTIONS = {
|
|
20
|
+
submit: {
|
|
21
|
+
type: 'submit',
|
|
22
|
+
validate: true
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.DEFAULT_ACTIONS = DEFAULT_ACTIONS;
|
|
26
|
+
|
|
27
|
+
var PageActions = function PageActions(_ref) {
|
|
28
|
+
var actions = _ref.actions,
|
|
29
|
+
onAction = _ref.onAction;
|
|
30
|
+
|
|
31
|
+
var getAction = function getAction(action, index) {
|
|
32
|
+
var props = typeof action === 'string' ? DEFAULT_ACTIONS[action] : action;
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement(_copReactComponents.Button, {
|
|
34
|
+
key: index,
|
|
35
|
+
className: props.className,
|
|
36
|
+
onClick: function onClick() {
|
|
37
|
+
return onAction(props);
|
|
38
|
+
}
|
|
39
|
+
}, props.label || DEFAULT_LABEL);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
return /*#__PURE__*/_react.default.createElement(_copReactComponents.ButtonGroup, null, actions.map(getAction));
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
PageActions.propTypes = {
|
|
46
|
+
actions: _propTypes.default.array.isRequired
|
|
47
|
+
};
|
|
48
|
+
var _default = PageActions;
|
|
49
|
+
exports.default = _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _PageActions = _interopRequireDefault(require("./PageActions"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var _default = _PageActions.default;
|
|
13
|
+
exports.default = _default;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
15
|
+
|
|
16
|
+
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); }
|
|
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; }
|
|
21
|
+
|
|
22
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
23
|
+
|
|
24
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
+
|
|
26
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
|
+
|
|
28
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
29
|
+
|
|
30
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
31
|
+
|
|
32
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
33
|
+
|
|
34
|
+
var RowAction = function RowAction(_ref) {
|
|
35
|
+
var row = _ref.row;
|
|
36
|
+
|
|
37
|
+
var _useState = (0, _react.useState)({}),
|
|
38
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
39
|
+
attrs = _useState2[0],
|
|
40
|
+
setAttrs = _useState2[1];
|
|
41
|
+
|
|
42
|
+
(0, _react.useEffect)(function () {
|
|
43
|
+
var value = {};
|
|
44
|
+
|
|
45
|
+
if (row.action) {
|
|
46
|
+
if (typeof row.action.onAction === 'function') {
|
|
47
|
+
value = {
|
|
48
|
+
onClick: function onClick() {
|
|
49
|
+
return row.action.onAction(row);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
} else {
|
|
53
|
+
value = {
|
|
54
|
+
href: row.action.href
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
setAttrs(value);
|
|
60
|
+
}, [row, setAttrs]);
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(_copReactComponents.Link, attrs, row.action.label, row.action.aria_suffix && /*#__PURE__*/_react.default.createElement(_copReactComponents.VisuallyHidden, null, row.action.aria_suffix));
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
RowAction.propTypes = {
|
|
65
|
+
row: _propTypes.default.shape({
|
|
66
|
+
action: _propTypes.default.shape({
|
|
67
|
+
href: _propTypes.default.string,
|
|
68
|
+
label: _propTypes.default.string,
|
|
69
|
+
aria_suffix: _propTypes.default.string,
|
|
70
|
+
onAction: _propTypes.default.func
|
|
71
|
+
})
|
|
72
|
+
}).isRequired
|
|
73
|
+
};
|
|
74
|
+
var _default = RowAction;
|
|
75
|
+
exports.default = _default;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.DEFAULT_CLASS = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
13
|
+
|
|
14
|
+
var _RowAction = _interopRequireDefault(require("./RowAction"));
|
|
15
|
+
|
|
16
|
+
require("./SummaryList.scss");
|
|
17
|
+
|
|
18
|
+
var _FormComponent = _interopRequireDefault(require("../FormComponent"));
|
|
19
|
+
|
|
20
|
+
var _excluded = ["rows", "classBlock", "classModifiers", "className"];
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
33
|
+
|
|
34
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
35
|
+
|
|
36
|
+
var DEFAULT_CLASS = 'govuk-summary-list';
|
|
37
|
+
exports.DEFAULT_CLASS = DEFAULT_CLASS;
|
|
38
|
+
|
|
39
|
+
var SummaryList = function SummaryList(_ref) {
|
|
40
|
+
var rows = _ref.rows,
|
|
41
|
+
classBlock = _ref.classBlock,
|
|
42
|
+
classModifiers = _ref.classModifiers,
|
|
43
|
+
className = _ref.className,
|
|
44
|
+
attrs = _objectWithoutProperties(_ref, _excluded);
|
|
45
|
+
|
|
46
|
+
var classes = _copReactComponents.Utils.classBuilder(classBlock, classModifiers, className);
|
|
47
|
+
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement("dl", _extends({}, attrs, {
|
|
49
|
+
className: classes()
|
|
50
|
+
}), rows.map(function (row, index) {
|
|
51
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
52
|
+
key: index,
|
|
53
|
+
className: classes('row')
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement("dt", {
|
|
55
|
+
className: classes('key')
|
|
56
|
+
}, row.key), /*#__PURE__*/_react.default.createElement("dd", {
|
|
57
|
+
className: classes('value')
|
|
58
|
+
}, row.component && row.value ? /*#__PURE__*/_react.default.createElement(_FormComponent.default, {
|
|
59
|
+
component: _objectSpread(_objectSpread({}, row.component), {}, {
|
|
60
|
+
readonly: true
|
|
61
|
+
}),
|
|
62
|
+
noWrap: true,
|
|
63
|
+
value: row.value
|
|
64
|
+
}) : row.value), row.action && /*#__PURE__*/_react.default.createElement("dd", {
|
|
65
|
+
className: classes('actions')
|
|
66
|
+
}, /*#__PURE__*/_react.default.createElement(_RowAction.default, {
|
|
67
|
+
row: row
|
|
68
|
+
})));
|
|
69
|
+
}));
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
SummaryList.propTypes = {
|
|
73
|
+
rows: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
74
|
+
pageId: _propTypes.default.string.isRequired,
|
|
75
|
+
fieldId: _propTypes.default.string.isRequired,
|
|
76
|
+
key: _propTypes.default.string.isRequired,
|
|
77
|
+
value: _propTypes.default.any,
|
|
78
|
+
action: _propTypes.default.shape({
|
|
79
|
+
href: _propTypes.default.string,
|
|
80
|
+
label: _propTypes.default.string,
|
|
81
|
+
aria_suffix: _propTypes.default.string,
|
|
82
|
+
onAction: _propTypes.default.func
|
|
83
|
+
})
|
|
84
|
+
})).isRequired,
|
|
85
|
+
classBlock: _propTypes.default.string,
|
|
86
|
+
classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
87
|
+
className: _propTypes.default.string
|
|
88
|
+
};
|
|
89
|
+
SummaryList.defaultProps = {
|
|
90
|
+
classBlock: DEFAULT_CLASS
|
|
91
|
+
};
|
|
92
|
+
var _default = SummaryList;
|
|
93
|
+
exports.default = _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _SummaryList = _interopRequireDefault(require("./SummaryList"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var _default = _SummaryList.default;
|
|
13
|
+
exports.default = _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "CheckYourAnswers", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _CheckYourAnswers.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FormPage", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _FormPage.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "FormRenderer", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _FormRenderer.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
var _CheckYourAnswers = _interopRequireDefault(require("./CheckYourAnswers"));
|
|
26
|
+
|
|
27
|
+
var _FormPage = _interopRequireDefault(require("./FormPage"));
|
|
28
|
+
|
|
29
|
+
var _FormRenderer = _interopRequireDefault(require("./FormRenderer"));
|
|
30
|
+
|
|
31
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "useAxios", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _useAxios.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useGetRequest", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _useGetRequest.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "useHooks", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _useHooks.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "useRefData", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _useRefData.default;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
var _useAxios = _interopRequireDefault(require("./useAxios"));
|
|
32
|
+
|
|
33
|
+
var _useHooks = _interopRequireDefault(require("./useHooks"));
|
|
34
|
+
|
|
35
|
+
var _useGetRequest = _interopRequireDefault(require("./useGetRequest"));
|
|
36
|
+
|
|
37
|
+
var _useRefData = _interopRequireDefault(require("./useRefData"));
|
|
38
|
+
|
|
39
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _useHooks2 = _interopRequireDefault(require("./useHooks"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
17
|
+
|
|
18
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
19
|
+
|
|
20
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
+
|
|
22
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
+
|
|
24
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
25
|
+
|
|
26
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
27
|
+
|
|
28
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
29
|
+
|
|
30
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
31
|
+
|
|
32
|
+
var useAxios = function useAxios() {
|
|
33
|
+
var _useHooks = (0, _useHooks2.default)(),
|
|
34
|
+
hooks = _useHooks.hooks;
|
|
35
|
+
|
|
36
|
+
var _useState = (0, _react.useState)({}),
|
|
37
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
38
|
+
axiosInstance = _useState2[0],
|
|
39
|
+
setAxiosInstance = _useState2[1];
|
|
40
|
+
|
|
41
|
+
(0, _react.useEffect)(function () {
|
|
42
|
+
var instance = _axios.default.create({
|
|
43
|
+
baseURL: '/'
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
instance.interceptors.request.use(hooks.onRequest);
|
|
47
|
+
instance.interceptors.response.use(function (response) {
|
|
48
|
+
return response;
|
|
49
|
+
}, /*#__PURE__*/function () {
|
|
50
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(error) {
|
|
51
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
52
|
+
while (1) {
|
|
53
|
+
switch (_context.prev = _context.next) {
|
|
54
|
+
case 0:
|
|
55
|
+
return _context.abrupt("return", Promise.reject(error));
|
|
56
|
+
|
|
57
|
+
case 1:
|
|
58
|
+
case "end":
|
|
59
|
+
return _context.stop();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}, _callee);
|
|
63
|
+
}));
|
|
64
|
+
|
|
65
|
+
return function (_x) {
|
|
66
|
+
return _ref.apply(this, arguments);
|
|
67
|
+
};
|
|
68
|
+
}());
|
|
69
|
+
setAxiosInstance({
|
|
70
|
+
instance: instance
|
|
71
|
+
});
|
|
72
|
+
return function () {
|
|
73
|
+
setAxiosInstance({});
|
|
74
|
+
};
|
|
75
|
+
}, [hooks]);
|
|
76
|
+
return axiosInstance.instance;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var _default = useAxios;
|
|
80
|
+
exports.default = _default;
|