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