@zengenti/contensis-react-base 3.0.2-beta.1 → 3.0.2-beta.11
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/cjs/{App-ee485b92.js → App-81a45001.js} +111 -427
- package/cjs/App-81a45001.js.map +1 -0
- package/cjs/ContensisDeliveryApi-de88df2a.js +231 -0
- package/cjs/ContensisDeliveryApi-de88df2a.js.map +1 -0
- package/cjs/{RouteLoader-3aa6456e.js → RouteLoader-47d70a26.js} +23 -37
- package/{esm/RouteLoader-5171c63f.js.map → cjs/RouteLoader-47d70a26.js.map} +1 -1
- package/cjs/{ToJs-a9a8522b.js → ToJs-61c03582.js} +3 -4
- package/cjs/{ToJs-a9a8522b.js.map → ToJs-61c03582.js.map} +1 -1
- package/cjs/client.js +20 -27
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +124 -188
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/forms.js +15 -154
- package/cjs/forms.js.map +1 -1
- package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-7c363211.js} +1 -4
- package/cjs/{fromJSLeaveImmer-e74c673c.js.map → fromJSLeaveImmer-7c363211.js.map} +1 -1
- package/cjs/{login-840860bc.js → login-51b66359.js} +64 -113
- package/cjs/login-51b66359.js.map +1 -0
- package/cjs/{reducers-3a4f8971.js → reducers-9afb5f89.js} +14 -31
- package/cjs/reducers-9afb5f89.js.map +1 -0
- package/cjs/redux.js +17 -17
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +6 -7
- package/cjs/routing.js.map +1 -1
- package/cjs/{sagas-e2a34262.js → sagas-7fe150ac.js} +184 -283
- package/cjs/sagas-7fe150ac.js.map +1 -0
- package/cjs/search.js +56 -82
- package/cjs/search.js.map +1 -1
- package/cjs/{selectors-656da4b7.js → selectors-c76c2676.js} +84 -7
- package/cjs/selectors-c76c2676.js.map +1 -0
- package/cjs/urls-6fcaf4c6.js.map +1 -1
- package/cjs/user.js +4 -13
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +45 -53
- package/cjs/util.js.map +1 -1
- package/cjs/{version-78dfc3bd.js → version-38afaf2a.js} +45 -158
- package/cjs/version-38afaf2a.js.map +1 -0
- package/cjs/version-886f49d8.js +98 -0
- package/cjs/version-886f49d8.js.map +1 -0
- package/esm/{App-640239d2.js → App-5f914483.js} +93 -407
- package/esm/App-5f914483.js.map +1 -0
- package/esm/ContensisDeliveryApi-ad06857d.js +227 -0
- package/esm/ContensisDeliveryApi-ad06857d.js.map +1 -0
- package/esm/{RouteLoader-5171c63f.js → RouteLoader-f5d5f733.js} +22 -36
- package/{cjs/RouteLoader-3aa6456e.js.map → esm/RouteLoader-f5d5f733.js.map} +1 -1
- package/esm/{ToJs-4e02a04d.js → ToJs-0066e629.js} +3 -4
- package/esm/{ToJs-4e02a04d.js.map → ToJs-0066e629.js.map} +1 -1
- package/esm/client.js +15 -22
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +119 -183
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/forms.js +15 -154
- package/esm/forms.js.map +1 -1
- package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-e2dacd63.js} +1 -4
- package/esm/{fromJSLeaveImmer-0114ffcf.js.map → fromJSLeaveImmer-e2dacd63.js.map} +1 -1
- package/esm/{login-57395c9c.js → login-4d07c2de.js} +63 -112
- package/esm/login-4d07c2de.js.map +1 -0
- package/esm/{reducers-8e5d6232.js → reducers-3d5c37d1.js} +14 -31
- package/esm/reducers-3d5c37d1.js.map +1 -0
- package/esm/redux.js +9 -8
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +3 -4
- package/esm/routing.js.map +1 -1
- package/esm/{sagas-bb925ef4.js → sagas-6b43bc4e.js} +136 -236
- package/esm/sagas-6b43bc4e.js.map +1 -0
- package/esm/search.js +57 -83
- package/esm/search.js.map +1 -1
- package/esm/{selectors-a5e5835b.js → selectors-3f0d804d.js} +70 -7
- package/esm/selectors-3f0d804d.js.map +1 -0
- package/esm/urls-eac9a747.js.map +1 -1
- package/esm/user.js +6 -15
- package/esm/user.js.map +1 -1
- package/esm/util.js +42 -53
- package/esm/util.js.map +1 -1
- package/esm/{version-e3a5ec66.js → version-dd31c7f0.js} +32 -141
- package/esm/version-dd31c7f0.js.map +1 -0
- package/esm/version-f4629693.js +87 -0
- package/esm/version-f4629693.js.map +1 -0
- package/models/util/ContensisDeliveryApi.d.ts +6 -0
- package/models/util/index.d.ts +1 -0
- package/package.json +1 -1
- package/cjs/App-ee485b92.js.map +0 -1
- package/cjs/actions-8dc9e8de.js +0 -87
- package/cjs/actions-8dc9e8de.js.map +0 -1
- package/cjs/login-840860bc.js.map +0 -1
- package/cjs/reducers-3a4f8971.js.map +0 -1
- package/cjs/sagas-e2a34262.js.map +0 -1
- package/cjs/selectors-656da4b7.js.map +0 -1
- package/cjs/version-78dfc3bd.js.map +0 -1
- package/cjs/version-eba6d09b.js +0 -20
- package/cjs/version-eba6d09b.js.map +0 -1
- package/esm/App-640239d2.js.map +0 -1
- package/esm/actions-180948dd.js +0 -72
- package/esm/actions-180948dd.js.map +0 -1
- package/esm/login-57395c9c.js.map +0 -1
- package/esm/reducers-8e5d6232.js.map +0 -1
- package/esm/sagas-bb925ef4.js.map +0 -1
- package/esm/selectors-a5e5835b.js.map +0 -1
- package/esm/version-2485e2fb.js +0 -15
- package/esm/version-2485e2fb.js.map +0 -1
- package/esm/version-e3a5ec66.js.map +0 -1
package/cjs/forms.js
CHANGED
|
@@ -85,7 +85,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
85
85
|
state[formId] = initialFormData;
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
|
-
|
|
89
88
|
case SET_FORM_DATA:
|
|
90
89
|
{
|
|
91
90
|
const {
|
|
@@ -106,7 +105,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
106
105
|
state[formId].settings = settings;
|
|
107
106
|
return;
|
|
108
107
|
}
|
|
109
|
-
|
|
110
108
|
case SET_CURRENT_PAGE:
|
|
111
109
|
{
|
|
112
110
|
const {
|
|
@@ -120,7 +118,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
120
118
|
state[formId].pagingInfo.pageCount = pageCount;
|
|
121
119
|
return;
|
|
122
120
|
}
|
|
123
|
-
|
|
124
121
|
case SET_FIELD_VALUE:
|
|
125
122
|
{
|
|
126
123
|
const {
|
|
@@ -131,17 +128,18 @@ var reducer = immer.produce((state, action) => {
|
|
|
131
128
|
state[formId].data[id] = value;
|
|
132
129
|
return;
|
|
133
130
|
}
|
|
134
|
-
|
|
135
131
|
case SET_DEFAULT_FIELD_VALUE:
|
|
136
132
|
{
|
|
137
133
|
const {
|
|
138
134
|
formId,
|
|
139
135
|
value
|
|
140
136
|
} = action || {};
|
|
141
|
-
state[formId].data =
|
|
137
|
+
state[formId].data = {
|
|
138
|
+
...state[formId].data,
|
|
139
|
+
...value
|
|
140
|
+
};
|
|
142
141
|
return;
|
|
143
142
|
}
|
|
144
|
-
|
|
145
143
|
case SET_CHECKBOX_VALUE:
|
|
146
144
|
{
|
|
147
145
|
const {
|
|
@@ -151,12 +149,12 @@ var reducer = immer.produce((state, action) => {
|
|
|
151
149
|
isChecked
|
|
152
150
|
} = action || {};
|
|
153
151
|
let values = state[formId].data[id] || [];
|
|
154
|
-
if (isChecked) state[formId].data[id] = {
|
|
152
|
+
if (isChecked) state[formId].data[id] = {
|
|
153
|
+
...values,
|
|
155
154
|
value
|
|
156
155
|
};else state[formId].data[id] = values.filter(v => v !== value);
|
|
157
156
|
return;
|
|
158
157
|
}
|
|
159
|
-
|
|
160
158
|
case SET_DATE_RANGE_VALUES:
|
|
161
159
|
{
|
|
162
160
|
const {
|
|
@@ -168,7 +166,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
168
166
|
state[formId].data[id][dateType] = value;
|
|
169
167
|
return;
|
|
170
168
|
}
|
|
171
|
-
|
|
172
169
|
case SET_FIELD_ERROR:
|
|
173
170
|
{
|
|
174
171
|
const {
|
|
@@ -178,7 +175,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
178
175
|
state[formId].fieldErrors = value;
|
|
179
176
|
return;
|
|
180
177
|
}
|
|
181
|
-
|
|
182
178
|
case SET_SUBMITTING_FORM:
|
|
183
179
|
{
|
|
184
180
|
const {
|
|
@@ -188,7 +184,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
188
184
|
state[formId].status.isSubmitting = isSubmitting;
|
|
189
185
|
return;
|
|
190
186
|
}
|
|
191
|
-
|
|
192
187
|
case SUBMIT_FORM_SUCCESS:
|
|
193
188
|
{
|
|
194
189
|
const {
|
|
@@ -200,7 +195,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
200
195
|
state[formId].status.validation.sent = false;
|
|
201
196
|
return;
|
|
202
197
|
}
|
|
203
|
-
|
|
204
198
|
case SUBMIT_FORM_FOR_VALIDATION:
|
|
205
199
|
{
|
|
206
200
|
const {
|
|
@@ -212,7 +206,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
212
206
|
state[formId].status.hasError = false;
|
|
213
207
|
return;
|
|
214
208
|
}
|
|
215
|
-
|
|
216
209
|
case SET_SUCCESS_MESSAGE:
|
|
217
210
|
{
|
|
218
211
|
const {
|
|
@@ -222,7 +215,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
222
215
|
state[formId].status.message.success = message;
|
|
223
216
|
return;
|
|
224
217
|
}
|
|
225
|
-
|
|
226
218
|
case SUBMIT_FORM_ERROR:
|
|
227
219
|
{
|
|
228
220
|
const {
|
|
@@ -233,7 +225,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
233
225
|
state[formId].status.validation.sent = false;
|
|
234
226
|
return;
|
|
235
227
|
}
|
|
236
|
-
|
|
237
228
|
case SET_FORM_ENTRIES:
|
|
238
229
|
{
|
|
239
230
|
const {
|
|
@@ -249,7 +240,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
249
240
|
state[formId].entries = entryObject;
|
|
250
241
|
return;
|
|
251
242
|
}
|
|
252
|
-
|
|
253
243
|
case SET_ERROR:
|
|
254
244
|
{
|
|
255
245
|
const {
|
|
@@ -259,7 +249,6 @@ var reducer = immer.produce((state, action) => {
|
|
|
259
249
|
state[formId].status.isSubmitting = false;
|
|
260
250
|
return;
|
|
261
251
|
}
|
|
262
|
-
|
|
263
252
|
default:
|
|
264
253
|
return state;
|
|
265
254
|
}
|
|
@@ -269,7 +258,6 @@ const selectForms = state => state.forms;
|
|
|
269
258
|
const makeSelectPagedFields = formId => reselect.createSelector(selectForms, forms => {
|
|
270
259
|
if (forms !== null && forms !== void 0 && forms[formId]) {
|
|
271
260
|
var _forms$formId, _forms$formId2;
|
|
272
|
-
|
|
273
261
|
const pagingInfo = forms === null || forms === void 0 ? void 0 : (_forms$formId = forms[formId]) === null || _forms$formId === void 0 ? void 0 : _forms$formId.pagingInfo;
|
|
274
262
|
const fields = forms === null || forms === void 0 ? void 0 : (_forms$formId2 = forms[formId]) === null || _forms$formId2 === void 0 ? void 0 : _forms$formId2.fields;
|
|
275
263
|
if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0 && pagingInfo.pageCount > 1) return fields.filter(f => f.groupId == pagingInfo.currentPageId);else return fields;
|
|
@@ -277,77 +265,62 @@ const makeSelectPagedFields = formId => reselect.createSelector(selectForms, for
|
|
|
277
265
|
});
|
|
278
266
|
const makeSelectFormStatus = formId => reselect.createSelector(selectForms, forms => {
|
|
279
267
|
var _forms$formId3;
|
|
280
|
-
|
|
281
268
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId3 = forms[formId]) === null || _forms$formId3 === void 0 ? void 0 : _forms$formId3.status;
|
|
282
269
|
});
|
|
283
270
|
const makeSelectPagingInfo = formId => reselect.createSelector(selectForms, forms => {
|
|
284
271
|
var _forms$formId4;
|
|
285
|
-
|
|
286
272
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId4 = forms[formId]) === null || _forms$formId4 === void 0 ? void 0 : _forms$formId4.pagingInfo;
|
|
287
273
|
});
|
|
288
274
|
const makeSelectFormSettings = formId => reselect.createSelector(selectForms, forms => {
|
|
289
275
|
var _forms$formId5;
|
|
290
|
-
|
|
291
276
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId5 = forms[formId]) === null || _forms$formId5 === void 0 ? void 0 : _forms$formId5.settings;
|
|
292
277
|
});
|
|
293
278
|
const makeSelectFormFieldErrors = formId => reselect.createSelector(selectForms, forms => {
|
|
294
279
|
var _forms$formId6;
|
|
295
|
-
|
|
296
280
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId6 = forms[formId]) === null || _forms$formId6 === void 0 ? void 0 : _forms$formId6.fieldErrors;
|
|
297
281
|
});
|
|
298
282
|
const makeSelectFormEntries = formId => reselect.createSelector(selectForms, forms => {
|
|
299
283
|
var _forms$formId7;
|
|
300
|
-
|
|
301
284
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId7 = forms[formId]) === null || _forms$formId7 === void 0 ? void 0 : _forms$formId7.entries;
|
|
302
285
|
});
|
|
303
286
|
const makeSelectFormPostData = formId => reselect.createSelector(selectForms, forms => {
|
|
304
287
|
var _forms$formId8;
|
|
305
|
-
|
|
306
288
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId8 = forms[formId]) === null || _forms$formId8 === void 0 ? void 0 : _forms$formId8.data;
|
|
307
289
|
});
|
|
308
290
|
const makeSelectIsLoading = formId => reselect.createSelector(selectForms, forms => {
|
|
309
291
|
var _forms$formId9;
|
|
310
|
-
|
|
311
292
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId9 = forms[formId]) === null || _forms$formId9 === void 0 ? void 0 : _forms$formId9.status.isLoading;
|
|
312
293
|
});
|
|
313
294
|
const makeSelectIsSubmitting = formId => reselect.createSelector(selectForms, forms => {
|
|
314
295
|
var _forms$formId10;
|
|
315
|
-
|
|
316
296
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId10 = forms[formId]) === null || _forms$formId10 === void 0 ? void 0 : _forms$formId10.status.isSubmitting;
|
|
317
297
|
});
|
|
318
298
|
const makeSelectHasSuccess = formId => reselect.createSelector(selectForms, forms => {
|
|
319
299
|
var _forms$formId11;
|
|
320
|
-
|
|
321
300
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId11 = forms[formId]) === null || _forms$formId11 === void 0 ? void 0 : _forms$formId11.status.hasSuccess;
|
|
322
301
|
});
|
|
323
302
|
const makeSelectHasError = formId => reselect.createSelector(selectForms, forms => {
|
|
324
303
|
var _forms$formId12;
|
|
325
|
-
|
|
326
304
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId12 = forms[formId]) === null || _forms$formId12 === void 0 ? void 0 : _forms$formId12.status.hasError;
|
|
327
305
|
});
|
|
328
306
|
const makeSelectFormFields = formId => reselect.createSelector(selectForms, forms => {
|
|
329
307
|
var _forms$formId13;
|
|
330
|
-
|
|
331
308
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId13 = forms[formId]) === null || _forms$formId13 === void 0 ? void 0 : _forms$formId13.fields;
|
|
332
309
|
});
|
|
333
310
|
const makeSelectDefaultLang = formId => reselect.createSelector(selectForms, forms => {
|
|
334
311
|
var _forms$formId14;
|
|
335
|
-
|
|
336
312
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId14 = forms[formId]) === null || _forms$formId14 === void 0 ? void 0 : _forms$formId14.defaultLanguage;
|
|
337
313
|
});
|
|
338
314
|
const makeSelectFormSuccessMessage = formId => reselect.createSelector(selectForms, forms => {
|
|
339
315
|
var _forms$formId15;
|
|
340
|
-
|
|
341
316
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId15 = forms[formId]) === null || _forms$formId15 === void 0 ? void 0 : _forms$formId15.status.messages.success;
|
|
342
317
|
});
|
|
343
318
|
const makeSelectFormValidationSent = formId => reselect.createSelector(selectForms, forms => {
|
|
344
319
|
var _forms$formId16;
|
|
345
|
-
|
|
346
320
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId16 = forms[formId]) === null || _forms$formId16 === void 0 ? void 0 : _forms$formId16.status.validation.sent;
|
|
347
321
|
});
|
|
348
322
|
const makeSelectFormGroup$1 = formId => reselect.createSelector(selectForms, forms => {
|
|
349
323
|
var _forms$formId17;
|
|
350
|
-
|
|
351
324
|
return forms === null || forms === void 0 ? void 0 : (_forms$formId17 = forms[formId]) === null || _forms$formId17 === void 0 ? void 0 : _forms$formId17.groups;
|
|
352
325
|
});
|
|
353
326
|
const selectors = {
|
|
@@ -410,11 +383,11 @@ const postForm = async formObj => {
|
|
|
410
383
|
const submitted = await request(URI, options);
|
|
411
384
|
return submitted;
|
|
412
385
|
};
|
|
413
|
-
|
|
414
386
|
const request = async (url, options) => {
|
|
415
387
|
return fetch(url, options).then(response => response.json()).then(result => {
|
|
416
388
|
return result;
|
|
417
|
-
})
|
|
389
|
+
})
|
|
390
|
+
// eslint-disable-next-line no-console
|
|
418
391
|
.catch(error => console.log('error', error));
|
|
419
392
|
};
|
|
420
393
|
|
|
@@ -422,14 +395,12 @@ const domains = ['1033edge.com', '11mail.com', '123.com', '123box.net', '123indi
|
|
|
422
395
|
|
|
423
396
|
const doA11yValidation = (v, field, formValidationSent) => {
|
|
424
397
|
const error = doValidateField(field, v);
|
|
425
|
-
|
|
426
398
|
if (JSON.stringify(field.validations) !== '{}') {
|
|
427
399
|
if (((v === null || v === void 0 ? void 0 : v.length) >= 1 || formValidationSent) && (error === null || error === void 0 ? void 0 : error.fieldId) === field.id) return 'true';else if ((v === null || v === void 0 ? void 0 : v.length) >= 1) return 'false';else return '';
|
|
428
400
|
}
|
|
429
401
|
};
|
|
430
402
|
const doValidateField = (field, value) => {
|
|
431
403
|
var _field$validations, _field$validations$re;
|
|
432
|
-
|
|
433
404
|
const isRequired = field.validations && field.validations.required;
|
|
434
405
|
const minLength = field.validations && field.validations.minLength;
|
|
435
406
|
const maxLength = field.validations && field.validations.maxLength;
|
|
@@ -437,10 +408,8 @@ const doValidateField = (field, value) => {
|
|
|
437
408
|
const integer = field.dataType === 'integer';
|
|
438
409
|
const decimal = field.dataType === 'decimal';
|
|
439
410
|
const isBusinessEmail = field.id === 'businessEmail';
|
|
440
|
-
|
|
441
411
|
if (isRequired && (value === null || value === void 0 ? void 0 : value.length) <= 0) {
|
|
442
412
|
var _isRequired$message, _field$name;
|
|
443
|
-
|
|
444
413
|
const errorMessage = (isRequired === null || isRequired === void 0 ? void 0 : (_isRequired$message = isRequired.message) === null || _isRequired$message === void 0 ? void 0 : _isRequired$message['en-GB']) || `${(_field$name = field.name) === null || _field$name === void 0 ? void 0 : _field$name['en-GB']} is required`;
|
|
445
414
|
return {
|
|
446
415
|
fieldId: field.id,
|
|
@@ -448,7 +417,6 @@ const doValidateField = (field, value) => {
|
|
|
448
417
|
message: errorMessage
|
|
449
418
|
};
|
|
450
419
|
}
|
|
451
|
-
|
|
452
420
|
if (minLength && minLength.value > value.length) {
|
|
453
421
|
const errorMessage = minLength.message ? minLength.message['en-GB'] : `Minimum characters ${minLength.value}`;
|
|
454
422
|
return {
|
|
@@ -457,7 +425,6 @@ const doValidateField = (field, value) => {
|
|
|
457
425
|
message: errorMessage
|
|
458
426
|
};
|
|
459
427
|
}
|
|
460
|
-
|
|
461
428
|
if (maxLength && maxLength.value < value.length) {
|
|
462
429
|
const errorMessage = maxLength.message && maxLength.message['en-GB'] ? maxLength.message['en-GB'] : `Maximum characters ${maxLength.value}`;
|
|
463
430
|
return {
|
|
@@ -467,14 +434,10 @@ const doValidateField = (field, value) => {
|
|
|
467
434
|
};
|
|
468
435
|
}
|
|
469
436
|
/** Check Regex and Business Emails */
|
|
470
|
-
|
|
471
|
-
|
|
472
437
|
if (hasRegex && value.length >= 1) {
|
|
473
438
|
var _r$message;
|
|
474
|
-
|
|
475
439
|
const r = field.validations.regex;
|
|
476
440
|
const msg = (r === null || r === void 0 ? void 0 : (_r$message = r.message) === null || _r$message === void 0 ? void 0 : _r$message['en-GB']) || `${field.name['en-GB']} is invalid`;
|
|
477
|
-
|
|
478
441
|
if (isValidRegex(field, value) && isBusinessEmail) {
|
|
479
442
|
if (!isBusinessEmailValid(field, value)) {
|
|
480
443
|
return {
|
|
@@ -491,10 +454,8 @@ const doValidateField = (field, value) => {
|
|
|
491
454
|
};
|
|
492
455
|
}
|
|
493
456
|
}
|
|
494
|
-
|
|
495
457
|
if (integer) {
|
|
496
458
|
const isInteger = value % 1 === 0;
|
|
497
|
-
|
|
498
459
|
if (!isInteger) {
|
|
499
460
|
const errorMessage = `${value} is not an ${field.dataType}`;
|
|
500
461
|
return {
|
|
@@ -504,10 +465,8 @@ const doValidateField = (field, value) => {
|
|
|
504
465
|
};
|
|
505
466
|
}
|
|
506
467
|
}
|
|
507
|
-
|
|
508
468
|
if (decimal) {
|
|
509
469
|
const isDecimal = value % 1 !== 0;
|
|
510
|
-
|
|
511
470
|
if (!isDecimal) {
|
|
512
471
|
const errorMessage = `${value} is not an ${field.dataType}`;
|
|
513
472
|
return {
|
|
@@ -518,13 +477,11 @@ const doValidateField = (field, value) => {
|
|
|
518
477
|
}
|
|
519
478
|
}
|
|
520
479
|
};
|
|
521
|
-
|
|
522
480
|
const isValidRegex = (field, value) => {
|
|
523
481
|
const regex = field.validations.regex.pattern;
|
|
524
482
|
const regexPattern = RegExp(regex);
|
|
525
483
|
if (!regexPattern.test(value)) return false;else return true;
|
|
526
484
|
};
|
|
527
|
-
|
|
528
485
|
const isBusinessEmailValid = (field, value) => {
|
|
529
486
|
const domain = value.split('@').pop();
|
|
530
487
|
if (!domains.includes(domain)) return true;else return false;
|
|
@@ -532,7 +489,6 @@ const isBusinessEmailValid = (field, value) => {
|
|
|
532
489
|
|
|
533
490
|
const doCreateMessage = (type, minLength, maxLength, currentLength, defaultLanguage) => {
|
|
534
491
|
if (!type) return null;
|
|
535
|
-
|
|
536
492
|
switch (type) {
|
|
537
493
|
case 'min':
|
|
538
494
|
{
|
|
@@ -540,28 +496,24 @@ const doCreateMessage = (type, minLength, maxLength, currentLength, defaultLangu
|
|
|
540
496
|
const minLengthVal = minLength && minLength.value;
|
|
541
497
|
const errorMessage = minLength && minLength.message && minLength.message[defaultLanguage];
|
|
542
498
|
const minText = `Minimum of ${minLengthVal.toString()} characters`;
|
|
543
|
-
|
|
544
499
|
if (errorMessage) {
|
|
545
500
|
return errorMessage;
|
|
546
501
|
} else {
|
|
547
502
|
return minText;
|
|
548
503
|
}
|
|
549
504
|
}
|
|
550
|
-
|
|
551
505
|
case 'max':
|
|
552
506
|
{
|
|
553
507
|
if (!maxLength) return;
|
|
554
508
|
const maxLengthVal = maxLength && maxLength.value;
|
|
555
509
|
const errorMessage = maxLength && maxLength.message && maxLength.message[defaultLanguage];
|
|
556
510
|
const maxText = `Maximum of ${maxLengthVal.toString()} characters`;
|
|
557
|
-
|
|
558
511
|
if (errorMessage) {
|
|
559
512
|
return errorMessage;
|
|
560
513
|
} else {
|
|
561
514
|
return maxText;
|
|
562
515
|
}
|
|
563
516
|
}
|
|
564
|
-
|
|
565
517
|
case 'between':
|
|
566
518
|
{
|
|
567
519
|
if (!maxLength || !minLength) return;
|
|
@@ -569,7 +521,6 @@ const doCreateMessage = (type, minLength, maxLength, currentLength, defaultLangu
|
|
|
569
521
|
const maxLengthVal = maxLength && maxLength.value;
|
|
570
522
|
const errorMessage = minLength && minLength.message && minLength.message[defaultLanguage];
|
|
571
523
|
const rangeText = `Between ${minLengthVal.toString()}-${maxLengthVal.toString()} characters)`;
|
|
572
|
-
|
|
573
524
|
if (errorMessage) {
|
|
574
525
|
return errorMessage;
|
|
575
526
|
} else if (currentLength < minLengthVal) {
|
|
@@ -582,16 +533,13 @@ const doCreateMessage = (type, minLength, maxLength, currentLength, defaultLangu
|
|
|
582
533
|
return rangeText;
|
|
583
534
|
}
|
|
584
535
|
}
|
|
585
|
-
|
|
586
536
|
default:
|
|
587
537
|
return null;
|
|
588
538
|
}
|
|
589
539
|
};
|
|
590
540
|
const getFieldType = field => {
|
|
591
541
|
var _field$editor, _field$editor$propert;
|
|
592
|
-
|
|
593
542
|
if (!field) return null;
|
|
594
|
-
|
|
595
543
|
if (field.dataType === 'string' && field.editor && field.editor.id === 'multiline') {
|
|
596
544
|
return 'textarea';
|
|
597
545
|
} else if (field.dataType === 'string' && field.editor && field.editor.id === 'list-dropdown') {
|
|
@@ -616,7 +564,6 @@ const getFieldType = field => {
|
|
|
616
564
|
};
|
|
617
565
|
|
|
618
566
|
const sagas = [effects.takeEvery(SUBMIT_FORM_SUCCESS, onFormSuccess), effects.takeEvery(SUBMIT_FORM_FOR_VALIDATION, doValidateForm), effects.takeEvery(SUBMIT_FORM, onSubmitForm), effects.takeEvery(SET_FORM_ID, doFetchForm), effects.takeLatest(VALIDATE_FIELD, onValidateField$1), effects.takeEvery(PAGE_FORWARD, doTogglePage), effects.takeEvery(PAGE_BACK, doTogglePage), effects.takeEvery(SET_FORM_DATA, getEntryPickerData), effects.takeLatest(SET_FORM_DATA, setDefaultValueFields)];
|
|
619
|
-
|
|
620
567
|
function* doValidateForm(action) {
|
|
621
568
|
const {
|
|
622
569
|
formId
|
|
@@ -627,7 +574,6 @@ function* doValidateForm(action) {
|
|
|
627
574
|
formId
|
|
628
575
|
});
|
|
629
576
|
}
|
|
630
|
-
|
|
631
577
|
function* onValidateField$1(action) {
|
|
632
578
|
const {
|
|
633
579
|
formId,
|
|
@@ -636,7 +582,6 @@ function* onValidateField$1(action) {
|
|
|
636
582
|
} = action;
|
|
637
583
|
if ((value === null || value === void 0 ? void 0 : value.length) >= 1) yield effects.call(onValidateSingleField, formId, id, value);
|
|
638
584
|
}
|
|
639
|
-
|
|
640
585
|
function* validateGroupfields(formId, groupId) {
|
|
641
586
|
const state = yield effects.select();
|
|
642
587
|
const selectPostData = makeSelectFormPostData(formId);
|
|
@@ -647,11 +592,9 @@ function* validateGroupfields(formId, groupId) {
|
|
|
647
592
|
let newErrors = [];
|
|
648
593
|
groupFields.forEach(field => {
|
|
649
594
|
let val = '';
|
|
650
|
-
|
|
651
595
|
if (postData[field.id]) {
|
|
652
596
|
val = postData[field.id];
|
|
653
597
|
}
|
|
654
|
-
|
|
655
598
|
const err = doValidateField(field, val);
|
|
656
599
|
if (err) newErrors.push(err);
|
|
657
600
|
});
|
|
@@ -661,7 +604,6 @@ function* validateGroupfields(formId, groupId) {
|
|
|
661
604
|
value: newErrors
|
|
662
605
|
});
|
|
663
606
|
}
|
|
664
|
-
|
|
665
607
|
function* onValidateAllFields(formId) {
|
|
666
608
|
const state = yield effects.select();
|
|
667
609
|
const selectPostData = makeSelectFormPostData(formId);
|
|
@@ -671,11 +613,9 @@ function* onValidateAllFields(formId) {
|
|
|
671
613
|
let newErrors = [];
|
|
672
614
|
fields.forEach(field => {
|
|
673
615
|
let val = '';
|
|
674
|
-
|
|
675
616
|
if (postData[field.id]) {
|
|
676
617
|
val = postData[field.id];
|
|
677
618
|
}
|
|
678
|
-
|
|
679
619
|
const err = doValidateField(field, val);
|
|
680
620
|
if (err) newErrors.push(err);
|
|
681
621
|
});
|
|
@@ -685,7 +625,6 @@ function* onValidateAllFields(formId) {
|
|
|
685
625
|
value: newErrors
|
|
686
626
|
});
|
|
687
627
|
}
|
|
688
|
-
|
|
689
628
|
function* onValidateSingleField(formId, fieldId, value) {
|
|
690
629
|
const state = yield effects.select();
|
|
691
630
|
const selectFormFields = makeSelectFormFields(formId);
|
|
@@ -693,8 +632,8 @@ function* onValidateSingleField(formId, fieldId, value) {
|
|
|
693
632
|
const selectFormFieldErrors = makeSelectFormFieldErrors(formId);
|
|
694
633
|
const errors = selectFormFieldErrors(state);
|
|
695
634
|
const fieldData = fields.find(f => f.id == fieldId);
|
|
696
|
-
const newErrors = [];
|
|
697
|
-
|
|
635
|
+
const newErrors = [];
|
|
636
|
+
//loop through current errors to remove any of the item we currently edit
|
|
698
637
|
errors.forEach(error => {
|
|
699
638
|
if (error.fieldId !== fieldId) {
|
|
700
639
|
//push any existing errors to new array
|
|
@@ -709,7 +648,6 @@ function* onValidateSingleField(formId, fieldId, value) {
|
|
|
709
648
|
value: newErrors
|
|
710
649
|
});
|
|
711
650
|
}
|
|
712
|
-
|
|
713
651
|
function* doTogglePage(action) {
|
|
714
652
|
const {
|
|
715
653
|
formId,
|
|
@@ -718,11 +656,9 @@ function* doTogglePage(action) {
|
|
|
718
656
|
const state = yield effects.select();
|
|
719
657
|
const selectFormGroups = makeSelectFormGroup(formId);
|
|
720
658
|
const formGroups = selectFormGroups(state);
|
|
721
|
-
|
|
722
659
|
if (action.type === PAGE_FORWARD) {
|
|
723
660
|
yield validateGroupfields(formId, formGroups[pageIndex].id);
|
|
724
661
|
}
|
|
725
|
-
|
|
726
662
|
yield effects.put({
|
|
727
663
|
type: SET_CURRENT_PAGE,
|
|
728
664
|
formId: formId,
|
|
@@ -731,17 +667,13 @@ function* doTogglePage(action) {
|
|
|
731
667
|
pageIndex: pageIndex
|
|
732
668
|
});
|
|
733
669
|
}
|
|
734
|
-
|
|
735
670
|
function* doFetchForm(action) {
|
|
736
671
|
var _schema$groups;
|
|
737
|
-
|
|
738
672
|
const formId = action.formId;
|
|
739
673
|
const schema = yield getFormSchema(formId);
|
|
740
674
|
const groups = schema === null || schema === void 0 ? void 0 : (_schema$groups = schema.groups) === null || _schema$groups === void 0 ? void 0 : _schema$groups.filter(group => group.id !== 'private' && group.id !== 'settings');
|
|
741
|
-
|
|
742
675
|
if (formId && schema) {
|
|
743
676
|
var _schema$groups2, _submitButtonText$def;
|
|
744
|
-
|
|
745
677
|
if ((schema === null || schema === void 0 ? void 0 : (_schema$groups2 = schema.groups) === null || _schema$groups2 === void 0 ? void 0 : _schema$groups2.length) > 0) {
|
|
746
678
|
yield effects.put({
|
|
747
679
|
type: SET_CURRENT_PAGE,
|
|
@@ -751,10 +683,10 @@ function* doFetchForm(action) {
|
|
|
751
683
|
pageCount: groups.length
|
|
752
684
|
});
|
|
753
685
|
}
|
|
754
|
-
|
|
755
686
|
const submitButtonText = schema.fields.find(f => f.id === 'submitButtonText');
|
|
756
687
|
const fields = schema === null || schema === void 0 ? void 0 : schema.fields.map(field => {
|
|
757
|
-
return {
|
|
688
|
+
return {
|
|
689
|
+
...field,
|
|
758
690
|
type: getFieldType(field)
|
|
759
691
|
};
|
|
760
692
|
});
|
|
@@ -770,18 +702,15 @@ function* doFetchForm(action) {
|
|
|
770
702
|
});
|
|
771
703
|
}
|
|
772
704
|
}
|
|
773
|
-
|
|
774
705
|
function* onFormSuccess(action) {
|
|
775
706
|
const state = yield effects.select();
|
|
776
707
|
const selectFormFields = makeSelectFormFields(action.formId);
|
|
777
708
|
const fields = selectFormFields(state);
|
|
778
709
|
const redirect = fields.find(f => f.id === 'formSettingsRedirect');
|
|
779
710
|
const message = fields.find(f => f.id === 'formSettingsMessage');
|
|
780
|
-
|
|
781
711
|
if (redirect !== null && redirect !== void 0 && redirect.default) {
|
|
782
712
|
window.location.href = redirect.default['en-GB'];
|
|
783
713
|
}
|
|
784
|
-
|
|
785
714
|
if (message !== null && message !== void 0 && message.default) {
|
|
786
715
|
yield effects.put({
|
|
787
716
|
type: SET_SUCCESS_MESSAGE,
|
|
@@ -790,7 +719,6 @@ function* onFormSuccess(action) {
|
|
|
790
719
|
});
|
|
791
720
|
}
|
|
792
721
|
}
|
|
793
|
-
|
|
794
722
|
function* onSubmitForm(action) {
|
|
795
723
|
const {
|
|
796
724
|
formId
|
|
@@ -799,10 +727,8 @@ function* onSubmitForm(action) {
|
|
|
799
727
|
const selectFormFieldErrors = makeSelectFormFieldErrors(formId);
|
|
800
728
|
const errors = selectFormFieldErrors(state);
|
|
801
729
|
const canSubmit = (errors === null || errors === void 0 ? void 0 : errors.length) === 0;
|
|
802
|
-
|
|
803
730
|
if (canSubmit) {
|
|
804
731
|
var _formResObj$sys;
|
|
805
|
-
|
|
806
732
|
yield effects.put({
|
|
807
733
|
type: SET_SUBMITTING_FORM,
|
|
808
734
|
isSubmitting: true,
|
|
@@ -815,7 +741,6 @@ function* onSubmitForm(action) {
|
|
|
815
741
|
formPost: rawData.data
|
|
816
742
|
};
|
|
817
743
|
const formResObj = yield postForm(formObj);
|
|
818
|
-
|
|
819
744
|
if (formResObj !== null && formResObj !== void 0 && (_formResObj$sys = formResObj.sys) !== null && _formResObj$sys !== void 0 && _formResObj$sys.id) {
|
|
820
745
|
yield effects.put({
|
|
821
746
|
type: SUBMIT_FORM_SUCCESS,
|
|
@@ -829,7 +754,6 @@ function* onSubmitForm(action) {
|
|
|
829
754
|
}
|
|
830
755
|
}
|
|
831
756
|
}
|
|
832
|
-
|
|
833
757
|
function* setDefaultValueFields(action) {
|
|
834
758
|
const {
|
|
835
759
|
formId,
|
|
@@ -841,15 +765,12 @@ function* setDefaultValueFields(action) {
|
|
|
841
765
|
fields.forEach(field => {
|
|
842
766
|
if (field.dataType == 'string' && field.default) {
|
|
843
767
|
const val = field.default[defaultLanguage];
|
|
844
|
-
|
|
845
768
|
if (val) {
|
|
846
769
|
fieldObj[field.id] = val;
|
|
847
770
|
}
|
|
848
771
|
}
|
|
849
|
-
|
|
850
772
|
if (field.id == 'sourceEntry') {
|
|
851
773
|
const val = entryId;
|
|
852
|
-
|
|
853
774
|
if (val) {
|
|
854
775
|
fieldObj[field.id] = val;
|
|
855
776
|
}
|
|
@@ -861,7 +782,6 @@ function* setDefaultValueFields(action) {
|
|
|
861
782
|
value: fieldObj
|
|
862
783
|
});
|
|
863
784
|
}
|
|
864
|
-
|
|
865
785
|
function* getEntryPickerData(action) {
|
|
866
786
|
const {
|
|
867
787
|
formId,
|
|
@@ -869,7 +789,6 @@ function* getEntryPickerData(action) {
|
|
|
869
789
|
} = action;
|
|
870
790
|
const entriesToGet = fields.filter(f => f.dataFormat == 'entry');
|
|
871
791
|
let entriesList = [];
|
|
872
|
-
|
|
873
792
|
if (entriesToGet) {
|
|
874
793
|
entriesList = yield effects.all(entriesToGet.map(entry => {
|
|
875
794
|
const entriesObj = {
|
|
@@ -892,7 +811,6 @@ const action = (type, payload = {}) => ({
|
|
|
892
811
|
type,
|
|
893
812
|
...payload
|
|
894
813
|
});
|
|
895
|
-
|
|
896
814
|
const onSubmit = formId => action(SUBMIT_FORM_FOR_VALIDATION, {
|
|
897
815
|
formId
|
|
898
816
|
});
|
|
@@ -941,7 +859,6 @@ const actions = {
|
|
|
941
859
|
};
|
|
942
860
|
|
|
943
861
|
const ThemeContext = /*#__PURE__*/React.createContext();
|
|
944
|
-
|
|
945
862
|
const ThemeProvider = ({
|
|
946
863
|
children,
|
|
947
864
|
theme
|
|
@@ -952,7 +869,6 @@ const ThemeProvider = ({
|
|
|
952
869
|
theme: theme
|
|
953
870
|
}, children));
|
|
954
871
|
};
|
|
955
|
-
|
|
956
872
|
ThemeProvider.propTypes = {
|
|
957
873
|
children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].arrayOf(PropTypes__default["default"].node), PropTypes__default["default"].node]),
|
|
958
874
|
theme: PropTypes__default["default"].object
|
|
@@ -1017,7 +933,6 @@ const Label = ({
|
|
|
1017
933
|
className: "visuallyHidden"
|
|
1018
934
|
}, " (required)"));
|
|
1019
935
|
};
|
|
1020
|
-
|
|
1021
936
|
Label.propTypes = {
|
|
1022
937
|
className: PropTypes__default["default"].string,
|
|
1023
938
|
label: PropTypes__default["default"].string,
|
|
@@ -1075,7 +990,6 @@ const TextfieldStyled = styled__default["default"].div.withConfig({
|
|
|
1075
990
|
}) => {
|
|
1076
991
|
return styled.css(["display:", ";"], isHidden ? 'none' : 'block');
|
|
1077
992
|
});
|
|
1078
|
-
|
|
1079
993
|
const Textfield = ({
|
|
1080
994
|
className,
|
|
1081
995
|
field,
|
|
@@ -1167,7 +1081,6 @@ const Textfield = ({
|
|
|
1167
1081
|
d: "m2 8 4.418 4.667L14 4.659l-1.246-1.326-6.336 6.692-3.18-3.332L2 8Z"
|
|
1168
1082
|
}))));
|
|
1169
1083
|
};
|
|
1170
|
-
|
|
1171
1084
|
Textfield.propTypes = {
|
|
1172
1085
|
className: PropTypes__default["default"].string,
|
|
1173
1086
|
field: PropTypes__default["default"].any,
|
|
@@ -1274,7 +1187,6 @@ const Textarea = ({
|
|
|
1274
1187
|
d: "m2 8 4.418 4.667L14 4.659l-1.246-1.326-6.336 6.692-3.18-3.332L2 8Z"
|
|
1275
1188
|
}))));
|
|
1276
1189
|
};
|
|
1277
|
-
|
|
1278
1190
|
Textarea.propTypes = {
|
|
1279
1191
|
className: PropTypes__default["default"].string,
|
|
1280
1192
|
field: PropTypes__default["default"].any,
|
|
@@ -1312,7 +1224,6 @@ const HiddenField = ({
|
|
|
1312
1224
|
isHidden: true
|
|
1313
1225
|
});
|
|
1314
1226
|
};
|
|
1315
|
-
|
|
1316
1227
|
HiddenField.propTypes = {
|
|
1317
1228
|
className: PropTypes__default["default"].string,
|
|
1318
1229
|
id: PropTypes__default["default"].string,
|
|
@@ -1360,7 +1271,6 @@ const Dropdown = ({
|
|
|
1360
1271
|
}, val[defaultLanguage]);
|
|
1361
1272
|
})));
|
|
1362
1273
|
};
|
|
1363
|
-
|
|
1364
1274
|
Dropdown.propTypes = {
|
|
1365
1275
|
className: PropTypes__default["default"].string,
|
|
1366
1276
|
formId: PropTypes__default["default"].string,
|
|
@@ -1380,7 +1290,6 @@ const CheckboxStyled = styled__default["default"].div.withConfig({
|
|
|
1380
1290
|
}) => {
|
|
1381
1291
|
return styled.css(["", ""], useDefaultTheme && styled.css([".checkbox-wrapper{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;input{height:auto;width:auto;margin:0 4px 0 0;}label{display:inline-block;}}"]));
|
|
1382
1292
|
});
|
|
1383
|
-
|
|
1384
1293
|
const Checkbox = ({
|
|
1385
1294
|
className,
|
|
1386
1295
|
formId,
|
|
@@ -1397,18 +1306,15 @@ const Checkbox = ({
|
|
|
1397
1306
|
// NF change rules of hooks
|
|
1398
1307
|
let isDefaultChecked = defaultValue && defaultValue[defaultLanguage];
|
|
1399
1308
|
const [isChecked, setIsChecked] = React.useState(isDefaultChecked || '');
|
|
1400
|
-
|
|
1401
1309
|
switch (type) {
|
|
1402
1310
|
case 'multiple':
|
|
1403
1311
|
{
|
|
1404
1312
|
if (!validations) return null;
|
|
1405
1313
|
const isRequired = validations && validations.required ? true : false;
|
|
1406
1314
|
const cbValues = validations && validations.allowedValues && validations.allowedValues.values;
|
|
1407
|
-
|
|
1408
1315
|
const _handleChange = (value, isChecked) => {
|
|
1409
1316
|
setCheckboxValue(formId, id, value, isChecked);
|
|
1410
1317
|
};
|
|
1411
|
-
|
|
1412
1318
|
if (!cbValues || cbValues.length < 1) return null;
|
|
1413
1319
|
return /*#__PURE__*/React__default["default"].createElement(CheckboxStyled, {
|
|
1414
1320
|
className: `checkbox-container`,
|
|
@@ -1436,14 +1342,12 @@ const Checkbox = ({
|
|
|
1436
1342
|
}));
|
|
1437
1343
|
}));
|
|
1438
1344
|
}
|
|
1439
|
-
|
|
1440
1345
|
case 'single':
|
|
1441
1346
|
{
|
|
1442
1347
|
const _handleChange = isChecked => {
|
|
1443
1348
|
setIsChecked(isChecked);
|
|
1444
1349
|
setCheckboxValue(formId, id, isChecked);
|
|
1445
1350
|
};
|
|
1446
|
-
|
|
1447
1351
|
return /*#__PURE__*/React__default["default"].createElement(CheckboxStyled, {
|
|
1448
1352
|
className: `checkbox-container`,
|
|
1449
1353
|
useDefaultTheme: useDefaultTheme
|
|
@@ -1465,7 +1369,6 @@ const Checkbox = ({
|
|
|
1465
1369
|
}
|
|
1466
1370
|
}
|
|
1467
1371
|
};
|
|
1468
|
-
|
|
1469
1372
|
Checkbox.propTypes = {
|
|
1470
1373
|
className: PropTypes__default["default"].string,
|
|
1471
1374
|
formId: PropTypes__default["default"].string,
|
|
@@ -1487,7 +1390,6 @@ const RadioButtonStyled = styled__default["default"].div.withConfig({
|
|
|
1487
1390
|
}) => {
|
|
1488
1391
|
return styled.css(["", ""], useDefaultTheme && styled.css([".radio-wrapper{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;input{height:auto;width:auto;margin:0 4px 0 0;}label{display:inline-block;}}"]));
|
|
1489
1392
|
});
|
|
1490
|
-
|
|
1491
1393
|
const RadioButton = ({
|
|
1492
1394
|
className,
|
|
1493
1395
|
formId,
|
|
@@ -1531,7 +1433,6 @@ const RadioButton = ({
|
|
|
1531
1433
|
}));
|
|
1532
1434
|
}));
|
|
1533
1435
|
};
|
|
1534
|
-
|
|
1535
1436
|
RadioButton.propTypes = {
|
|
1536
1437
|
className: PropTypes__default["default"].string,
|
|
1537
1438
|
formId: PropTypes__default["default"].string,
|
|
@@ -1563,6 +1464,7 @@ RadioButton.propTypes = {
|
|
|
1563
1464
|
//m > minutes, eg ...T16:05:00 = 5
|
|
1564
1465
|
//t > abbreviated AM / PM, e.g. A or P
|
|
1565
1466
|
//tt > AM / PM, e.g. AM or PM
|
|
1467
|
+
|
|
1566
1468
|
const formatDate = (date, format = 'dd MMMM yyyy') => {
|
|
1567
1469
|
if (!date) return null;
|
|
1568
1470
|
const dateObj = new Date(date);
|
|
@@ -1574,8 +1476,9 @@ const formatDate = (date, format = 'dd MMMM yyyy') => {
|
|
|
1574
1476
|
const dayNameInt = dateObj.getDay();
|
|
1575
1477
|
const timeArr = dateString[1].split(':');
|
|
1576
1478
|
const hour = timeArr[0];
|
|
1577
|
-
const minute = timeArr[1];
|
|
1479
|
+
const minute = timeArr[1];
|
|
1578
1480
|
|
|
1481
|
+
//convert to abstract strings to avoid character replacement along the chain, eg. Monday would match 'M' month single parameter
|
|
1579
1482
|
const YEAR = ['&&', '&'];
|
|
1580
1483
|
const MONTH = ['££££', '£££', '££', '£'];
|
|
1581
1484
|
const DAY = ['%%%%', '%%%', '%%', '%'];
|
|
@@ -1587,16 +1490,13 @@ const formatDate = (date, format = 'dd MMMM yyyy') => {
|
|
|
1587
1490
|
.replace('MMMM', MONTH[0]).replace('MMM', MONTH[1]).replace('MM', MONTH[2]).replace('M', MONTH[3]).replace('dddd', DAY[0]).replace('ddd', DAY[1]).replace('dd', DAY[2]).replace('d', DAY[3]).replace('HH', HOUR24[0]).replace('H', HOUR24[1]).replace('hh', HOUR12[0]).replace('h', HOUR12[1]).replace('mm', MINUTE[0]).replace('m', MINUTE[1]).replace('tt', TF[0]).replace('t', TF[1]).replace(YEAR[0], year).replace(YEAR[1], year.slice(-2)).replace(MONTH[0], monthsLong[parseInt(month, 10)]).replace(MONTH[1], monthsShort[parseInt(month, 10)]).replace(MONTH[2], month).replace(MONTH[3], parseInt(month, 10)).replace(DAY[0], daysLong[dayNameInt]).replace(DAY[1], daysShort[dayNameInt]).replace(DAY[2], day).replace(DAY[3], parseInt(day, 10)).replace(HOUR24[0], hour).replace(HOUR24[1], parseInt(hour, 10)).replace(HOUR12[0], parseHour(hour)).replace(HOUR12[1], parseInt(parseHour(hour), 10)).replace(MINUTE[0], minute).replace(MINUTE[1], parseInt(minute, 10)).replace(TF[0], parseTF(hour)).replace(TF[1], parseTF(hour).slice(0, -1));
|
|
1588
1491
|
return formattedDate;
|
|
1589
1492
|
};
|
|
1590
|
-
|
|
1591
1493
|
const monthsShort = ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
1592
1494
|
const monthsLong = ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
1593
1495
|
const daysShort = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
1594
1496
|
const daysLong = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
|
1595
|
-
|
|
1596
1497
|
const parseHour = hour => {
|
|
1597
1498
|
return hour > 12 ? hour - 12 : hour;
|
|
1598
1499
|
};
|
|
1599
|
-
|
|
1600
1500
|
const parseTF = hour => {
|
|
1601
1501
|
return hour > 11 ? 'PM' : 'AM';
|
|
1602
1502
|
};
|
|
@@ -1614,13 +1514,11 @@ const SingleDate = ({
|
|
|
1614
1514
|
const onlyPassedDates = validations && validations.pastDateTime;
|
|
1615
1515
|
const d = new Date();
|
|
1616
1516
|
const todaysDate = d.toISOString();
|
|
1617
|
-
|
|
1618
1517
|
const _handleChange = (formId, id, value) => {
|
|
1619
1518
|
const d = new Date(value);
|
|
1620
1519
|
const isoDate = d.toISOString();
|
|
1621
1520
|
setValue(formId, id, isoDate);
|
|
1622
1521
|
};
|
|
1623
|
-
|
|
1624
1522
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1625
1523
|
className: "date-container"
|
|
1626
1524
|
}, /*#__PURE__*/React__default["default"].createElement(Label, {
|
|
@@ -1637,7 +1535,6 @@ const SingleDate = ({
|
|
|
1637
1535
|
onChange: e => _handleChange(formId, id, e.target.value)
|
|
1638
1536
|
}));
|
|
1639
1537
|
};
|
|
1640
|
-
|
|
1641
1538
|
SingleDate.propTypes = {
|
|
1642
1539
|
className: PropTypes__default["default"].string,
|
|
1643
1540
|
formId: PropTypes__default["default"].string,
|
|
@@ -1656,7 +1553,6 @@ const DateRangeStyled = styled__default["default"].div.withConfig({
|
|
|
1656
1553
|
}) => {
|
|
1657
1554
|
return styled.css(["", ""], useDefaultTheme && styled.css([".daterange-wrapper{display:flex;flex-direction:column;input{&:first-child{margin:0 0 8px 0;}}}"]));
|
|
1658
1555
|
});
|
|
1659
|
-
|
|
1660
1556
|
const DateRange = ({
|
|
1661
1557
|
className,
|
|
1662
1558
|
id,
|
|
@@ -1672,15 +1568,12 @@ const DateRange = ({
|
|
|
1672
1568
|
const todaysDate = d.toISOString();
|
|
1673
1569
|
const [toDate, setToDate] = React.useState('');
|
|
1674
1570
|
const [fromDate, setFromDate] = React.useState('');
|
|
1675
|
-
|
|
1676
1571
|
const _handleDateChange = (dateType, formId, id, value) => {
|
|
1677
1572
|
_updateDateProps(dateType, value);
|
|
1678
|
-
|
|
1679
1573
|
const d = new Date(value);
|
|
1680
1574
|
const isoDate = d.toISOString();
|
|
1681
1575
|
setDateRangeValues(formId, id, dateType, isoDate);
|
|
1682
1576
|
};
|
|
1683
|
-
|
|
1684
1577
|
const _updateDateProps = (type, date) => {
|
|
1685
1578
|
switch (type) {
|
|
1686
1579
|
case 'from':
|
|
@@ -1690,7 +1583,6 @@ const DateRange = ({
|
|
|
1690
1583
|
setFromDate(newDate);
|
|
1691
1584
|
break;
|
|
1692
1585
|
}
|
|
1693
|
-
|
|
1694
1586
|
case 'to':
|
|
1695
1587
|
{
|
|
1696
1588
|
const d = new Date(date);
|
|
@@ -1698,12 +1590,10 @@ const DateRange = ({
|
|
|
1698
1590
|
setToDate(newDate);
|
|
1699
1591
|
break;
|
|
1700
1592
|
}
|
|
1701
|
-
|
|
1702
1593
|
default:
|
|
1703
1594
|
return;
|
|
1704
1595
|
}
|
|
1705
1596
|
};
|
|
1706
|
-
|
|
1707
1597
|
return /*#__PURE__*/React__default["default"].createElement(DateRangeStyled, {
|
|
1708
1598
|
className: `daterange-container`,
|
|
1709
1599
|
useDefaultTheme: useDefaultTheme
|
|
@@ -1740,7 +1630,6 @@ const DateRange = ({
|
|
|
1740
1630
|
onChange: e => _handleDateChange('to', formId, id, e.target.value)
|
|
1741
1631
|
})));
|
|
1742
1632
|
};
|
|
1743
|
-
|
|
1744
1633
|
DateRange.propTypes = {
|
|
1745
1634
|
className: PropTypes__default["default"].string,
|
|
1746
1635
|
formId: PropTypes__default["default"].string,
|
|
@@ -1760,7 +1649,6 @@ const EntryPickerStyled = styled__default["default"].div.withConfig({
|
|
|
1760
1649
|
}) => {
|
|
1761
1650
|
return styled.css(["", ""], useDefaultTheme && styled.css([".radio-wrapper,.checkbox-wrapper{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;input{height:auto;width:auto;margin:0 4px 0 0;}label{display:inline-block;}}"]));
|
|
1762
1651
|
});
|
|
1763
|
-
|
|
1764
1652
|
const EntryPicker = ({
|
|
1765
1653
|
className,
|
|
1766
1654
|
results,
|
|
@@ -1775,7 +1663,6 @@ const EntryPicker = ({
|
|
|
1775
1663
|
if (!results || results.length > 3) return null;
|
|
1776
1664
|
const isRequired = validations && validations.required ? true : false;
|
|
1777
1665
|
let valArr = [];
|
|
1778
|
-
|
|
1779
1666
|
const _handleChange = (formId, id, value, isChecked) => {
|
|
1780
1667
|
if (type === 'checkbox') {
|
|
1781
1668
|
if (isChecked) {
|
|
@@ -1783,13 +1670,11 @@ const EntryPicker = ({
|
|
|
1783
1670
|
} else if (!isChecked) {
|
|
1784
1671
|
valArr = valArr.filter(valItem => valItem !== value);
|
|
1785
1672
|
}
|
|
1786
|
-
|
|
1787
1673
|
setValue(formId, id, valArr);
|
|
1788
1674
|
} else {
|
|
1789
1675
|
setValue(formId, id, value);
|
|
1790
1676
|
}
|
|
1791
1677
|
};
|
|
1792
|
-
|
|
1793
1678
|
return /*#__PURE__*/React__default["default"].createElement(EntryPickerStyled, {
|
|
1794
1679
|
className: `${type}-container`,
|
|
1795
1680
|
useDefaultTheme: useDefaultTheme
|
|
@@ -1816,7 +1701,6 @@ const EntryPicker = ({
|
|
|
1816
1701
|
}));
|
|
1817
1702
|
}));
|
|
1818
1703
|
};
|
|
1819
|
-
|
|
1820
1704
|
EntryPicker.propTypes = {
|
|
1821
1705
|
className: PropTypes__default["default"].string,
|
|
1822
1706
|
results: PropTypes__default["default"].array,
|
|
@@ -1845,7 +1729,6 @@ const FormComposer = ({
|
|
|
1845
1729
|
if (!fields || fields.length < 1) return null;
|
|
1846
1730
|
return fields.map((field, idx) => {
|
|
1847
1731
|
if (!field) return null;
|
|
1848
|
-
|
|
1849
1732
|
switch (field.type) {
|
|
1850
1733
|
case 'number':
|
|
1851
1734
|
case 'textfield':
|
|
@@ -1867,7 +1750,6 @@ const FormComposer = ({
|
|
|
1867
1750
|
useDefaultTheme: useDefaultTheme
|
|
1868
1751
|
});
|
|
1869
1752
|
}
|
|
1870
|
-
|
|
1871
1753
|
case 'textarea':
|
|
1872
1754
|
{
|
|
1873
1755
|
return /*#__PURE__*/React__default["default"].createElement(Textarea, {
|
|
@@ -1887,7 +1769,6 @@ const FormComposer = ({
|
|
|
1887
1769
|
errors: errors
|
|
1888
1770
|
});
|
|
1889
1771
|
}
|
|
1890
|
-
|
|
1891
1772
|
case 'dropdown':
|
|
1892
1773
|
{
|
|
1893
1774
|
return /*#__PURE__*/React__default["default"].createElement(Dropdown, {
|
|
@@ -1902,7 +1783,6 @@ const FormComposer = ({
|
|
|
1902
1783
|
useDefaultTheme: useDefaultTheme
|
|
1903
1784
|
});
|
|
1904
1785
|
}
|
|
1905
|
-
|
|
1906
1786
|
case 'checkbox':
|
|
1907
1787
|
{
|
|
1908
1788
|
return /*#__PURE__*/React__default["default"].createElement(Checkbox, {
|
|
@@ -1920,7 +1800,6 @@ const FormComposer = ({
|
|
|
1920
1800
|
setCheckboxValue: setCheckboxValue
|
|
1921
1801
|
});
|
|
1922
1802
|
}
|
|
1923
|
-
|
|
1924
1803
|
case 'radio':
|
|
1925
1804
|
{
|
|
1926
1805
|
return /*#__PURE__*/React__default["default"].createElement(RadioButton, {
|
|
@@ -1935,7 +1814,6 @@ const FormComposer = ({
|
|
|
1935
1814
|
useDefaultTheme: useDefaultTheme
|
|
1936
1815
|
});
|
|
1937
1816
|
}
|
|
1938
|
-
|
|
1939
1817
|
case 'entryPicker':
|
|
1940
1818
|
{
|
|
1941
1819
|
const type = field.dataType === 'objectArray' ? 'checkbox' : 'radio';
|
|
@@ -1952,7 +1830,6 @@ const FormComposer = ({
|
|
|
1952
1830
|
formId: formId
|
|
1953
1831
|
});
|
|
1954
1832
|
}
|
|
1955
|
-
|
|
1956
1833
|
case 'date':
|
|
1957
1834
|
{
|
|
1958
1835
|
return /*#__PURE__*/React__default["default"].createElement(SingleDate, {
|
|
@@ -1966,7 +1843,6 @@ const FormComposer = ({
|
|
|
1966
1843
|
useDefaultTheme: useDefaultTheme
|
|
1967
1844
|
});
|
|
1968
1845
|
}
|
|
1969
|
-
|
|
1970
1846
|
case 'dateRange':
|
|
1971
1847
|
{
|
|
1972
1848
|
return /*#__PURE__*/React__default["default"].createElement(DateRange, {
|
|
@@ -1979,7 +1855,6 @@ const FormComposer = ({
|
|
|
1979
1855
|
useDefaultTheme: useDefaultTheme
|
|
1980
1856
|
});
|
|
1981
1857
|
}
|
|
1982
|
-
|
|
1983
1858
|
case 'hidden':
|
|
1984
1859
|
{
|
|
1985
1860
|
return /*#__PURE__*/React__default["default"].createElement(HiddenField, {
|
|
@@ -1995,7 +1870,6 @@ const FormComposer = ({
|
|
|
1995
1870
|
}
|
|
1996
1871
|
});
|
|
1997
1872
|
};
|
|
1998
|
-
|
|
1999
1873
|
FormComposer.propTypes = {
|
|
2000
1874
|
fields: PropTypes__default["default"].oneOfType([PropTypes__default["default"].array, PropTypes__default["default"].object]),
|
|
2001
1875
|
formData: PropTypes__default["default"].object,
|
|
@@ -2116,23 +1990,14 @@ const Form = ({
|
|
|
2116
1990
|
onCustomSubmit
|
|
2117
1991
|
}) => {
|
|
2118
1992
|
const dispatch = reactRedux.useDispatch();
|
|
2119
|
-
|
|
2120
1993
|
const _setFormId = formId => dispatch(setFormId(formId));
|
|
2121
|
-
|
|
2122
1994
|
const _setValue = (formId, id, value) => dispatch(setValue(formId, id, value));
|
|
2123
|
-
|
|
2124
1995
|
const _setCheckboxValue = (formId, id, value, isChecked) => dispatch(setCheckboxValue(formId, id, value, isChecked));
|
|
2125
|
-
|
|
2126
1996
|
const _setDateRangeValues = (formId, id, dateType, value) => dispatch(setDateRangeValues(formId, id, dateType, value));
|
|
2127
|
-
|
|
2128
1997
|
const _onValidateField = (formId, id, value) => dispatch(onValidateField(formId, id, value));
|
|
2129
|
-
|
|
2130
1998
|
const _doTogglePageForward = (formId, pageIndex) => dispatch(doTogglePageForward(formId, pageIndex));
|
|
2131
|
-
|
|
2132
1999
|
const _doTogglePageBack = (formId, pageIndex) => dispatch(doTogglePageBack(formId, pageIndex));
|
|
2133
|
-
|
|
2134
2000
|
const _onSubmit = formId => dispatch(onSubmit(formId));
|
|
2135
|
-
|
|
2136
2001
|
React.useEffect(() => {
|
|
2137
2002
|
if (formId) _setFormId(formId);
|
|
2138
2003
|
}, [formId]);
|
|
@@ -2154,7 +2019,6 @@ const Form = ({
|
|
|
2154
2019
|
const entries = reactRedux.useSelector(selectFormEntries);
|
|
2155
2020
|
const formData = reactRedux.useSelector(selectFormPostData);
|
|
2156
2021
|
const validate = reactRedux.useSelector(selectFormValidationSent);
|
|
2157
|
-
|
|
2158
2022
|
if (pagingInfo && pagingInfo.pageCount > 1) {
|
|
2159
2023
|
const isLastPage = pagingInfo.pageCount == pagingInfo.pageIndex + 1;
|
|
2160
2024
|
return /*#__PURE__*/React__default["default"].createElement(ThemeProvider, {
|
|
@@ -2192,7 +2056,6 @@ const Form = ({
|
|
|
2192
2056
|
loading: status === null || status === void 0 ? void 0 : status.isLoading,
|
|
2193
2057
|
action: () => {
|
|
2194
2058
|
_onSubmit(formId);
|
|
2195
|
-
|
|
2196
2059
|
if (onCustomSubmit) onCustomSubmit();
|
|
2197
2060
|
},
|
|
2198
2061
|
useDefaultTheme: useDefaultTheme
|
|
@@ -2239,7 +2102,6 @@ const Form = ({
|
|
|
2239
2102
|
type: "button",
|
|
2240
2103
|
action: () => {
|
|
2241
2104
|
_onSubmit(formId);
|
|
2242
|
-
|
|
2243
2105
|
if (onCustomSubmit) onCustomSubmit();
|
|
2244
2106
|
},
|
|
2245
2107
|
useDefaultTheme: useDefaultTheme
|
|
@@ -2264,7 +2126,6 @@ const Form = ({
|
|
|
2264
2126
|
}))));
|
|
2265
2127
|
}
|
|
2266
2128
|
};
|
|
2267
|
-
|
|
2268
2129
|
Form.propTypes = {
|
|
2269
2130
|
className: PropTypes__default["default"].string,
|
|
2270
2131
|
formId: PropTypes__default["default"].string,
|