react-survey-builder 1.0.16 → 1.0.17
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 +9 -7
- package/dist/186.index.js +1 -0
- package/dist/app.css +1 -1
- package/dist/app.css.map +1 -1
- package/dist/index.js +1 -1
- package/lib/dynamic-option-list.js +1 -1
- package/lib/fieldset/FieldSet.js +15 -17
- package/lib/form copy.js +622 -0
- package/lib/form-fields.js +201 -208
- package/lib/form.js +765 -534
- package/lib/index.js +3 -3
- package/lib/multi-column/MultiColumnRow.js +25 -25
- package/lib/multi-column/dustbin.js +16 -16
- package/lib/multi-column/grip.js +6 -6
- package/lib/preview.js +41 -40
- package/lib/sortable-element.js +6 -6
- package/lib/stores/store.js +22 -22
- package/lib/survey-elements/component-drag-handle.js +6 -6
- package/lib/survey-elements/component-drag-layer.js +3 -3
- package/lib/survey-elements/component-drag-preview.js +1 -1
- package/lib/survey-elements/component-error-message.js +1 -0
- package/lib/survey-elements/component-header.js +5 -5
- package/lib/survey-elements/component-label.js +9 -6
- package/lib/survey-elements/custom-element.js +23 -12
- package/lib/survey-elements/header-bar.js +5 -5
- package/lib/survey-elements/index.js +782 -734
- package/lib/survey-elements-edit.js +139 -48
- package/lib/toolbar-draggable-item.js +4 -4
- package/lib/toolbar.js +33 -17
- package/lib/utils/ipUtils.js +53 -0
- package/package.json +2 -3
- package/types/index.d.ts +2 -1
- package/dist/967.index.js +0 -1
- package/lib/survey-elements/date-picker.js +0 -272
- package/lib/utils/custom-date-picker.js +0 -93
package/lib/form-fields.js
CHANGED
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
6
6
|
});
|
7
7
|
exports["default"] = void 0;
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
11
11
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
12
12
|
var _reactIntl = require("react-intl");
|
@@ -17,9 +17,9 @@ var _customElement = _interopRequireDefault(require("./survey-elements/custom-el
|
|
17
17
|
var _registry = _interopRequireDefault(require("./stores/registry"));
|
18
18
|
var _reactBootstrap = require("react-bootstrap");
|
19
19
|
var _reactHookForm = require("react-hook-form");
|
20
|
-
var _componentErrorMessage = _interopRequireDefault(require("./survey-elements/component-error-message"));
|
21
20
|
var _lodash = require("lodash");
|
22
21
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
22
|
+
var _reactPhoneNumberInput = require("react-phone-number-input");
|
23
23
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
24
24
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
|
25
25
|
* <FormFields />
|
@@ -47,7 +47,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
47
47
|
onSubmit = _ref.onSubmit,
|
48
48
|
onChange = _ref.onChange,
|
49
49
|
onBlur = _ref.onBlur,
|
50
|
-
|
50
|
+
items = _ref.items,
|
51
51
|
_ref$submitButton = _ref.submitButton,
|
52
52
|
submitButton = _ref$submitButton === void 0 ? false : _ref$submitButton,
|
53
53
|
_ref$backButton = _ref.backButton,
|
@@ -67,76 +67,82 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
67
67
|
task_id = _ref.task_id,
|
68
68
|
buttonClassName = _ref.buttonClassName,
|
69
69
|
formId = _ref.formId,
|
70
|
-
methods = _ref.methods
|
71
|
-
|
72
|
-
|
70
|
+
methods = _ref.methods,
|
71
|
+
_ref$print = _ref.print,
|
72
|
+
print = _ref$print === void 0 ? false : _ref$print;
|
73
73
|
if (!methods) return null;
|
74
74
|
|
75
75
|
//#region helper functions
|
76
76
|
|
77
|
-
var _convert = function _convert(
|
78
|
-
if (Array.isArray(
|
77
|
+
var _convert = function _convert($dataAnswers) {
|
78
|
+
if (Array.isArray($dataAnswers)) {
|
79
79
|
var result = {};
|
80
|
-
|
81
|
-
|
82
|
-
if (Array.isArray(x.value)) {
|
83
|
-
result[x.name] = x.value.map(function (y) {
|
84
|
-
return y.value;
|
85
|
-
}).join(',');
|
86
|
-
} else {
|
87
|
-
result[x.name] = x.value;
|
88
|
-
}
|
89
|
-
} else {
|
90
|
-
result[x.name] = x.value;
|
91
|
-
}
|
80
|
+
$dataAnswers.forEach(function (answer) {
|
81
|
+
result[answer.name] = answer.value;
|
92
82
|
});
|
93
83
|
return result;
|
94
84
|
}
|
95
|
-
return
|
85
|
+
return $dataAnswers || {};
|
96
86
|
};
|
97
87
|
var form = _react["default"].useRef();
|
98
88
|
var inputs = _react["default"].useRef({});
|
99
89
|
var answerData = _react["default"].useRef(_convert(answers));
|
100
|
-
var _getDefaultValue = function _getDefaultValue(
|
101
|
-
var defaultValue = answerData.current[
|
102
|
-
if (
|
103
|
-
var
|
104
|
-
var defaultToday = (
|
105
|
-
var formatMask =
|
90
|
+
var _getDefaultValue = function _getDefaultValue($dataItem) {
|
91
|
+
var defaultValue = answerData.current[$dataItem.fieldName];
|
92
|
+
if ($dataItem.element === 'DatePicker') {
|
93
|
+
var _$dataItem$defaultTod;
|
94
|
+
var defaultToday = (_$dataItem$defaultTod = $dataItem.defaultToday) !== null && _$dataItem$defaultTod !== void 0 ? _$dataItem$defaultTod : false;
|
95
|
+
var formatMask = $dataItem.formatMask || 'MM/DD/YYYY';
|
106
96
|
if (defaultToday && (defaultValue === '' || defaultValue === undefined)) {
|
107
97
|
defaultValue = (0, _momentTimezone["default"])().format(formatMask);
|
108
98
|
}
|
109
99
|
}
|
100
|
+
if ($dataItem.element === 'Checkbox') {
|
101
|
+
var _$dataItem$defaultChe;
|
102
|
+
var defaultChecked = (_$dataItem$defaultChe = $dataItem.defaultChecked) !== null && _$dataItem$defaultChe !== void 0 ? _$dataItem$defaultChe : false;
|
103
|
+
if (defaultChecked === true) {
|
104
|
+
defaultValue = true;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
if (defaultValue === undefined) {
|
108
|
+
if ($dataItem.element === 'Checkboxes' || $dataItem.element === 'Tags') {
|
109
|
+
defaultValue = [];
|
110
|
+
} else {
|
111
|
+
defaultValue = '';
|
112
|
+
}
|
113
|
+
}
|
110
114
|
return defaultValue;
|
111
115
|
};
|
112
|
-
var _optionsDefaultValue = function _optionsDefaultValue(
|
113
|
-
var defaultValue = _getDefaultValue(
|
116
|
+
var _optionsDefaultValue = function _optionsDefaultValue($dataItem) {
|
117
|
+
var defaultValue = _getDefaultValue($dataItem);
|
114
118
|
if (defaultValue) {
|
115
119
|
return defaultValue;
|
116
120
|
}
|
117
121
|
var defaultChecked = [];
|
118
|
-
|
122
|
+
$dataItem.options.forEach(function (option) {
|
119
123
|
if (answerData.current["option_".concat(option.key)]) {
|
120
124
|
defaultChecked.push(option.key);
|
121
125
|
}
|
122
126
|
});
|
123
127
|
return defaultChecked;
|
124
128
|
};
|
125
|
-
var _getItemValue = function _getItemValue(
|
129
|
+
var _getItemValue = function _getItemValue($dataItem, ref) {
|
126
130
|
var $item = {
|
127
|
-
element:
|
131
|
+
element: $dataItem.element,
|
128
132
|
value: ''
|
129
133
|
};
|
130
|
-
if (
|
134
|
+
if ($dataItem.element === 'Rating') {
|
131
135
|
$item.value = ref.inputField.current.state.rating;
|
132
|
-
} else if (
|
133
|
-
$item.value = ref.
|
136
|
+
} else if ($dataItem.element === 'Tags') {
|
137
|
+
$item.value = ref.props.value;
|
134
138
|
// } else if (item.element === 'DatePicker') {
|
135
139
|
// $item.value = ref.state.value;
|
136
|
-
} else if (
|
140
|
+
} else if ($dataItem.element === 'Camera') {
|
137
141
|
$item.value = ref.state.img;
|
138
|
-
} else if (
|
142
|
+
} else if ($dataItem.element === 'FileUpload') {
|
139
143
|
$item.value = ref.state.fileUpload;
|
144
|
+
} else if ($dataItem.element === 'Signature') {
|
145
|
+
$item.value = ref.state.value;
|
140
146
|
} else if (ref && ref.inputField && ref.inputField.current) {
|
141
147
|
$item = _reactDom["default"].findDOMNode(ref.inputField.current);
|
142
148
|
if ($item && typeof $item.value === 'string') {
|
@@ -145,37 +151,37 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
145
151
|
}
|
146
152
|
return $item;
|
147
153
|
};
|
148
|
-
var _isIncorrect = function _isIncorrect(
|
154
|
+
var _isIncorrect = function _isIncorrect($dataItem) {
|
149
155
|
var incorrect = false;
|
150
|
-
if (
|
151
|
-
var ref = inputs.current[
|
152
|
-
if (
|
153
|
-
|
156
|
+
if ($dataItem.canHaveAnswer) {
|
157
|
+
var ref = inputs.current[$dataItem.fieldName];
|
158
|
+
if ($dataItem.element === 'Checkboxes' || $dataItem.element === 'RadioButtons') {
|
159
|
+
$dataItem.options.forEach(function (option) {
|
154
160
|
var $option = _reactDom["default"].findDOMNode(ref.options["child_ref_".concat(option.key)]);
|
155
161
|
if (option.hasOwnProperty('correct') && !$option.checked || !option.hasOwnProperty('correct') && $option.checked) {
|
156
162
|
incorrect = true;
|
157
163
|
}
|
158
164
|
});
|
159
165
|
} else {
|
160
|
-
var $item = _getItemValue(
|
161
|
-
if (
|
162
|
-
if ($item.value.toString() !==
|
166
|
+
var $item = _getItemValue($dataItem, ref);
|
167
|
+
if ($dataItem.element === 'Rating') {
|
168
|
+
if ($item.value.toString() !== $dataItem.correct) {
|
163
169
|
incorrect = true;
|
164
170
|
}
|
165
|
-
} else if ($item.value.toLowerCase() !==
|
171
|
+
} else if ($item.value.toLowerCase() !== $dataItem.correct.trim().toLowerCase()) {
|
166
172
|
incorrect = true;
|
167
173
|
}
|
168
174
|
}
|
169
175
|
}
|
170
176
|
return incorrect;
|
171
177
|
};
|
172
|
-
var _isInvalid = function _isInvalid(
|
178
|
+
var _isInvalid = function _isInvalid($dataItem) {
|
173
179
|
var invalid = false;
|
174
|
-
if (
|
175
|
-
var ref = inputs.current[
|
176
|
-
if (
|
180
|
+
if ($dataItem.required === true) {
|
181
|
+
var ref = inputs.current[$dataItem.fieldName];
|
182
|
+
if ($dataItem.element === 'Checkboxes' || $dataItem.element === 'RadioButtons') {
|
177
183
|
var checked_options = 0;
|
178
|
-
|
184
|
+
$dataItem.options.forEach(function (option) {
|
179
185
|
var $option = _reactDom["default"].findDOMNode(ref.options["child_ref_".concat(option.key)]);
|
180
186
|
if ($option.checked) {
|
181
187
|
checked_options += 1;
|
@@ -186,8 +192,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
186
192
|
invalid = true;
|
187
193
|
}
|
188
194
|
} else {
|
189
|
-
var $item = _getItemValue(
|
190
|
-
if (
|
195
|
+
var $item = _getItemValue($dataItem, ref);
|
196
|
+
if ($dataItem.element === 'Rating') {
|
191
197
|
if ($item.value === 0) {
|
192
198
|
invalid = true;
|
193
199
|
}
|
@@ -198,33 +204,32 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
198
204
|
}
|
199
205
|
return invalid;
|
200
206
|
};
|
201
|
-
var _collect = function _collect(
|
207
|
+
var _collect = function _collect($dataItem) {
|
202
208
|
var itemData = {
|
203
|
-
id:
|
204
|
-
name:
|
205
|
-
customName:
|
206
|
-
|
207
|
-
label: item.label !== null && item.label !== undefined && item.label !== '' ? item.label.trim() : ''
|
209
|
+
id: $dataItem.id,
|
210
|
+
name: $dataItem.fieldName,
|
211
|
+
customName: $dataItem.customName || $dataItem.fieldName,
|
212
|
+
label: $dataItem.label !== null && $dataItem.label !== undefined && $dataItem.label !== '' ? $dataItem.label.trim() : ''
|
208
213
|
};
|
209
214
|
if (!itemData.name) return null;
|
210
|
-
var ref = inputs.current[
|
211
|
-
if (
|
215
|
+
var ref = inputs.current[$dataItem.fieldName];
|
216
|
+
if ($dataItem.element === 'Checkboxes') {
|
212
217
|
var checkedOptions = [];
|
213
|
-
|
218
|
+
$dataItem.options.forEach(function (option) {
|
214
219
|
var $option = _reactDom["default"].findDOMNode(ref.options["child_ref_".concat(option.key)]);
|
215
220
|
if ($option.checked) {
|
216
221
|
checkedOptions.push(option.value);
|
217
222
|
}
|
218
223
|
});
|
219
224
|
itemData.value = checkedOptions;
|
220
|
-
} else if (
|
221
|
-
|
225
|
+
} else if ($dataItem.element === 'RadioButtons') {
|
226
|
+
$dataItem.options.forEach(function (option) {
|
222
227
|
var $option = _reactDom["default"].findDOMNode(ref.options["child_ref_".concat(option.key)]);
|
223
228
|
if ($option.checked) {
|
224
229
|
itemData.value = option.value;
|
225
230
|
}
|
226
231
|
});
|
227
|
-
} else if (
|
232
|
+
} else if ($dataItem.element === 'Checkbox') {
|
228
233
|
if (!ref || !ref.inputField || !ref.inputField.current) {
|
229
234
|
itemData.value = false;
|
230
235
|
} else {
|
@@ -232,14 +237,14 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
232
237
|
}
|
233
238
|
} else {
|
234
239
|
if (!ref) return null;
|
235
|
-
itemData.value = _getItemValue(
|
240
|
+
itemData.value = _getItemValue($dataItem, ref).value;
|
236
241
|
}
|
237
|
-
itemData.required =
|
242
|
+
itemData.required = $dataItem.required || false;
|
238
243
|
return itemData;
|
239
244
|
};
|
240
|
-
var _collectFormData = function _collectFormData($
|
245
|
+
var _collectFormData = function _collectFormData($dataItems) {
|
241
246
|
var formData = [];
|
242
|
-
$
|
247
|
+
$dataItems.forEach(function (item) {
|
243
248
|
var itemData = _collect(item);
|
244
249
|
if (itemData) {
|
245
250
|
formData.push(itemData);
|
@@ -247,21 +252,21 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
247
252
|
});
|
248
253
|
return formData;
|
249
254
|
};
|
250
|
-
var _getSignatureImg = function _getSignatureImg(
|
251
|
-
|
252
|
-
|
253
|
-
if ($canvas_sig) {
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
}
|
255
|
+
var _getSignatureImg = function _getSignatureImg($dataItem) {
|
256
|
+
// const ref = inputs.current[$dataItem.fieldName];
|
257
|
+
// const $canvas_sig = ref.canvas.current;
|
258
|
+
// if ($canvas_sig) {
|
259
|
+
// const base64 = $canvas_sig.toDataURL().replace('data:image/png;base64,', '');
|
260
|
+
// const isEmpty = $canvas_sig.isEmpty();
|
261
|
+
// const $input_sig = ReactDOM.findDOMNode(ref.inputField.current);
|
262
|
+
// if (isEmpty) {
|
263
|
+
// $input_sig.value = '';
|
264
|
+
// methods.setValue($dataItem.fieldName, '');
|
265
|
+
// } else {
|
266
|
+
// $input_sig.value = base64;
|
267
|
+
// methods.setValue($dataItem.fieldName, base64);
|
268
|
+
// }
|
269
|
+
// }
|
265
270
|
};
|
266
271
|
|
267
272
|
//#endregion
|
@@ -280,7 +285,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
280
285
|
// Only submit if there are no errors.
|
281
286
|
if (errors.length < 1) {
|
282
287
|
if (onSubmit) {
|
283
|
-
var $data = _collectFormData(
|
288
|
+
var $data = _collectFormData(items);
|
284
289
|
onSubmit($data);
|
285
290
|
} else {
|
286
291
|
var $form = _reactDom["default"].findDOMNode(form.current);
|
@@ -292,15 +297,15 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
292
297
|
// console.log('handleChange');
|
293
298
|
// Call submit function on change
|
294
299
|
if (onChange) {
|
295
|
-
var $data = _collectFormData(
|
300
|
+
var $data = _collectFormData(items);
|
296
301
|
onChange($data);
|
297
302
|
}
|
298
303
|
};
|
299
304
|
var validateForm = function validateForm() {
|
300
305
|
var errors = [];
|
301
|
-
var dataItems =
|
306
|
+
var dataItems = items;
|
302
307
|
if (displayShort) {
|
303
|
-
dataItems =
|
308
|
+
dataItems = items.filter(function (i) {
|
304
309
|
return i.alternateForm === true;
|
305
310
|
});
|
306
311
|
}
|
@@ -356,10 +361,26 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
356
361
|
// eslint-disable-next-line no-useless-escape
|
357
362
|
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
|
358
363
|
};
|
364
|
+
var toE164PhoneNumber = function toE164PhoneNumber(phoneNumberValue) {
|
365
|
+
if (phoneNumberValue !== undefined && phoneNumberValue !== null) {
|
366
|
+
//Filter only numbers from the input
|
367
|
+
var cleaned = ('' + phoneNumberValue).replace(/\D/g, '');
|
368
|
+
|
369
|
+
//Check if the input is of correct
|
370
|
+
var match = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/);
|
371
|
+
if (match) {
|
372
|
+
//Remove the matched extension code
|
373
|
+
//Change this to format for any country code.
|
374
|
+
var intlCode = match[1] ? '+1' : '+1';
|
375
|
+
return [intlCode, match[2], match[3], match[4]].join('');
|
376
|
+
}
|
377
|
+
return '';
|
378
|
+
} else {
|
379
|
+
return '';
|
380
|
+
}
|
381
|
+
};
|
359
382
|
var validatePhone = function validatePhone(phone) {
|
360
|
-
return
|
361
|
-
// eslint-disable-next-line no-useless-escape
|
362
|
-
/^[+]?(1\-|1\s|1|\d{3}\-|\d{3}\s|)?((\(\d{3}\))|\d{3})(\-|\s)?(\d{3})(\-|\s)?(\d{4})$/g);
|
383
|
+
return (0, _reactPhoneNumberInput.isValidPhoneNumber)(toE164PhoneNumber(phone), 'US');
|
363
384
|
};
|
364
385
|
var validateDate = function validateDate(dateString) {
|
365
386
|
if (dateString !== undefined && dateString !== null && dateString !== "") {
|
@@ -409,29 +430,39 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
409
430
|
}
|
410
431
|
return true;
|
411
432
|
};
|
412
|
-
var
|
413
|
-
|
433
|
+
var getDataItemById = function getDataItemById(id) {
|
434
|
+
var $dataItem = items.find(function (x) {
|
414
435
|
return x.id === id;
|
415
436
|
});
|
437
|
+
if ($dataItem !== undefined) {
|
438
|
+
return _objectSpread(_objectSpread({}, $dataItem), {}, {
|
439
|
+
fieldRules: getFieldRules($dataItem),
|
440
|
+
print: print !== null && print !== void 0 ? print : false,
|
441
|
+
hideRequiredAlert: hideRequiredAlert || $dataItem.hideRequiredAlert,
|
442
|
+
readOnly: readOnly || $dataItem.readOnly,
|
443
|
+
disabled: $dataItem.readOnly,
|
444
|
+
mutable: true
|
445
|
+
});
|
446
|
+
}
|
447
|
+
return null;
|
416
448
|
};
|
417
449
|
var getInputElement = function getInputElement(item) {
|
450
|
+
if (!item) return null;
|
418
451
|
if (item.custom) {
|
419
452
|
return getCustomElement(item);
|
420
453
|
}
|
421
454
|
var Input = _surveyElements["default"][item.element];
|
422
|
-
return /*#__PURE__*/_react["default"].createElement(
|
423
|
-
key: "form_fragment_".concat(item.id)
|
424
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
455
|
+
return /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
425
456
|
key: "form_".concat(item.id),
|
426
457
|
control: methods.control,
|
427
458
|
name: item.fieldName,
|
428
459
|
rules: item.fieldRules,
|
429
460
|
defaultValue: _getDefaultValue(item),
|
430
|
-
disabled:
|
461
|
+
disabled: item.disabled,
|
431
462
|
required: item.required,
|
432
463
|
render: function render(_ref3) {
|
433
464
|
var _ref3$field = _ref3.field,
|
434
|
-
|
465
|
+
_onChange = _ref3$field.onChange,
|
435
466
|
onBlur = _ref3$field.onBlur,
|
436
467
|
value = _ref3$field.value,
|
437
468
|
name = _ref3$field.name,
|
@@ -444,34 +475,30 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
444
475
|
formState = _ref3.formState;
|
445
476
|
return /*#__PURE__*/_react["default"].createElement(Input, {
|
446
477
|
onBlur: onBlur,
|
447
|
-
onChange: onChange
|
478
|
+
onChange: function onChange(e) {
|
479
|
+
_onChange(e);
|
480
|
+
handleChange(e);
|
481
|
+
},
|
448
482
|
value: value,
|
449
483
|
name: name,
|
450
484
|
ref: function ref(c) {
|
451
485
|
return inputs.current[item.fieldName] = c;
|
452
486
|
},
|
453
487
|
isInvalid: invalid,
|
454
|
-
|
455
|
-
mutable: true,
|
456
|
-
data: item,
|
457
|
-
readOnly: readOnly || item.readOnly,
|
458
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
488
|
+
item: item
|
459
489
|
});
|
460
490
|
}
|
461
|
-
})
|
462
|
-
name: item.fieldName
|
463
|
-
}));
|
491
|
+
});
|
464
492
|
};
|
465
493
|
var getContainerElement = function getContainerElement(item, Element) {
|
466
|
-
var controls = item.childItems.map(function (
|
467
|
-
return
|
494
|
+
var controls = item.childItems.map(function (childItem) {
|
495
|
+
return childItem ? getInputElement(getDataItemById(childItem)) : /*#__PURE__*/_react["default"].createElement("div", null, "\xA0");
|
468
496
|
});
|
469
497
|
return /*#__PURE__*/_react["default"].createElement(Element, {
|
470
498
|
mutable: true,
|
471
499
|
key: "form_".concat(item.id),
|
472
|
-
|
473
|
-
controls: controls
|
474
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
500
|
+
item: item,
|
501
|
+
controls: controls
|
475
502
|
});
|
476
503
|
};
|
477
504
|
var getSimpleElement = function getSimpleElement(item) {
|
@@ -479,8 +506,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
479
506
|
return /*#__PURE__*/_react["default"].createElement(Element, {
|
480
507
|
mutable: true,
|
481
508
|
key: "form_".concat(item.id),
|
482
|
-
|
483
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
509
|
+
item: item
|
484
510
|
});
|
485
511
|
};
|
486
512
|
var getCustomElement = function getCustomElement(item) {
|
@@ -492,26 +518,17 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
492
518
|
})));
|
493
519
|
}
|
494
520
|
}
|
495
|
-
|
496
|
-
handleChange: handleChange,
|
497
|
-
defaultValue: _getDefaultValue(item),
|
498
|
-
ref: function ref(c) {
|
499
|
-
return inputs.current[item.fieldName] = c;
|
500
|
-
}
|
501
|
-
};
|
502
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
|
503
|
-
key: "form_fragment_".concat(item.id)
|
504
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
521
|
+
return /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
505
522
|
key: "form_".concat(item.id),
|
506
523
|
control: methods.control,
|
507
524
|
name: item.fieldName,
|
508
525
|
rules: item.fieldRules,
|
509
526
|
defaultValue: _getDefaultValue(item),
|
510
|
-
disabled:
|
527
|
+
disabled: item.disabled,
|
511
528
|
required: item.required,
|
512
529
|
render: function render(_ref4) {
|
513
530
|
var _ref4$field = _ref4.field,
|
514
|
-
|
531
|
+
_onChange2 = _ref4$field.onChange,
|
515
532
|
onBlur = _ref4$field.onBlur,
|
516
533
|
value = _ref4$field.value,
|
517
534
|
name = _ref4$field.name,
|
@@ -522,25 +539,22 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
522
539
|
isDirty = _ref4$fieldState.isDirty,
|
523
540
|
error = _ref4$fieldState.error,
|
524
541
|
formState = _ref4.formState;
|
525
|
-
return /*#__PURE__*/_react["default"].createElement(_customElement["default"],
|
542
|
+
return /*#__PURE__*/_react["default"].createElement(_customElement["default"], {
|
526
543
|
onBlur: onBlur,
|
527
|
-
onChange: onChange
|
544
|
+
onChange: function onChange(e) {
|
545
|
+
_onChange2(e);
|
546
|
+
handleChange(e);
|
547
|
+
},
|
528
548
|
value: value,
|
529
549
|
name: name,
|
530
550
|
ref: function ref(c) {
|
531
551
|
return inputs.current[item.fieldName] = c;
|
532
552
|
},
|
533
553
|
isInvalid: invalid,
|
534
|
-
|
535
|
-
|
536
|
-
data: item,
|
537
|
-
readOnly: readOnly || item.readOnly,
|
538
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
539
|
-
}, inputProps));
|
554
|
+
item: item
|
555
|
+
});
|
540
556
|
}
|
541
|
-
})
|
542
|
-
name: item.fieldName
|
543
|
-
}));
|
557
|
+
});
|
544
558
|
};
|
545
559
|
var getFieldRules = function getFieldRules(item) {
|
546
560
|
var fieldRules = {};
|
@@ -563,18 +577,21 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
563
577
|
id: 'message.invalid-email'
|
564
578
|
}));
|
565
579
|
};
|
580
|
+
break;
|
566
581
|
case 'PhoneNumber':
|
567
582
|
fieldRules.validate = function (value) {
|
568
583
|
return validatePhone(value) || "".concat(item.label, " ").concat(intl.formatMessage({
|
569
584
|
id: 'message.invalid-phone-number'
|
570
585
|
}));
|
571
586
|
};
|
587
|
+
break;
|
572
588
|
case 'DatePicker':
|
573
589
|
fieldRules.validate = function (value) {
|
574
590
|
return validateDate(value) || "".concat(item.label, " ").concat(intl.formatMessage({
|
575
591
|
id: 'message.invalid-date'
|
576
592
|
}));
|
577
593
|
};
|
594
|
+
break;
|
578
595
|
default:
|
579
596
|
break;
|
580
597
|
}
|
@@ -602,9 +619,9 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
602
619
|
|
603
620
|
//#endregion
|
604
621
|
|
605
|
-
var dataItems =
|
622
|
+
var dataItems = items;
|
606
623
|
if (displayShort) {
|
607
|
-
dataItems =
|
624
|
+
dataItems = items.filter(function (i) {
|
608
625
|
return i.alternateForm === true;
|
609
626
|
});
|
610
627
|
}
|
@@ -613,11 +630,16 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
613
630
|
answerData.current[item.fieldName] = variables[item.variableKey];
|
614
631
|
}
|
615
632
|
});
|
616
|
-
var
|
633
|
+
var fieldItems = dataItems.filter(function (x) {
|
617
634
|
return !x.parentId;
|
618
635
|
}).map(function (item) {
|
619
636
|
if (!item) return null;
|
620
637
|
item.fieldRules = getFieldRules(item);
|
638
|
+
item.print = print !== null && print !== void 0 ? print : false;
|
639
|
+
item.hideRequiredAlert = hideRequiredAlert || item.hideRequiredAlert;
|
640
|
+
item.readOnly = readOnly || item.readOnly;
|
641
|
+
item.disabled = item.readOnly;
|
642
|
+
item.mutable = true;
|
621
643
|
switch (item.element) {
|
622
644
|
case 'TextInput':
|
623
645
|
case 'EmailInput':
|
@@ -643,19 +665,17 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
643
665
|
case 'FieldSet':
|
644
666
|
return getContainerElement(item, _fieldset.FieldSet);
|
645
667
|
case 'Signature':
|
646
|
-
return /*#__PURE__*/_react["default"].createElement(
|
647
|
-
key: "form_fragment_".concat(item.id)
|
648
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
668
|
+
return /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
649
669
|
key: "form_".concat(item.id),
|
650
670
|
control: methods.control,
|
651
671
|
name: item.fieldName,
|
652
672
|
rules: item.fieldRules,
|
653
673
|
defaultValue: _getDefaultValue(item),
|
654
|
-
disabled:
|
674
|
+
disabled: item.disabled,
|
655
675
|
required: item.required,
|
656
676
|
render: function render(_ref5) {
|
657
677
|
var _ref5$field = _ref5.field,
|
658
|
-
|
678
|
+
_onChange3 = _ref5$field.onChange,
|
659
679
|
onBlur = _ref5$field.onBlur,
|
660
680
|
value = _ref5$field.value,
|
661
681
|
name = _ref5$field.name,
|
@@ -669,36 +689,31 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
669
689
|
return /*#__PURE__*/_react["default"].createElement(Signature, {
|
670
690
|
methods: methods,
|
671
691
|
onBlur: onBlur,
|
672
|
-
onChange: onChange
|
692
|
+
onChange: function onChange(e) {
|
693
|
+
_onChange3(e);
|
694
|
+
handleChange(e);
|
695
|
+
},
|
673
696
|
value: value,
|
674
697
|
name: name,
|
675
698
|
ref: function ref(c) {
|
676
699
|
return inputs.current[item.fieldName] = c;
|
677
700
|
},
|
678
|
-
|
679
|
-
mutable: true,
|
680
|
-
data: item,
|
681
|
-
readOnly: readOnly || item.readOnly,
|
682
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
701
|
+
item: item
|
683
702
|
});
|
684
703
|
}
|
685
|
-
})
|
686
|
-
name: item.fieldName
|
687
|
-
}));
|
704
|
+
});
|
688
705
|
case 'Checkboxes':
|
689
|
-
return /*#__PURE__*/_react["default"].createElement(
|
690
|
-
key: "form_fragment_".concat(item.id)
|
691
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
706
|
+
return /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
692
707
|
key: "form_".concat(item.id),
|
693
708
|
control: methods.control,
|
694
709
|
name: item.fieldName,
|
695
710
|
rules: item.fieldRules,
|
696
711
|
defaultValue: _optionsDefaultValue(item),
|
697
|
-
disabled:
|
712
|
+
disabled: item.disabled,
|
698
713
|
required: item.required,
|
699
714
|
render: function render(_ref6) {
|
700
715
|
var _ref6$field = _ref6.field,
|
701
|
-
|
716
|
+
_onChange4 = _ref6$field.onChange,
|
702
717
|
onBlur = _ref6$field.onBlur,
|
703
718
|
value = _ref6$field.value,
|
704
719
|
name = _ref6$field.name,
|
@@ -711,58 +726,46 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
711
726
|
formState = _ref6.formState;
|
712
727
|
return /*#__PURE__*/_react["default"].createElement(Checkboxes, {
|
713
728
|
onBlur: onBlur,
|
714
|
-
onChange: onChange
|
729
|
+
onChange: function onChange(e) {
|
730
|
+
_onChange4(e);
|
731
|
+
handleChange(e);
|
732
|
+
},
|
715
733
|
value: value,
|
716
734
|
name: name,
|
717
735
|
ref: function ref(c) {
|
718
736
|
return inputs.current[item.fieldName] = c;
|
719
737
|
},
|
720
738
|
isInvalid: invalid,
|
721
|
-
|
722
|
-
mutable: true,
|
723
|
-
data: item,
|
724
|
-
readOnly: readOnly || item.readOnly,
|
725
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
739
|
+
item: item
|
726
740
|
});
|
727
741
|
}
|
728
|
-
})
|
729
|
-
name: item.fieldName
|
730
|
-
}));
|
742
|
+
});
|
731
743
|
case 'Image':
|
732
744
|
return /*#__PURE__*/_react["default"].createElement(Image, {
|
733
745
|
ref: function ref(c) {
|
734
746
|
return inputs.current[item.fieldName] = c;
|
735
747
|
},
|
736
|
-
handleChange: handleChange,
|
737
|
-
mutable: true,
|
738
748
|
key: "form_".concat(item.id),
|
739
|
-
|
740
|
-
defaultValue: _getDefaultValue(item),
|
741
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
749
|
+
item: item
|
742
750
|
});
|
743
|
-
;
|
744
751
|
case 'Download':
|
745
752
|
return /*#__PURE__*/_react["default"].createElement(Download, {
|
746
753
|
downloadPath: downloadPath,
|
747
|
-
mutable: true,
|
748
754
|
key: "form_".concat(item.id),
|
749
|
-
|
750
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
755
|
+
item: item
|
751
756
|
});
|
752
757
|
case 'Camera':
|
753
|
-
return /*#__PURE__*/_react["default"].createElement(
|
754
|
-
key: "form_fragment_".concat(item.id)
|
755
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
758
|
+
return /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
756
759
|
key: "form_".concat(item.id),
|
757
760
|
control: methods.control,
|
758
761
|
name: item.fieldName,
|
759
762
|
rules: item.fieldRules,
|
760
763
|
defaultValue: _getDefaultValue(item),
|
761
|
-
disabled:
|
764
|
+
disabled: item.disabled,
|
762
765
|
required: item.required,
|
763
766
|
render: function render(_ref7) {
|
764
767
|
var _ref7$field = _ref7.field,
|
765
|
-
|
768
|
+
_onChange5 = _ref7$field.onChange,
|
766
769
|
onBlur = _ref7$field.onBlur,
|
767
770
|
value = _ref7$field.value,
|
768
771
|
name = _ref7$field.name,
|
@@ -775,38 +778,32 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
775
778
|
formState = _ref7.formState;
|
776
779
|
return /*#__PURE__*/_react["default"].createElement(Camera, {
|
777
780
|
onBlur: onBlur,
|
778
|
-
onChange: onChange
|
781
|
+
onChange: function onChange(e) {
|
782
|
+
_onChange5(e);
|
783
|
+
handleChange(e);
|
784
|
+
},
|
779
785
|
value: value,
|
780
786
|
name: name,
|
781
787
|
ref: function ref(c) {
|
782
788
|
return inputs.current[item.fieldName] = c;
|
783
789
|
},
|
784
790
|
isInvalid: invalid,
|
785
|
-
|
786
|
-
handleChange: handleChange,
|
787
|
-
mutable: true,
|
788
|
-
data: item,
|
789
|
-
readOnly: readOnly || item.readOnly,
|
790
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
791
|
+
item: item
|
791
792
|
});
|
792
793
|
}
|
793
|
-
})
|
794
|
-
name: item.fieldName
|
795
|
-
}));
|
794
|
+
});
|
796
795
|
case 'FileUpload':
|
797
|
-
return /*#__PURE__*/_react["default"].createElement(
|
798
|
-
key: "form_fragment_".concat(item.id)
|
799
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
796
|
+
return /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
800
797
|
key: "form_".concat(item.id),
|
801
798
|
control: methods.control,
|
802
799
|
name: item.fieldName,
|
803
800
|
rules: item.fieldRules,
|
804
801
|
defaultValue: _getDefaultValue(item),
|
805
|
-
disabled:
|
802
|
+
disabled: item.disabled,
|
806
803
|
required: item.required,
|
807
804
|
render: function render(_ref8) {
|
808
805
|
var _ref8$field = _ref8.field,
|
809
|
-
|
806
|
+
_onChange6 = _ref8$field.onChange,
|
810
807
|
onBlur = _ref8$field.onBlur,
|
811
808
|
value = _ref8$field.value,
|
812
809
|
name = _ref8$field.name,
|
@@ -819,24 +816,20 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
819
816
|
formState = _ref8.formState;
|
820
817
|
return /*#__PURE__*/_react["default"].createElement(FileUpload, {
|
821
818
|
onBlur: onBlur,
|
822
|
-
onChange: onChange
|
819
|
+
onChange: function onChange(e) {
|
820
|
+
_onChange6(e);
|
821
|
+
handleChange(e);
|
822
|
+
},
|
823
823
|
value: value,
|
824
824
|
name: name,
|
825
825
|
ref: function ref(c) {
|
826
826
|
return inputs.current[item.fieldName] = c;
|
827
827
|
},
|
828
828
|
isInvalid: invalid,
|
829
|
-
|
830
|
-
handleChange: handleChange,
|
831
|
-
mutable: true,
|
832
|
-
data: item,
|
833
|
-
readOnly: readOnly || item.readOnly,
|
834
|
-
hideRequiredAlert: hideRequiredAlert || item.hideRequiredAlert
|
829
|
+
item: item
|
835
830
|
});
|
836
831
|
}
|
837
|
-
})
|
838
|
-
name: item.fieldName
|
839
|
-
}));
|
832
|
+
});
|
840
833
|
default:
|
841
834
|
return getSimpleElement(item);
|
842
835
|
}
|
@@ -849,7 +842,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
849
842
|
className: "react-survey-builder-form"
|
850
843
|
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.FormProvider, methods, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form, (0, _extends2["default"])({
|
851
844
|
onSubmit: methods.handleSubmit(handleSubmit)
|
852
|
-
}, formProps),
|
845
|
+
}, formProps), fieldItems, /*#__PURE__*/_react["default"].createElement("div", {
|
853
846
|
className: buttonClassName ? buttonClassName : 'btn-toolbar'
|
854
847
|
}, !hideActions && handleRenderSubmit(), !hideActions && backAction && handleRenderBack())))));
|
855
848
|
};
|