react-survey-builder 1.0.69 → 1.0.71

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.
@@ -13,7 +13,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
13
13
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
14
  import React from 'react';
15
15
  import ReactDOM from 'react-dom';
16
- import SurveyElements, { Image, Checkboxes, Signature, Download, Camera, FileUpload, PhoneNumber, DatePicker, TextInput, EmailInput, NumberInput, TextArea } from './survey-elements';
16
+ import SurveyElements, { Image, Checkboxes, Signature, Download, Camera, FileUpload, PhoneNumber, DatePicker, TextInput, EmailInput, NumberInput, TextArea, Dropdown, Tags } from './survey-elements';
17
17
  import { TwoColumnRow, ThreeColumnRow, MultiColumnRow } from './multi-column';
18
18
  import FieldSet from './fieldset';
19
19
  import CustomElement from './survey-elements/custom-element';
@@ -40,6 +40,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
40
40
  backAction = _ref$backAction === void 0 ? null : _ref$backAction,
41
41
  _ref$hideActions = _ref.hideActions,
42
42
  hideActions = _ref$hideActions === void 0 ? false : _ref$hideActions,
43
+ _ref$hideLabels = _ref.hideLabels,
44
+ hideLabels = _ref$hideLabels === void 0 ? false : _ref$hideLabels,
43
45
  variables = _ref.variables,
44
46
  buttonClassName = _ref.buttonClassName,
45
47
  checkboxButtonClassName = _ref.checkboxButtonClassName,
@@ -47,8 +49,6 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
47
49
  methods = _ref.methods,
48
50
  _ref$print = _ref.print,
49
51
  print = _ref$print === void 0 ? false : _ref$print;
50
- if (!methods) return null;
51
-
52
52
  //#region helper functions
53
53
 
54
54
  var _convert = function _convert($dataAnswers) {
@@ -117,14 +117,16 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
117
117
  return defaultChecked;
118
118
  };
119
119
  var _getItemValue = function _getItemValue($dataItem, ref) {
120
+ var _ref$inputField;
120
121
  var $item = {
121
122
  element: $dataItem.element,
122
123
  value: ''
123
124
  };
125
+ var $formData = methods === null || methods === void 0 ? void 0 : methods.getValues();
124
126
  if ($dataItem.element === 'Rating') {
125
127
  $item.value = ref.inputField.current.state.rating;
126
128
  } else if ($dataItem.element === 'Tags') {
127
- $item.value = ref.props.value;
129
+ $item.value = $formData[$dataItem.fieldName];
128
130
  // } else if (item.element === 'DatePicker') {
129
131
  // $item.value = ref.state.value;
130
132
  } else if ($dataItem.element === 'Camera') {
@@ -133,11 +135,13 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
133
135
  $item.value = ref.state.fileUpload;
134
136
  } else if ($dataItem.element === 'Signature') {
135
137
  $item.value = ref.state.value;
136
- } else if (ref && ref.inputField && ref.inputField.current) {
138
+ } else if (ref && ref !== null && ref !== void 0 && ref.inputField && ref !== null && ref !== void 0 && (_ref$inputField = ref.inputField) !== null && _ref$inputField !== void 0 && _ref$inputField.current) {
137
139
  $item = ReactDOM.findDOMNode(ref.inputField.current);
138
140
  if ($item && typeof $item.value === 'string') {
139
141
  $item.value = $item.value.trim();
140
142
  }
143
+ } else {
144
+ $item.value = $formData[$dataItem.fieldName];
141
145
  }
142
146
  return $item;
143
147
  };
@@ -172,77 +176,17 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
172
176
  }
173
177
  return incorrect;
174
178
  };
