@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,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _setupFormData = _interopRequireDefault(require("./setupFormData"));
|
|
4
|
+
|
|
5
|
+
var _userProfile = _interopRequireDefault(require("../../json/userProfile.json"));
|
|
6
|
+
|
|
7
|
+
var _userProfileData = _interopRequireDefault(require("../../json/userProfile.data.json"));
|
|
8
|
+
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
|
|
11
|
+
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; }
|
|
12
|
+
|
|
13
|
+
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; }
|
|
14
|
+
|
|
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
|
+
|
|
17
|
+
describe('utils', function () {
|
|
18
|
+
describe('Data', function () {
|
|
19
|
+
describe('setupFormData', function () {
|
|
20
|
+
it('should populate a simple form', function () {
|
|
21
|
+
var PAGES = [];
|
|
22
|
+
var COMPONENTS = [{
|
|
23
|
+
fieldId: 'testField',
|
|
24
|
+
source: {
|
|
25
|
+
field: 'sourceField'
|
|
26
|
+
}
|
|
27
|
+
}];
|
|
28
|
+
var DATA = {
|
|
29
|
+
sourceField: 'VALUE'
|
|
30
|
+
};
|
|
31
|
+
var RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
32
|
+
expect(RESULT).toEqual({
|
|
33
|
+
sourceField: 'VALUE',
|
|
34
|
+
testField: 'VALUE'
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
it('should handle a missing source field', function () {
|
|
38
|
+
var PAGES = [];
|
|
39
|
+
var COMPONENTS = [{
|
|
40
|
+
fieldId: 'testField',
|
|
41
|
+
source: {
|
|
42
|
+
field: 'otherSourceField'
|
|
43
|
+
}
|
|
44
|
+
}];
|
|
45
|
+
var DATA = {
|
|
46
|
+
sourceField: 'VALUE'
|
|
47
|
+
};
|
|
48
|
+
var RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
49
|
+
expect(RESULT).toEqual({
|
|
50
|
+
sourceField: 'VALUE',
|
|
51
|
+
testField: undefined
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
it('should handle a nested source field', function () {
|
|
55
|
+
var PAGES = [];
|
|
56
|
+
var COMPONENTS = [{
|
|
57
|
+
fieldId: 'testField',
|
|
58
|
+
source: {
|
|
59
|
+
field: 'nested.sourceField'
|
|
60
|
+
}
|
|
61
|
+
}];
|
|
62
|
+
var DATA = {
|
|
63
|
+
nested: {
|
|
64
|
+
sourceField: 'VALUE'
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
var RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
68
|
+
expect(RESULT).toEqual({
|
|
69
|
+
nested: {
|
|
70
|
+
sourceField: 'VALUE'
|
|
71
|
+
},
|
|
72
|
+
testField: 'VALUE'
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
it('should handle a missing nested source field', function () {
|
|
76
|
+
var PAGES = [];
|
|
77
|
+
var COMPONENTS = [{
|
|
78
|
+
fieldId: 'testField',
|
|
79
|
+
source: {
|
|
80
|
+
field: 'nested.otherSourceField'
|
|
81
|
+
}
|
|
82
|
+
}];
|
|
83
|
+
var DATA = {
|
|
84
|
+
nested: {
|
|
85
|
+
sourceField: 'VALUE'
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
var RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
89
|
+
expect(RESULT).toEqual({
|
|
90
|
+
nested: {
|
|
91
|
+
sourceField: 'VALUE'
|
|
92
|
+
},
|
|
93
|
+
testField: undefined
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
it('should handle an entirely missing nested source field', function () {
|
|
97
|
+
var PAGES = [];
|
|
98
|
+
var COMPONENTS = [{
|
|
99
|
+
fieldId: 'testField',
|
|
100
|
+
source: {
|
|
101
|
+
field: 'otherNested.sourceField'
|
|
102
|
+
}
|
|
103
|
+
}];
|
|
104
|
+
var DATA = {
|
|
105
|
+
nested: {
|
|
106
|
+
sourceField: 'VALUE'
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
var RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
110
|
+
expect(RESULT).toEqual({
|
|
111
|
+
nested: {
|
|
112
|
+
sourceField: 'VALUE'
|
|
113
|
+
},
|
|
114
|
+
testField: undefined
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
it('should handle sources within pages', function () {
|
|
118
|
+
var PAGES = [{
|
|
119
|
+
components: [{
|
|
120
|
+
fieldId: 'pageField',
|
|
121
|
+
source: {
|
|
122
|
+
field: 'pageSourceField'
|
|
123
|
+
}
|
|
124
|
+
}]
|
|
125
|
+
}, {
|
|
126
|
+
components: [{
|
|
127
|
+
fieldId: 'secondPageField',
|
|
128
|
+
source: {
|
|
129
|
+
field: 'secondPageSourceField'
|
|
130
|
+
}
|
|
131
|
+
}]
|
|
132
|
+
}];
|
|
133
|
+
var COMPONENTS = [{
|
|
134
|
+
fieldId: 'testField',
|
|
135
|
+
source: {
|
|
136
|
+
field: 'nested.sourceField'
|
|
137
|
+
}
|
|
138
|
+
}];
|
|
139
|
+
var DATA = {
|
|
140
|
+
nested: {
|
|
141
|
+
sourceField: 'VALUE'
|
|
142
|
+
},
|
|
143
|
+
pageSourceField: 'PAGE 1',
|
|
144
|
+
secondPageSourceField: 'Bob'
|
|
145
|
+
};
|
|
146
|
+
var RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
147
|
+
expect(RESULT).toEqual({
|
|
148
|
+
nested: {
|
|
149
|
+
sourceField: 'VALUE'
|
|
150
|
+
},
|
|
151
|
+
pageSourceField: 'PAGE 1',
|
|
152
|
+
secondPageSourceField: 'Bob',
|
|
153
|
+
testField: 'VALUE',
|
|
154
|
+
pageField: 'PAGE 1',
|
|
155
|
+
secondPageField: 'Bob'
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
it('should ignore sources within pages that reference a top-level component', function () {
|
|
159
|
+
var PAGES = [{
|
|
160
|
+
components: [{
|
|
161
|
+
fieldId: 'pageField',
|
|
162
|
+
use: 'testField',
|
|
163
|
+
source: {
|
|
164
|
+
field: 'pageSourceField'
|
|
165
|
+
}
|
|
166
|
+
}]
|
|
167
|
+
}, {
|
|
168
|
+
components: [{
|
|
169
|
+
fieldId: 'secondPageField',
|
|
170
|
+
source: {
|
|
171
|
+
field: 'secondPageSourceField'
|
|
172
|
+
}
|
|
173
|
+
}]
|
|
174
|
+
}];
|
|
175
|
+
var COMPONENTS = [{
|
|
176
|
+
fieldId: 'testField',
|
|
177
|
+
source: {
|
|
178
|
+
field: 'nested.sourceField'
|
|
179
|
+
}
|
|
180
|
+
}];
|
|
181
|
+
var DATA = {
|
|
182
|
+
nested: {
|
|
183
|
+
sourceField: 'VALUE'
|
|
184
|
+
},
|
|
185
|
+
pageSourceField: 'PAGE 1',
|
|
186
|
+
secondPageSourceField: 'Bob'
|
|
187
|
+
};
|
|
188
|
+
var RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
189
|
+
expect(RESULT).toEqual({
|
|
190
|
+
nested: {
|
|
191
|
+
sourceField: 'VALUE'
|
|
192
|
+
},
|
|
193
|
+
pageSourceField: 'PAGE 1',
|
|
194
|
+
secondPageSourceField: 'Bob',
|
|
195
|
+
testField: 'VALUE',
|
|
196
|
+
secondPageField: 'Bob'
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
it('should populate data for the user profile configuration and source', function () {
|
|
200
|
+
var pages = _userProfile.default.pages,
|
|
201
|
+
components = _userProfile.default.components;
|
|
202
|
+
var RESULT = (0, _setupFormData.default)(pages, components, _userProfileData.default); // It should produce an aggregation of the original source data (USER_PROFILE_DATA)
|
|
203
|
+
// and data calculated for the fields, based on that source data.
|
|
204
|
+
|
|
205
|
+
expect(RESULT).toEqual(_objectSpread(_objectSpread({}, _userProfileData.default), {}, {
|
|
206
|
+
firstName: _userProfileData.default.keycloakContext.givenName,
|
|
207
|
+
surname: _userProfileData.default.keycloakContext.familyName,
|
|
208
|
+
team: _userProfileData.default.staffDetailsDataContext.defaultteam,
|
|
209
|
+
staffGradeId: _userProfileData.default.staffDetailsDataContext.gradeid,
|
|
210
|
+
linemanagerEmail: _userProfileData.default.extendedStaffDetailsContext.linemanagerEmail,
|
|
211
|
+
delegateEmails: _userProfileData.default.extendedStaffDetailsContext.delegateEmails
|
|
212
|
+
}));
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
|
+
|
|
10
|
+
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; }
|
|
11
|
+
|
|
12
|
+
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; }
|
|
13
|
+
|
|
14
|
+
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; }
|
|
15
|
+
|
|
16
|
+
var setupRefDataUrlForComponent = function setupRefDataUrlForComponent(component, data) {
|
|
17
|
+
if (component && component.data && component.data.url) {
|
|
18
|
+
return _objectSpread(_objectSpread({}, component), {}, {
|
|
19
|
+
data: _objectSpread(_objectSpread({}, component.data), {}, {
|
|
20
|
+
url: _copReactComponents.Utils.interpolateString(component.data.url, data)
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return component;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var _default = setupRefDataUrlForComponent;
|
|
29
|
+
exports.default = _default;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _setupRefDataUrlForComponent = _interopRequireDefault(require("./setupRefDataUrlForComponent"));
|
|
4
|
+
|
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
|
|
7
|
+
// Local imports
|
|
8
|
+
describe('utils', function () {
|
|
9
|
+
describe('Data', function () {
|
|
10
|
+
describe('setupRefDataUrlForComponent', function () {
|
|
11
|
+
var DATA = {
|
|
12
|
+
environmentContext: {
|
|
13
|
+
refData: '/ref-data'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
it('can handle a null component', function () {
|
|
17
|
+
expect((0, _setupRefDataUrlForComponent.default)(null, DATA)).toBeNull();
|
|
18
|
+
});
|
|
19
|
+
it('can handle an undefined component', function () {
|
|
20
|
+
expect((0, _setupRefDataUrlForComponent.default)(undefined, DATA)).toBeUndefined();
|
|
21
|
+
});
|
|
22
|
+
it('can handle a component with no data property', function () {
|
|
23
|
+
var COMPONENT = {
|
|
24
|
+
id: 'component'
|
|
25
|
+
};
|
|
26
|
+
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
|
|
27
|
+
});
|
|
28
|
+
it('can handle a component with no data.url property', function () {
|
|
29
|
+
var COMPONENT = {
|
|
30
|
+
id: 'component',
|
|
31
|
+
data: {
|
|
32
|
+
options: []
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
|
|
36
|
+
});
|
|
37
|
+
it('should appropriately updates the component URL', function () {
|
|
38
|
+
var COMPONENT = {
|
|
39
|
+
id: 'component',
|
|
40
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
41
|
+
data: {
|
|
42
|
+
url: '${environmentContext.refData}/v1/teams'
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual({
|
|
46
|
+
id: COMPONENT.id,
|
|
47
|
+
data: {
|
|
48
|
+
url: "".concat(DATA.environmentContext.refData, "/v1/teams")
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
it('should leave a URL alone that does not require replacement', function () {
|
|
53
|
+
var COMPONENT = {
|
|
54
|
+
id: 'component',
|
|
55
|
+
data: {
|
|
56
|
+
url: '/somewhere-else/v1/teams'
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual({
|
|
60
|
+
id: COMPONENT.id,
|
|
61
|
+
data: {
|
|
62
|
+
url: COMPONENT.data.url
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
it('should appropriately handle a missing value in the data', function () {
|
|
67
|
+
var COMPONENT = {
|
|
68
|
+
id: 'component',
|
|
69
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
70
|
+
data: {
|
|
71
|
+
url: '${environmentContext.referenceData}/v1/teams'
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual({
|
|
75
|
+
id: COMPONENT.id,
|
|
76
|
+
data: {
|
|
77
|
+
url: '/v1/teams'
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _Data = _interopRequireDefault(require("../Data"));
|
|
9
|
+
|
|
10
|
+
var _getParagraphFromText = _interopRequireDefault(require("./getParagraphFromText"));
|
|
11
|
+
|
|
12
|
+
var _useComponent = _interopRequireDefault(require("./useComponent"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
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; }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
21
|
+
|
|
22
|
+
var getFormPage = function getFormPage(pageOptions, formComponents, formData) {
|
|
23
|
+
var components = pageOptions.components.map(function (componentOptions) {
|
|
24
|
+
if (typeof componentOptions === 'string') {
|
|
25
|
+
return (0, _getParagraphFromText.default)(componentOptions);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var ret = undefined;
|
|
29
|
+
|
|
30
|
+
if (componentOptions.use) {
|
|
31
|
+
ret = (0, _useComponent.default)(componentOptions, formComponents);
|
|
32
|
+
} else {
|
|
33
|
+
ret = _objectSpread({}, componentOptions);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return formData && formData.environmentContext ? _Data.default.refData.setupUrl(ret, formData) : ret;
|
|
37
|
+
});
|
|
38
|
+
return _objectSpread(_objectSpread({}, pageOptions), {}, {
|
|
39
|
+
formData: formData,
|
|
40
|
+
components: components
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
var _default = getFormPage;
|
|
45
|
+
exports.default = _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _getFormPage = _interopRequireDefault(require("./getFormPage"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
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; }
|
|
13
|
+
|
|
14
|
+
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; }
|
|
15
|
+
|
|
16
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
|
|
18
|
+
var getFormPages = function getFormPages(pages, components, formData) {
|
|
19
|
+
var formPages = [];
|
|
20
|
+
|
|
21
|
+
if (Array.isArray(pages)) {
|
|
22
|
+
pages.forEach(function (options, index) {
|
|
23
|
+
formPages.push(_objectSpread(_objectSpread({}, (0, _getFormPage.default)(options, components, formData)), {}, {
|
|
24
|
+
index: index
|
|
25
|
+
}));
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return formPages;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
var _default = getFormPages;
|
|
33
|
+
exports.default = _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _models = require("../../models");
|
|
9
|
+
|
|
10
|
+
// Local imports
|
|
11
|
+
var getParagraphFromText = function getParagraphFromText(content) {
|
|
12
|
+
return {
|
|
13
|
+
type: _models.ComponentTypes.HTML,
|
|
14
|
+
tagName: 'p',
|
|
15
|
+
content: content
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
var _default = getParagraphFromText;
|
|
20
|
+
exports.default = _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _getFormPage = _interopRequireDefault(require("./getFormPage"));
|
|
9
|
+
|
|
10
|
+
var _getFormPages = _interopRequireDefault(require("./getFormPages"));
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
var FormPage = {
|
|
15
|
+
get: _getFormPage.default,
|
|
16
|
+
getAll: _getFormPages.default
|
|
17
|
+
};
|
|
18
|
+
var _default = FormPage;
|
|
19
|
+
exports.default = _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
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; }
|
|
9
|
+
|
|
10
|
+
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; }
|
|
11
|
+
|
|
12
|
+
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; }
|
|
13
|
+
|
|
14
|
+
var useComponent = function useComponent(toUse, formComponents) {
|
|
15
|
+
var formComponent = formComponents.find(function (fc) {
|
|
16
|
+
return fc.id === toUse.use;
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
if (formComponent) {
|
|
20
|
+
var fieldId = toUse.fieldId || formComponent.fieldId;
|
|
21
|
+
return _objectSpread(_objectSpread(_objectSpread({}, formComponent), toUse), {}, {
|
|
22
|
+
cya_label: formComponent.label,
|
|
23
|
+
fieldId: fieldId
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return _objectSpread({}, toUse);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var _default = useComponent;
|
|
31
|
+
exports.default = _default;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _FormPage = _interopRequireDefault(require("../FormPage"));
|
|
9
|
+
|
|
10
|
+
var _models = require("../../models");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
// Local imports
|
|
15
|
+
var getFormHub = function getFormHub(type, hub, components) {
|
|
16
|
+
if (type === _models.FormTypes.HUB && hub) {
|
|
17
|
+
if (hub.format === _models.HubFormats.CYA) {
|
|
18
|
+
return _models.HubFormats.CYA;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (hub.components) {
|
|
22
|
+
return _FormPage.default.get(hub, components);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return undefined;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
var _default = getFormHub;
|
|
30
|
+
exports.default = _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _getFormHub = _interopRequireDefault(require("./getFormHub"));
|
|
9
|
+
|
|
10
|
+
var _models = require("../../models");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
// Local imports
|
|
15
|
+
var Hub = {
|
|
16
|
+
formats: _models.HubFormats,
|
|
17
|
+
get: _getFormHub.default
|
|
18
|
+
};
|
|
19
|
+
var _default = Hub;
|
|
20
|
+
exports.default = _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _validateComponent = _interopRequireDefault(require("./validateComponent"));
|
|
9
|
+
|
|
10
|
+
var _validateEmail = _interopRequireDefault(require("./validateEmail"));
|
|
11
|
+
|
|
12
|
+
var _validatePage = _interopRequireDefault(require("./validatePage"));
|
|
13
|
+
|
|
14
|
+
var _validateRequired = _interopRequireDefault(require("./validateRequired"));
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
// Local imports
|
|
19
|
+
var Validate = {
|
|
20
|
+
component: _validateComponent.default,
|
|
21
|
+
email: _validateEmail.default,
|
|
22
|
+
page: _validatePage.default,
|
|
23
|
+
required: _validateRequired.default
|
|
24
|
+
};
|
|
25
|
+
var _default = Validate;
|
|
26
|
+
exports.default = _default;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _models = require("../../models");
|
|
9
|
+
|
|
10
|
+
var _validateRequired = _interopRequireDefault(require("./validateRequired"));
|
|
11
|
+
|
|
12
|
+
var _validateEmail = _interopRequireDefault(require("./validateEmail"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
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); }
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Validates a single component.
|
|
20
|
+
* @param {object} component The component to validate.
|
|
21
|
+
* @param {object} formData The data to use that holds this component's value.
|
|
22
|
+
* @returns The first encountered error with the component.
|
|
23
|
+
*/
|
|
24
|
+
var validateComponent = function validateComponent(component, formData) {
|
|
25
|
+
var error = undefined;
|
|
26
|
+
var data = formData && _typeof(formData) === 'object' ? formData : {};
|
|
27
|
+
|
|
28
|
+
if (component) {
|
|
29
|
+
var value = data[component.fieldId];
|
|
30
|
+
|
|
31
|
+
if (component.required) {
|
|
32
|
+
error = (0, _validateRequired.default)(value, component.label);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (!error && component.type === _models.ComponentTypes.EMAIL) {
|
|
36
|
+
error = (0, _validateEmail.default)(value, component.label);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
component.error = error;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return error ? {
|
|
43
|
+
id: component.id,
|
|
44
|
+
error: error
|
|
45
|
+
} : undefined;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var _default = validateComponent;
|
|
49
|
+
exports.default = _default;
|