react-survey-builder 1.0.43 → 1.0.45
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/dist/index.js +1 -1
- package/lib/dynamic-option-list.js +13 -13
- package/lib/fieldset/index.js +4 -4
- package/lib/form-fields.js +28 -84
- package/lib/form.js +28 -84
- package/lib/index.js +6 -8
- package/lib/multi-column/MultiColumnRow.js +2 -2
- package/lib/survey-elements/component-error-message.js +3 -3
- package/lib/survey-elements/component-header.js +10 -6
- package/lib/survey-elements/custom-element.js +3 -3
- package/lib/survey-elements/header-bar.js +5 -5
- package/lib/survey-elements/index.js +696 -401
- package/lib/survey-elements-edit.js +92 -92
- package/lib/survey-validator.js +3 -3
- package/lib/toolbar-group-item.js +2 -2
- package/lib/utils/validators.js +81 -0
- package/package.json +4 -4
@@ -12,7 +12,7 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
12
12
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
13
13
|
var _react = _interopRequireDefault(require("react"));
|
14
14
|
var _fa = require("react-icons/fa");
|
15
|
-
var
|
15
|
+
var _esm = require("react-bootstrap/esm");
|
16
16
|
var _functions = require("./functions");
|
17
17
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
18
18
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
@@ -113,11 +113,11 @@ var DynamicOptionList = exports["default"] = /*#__PURE__*/function (_React$Compo
|
|
113
113
|
}
|
114
114
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
115
115
|
className: "dynamic-option-list"
|
116
|
-
}, /*#__PURE__*/_react["default"].createElement("ul", null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement(
|
116
|
+
}, /*#__PURE__*/_react["default"].createElement("ul", null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement(_esm.Row, null, /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
117
117
|
sm: 6
|
118
|
-
}, /*#__PURE__*/_react["default"].createElement("b", null, "Options")), this.props.canHaveOptionValue && /*#__PURE__*/_react["default"].createElement(
|
118
|
+
}, /*#__PURE__*/_react["default"].createElement("b", null, "Options")), this.props.canHaveOptionValue && /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
119
119
|
sm: 2
|
120
|
-
}, /*#__PURE__*/_react["default"].createElement("b", null, "Value")), this.props.canHaveOptionValue && this.props.canHaveOptionCorrect && /*#__PURE__*/_react["default"].createElement(
|
120
|
+
}, /*#__PURE__*/_react["default"].createElement("b", null, "Value")), this.props.canHaveOptionValue && this.props.canHaveOptionCorrect && /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
121
121
|
sm: 4
|
122
122
|
}, /*#__PURE__*/_react["default"].createElement("b", null, "Correct")))), this.props.element.options.map(function (option, index) {
|
123
123
|
var thisKey = "edit_".concat(option.key);
|
@@ -125,9 +125,9 @@ var DynamicOptionList = exports["default"] = /*#__PURE__*/function (_React$Compo
|
|
125
125
|
return /*#__PURE__*/_react["default"].createElement("li", {
|
126
126
|
className: "clearfix",
|
127
127
|
key: thisKey
|
128
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
128
|
+
}, /*#__PURE__*/_react["default"].createElement(_esm.Row, null, /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
129
129
|
sm: 6
|
130
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
130
|
+
}, /*#__PURE__*/_react["default"].createElement(_esm.Form.Control, {
|
131
131
|
tabIndex: index + 1,
|
132
132
|
style: {
|
133
133
|
width: '100%'
|
@@ -138,28 +138,28 @@ var DynamicOptionList = exports["default"] = /*#__PURE__*/function (_React$Compo
|
|
138
138
|
value: option.text,
|
139
139
|
onBlur: _this2.updateOption.bind(_this2),
|
140
140
|
onChange: _this2.editOption.bind(_this2, index)
|
141
|
-
})), _this2.props.canHaveOptionValue && /*#__PURE__*/_react["default"].createElement(
|
141
|
+
})), _this2.props.canHaveOptionValue && /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
142
142
|
sm: 2
|
143
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
143
|
+
}, /*#__PURE__*/_react["default"].createElement(_esm.Form.Control, {
|
144
144
|
type: "text",
|
145
145
|
name: "value_".concat(index),
|
146
146
|
value: val,
|
147
147
|
onChange: _this2.editValue.bind(_this2, index)
|
148
|
-
})), _this2.props.canHaveOptionValue && _this2.props.canHaveOptionCorrect && /*#__PURE__*/_react["default"].createElement(
|
148
|
+
})), _this2.props.canHaveOptionValue && _this2.props.canHaveOptionCorrect && /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
149
149
|
sm: 1
|
150
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
150
|
+
}, /*#__PURE__*/_react["default"].createElement(_esm.Form.Check, {
|
151
151
|
type: "checkbox",
|
152
152
|
value: "1",
|
153
153
|
onChange: _this2.editOptionCorrect.bind(_this2, index),
|
154
154
|
checked: option.hasOwnProperty('correct')
|
155
|
-
})), /*#__PURE__*/_react["default"].createElement(
|
155
|
+
})), /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
156
156
|
sm: 3
|
157
157
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
158
158
|
className: "dynamic-options-actions-buttons"
|
159
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
159
|
+
}, /*#__PURE__*/_react["default"].createElement(_esm.Button, {
|
160
160
|
variant: "success",
|
161
161
|
onClick: _this2.addOption.bind(_this2, index)
|
162
|
-
}, /*#__PURE__*/_react["default"].createElement(_fa.FaPlusCircle, null)), index > 0 && /*#__PURE__*/_react["default"].createElement(
|
162
|
+
}, /*#__PURE__*/_react["default"].createElement(_fa.FaPlusCircle, null)), index > 0 && /*#__PURE__*/_react["default"].createElement(_esm.Button, {
|
163
163
|
variant: "danger",
|
164
164
|
onClick: _this2.removeOption.bind(_this2, index)
|
165
165
|
}, /*#__PURE__*/_react["default"].createElement(_fa.FaMinusCircle, null))))));
|
package/lib/fieldset/index.js
CHANGED
@@ -13,7 +13,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
13
13
|
var _componentHeader = _interopRequireDefault(require("../survey-elements/component-header"));
|
14
14
|
var _dustbin = _interopRequireDefault(require("../multi-column/dustbin"));
|
15
15
|
var _ItemTypes = _interopRequireDefault(require("../ItemTypes"));
|
16
|
-
var
|
16
|
+
var _esm = require("react-bootstrap/esm");
|
17
17
|
var _myxss = _interopRequireDefault(require("../survey-elements/myxss"));
|
18
18
|
var _excluded = ["item", "className"]; // import FieldSet from './FieldSet';
|
19
19
|
// export { FieldSet };
|
@@ -98,10 +98,10 @@ var FieldSet = function FieldSet(props) {
|
|
98
98
|
className: baseClasses
|
99
99
|
}, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], (0, _extends2["default"])({}, props, {
|
100
100
|
isFieldSet: true
|
101
|
-
})), /*#__PURE__*/_react["default"].createElement("fieldset", null, /*#__PURE__*/_react["default"].createElement(ComponentLegend, props), /*#__PURE__*/_react["default"].createElement(
|
101
|
+
})), /*#__PURE__*/_react["default"].createElement("fieldset", null, /*#__PURE__*/_react["default"].createElement(ComponentLegend, props), /*#__PURE__*/_react["default"].createElement(_esm.Container, {
|
102
102
|
fluid: true
|
103
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
104
|
-
return /*#__PURE__*/_react["default"].createElement(
|
103
|
+
}, /*#__PURE__*/_react["default"].createElement(_esm.Row, null, childItems === null || childItems === void 0 ? void 0 : childItems.map(function (x, i) {
|
104
|
+
return /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
105
105
|
key: "".concat(i, "_").concat(x || "_"),
|
106
106
|
md: 12
|
107
107
|
}, controls ? controls[i] : /*#__PURE__*/_react["default"].createElement(_dustbin["default"], {
|
package/lib/form-fields.js
CHANGED
@@ -16,11 +16,11 @@ var _multiColumn = require("./multi-column");
|
|
16
16
|
var _fieldset = _interopRequireDefault(require("./fieldset"));
|
17
17
|
var _customElement = _interopRequireDefault(require("./survey-elements/custom-element"));
|
18
18
|
var _registry = _interopRequireDefault(require("./stores/registry"));
|
19
|
-
var
|
19
|
+
var _esm = require("react-bootstrap/esm");
|
20
20
|
var _reactHookForm = require("react-hook-form");
|
21
21
|
var _lodash = require("lodash");
|
22
22
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
23
|
-
var
|
23
|
+
var _validators = require("./utils/validators");
|
24
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
25
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
26
26
|
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; }
|
@@ -298,80 +298,6 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
298
298
|
});
|
299
299
|
return hasErrors;
|
300
300
|
};
|
301
|
-
var validateEmail = function validateEmail(email) {
|
302
|
-
return email.match(
|
303
|
-
// eslint-disable-next-line no-useless-escape
|
304
|
-
/^(([^<>()[\]\\.,;:\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,}))$/);
|
305
|
-
};
|
306
|
-
var toE164PhoneNumber = function toE164PhoneNumber(phoneNumberValue) {
|
307
|
-
if (phoneNumberValue !== undefined && phoneNumberValue !== null) {
|
308
|
-
//Filter only numbers from the input
|
309
|
-
var cleaned = ('' + phoneNumberValue).replace(/\D/g, '');
|
310
|
-
|
311
|
-
//Check if the input is of correct
|
312
|
-
var match = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/);
|
313
|
-
if (match) {
|
314
|
-
//Remove the matched extension code
|
315
|
-
//Change this to format for any country code.
|
316
|
-
var intlCode = match[1] ? '+1' : '+1';
|
317
|
-
return [intlCode, match[2], match[3], match[4]].join('');
|
318
|
-
}
|
319
|
-
return '';
|
320
|
-
} else {
|
321
|
-
return '';
|
322
|
-
}
|
323
|
-
};
|
324
|
-
var validatePhone = function validatePhone(phone) {
|
325
|
-
return (0, _reactPhoneNumberInput.isValidPhoneNumber)(toE164PhoneNumber(phone), 'US');
|
326
|
-
};
|
327
|
-
var validateDate = function validateDate(dateString) {
|
328
|
-
if (dateString !== undefined && dateString !== null && dateString !== "") {
|
329
|
-
var dateformat = /^(0?[1-9]|1[0-2])[\/](0?[1-9]|[1-2][0-9]|3[01])[\/]\d{4}$/;
|
330
|
-
|
331
|
-
// Matching the date through regular expression
|
332
|
-
if (dateString.match(dateformat)) {
|
333
|
-
var operator = dateString.split('/');
|
334
|
-
|
335
|
-
// Extract the string into month, date and year
|
336
|
-
var datepart = [];
|
337
|
-
if (operator.length > 1) {
|
338
|
-
datepart = dateString.split('/');
|
339
|
-
}
|
340
|
-
var month = parseInt(datepart[0]);
|
341
|
-
var day = parseInt(datepart[1]);
|
342
|
-
var year = parseInt(datepart[2]);
|
343
|
-
if (day > 31 || day < 1) {
|
344
|
-
return false;
|
345
|
-
}
|
346
|
-
var currentYear = new Date().getFullYear();
|
347
|
-
if (year < 1900 || year > currentYear + 5) {
|
348
|
-
return false;
|
349
|
-
}
|
350
|
-
|
351
|
-
// Create a list of days of a month
|
352
|
-
var ListofDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
353
|
-
if (month === 1 || month > 2) {
|
354
|
-
if (day > ListofDays[month - 1]) {
|
355
|
-
// to check if the date is out of range
|
356
|
-
return false;
|
357
|
-
}
|
358
|
-
} else if (month === 2) {
|
359
|
-
var leapYear = false;
|
360
|
-
if (!(year % 4) && year % 100 || !(year % 400)) leapYear = true;
|
361
|
-
if (leapYear === false && day >= 29) return false;else if (leapYear === true && day > 29) {
|
362
|
-
// console.log('Invalid date format!');
|
363
|
-
return false;
|
364
|
-
}
|
365
|
-
} else if (month > 12 || month < 1) {
|
366
|
-
return false;
|
367
|
-
}
|
368
|
-
} else {
|
369
|
-
// console.log("Invalid date format!");
|
370
|
-
return false;
|
371
|
-
}
|
372
|
-
}
|
373
|
-
return true;
|
374
|
-
};
|
375
301
|
var getDataItemById = function getDataItemById(id) {
|
376
302
|
var $dataItem = items.find(function (x) {
|
377
303
|
return x.id === id;
|
@@ -512,17 +438,17 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
512
438
|
message: "".concat(item.label, " must be at least 4 characters long")
|
513
439
|
};
|
514
440
|
fieldRules.validate = function (value) {
|
515
|
-
return validateEmail(value) || "".concat(item.label, " field requires valid email address");
|
441
|
+
return (0, _validators.validateEmail)(value) || "".concat(item.label, " field requires valid email address");
|
516
442
|
};
|
517
443
|
break;
|
518
444
|
case 'PhoneNumber':
|
519
445
|
fieldRules.validate = function (value) {
|
520
|
-
return validatePhone(value) || "".concat(item.label, " field requires a valid phone number");
|
446
|
+
return (0, _validators.validatePhone)(value) || "".concat(item.label, " field requires a valid phone number");
|
521
447
|
};
|
522
448
|
break;
|
523
449
|
case 'DatePicker':
|
524
450
|
fieldRules.validate = function (value) {
|
525
|
-
return validateDate(value) || "".concat(item.label, " field requires a valid date in the format MM/DD/YYYY");
|
451
|
+
return (0, _validators.validateDate)(value) || "".concat(item.label, " field requires a valid date in the format MM/DD/YYYY");
|
526
452
|
};
|
527
453
|
break;
|
528
454
|
default:
|
@@ -536,14 +462,14 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
536
462
|
if (formId) {
|
537
463
|
buttonProps.form = formId;
|
538
464
|
}
|
539
|
-
return submitButton || /*#__PURE__*/_react["default"].createElement(
|
465
|
+
return submitButton || /*#__PURE__*/_react["default"].createElement(_esm.Button, {
|
540
466
|
variant: "primary",
|
541
467
|
type: "submit"
|
542
468
|
}, actionName);
|
543
469
|
};
|
544
470
|
var handleRenderBack = function handleRenderBack() {
|
545
471
|
var backName = backName || 'Cancel';
|
546
|
-
return backButton || /*#__PURE__*/_react["default"].createElement(
|
472
|
+
return backButton || /*#__PURE__*/_react["default"].createElement(_esm.Button, {
|
547
473
|
variant: "secondary",
|
548
474
|
onClick: backAction,
|
549
475
|
className: "btn-cancel"
|
@@ -576,17 +502,35 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
576
502
|
switch (item.element) {
|
577
503
|
case 'TextInput':
|
578
504
|
case 'EmailInput':
|
579
|
-
case 'PhoneNumber':
|
580
505
|
case 'NumberInput':
|
581
506
|
case 'TextArea':
|
582
507
|
case 'Dropdown':
|
583
|
-
case 'DatePicker':
|
584
508
|
case 'RadioButtons':
|
585
509
|
case 'Rating':
|
586
510
|
case 'Tags':
|
587
511
|
case 'Range':
|
588
512
|
case 'Checkbox':
|
589
513
|
return getInputElement(item);
|
514
|
+
case 'PhoneNumber':
|
515
|
+
return /*#__PURE__*/_react["default"].createElement(_surveyElements.PhoneNumber, {
|
516
|
+
name: item.fieldName,
|
517
|
+
ref: function ref(c) {
|
518
|
+
return inputs.current[item.fieldName] = c;
|
519
|
+
},
|
520
|
+
key: "form_".concat(item.id),
|
521
|
+
item: item,
|
522
|
+
value: _getDefaultValue(item)
|
523
|
+
});
|
524
|
+
case 'DatePicker':
|
525
|
+
return /*#__PURE__*/_react["default"].createElement(_surveyElements.DatePicker, {
|
526
|
+
name: item.fieldName,
|
527
|
+
ref: function ref(c) {
|
528
|
+
return inputs.current[item.fieldName] = c;
|
529
|
+
},
|
530
|
+
key: "form_".concat(item.id),
|
531
|
+
item: item,
|
532
|
+
value: _getDefaultValue(item)
|
533
|
+
});
|
590
534
|
case 'CustomElement':
|
591
535
|
return getCustomElement(item);
|
592
536
|
case 'MultiColumnRow':
|
@@ -774,7 +718,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
774
718
|
}
|
775
719
|
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
776
720
|
className: "react-survey-builder-form"
|
777
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.FormProvider, methods, /*#__PURE__*/_react["default"].createElement(
|
721
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.FormProvider, methods, /*#__PURE__*/_react["default"].createElement(_esm.Form, (0, _extends2["default"])({
|
778
722
|
onSubmit: methods.handleSubmit(handleSubmit)
|
779
723
|
}, formProps), fieldItems, /*#__PURE__*/_react["default"].createElement("div", {
|
780
724
|
className: buttonClassName ? buttonClassName : 'btn-toolbar'
|
package/lib/form.js
CHANGED
@@ -16,11 +16,11 @@ var _multiColumn = require("./multi-column");
|
|
16
16
|
var _fieldset = _interopRequireDefault(require("./fieldset"));
|
17
17
|
var _customElement = _interopRequireDefault(require("./survey-elements/custom-element"));
|
18
18
|
var _registry = _interopRequireDefault(require("./stores/registry"));
|
19
|
-
var
|
19
|
+
var _esm = require("react-bootstrap/esm");
|
20
20
|
var _reactHookForm = require("react-hook-form");
|
21
21
|
var _lodash = require("lodash");
|
22
22
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
23
|
-
var
|
23
|
+
var _validators = require("./utils/validators");
|
24
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
25
25
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
26
26
|
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; }
|
@@ -306,80 +306,6 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
306
306
|
});
|
307
307
|
return hasErrors;
|
308
308
|
};
|
309
|
-
var validateEmail = function validateEmail(email) {
|
310
|
-
return email.match(
|
311
|
-
// eslint-disable-next-line no-useless-escape
|
312
|
-
/^(([^<>()[\]\\.,;:\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,}))$/);
|
313
|
-
};
|
314
|
-
var toE164PhoneNumber = function toE164PhoneNumber(phoneNumberValue) {
|
315
|
-
if (phoneNumberValue !== undefined && phoneNumberValue !== null) {
|
316
|
-
//Filter only numbers from the input
|
317
|
-
var cleaned = ('' + phoneNumberValue).replace(/\D/g, '');
|
318
|
-
|
319
|
-
//Check if the input is of correct
|
320
|
-
var match = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/);
|
321
|
-
if (match) {
|
322
|
-
//Remove the matched extension code
|
323
|
-
//Change this to format for any country code.
|
324
|
-
var intlCode = match[1] ? '+1' : '+1';
|
325
|
-
return [intlCode, match[2], match[3], match[4]].join('');
|
326
|
-
}
|
327
|
-
return '';
|
328
|
-
} else {
|
329
|
-
return '';
|
330
|
-
}
|
331
|
-
};
|
332
|
-
var validatePhone = function validatePhone(phone) {
|
333
|
-
return (0, _reactPhoneNumberInput.isValidPhoneNumber)(toE164PhoneNumber(phone), 'US');
|
334
|
-
};
|
335
|
-
var validateDate = function validateDate(dateString) {
|
336
|
-
if (dateString !== undefined && dateString !== null && dateString !== "") {
|
337
|
-
var dateformat = /^(0?[1-9]|1[0-2])[\/](0?[1-9]|[1-2][0-9]|3[01])[\/]\d{4}$/;
|
338
|
-
|
339
|
-
// Matching the date through regular expression
|
340
|
-
if (dateString.match(dateformat)) {
|
341
|
-
var operator = dateString.split('/');
|
342
|
-
|
343
|
-
// Extract the string into month, date and year
|
344
|
-
var datepart = [];
|
345
|
-
if (operator.length > 1) {
|
346
|
-
datepart = dateString.split('/');
|
347
|
-
}
|
348
|
-
var month = parseInt(datepart[0]);
|
349
|
-
var day = parseInt(datepart[1]);
|
350
|
-
var year = parseInt(datepart[2]);
|
351
|
-
if (day > 31 || day < 1) {
|
352
|
-
return false;
|
353
|
-
}
|
354
|
-
var currentYear = new Date().getFullYear();
|
355
|
-
if (year < 1900 || year > currentYear + 5) {
|
356
|
-
return false;
|
357
|
-
}
|
358
|
-
|
359
|
-
// Create a list of days of a month
|
360
|
-
var ListofDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
361
|
-
if (month === 1 || month > 2) {
|
362
|
-
if (day > ListofDays[month - 1]) {
|
363
|
-
// to check if the date is out of range
|
364
|
-
return false;
|
365
|
-
}
|
366
|
-
} else if (month === 2) {
|
367
|
-
var leapYear = false;
|
368
|
-
if (!(year % 4) && year % 100 || !(year % 400)) leapYear = true;
|
369
|
-
if (leapYear === false && day >= 29) return false;else if (leapYear === true && day > 29) {
|
370
|
-
// console.log('Invalid date format!');
|
371
|
-
return false;
|
372
|
-
}
|
373
|
-
} else if (month > 12 || month < 1) {
|
374
|
-
return false;
|
375
|
-
}
|
376
|
-
} else {
|
377
|
-
// console.log("Invalid date format!");
|
378
|
-
return false;
|
379
|
-
}
|
380
|
-
}
|
381
|
-
return true;
|
382
|
-
};
|
383
309
|
var getDataItemById = function getDataItemById(id) {
|
384
310
|
var $dataItem = items.find(function (x) {
|
385
311
|
return x.id === id;
|
@@ -520,17 +446,17 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
520
446
|
message: "".concat(item.label, " must be at least 4 characters long")
|
521
447
|
};
|
522
448
|
fieldRules.validate = function (value) {
|
523
|
-
return validateEmail(value) || "".concat(item.label, " field requires valid email address");
|
449
|
+
return (0, _validators.validateEmail)(value) || "".concat(item.label, " field requires valid email address");
|
524
450
|
};
|
525
451
|
break;
|
526
452
|
case 'PhoneNumber':
|
527
453
|
fieldRules.validate = function (value) {
|
528
|
-
return validatePhone(value) || "".concat(item.label, " field requires a valid phone number");
|
454
|
+
return (0, _validators.validatePhone)(value) || "".concat(item.label, " field requires a valid phone number");
|
529
455
|
};
|
530
456
|
break;
|
531
457
|
case 'DatePicker':
|
532
458
|
fieldRules.validate = function (value) {
|
533
|
-
return validateDate(value) || "".concat(item.label, " field requires a valid date in the format MM/DD/YYYY");
|
459
|
+
return (0, _validators.validateDate)(value) || "".concat(item.label, " field requires a valid date in the format MM/DD/YYYY");
|
534
460
|
};
|
535
461
|
break;
|
536
462
|
default:
|
@@ -544,14 +470,14 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
544
470
|
if (formId) {
|
545
471
|
buttonProps.form = formId;
|
546
472
|
}
|
547
|
-
return submitButton || /*#__PURE__*/_react["default"].createElement(
|
473
|
+
return submitButton || /*#__PURE__*/_react["default"].createElement(_esm.Button, {
|
548
474
|
variant: "primary",
|
549
475
|
type: "submit"
|
550
476
|
}, actionName);
|
551
477
|
};
|
552
478
|
var handleRenderBack = function handleRenderBack() {
|
553
479
|
var backName = backName || 'Cancel';
|
554
|
-
return backButton || /*#__PURE__*/_react["default"].createElement(
|
480
|
+
return backButton || /*#__PURE__*/_react["default"].createElement(_esm.Button, {
|
555
481
|
variant: "secondary",
|
556
482
|
onClick: backAction,
|
557
483
|
className: "btn-cancel"
|
@@ -584,17 +510,35 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
584
510
|
switch (item.element) {
|
585
511
|
case 'TextInput':
|
586
512
|
case 'EmailInput':
|
587
|
-
case 'PhoneNumber':
|
588
513
|
case 'NumberInput':
|
589
514
|
case 'TextArea':
|
590
515
|
case 'Dropdown':
|
591
|
-
case 'DatePicker':
|
592
516
|
case 'RadioButtons':
|
593
517
|
case 'Rating':
|
594
518
|
case 'Tags':
|
595
519
|
case 'Range':
|
596
520
|
case 'Checkbox':
|
597
521
|
return getInputElement(item);
|
522
|
+
case 'PhoneNumber':
|
523
|
+
return /*#__PURE__*/_react["default"].createElement(_surveyElements.PhoneNumber, {
|
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
|
+
case 'DatePicker':
|
533
|
+
return /*#__PURE__*/_react["default"].createElement(_surveyElements.DatePicker, {
|
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
|
+
});
|
598
542
|
case 'CustomElement':
|
599
543
|
return getCustomElement(item);
|
600
544
|
case 'MultiColumnRow':
|
@@ -782,7 +726,7 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
782
726
|
}
|
783
727
|
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
784
728
|
className: "react-survey-builder-form"
|
785
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.FormProvider, methods, /*#__PURE__*/_react["default"].createElement(
|
729
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactHookForm.FormProvider, methods, /*#__PURE__*/_react["default"].createElement(_esm.Form, (0, _extends2["default"])({
|
786
730
|
onSubmit: methods.handleSubmit(handleSubmit)
|
787
731
|
}, formProps), fieldItems, /*#__PURE__*/_react["default"].createElement("div", {
|
788
732
|
className: buttonClassName ? buttonClassName : 'btn-toolbar'
|
package/lib/index.js
CHANGED
@@ -36,11 +36,9 @@ var _form = _interopRequireDefault(require("./form"));
|
|
36
36
|
var _formFields = _interopRequireDefault(require("./form-fields"));
|
37
37
|
var _store = _interopRequireDefault(require("./stores/store"));
|
38
38
|
var _registry = _interopRequireDefault(require("./stores/registry"));
|
39
|
-
var
|
39
|
+
var _esm = require("react-bootstrap/esm");
|
40
40
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
41
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
42
|
-
* <ReactSurveyBuilder />
|
43
|
-
*/
|
41
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
44
42
|
var ReactSurveyBuilder = exports.ReactSurveyBuilder = /*#__PURE__*/function (_React$Component) {
|
45
43
|
(0, _inherits2["default"])(ReactSurveyBuilder, _React$Component);
|
46
44
|
var _super = _createSuper(ReactSurveyBuilder);
|
@@ -101,10 +99,10 @@ var ReactSurveyBuilder = exports.ReactSurveyBuilder = /*#__PURE__*/function (_Re
|
|
101
99
|
}
|
102
100
|
return /*#__PURE__*/_react["default"].createElement(_reactDnd.DndProvider, {
|
103
101
|
backend: _reactDndHtml5Backend.HTML5Backend
|
104
|
-
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(
|
102
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_esm.Container, {
|
105
103
|
fluid: true,
|
106
104
|
className: "react-survey-builder"
|
107
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
105
|
+
}, /*#__PURE__*/_react["default"].createElement(_esm.Row, null, /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
108
106
|
md: 9
|
109
107
|
}, /*#__PURE__*/_react["default"].createElement(_preview["default"], {
|
110
108
|
files: this.props.files,
|
@@ -123,13 +121,13 @@ var ReactSurveyBuilder = exports.ReactSurveyBuilder = /*#__PURE__*/function (_Re
|
|
123
121
|
editElement: this.state.editElement,
|
124
122
|
renderEditForm: this.props.renderEditForm,
|
125
123
|
saveAlways: this.props.saveAlways
|
126
|
-
})), /*#__PURE__*/_react["default"].createElement(
|
124
|
+
})), /*#__PURE__*/_react["default"].createElement(_esm.Col, {
|
127
125
|
md: 3
|
128
126
|
}, (!!!this.props.saveAlways || this.props.editSurveyBlock || this.props.previewSurveyBlock || this.props.surveyName) && /*#__PURE__*/_react["default"].createElement("div", {
|
129
127
|
className: this.props.surveyToolbarClassName
|
130
128
|
}, (!!!this.props.saveAlways || this.props.editSurveyBlock || this.props.surveyName) && /*#__PURE__*/_react["default"].createElement("div", {
|
131
129
|
className: "border border-light border-3 p-3 d-grid gap-1 mb-3"
|
132
|
-
}, (_this$props$editSurve = this.props.editSurveyBlock) !== null && _this$props$editSurve !== void 0 ? _this$props$editSurve : this.props.surveyName ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", null, this.props.surveyName)) : null, !!!this.props.saveAlways && /*#__PURE__*/_react["default"].createElement(
|
130
|
+
}, (_this$props$editSurve = this.props.editSurveyBlock) !== null && _this$props$editSurve !== void 0 ? _this$props$editSurve : this.props.surveyName ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", null, this.props.surveyName)) : null, !!!this.props.saveAlways && /*#__PURE__*/_react["default"].createElement(_esm.Button, {
|
133
131
|
variant: "primary",
|
134
132
|
onClick: function onClick() {
|
135
133
|
_this2.saveFormData();
|
@@ -18,7 +18,7 @@ var _componentHeader = _interopRequireDefault(require("../survey-elements/compon
|
|
18
18
|
var _componentLabel = _interopRequireDefault(require("../survey-elements/component-label"));
|
19
19
|
var _dustbin = _interopRequireDefault(require("./dustbin"));
|
20
20
|
var _ItemTypes = _interopRequireDefault(require("../ItemTypes"));
|
21
|
-
var
|
21
|
+
var _esm = require("react-bootstrap/esm");
|
22
22
|
var _excluded = ["item", "className"],
|
23
23
|
_excluded2 = ["item", "className"],
|
24
24
|
_excluded3 = ["item"];
|
@@ -56,7 +56,7 @@ var MultiColumnRowBase = /*#__PURE__*/function (_React$Component) {
|
|
56
56
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
57
57
|
style: _objectSpread({}, this.props.style),
|
58
58
|
className: baseClasses
|
59
|
-
}, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement(
|
59
|
+
}, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement(_esm.Row, null, childItems.map(function (x, i) {
|
60
60
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
61
61
|
key: "".concat(i, "_").concat(x || '_'),
|
62
62
|
className: className
|
@@ -9,7 +9,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
10
10
|
var _reactHookForm = require("react-hook-form");
|
11
11
|
var _errorMessage = require("@hookform/error-message");
|
12
|
-
var
|
12
|
+
var _esm = require("react-bootstrap/esm");
|
13
13
|
var getError = exports.getError = function getError(errors, name) {
|
14
14
|
if (name !== undefined && errors !== undefined) {
|
15
15
|
var obj = errors;
|
@@ -42,14 +42,14 @@ var ComponentErrorMessage = function ComponentErrorMessage(_ref) {
|
|
42
42
|
var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
|
43
43
|
type = _ref4[0],
|
44
44
|
message = _ref4[1];
|
45
|
-
return /*#__PURE__*/_react["default"].createElement(
|
45
|
+
return /*#__PURE__*/_react["default"].createElement(_esm.Alert, {
|
46
46
|
key: "".concat(name, "-").concat(type),
|
47
47
|
variant: "danger",
|
48
48
|
className: "form-error"
|
49
49
|
}, message);
|
50
50
|
});
|
51
51
|
} else if (message !== undefined && message !== null && message !== '') {
|
52
|
-
return /*#__PURE__*/_react["default"].createElement(
|
52
|
+
return /*#__PURE__*/_react["default"].createElement(_esm.Alert, {
|
53
53
|
variant: "danger",
|
54
54
|
className: "form-error"
|
55
55
|
}, message);
|
@@ -5,25 +5,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
6
6
|
});
|
7
7
|
exports["default"] = void 0;
|
8
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
8
9
|
var _react = _interopRequireDefault(require("react"));
|
9
10
|
var _headerBar = _interopRequireDefault(require("./header-bar"));
|
10
|
-
var
|
11
|
-
|
11
|
+
var _excluded = ["item"];
|
12
|
+
var ComponentHeader = function ComponentHeader(_ref) {
|
13
|
+
var item = _ref.item,
|
14
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
15
|
+
if (item !== null && item !== void 0 && item.mutable) {
|
12
16
|
return null;
|
13
17
|
}
|
14
|
-
return /*#__PURE__*/_react["default"].createElement("div", null,
|
18
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, (item === null || item === void 0 ? void 0 : item.pageBreakBefore) && /*#__PURE__*/_react["default"].createElement("div", {
|
15
19
|
className: "preview-page-break"
|
16
20
|
}, "Page Break"), /*#__PURE__*/_react["default"].createElement(_headerBar["default"], {
|
17
21
|
isFieldSet: props.isFieldSet,
|
18
22
|
parent: props.parent,
|
19
23
|
editModeOn: props.editModeOn,
|
20
|
-
item:
|
24
|
+
item: item,
|
21
25
|
index: props.index,
|
22
26
|
setAsChild: props.setAsChild,
|
23
27
|
onDestroy: props._onDestroy,
|
24
28
|
onEdit: props.onEdit,
|
25
|
-
"static":
|
26
|
-
required:
|
29
|
+
"static": item === null || item === void 0 ? void 0 : item["static"],
|
30
|
+
required: item === null || item === void 0 ? void 0 : item.required
|
27
31
|
}));
|
28
32
|
};
|
29
33
|
var _default = exports["default"] = ComponentHeader;
|
@@ -15,7 +15,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
15
15
|
var _react = _interopRequireDefault(require("react"));
|
16
16
|
var _componentHeader = _interopRequireDefault(require("./component-header"));
|
17
17
|
var _componentLabel = _interopRequireDefault(require("./component-label"));
|
18
|
-
var
|
18
|
+
var _esm = require("react-bootstrap/esm");
|
19
19
|
var _componentErrorMessage = _interopRequireDefault(require("./component-error-message"));
|
20
20
|
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; }
|
21
21
|
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; }
|
@@ -58,7 +58,7 @@ var CustomElement = /*#__PURE__*/function (_React$Component) {
|
|
58
58
|
}, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), bare ? /*#__PURE__*/_react["default"].createElement(Element, (0, _extends2["default"])({
|
59
59
|
id: props.name,
|
60
60
|
item: this.props.item
|
61
|
-
}, this.props.item.props, props)) : /*#__PURE__*/_react["default"].createElement(
|
61
|
+
}, this.props.item.props, props)) : /*#__PURE__*/_react["default"].createElement(_esm.Form.Group, {
|
62
62
|
className: "form-group mb-3"
|
63
63
|
}, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], (0, _extends2["default"])({
|
64
64
|
className: "form-label"
|
@@ -67,7 +67,7 @@ var CustomElement = /*#__PURE__*/function (_React$Component) {
|
|
67
67
|
})), /*#__PURE__*/_react["default"].createElement(Element, (0, _extends2["default"])({
|
68
68
|
id: props.name,
|
69
69
|
item: this.props.item
|
70
|
-
}, this.props.item.props, props)), this.props.item.help ? /*#__PURE__*/_react["default"].createElement(
|
70
|
+
}, this.props.item.props, props)), this.props.item.help ? /*#__PURE__*/_react["default"].createElement(_esm.Form.Text, {
|
71
71
|
muted: true
|
72
72
|
}, this.props.item.help) : null, /*#__PURE__*/_react["default"].createElement(_componentErrorMessage["default"], {
|
73
73
|
name: props.name
|