175
- var _isInvalid = function _isInvalid($dataItem) {
176
- var invalid = false;
177
- if ($dataItem.required === true) {
178
- var ref = inputs.current[$dataItem.fieldName];
179
- if ($dataItem.element === 'Checkboxes' || $dataItem.element === 'RadioButtons') {
180
- var checked_options = 0;
181
- $dataItem.options.forEach(function (option) {
182
- var $option = ReactDOM.findDOMNode(ref.options["child_ref_".concat(option.key)]);
183
- if ($option.checked) {
184
- checked_options += 1;
185
- }
186
- });
187
- if (checked_options < 1) {
188
- // errors.push(item.label + ' is required!');
189
- invalid = true;
190
- }
191
- } else {
192
- var $item = _getItemValue($dataItem, ref);
193
- if ($dataItem.element === 'Rating') {
194
- if ($item.value === 0) {
195
- invalid = true;
196
- }
197
- } else if ($item.value === undefined || $item.value.length < 1) {
198
- invalid = true;
199
- }
200
- }
201
- }
202
- return invalid;
203
- };
204
- var _collect = function _collect($dataItem) {
205
- var itemData = {
206
- id: $dataItem.id,
207
- name: $dataItem.fieldName,
208
- customName: $dataItem.customName || $dataItem.fieldName,
209
- label: $dataItem.label !== null && $dataItem.label !== undefined && $dataItem.label !== '' ? $dataItem.label.trim() : ''
210
- };
211
- if (!itemData.name) return null;
212
- var ref = inputs.current[$dataItem.fieldName];
213
- if ($dataItem.element === 'Checkboxes') {
214
- var checkedOptions = [];
215
- $dataItem.options.forEach(function (option) {
216
- var $option = ReactDOM.findDOMNode(ref.options["child_ref_".concat(option.key)]);
217
- if ($option.checked) {
218
- checkedOptions.push(option.value);
219
- }
220
- });
221
- itemData.value = checkedOptions;
222
- } else if ($dataItem.element === 'RadioButtons') {
223
- $dataItem.options.forEach(function (option) {
224
- var $option = ReactDOM.findDOMNode(ref.options["child_ref_".concat(option.key)]);
225
- if ($option.checked) {
226
- itemData.value = option.value;
227
- }
228
- });
229
- } else if ($dataItem.element === 'Checkbox') {
230
- if (!ref || !ref.inputField || !ref.inputField.current) {
231
- itemData.value = false;
232
- } else {
233
- itemData.value = ref.inputField.current.checked;
234
- }
235
- } else {
236
- if (!ref) return null;
237
- itemData.value = _getItemValue($dataItem, ref).value;
238
- }
239
- itemData.required = $dataItem.required || false;
240
- return itemData;
241
- };
242
- var _collectFormData = function _collectFormData($dataItems) {
179
+ var _collectFormData = function _collectFormData($dataItems, $formData) {
243
180
  var formData = [];
244
181
  $dataItems.forEach(function (item) {
245
- var itemData = _collect(item);
182
+ var itemData = {
183
+ id: item.id,
184
+ name: item.fieldName,
185
+ customName: item.customName || item.fieldName,
186
+ label: item.label !== null && item.label !== undefined && item.label !== '' ? item.label.trim() : '',
187
+ value: $formData[item.fieldName],
188
+ required: item.required || false
189
+ };
246
190
  if (itemData) {
247
191
  formData.push(itemData);
248
192
  }
@@ -263,7 +207,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
263
207
  // Only submit if there are no errors.
264
208
  if (hasErrors === false) {
265
209
  if (onSubmit) {
266
- var $data = _collectFormData(items);
210
+ var $data = _collectFormData(items, $formData);
267
211
  onSubmit({
268
212
  formData: $formData,
269
213
  answers: $data
@@ -278,7 +222,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
278
222
  // console.log('handleChange');
279
223
  // Call submit function on change
280
224
  if (onChange) {
281
- var $data = _collectFormData(items);
225
+ var $data = _collectFormData(items, (methods === null || methods === void 0 ? void 0 : methods.getValues()) || []);
282
226
  onChange($data);
283
227
  }
284
228
  };
@@ -308,17 +252,31 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
308
252
  return x.id === id;
309
253
  });
310
254
  if ($dataItem !== undefined) {
311
- var _ref2, _ref3;
255
+ var _ref2, _ref3, _ref4;
312
256
  return _objectSpread(_objectSpread({}, $dataItem), {}, {
313
257
  fieldRules: getFieldRules($dataItem),
314
258
  print: print !== null && print !== void 0 ? print : false,
315
259
  readOnly: (_ref2 = readOnly || $dataItem.readOnly) !== null && _ref2 !== void 0 ? _ref2 : false,
316
- disabled: (_ref3 = readOnly || $dataItem.readOnly) !== null && _ref3 !== void 0 ? _ref3 : false,
260
+ hideLabel: (_ref3 = hideLabels || $dataItem.hideLabel) !== null && _ref3 !== void 0 ? _ref3 : false,
261
+ disabled: (_ref4 = readOnly || $dataItem.readOnly) !== null && _ref4 !== void 0 ? _ref4 : false,
317
262
  mutable: true
318
263
  });
319
264
  }
320
265
  return null;
321
266
  };
267
+ var getStandardElement = function getStandardElement(item) {
268
+ if (!item) return null;
269
+ if (item.custom) {
270
+ return getCustomElement(item);
271
+ }
272
+ var Input = SurveyElements[item.element];
273
+ return /*#__PURE__*/React.createElement(Input, {
274
+ name: item.fieldName,
275
+ key: "form_".concat(item.id),
276
+ item: item,
277
+ value: _getDefaultValue(item)
278
+ });
279
+ };
322
280
  var getInputElement = function getInputElement(item) {
323
281
  if (!item) return null;
324
282
  if (item.custom) {
@@ -333,19 +291,19 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
333
291
  defaultValue: _getDefaultValue(item),
334
292
  disabled: item.disabled,
335
293
  required: item.required,
336
- render: function render(_ref4) {
337
- var _ref4$field = _ref4.field,
338
- _onChange = _ref4$field.onChange,
339
- onBlur = _ref4$field.onBlur,
340
- value = _ref4$field.value,
341
- name = _ref4$field.name,
342
- ref = _ref4$field.ref,
343
- _ref4$fieldState = _ref4.fieldState,
344
- invalid = _ref4$fieldState.invalid,
345
- isTouched = _ref4$fieldState.isTouched,
346
- isDirty = _ref4$fieldState.isDirty,
347
- error = _ref4$fieldState.error,
348
- formState = _ref4.formState;
294
+ render: function render(_ref5) {
295
+ var _ref5$field = _ref5.field,
296
+ _onChange = _ref5$field.onChange,
297
+ onBlur = _ref5$field.onBlur,
298
+ value = _ref5$field.value,
299
+ name = _ref5$field.name,
300
+ ref = _ref5$field.ref,
301
+ _ref5$fieldState = _ref5.fieldState,
302
+ invalid = _ref5$fieldState.invalid,
303
+ isTouched = _ref5$fieldState.isTouched,
304
+ isDirty = _ref5$fieldState.isDirty,
305
+ error = _ref5$fieldState.error,
306
+ formState = _ref5.formState;
349
307
  return /*#__PURE__*/React.createElement(Input, {
350
308
  onBlur: onBlur,
351
309
  onChange: function onChange(e) {
@@ -398,19 +356,19 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
398
356
  defaultValue: _getDefaultValue(item),
399
357
  disabled: item.disabled,
400
358
  required: item.required,
401
- render: function render(_ref5) {
402
- var _ref5$field = _ref5.field,
403
- _onChange2 = _ref5$field.onChange,
404
- onBlur = _ref5$field.onBlur,
405
- value = _ref5$field.value,
406
- name = _ref5$field.name,
407
- ref = _ref5$field.ref,
408
- _ref5$fieldState = _ref5.fieldState,
409
- invalid = _ref5$fieldState.invalid,
410
- isTouched = _ref5$fieldState.isTouched,
411
- isDirty = _ref5$fieldState.isDirty,
412
- error = _ref5$fieldState.error,
413
- formState = _ref5.formState;
359
+ render: function render(_ref6) {
360
+ var _ref6$field = _ref6.field,
361
+ _onChange2 = _ref6$field.onChange,
362
+ onBlur = _ref6$field.onBlur,
363
+ value = _ref6$field.value,
364
+ name = _ref6$field.name,
365
+ ref = _ref6$field.ref,
366
+ _ref6$fieldState = _ref6.fieldState,
367
+ invalid = _ref6$fieldState.invalid,
368
+ isTouched = _ref6$fieldState.isTouched,
369
+ isDirty = _ref6$fieldState.isDirty,
370
+ error = _ref6$fieldState.error,
371
+ formState = _ref6.formState;
414
372
  return /*#__PURE__*/React.createElement(CustomElement, {
415
373
  onBlur: onBlur,
416
374
  onChange: function onChange(e) {
@@ -474,81 +432,29 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
474
432
  var fieldItems = dataItems.filter(function (x) {
475
433
  return !x.parentId;
476
434
  }).map(function (item) {
477
- var _ref6, _ref7;
435
+ var _ref7, _ref8, _ref9;
478
436
  if (!item) return null;
479
437
  item.fieldRules = getFieldRules(item);
480
438
  item.print = print !== null && print !== void 0 ? print : false;
481
- item.readOnly = (_ref6 = readOnly || item.readOnly) !== null && _ref6 !== void 0 ? _ref6 : false;
482
- item.disabled = (_ref7 = readOnly || item.readOnly) !== null && _ref7 !== void 0 ? _ref7 : false;
439
+ item.readOnly = (_ref7 = readOnly || item.readOnly) !== null && _ref7 !== void 0 ? _ref7 : false;
440
+ item.hideLabel = (_ref8 = hideLabels || item.hideLabel) !== null && _ref8 !== void 0 ? _ref8 : false;
441
+ item.disabled = (_ref9 = readOnly || item.readOnly) !== null && _ref9 !== void 0 ? _ref9 : false;
483
442
  item.mutable = true;
484
443
  switch (item.element) {
485
- case 'Dropdown':
486
444
  case 'RadioButtons':
487
445
  case 'Rating':
488
- case 'Tags':
489
446
  case 'Range':
490
447
  case 'Checkbox':
491
448
  return getInputElement(item);
449
+ case 'Tags':
450
+ case 'Dropdown':
492
451
  case 'TextInput':
493
- return /*#__PURE__*/React.createElement(TextInput, {
494
- name: item.fieldName,
495
- ref: function ref(c) {
496
- return inputs.current[item.fieldName] = c;
497
- },
498
- key: "form_".concat(item.id),
499
- item: item,
500
- value: _getDefaultValue(item)
501
- });
502
452
  case 'EmailInput':
503
- return /*#__PURE__*/React.createElement(EmailInput, {
504
- name: item.fieldName,
505
- ref: function ref(c) {
506
- return inputs.current[item.fieldName] = c;
507
- },
508
- key: "form_".concat(item.id),
509
- item: item,
510
- value: _getDefaultValue(item)
511
- });
512
453
  case 'NumberInput':
513
- return /*#__PURE__*/React.createElement(NumberInput, {
514
- name: item.fieldName,
515
- ref: function ref(c) {
516
- return inputs.current[item.fieldName] = c;
517
- },
518
- key: "form_".concat(item.id),
519
- item: item,
520
- value: _getDefaultValue(item)
521
- });
522
454
  case 'TextArea':
523
- return /*#__PURE__*/React.createElement(TextArea, {
524
- name: item.fieldName,
525
- ref: function ref(c) {
526
- return inputs.current[item.fieldName] = c;
527
- },
528
- key: "form_".concat(item.id),
529
- item: item,
530
- value: _getDefaultValue(item)
531
- });
532
455
  case 'PhoneNumber':
533
- return /*#__PURE__*/React.createElement(PhoneNumber, {
534
- name: item.fieldName,
535
- ref: function ref(c) {
536
- return inputs.current[item.fieldName] = c;
537
- },
538
- key: "form_".concat(item.id),
539
- item: item,
540
- value: _getDefaultValue(item)
541
- });
542
456
  case 'DatePicker':
543
- return /*#__PURE__*/React.createElement(DatePicker, {
544
- name: item.fieldName,
545
- ref: function ref(c) {
546
- return inputs.current[item.fieldName] = c;
547
- },
548
- key: "form_".concat(item.id),
549
- item: item,
550
- value: _getDefaultValue(item)
551
- });
457
+ return getStandardElement(item);
552
458
  case 'CustomElement':
553
459
  return getCustomElement(item);
554
460
  case 'MultiColumnRow':
@@ -568,19 +474,19 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
568
474
  defaultValue: _getDefaultValue(item),
569
475
  disabled: item.disabled,
570
476
  required: item.required,
571
- render: function render(_ref8) {
572
- var _ref8$field = _ref8.field,
573
- _onChange3 = _ref8$field.onChange,
574
- onBlur = _ref8$field.onBlur,
575
- value = _ref8$field.value,
576
- name = _ref8$field.name,
577
- ref = _ref8$field.ref,
578
- _ref8$fieldState = _ref8.fieldState,
579
- invalid = _ref8$fieldState.invalid,
580
- isTouched = _ref8$fieldState.isTouched,
581
- isDirty = _ref8$fieldState.isDirty,
582
- error = _ref8$fieldState.error,
583
- formState = _ref8.formState;
477
+ render: function render(_ref10) {
478
+ var _ref10$field = _ref10.field,
479
+ _onChange3 = _ref10$field.onChange,
480
+ onBlur = _ref10$field.onBlur,
481
+ value = _ref10$field.value,
482
+ name = _ref10$field.name,
483
+ ref = _ref10$field.ref,
484
+ _ref10$fieldState = _ref10.fieldState,
485
+ invalid = _ref10$fieldState.invalid,
486
+ isTouched = _ref10$fieldState.isTouched,
487
+ isDirty = _ref10$fieldState.isDirty,
488
+ error = _ref10$fieldState.error,
489
+ formState = _ref10.formState;
584
490
  return /*#__PURE__*/React.createElement(Signature, {
585
491
  methods: methods,
586
492
  onBlur: onBlur,
@@ -606,19 +512,19 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
606
512
  defaultValue: _optionsDefaultValue(item),
607
513
  disabled: item.disabled,
608
514
  required: item.required,
609
- render: function render(_ref9) {
610
- var _ref9$field = _ref9.field,
611
- _onChange4 = _ref9$field.onChange,
612
- onBlur = _ref9$field.onBlur,
613
- value = _ref9$field.value,
614
- name = _ref9$field.name,
615
- ref = _ref9$field.ref,
616
- _ref9$fieldState = _ref9.fieldState,
617
- invalid = _ref9$fieldState.invalid,
618
- isTouched = _ref9$fieldState.isTouched,
619
- isDirty = _ref9$fieldState.isDirty,
620
- error = _ref9$fieldState.error,
621
- formState = _ref9.formState;
515
+ render: function render(_ref11) {
516
+ var _ref11$field = _ref11.field,
517
+ _onChange4 = _ref11$field.onChange,
518
+ onBlur = _ref11$field.onBlur,
519
+ value = _ref11$field.value,
520
+ name = _ref11$field.name,
521
+ ref = _ref11$field.ref,
522
+ _ref11$fieldState = _ref11.fieldState,
523
+ invalid = _ref11$fieldState.invalid,
524
+ isTouched = _ref11$fieldState.isTouched,
525
+ isDirty = _ref11$fieldState.isDirty,
526
+ error = _ref11$fieldState.error,
527
+ formState = _ref11.formState;
622
528
  return /*#__PURE__*/React.createElement(Checkboxes, {
623
529
  onBlur: onBlur,
624
530
  onChange: function onChange(e) {
@@ -659,19 +565,19 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
659
565
  defaultValue: _getDefaultValue(item),
660
566
  disabled: item.disabled,
661
567
  required: item.required,
662
- render: function render(_ref10) {
663
- var _ref10$field = _ref10.field,
664
- _onChange5 = _ref10$field.onChange,
665
- onBlur = _ref10$field.onBlur,
666
- value = _ref10$field.value,
667
- name = _ref10$field.name,
668
- ref = _ref10$field.ref,
669
- _ref10$fieldState = _ref10.fieldState,
670
- invalid = _ref10$fieldState.invalid,
671
- isTouched = _ref10$fieldState.isTouched,
672
- isDirty = _ref10$fieldState.isDirty,
673
- error = _ref10$fieldState.error,
674
- formState = _ref10.formState;
568
+ render: function render(_ref12) {
569
+ var _ref12$field = _ref12.field,
570
+ _onChange5 = _ref12$field.onChange,
571
+ onBlur = _ref12$field.onBlur,
572
+ value = _ref12$field.value,
573
+ name = _ref12$field.name,
574
+ ref = _ref12$field.ref,
575
+ _ref12$fieldState = _ref12.fieldState,
576
+ invalid = _ref12$fieldState.invalid,
577
+ isTouched = _ref12$fieldState.isTouched,
578
+ isDirty = _ref12$fieldState.isDirty,
579
+ error = _ref12$fieldState.error,
580
+ formState = _ref12.formState;
675
581
  return /*#__PURE__*/React.createElement(Camera, {
676
582
  onBlur: onBlur,
677
583
  onChange: function onChange(e) {
@@ -697,19 +603,19 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
697
603
  defaultValue: _getDefaultValue(item),
698
604
  disabled: item.disabled,
699
605
  required: item.required,
700
- render: function render(_ref11) {
701
- var _ref11$field = _ref11.field,
702
- _onChange6 = _ref11$field.onChange,
703
- onBlur = _ref11$field.onBlur,
704
- value = _ref11$field.value,
705
- name = _ref11$field.name,
706
- ref = _ref11$field.ref,
707
- _ref11$fieldState = _ref11.fieldState,
708
- invalid = _ref11$fieldState.invalid,
709
- isTouched = _ref11$fieldState.isTouched,
710
- isDirty = _ref11$fieldState.isDirty,
711
- error = _ref11$fieldState.error,
712
- formState = _ref11.formState;
606
+ render: function render(_ref13) {
607
+ var _ref13$field = _ref13.field,
608
+ _onChange6 = _ref13$field.onChange,
609
+ onBlur = _ref13$field.onBlur,
610
+ value = _ref13$field.value,
611
+ name = _ref13$field.name,
612
+ ref = _ref13$field.ref,
613
+ _ref13$fieldState = _ref13.fieldState,
614
+ invalid = _ref13$fieldState.invalid,
615
+ isTouched = _ref13$fieldState.isTouched,
616
+ isDirty = _ref13$fieldState.isDirty,
617
+ error = _ref13$fieldState.error,
618
+ formState = _ref13.formState;
713
619
  return /*#__PURE__*/React.createElement(FileUpload, {
714
620
  onBlur: onBlur,
715
621
  onChange: function onChange(e) {