react-survey-builder 1.0.62 → 1.0.64
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/225.index.js +2 -1
- package/dist/225.index.js.map +1 -0
- package/dist/997.index.js +2 -1
- package/dist/997.index.js.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.LICENSE.txt +30 -0
- package/dist/index.js.map +1 -0
- package/lib/form-fields.js +0 -24
- package/lib/form.js +0 -24
- package/lib/survey-elements/index.js +75 -4
- package/package.json +2 -1
- package/lib/utils/validators.js +0 -81
package/lib/form-fields.js
CHANGED
@@ -20,7 +20,6 @@ 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 _validators = require("./utils/validators");
|
24
23
|
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
24
|
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
25
|
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; }
|
@@ -431,29 +430,6 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
|
|
431
430
|
if (item.required) {
|
432
431
|
fieldRules.required = "".concat(item.label, " is required");
|
433
432
|
}
|
434
|
-
switch (item.element) {
|
435
|
-
case 'EmailInput':
|
436
|
-
fieldRules.minLength = {
|
437
|
-
value: 4,
|
438
|
-
message: "".concat(item.label, " must be at least 4 characters long")
|
439
|
-
};
|
440
|
-
fieldRules.validate = function (value) {
|
441
|
-
return (0, _validators.validateEmail)(value) || "".concat(item.label, " field requires valid email address");
|
442
|
-
};
|
443
|
-
break;
|
444
|
-
case 'PhoneNumber':
|
445
|
-
fieldRules.validate = function (value) {
|
446
|
-
return (0, _validators.validatePhone)(value) || "".concat(item.label, " field requires a valid phone number");
|
447
|
-
};
|
448
|
-
break;
|
449
|
-
case 'DatePicker':
|
450
|
-
fieldRules.validate = function (value) {
|
451
|
-
return (0, _validators.validateDate)(value) || "".concat(item.label, " field requires a valid date in the format MM/DD/YYYY");
|
452
|
-
};
|
453
|
-
break;
|
454
|
-
default:
|
455
|
-
break;
|
456
|
-
}
|
457
433
|
return fieldRules;
|
458
434
|
};
|
459
435
|
var handleRenderSubmit = function handleRenderSubmit() {
|
package/lib/form.js
CHANGED
@@ -20,7 +20,6 @@ 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 _validators = require("./utils/validators");
|
24
23
|
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
24
|
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
25
|
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; }
|
@@ -439,29 +438,6 @@ var ReactSurvey = function ReactSurvey(_ref) {
|
|
439
438
|
if (item.required) {
|
440
439
|
fieldRules.required = "".concat(item.label, " is required");
|
441
440
|
}
|
442
|
-
switch (item.element) {
|
443
|
-
case 'EmailInput':
|
444
|
-
fieldRules.minLength = {
|
445
|
-
value: 4,
|
446
|
-
message: "".concat(item.label, " must be at least 4 characters long")
|
447
|
-
};
|
448
|
-
fieldRules.validate = function (value) {
|
449
|
-
return (0, _validators.validateEmail)(value) || "".concat(item.label, " field requires valid email address");
|
450
|
-
};
|
451
|
-
break;
|
452
|
-
case 'PhoneNumber':
|
453
|
-
fieldRules.validate = function (value) {
|
454
|
-
return (0, _validators.validatePhone)(value) || "".concat(item.label, " field requires a valid phone number");
|
455
|
-
};
|
456
|
-
break;
|
457
|
-
case 'DatePicker':
|
458
|
-
fieldRules.validate = function (value) {
|
459
|
-
return (0, _validators.validateDate)(value) || "".concat(item.label, " field requires a valid date in the format MM/DD/YYYY");
|
460
|
-
};
|
461
|
-
break;
|
462
|
-
default:
|
463
|
-
break;
|
464
|
-
}
|
465
441
|
return fieldRules;
|
466
442
|
};
|
467
443
|
var handleRenderSubmit = function handleRenderSubmit() {
|
@@ -35,9 +35,9 @@ var _ri = require("react-icons/ri");
|
|
35
35
|
var _io = require("react-icons/io5");
|
36
36
|
var _functions = require("../functions");
|
37
37
|
var _esm = require("react-bootstrap/esm");
|
38
|
-
var _validators = require("../utils/validators");
|
39
38
|
var _reactHookForm = require("react-hook-form");
|
40
39
|
var _esm2 = require("react-imask/esm");
|
40
|
+
var _libphonenumberJs = require("libphonenumber-js");
|
41
41
|
var _excluded = ["name", "onChange", "value", "style", "item"],
|
42
42
|
_excluded2 = ["name", "onChange", "value", "style", "item"],
|
43
43
|
_excluded3 = ["name", "onChange", "value", "style", "item"],
|
@@ -373,6 +373,11 @@ var EmailInput = exports.EmailInput = function EmailInput(_ref3) {
|
|
373
373
|
onChange(value);
|
374
374
|
}
|
375
375
|
};
|
376
|
+
var validateEmail = function validateEmail(email) {
|
377
|
+
return email.match(
|
378
|
+
// eslint-disable-next-line no-useless-escape
|
379
|
+
/^(([^<>()[\]\\.,;:\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,}))$/);
|
380
|
+
};
|
376
381
|
var inputProps = {
|
377
382
|
type: 'text',
|
378
383
|
required: (_item$required4 = item === null || item === void 0 ? void 0 : item.required) !== null && _item$required4 !== void 0 ? _item$required4 : false,
|
@@ -396,7 +401,7 @@ var EmailInput = exports.EmailInput = function EmailInput(_ref3) {
|
|
396
401
|
message: "".concat(item === null || item === void 0 ? void 0 : item.label, " must be at least 4 characters long")
|
397
402
|
},
|
398
403
|
validate: function validate(value) {
|
399
|
-
return
|
404
|
+
return validateEmail(value) || "".concat(item === null || item === void 0 ? void 0 : item.label, " field requires valid email address");
|
400
405
|
}
|
401
406
|
};
|
402
407
|
if ((_item$required5 = item === null || item === void 0 ? void 0 : item.required) !== null && _item$required5 !== void 0 ? _item$required5 : false) {
|
@@ -535,6 +540,24 @@ var PhoneNumber = exports.PhoneNumber = function PhoneNumber(_ref5) {
|
|
535
540
|
onChange(value);
|
536
541
|
}
|
537
542
|
};
|
543
|
+
var toE164PhoneNumber = function toE164PhoneNumber(phoneNumberValue) {
|
544
|
+
if (phoneNumberValue !== undefined && phoneNumberValue !== null) {
|
545
|
+
//Filter only numbers from the input
|
546
|
+
var cleaned = ('' + phoneNumberValue).replace(/\D/g, '');
|
547
|
+
|
548
|
+
//Check if the input is of correct
|
549
|
+
var match = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/);
|
550
|
+
if (match) {
|
551
|
+
//Remove the matched extension code
|
552
|
+
//Change this to format for any country code.
|
553
|
+
var intlCode = match[1] ? '+1' : '+1';
|
554
|
+
return [intlCode, match[2], match[3], match[4]].join('');
|
555
|
+
}
|
556
|
+
return '';
|
557
|
+
} else {
|
558
|
+
return '';
|
559
|
+
}
|
560
|
+
};
|
538
561
|
var inputProps = {
|
539
562
|
type: 'text',
|
540
563
|
required: (_item$required7 = item === null || item === void 0 ? void 0 : item.required) !== null && _item$required7 !== void 0 ? _item$required7 : false,
|
@@ -556,7 +579,7 @@ var PhoneNumber = exports.PhoneNumber = function PhoneNumber(_ref5) {
|
|
556
579
|
}
|
557
580
|
var fieldRules = {
|
558
581
|
validate: function validate(value) {
|
559
|
-
return (0,
|
582
|
+
return (0, _libphonenumberJs.isValidPhoneNumber)(toE164PhoneNumber(value), 'US') || "".concat(item === null || item === void 0 ? void 0 : item.label, " field requires a valid phone number");
|
560
583
|
}
|
561
584
|
};
|
562
585
|
if ((_item$required8 = item === null || item === void 0 ? void 0 : item.required) !== null && _item$required8 !== void 0 ? _item$required8 : false) {
|
@@ -748,6 +771,54 @@ var DatePicker = exports.DatePicker = function DatePicker(_ref8) {
|
|
748
771
|
onChange(value);
|
749
772
|
}
|
750
773
|
};
|
774
|
+
var validateDate = function validateDate(dateString) {
|
775
|
+
if (dateString !== undefined && dateString !== null && dateString !== "") {
|
776
|
+
var dateformat = /^(0?[1-9]|1[0-2])[\/](0?[1-9]|[1-2][0-9]|3[01])[\/]\d{4}$/;
|
777
|
+
|
778
|
+
// Matching the date through regular expression
|
779
|
+
if (dateString.match(dateformat)) {
|
780
|
+
var operator = dateString.split('/');
|
781
|
+
|
782
|
+
// Extract the string into month, date and year
|
783
|
+
var datepart = [];
|
784
|
+
if (operator.length > 1) {
|
785
|
+
datepart = dateString.split('/');
|
786
|
+
}
|
787
|
+
var month = parseInt(datepart[0]);
|
788
|
+
var day = parseInt(datepart[1]);
|
789
|
+
var year = parseInt(datepart[2]);
|
790
|
+
if (day > 31 || day < 1) {
|
791
|
+
return false;
|
792
|
+
}
|
793
|
+
var currentYear = new Date().getFullYear();
|
794
|
+
if (year < 1900 || year > currentYear + 5) {
|
795
|
+
return false;
|
796
|
+
}
|
797
|
+
|
798
|
+
// Create a list of days of a month
|
799
|
+
var ListofDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
800
|
+
if (month === 1 || month > 2) {
|
801
|
+
if (day > ListofDays[month - 1]) {
|
802
|
+
// to check if the date is out of range
|
803
|
+
return false;
|
804
|
+
}
|
805
|
+
} else if (month === 2) {
|
806
|
+
var leapYear = false;
|
807
|
+
if (!(year % 4) && year % 100 || !(year % 400)) leapYear = true;
|
808
|
+
if (leapYear === false && day >= 29) return false;else if (leapYear === true && day > 29) {
|
809
|
+
// console.log('Invalid date format!');
|
810
|
+
return false;
|
811
|
+
}
|
812
|
+
} else if (month > 12 || month < 1) {
|
813
|
+
return false;
|
814
|
+
}
|
815
|
+
} else {
|
816
|
+
// console.log("Invalid date format!");
|
817
|
+
return false;
|
818
|
+
}
|
819
|
+
}
|
820
|
+
return true;
|
821
|
+
};
|
751
822
|
var inputProps = {
|
752
823
|
type: 'text',
|
753
824
|
required: (_item$required10 = item === null || item === void 0 ? void 0 : item.required) !== null && _item$required10 !== void 0 ? _item$required10 : false,
|
@@ -769,7 +840,7 @@ var DatePicker = exports.DatePicker = function DatePicker(_ref8) {
|
|
769
840
|
}
|
770
841
|
var fieldRules = {
|
771
842
|
validate: function validate(value) {
|
772
|
-
return
|
843
|
+
return validateDate(value) || 'Please enter a valid Date in the format MM/DD/YYYY';
|
773
844
|
}
|
774
845
|
};
|
775
846
|
if ((_item$required11 = item === null || item === void 0 ? void 0 : item.required) !== null && _item$required11 !== void 0 ? _item$required11 : false) {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-survey-builder",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.64",
|
4
4
|
"description": "A complete survey builder for react.",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"types": "types/index.d.ts",
|
@@ -88,6 +88,7 @@
|
|
88
88
|
"eslint-plugin-jsx-a11y": "^6.4.1",
|
89
89
|
"eslint-plugin-react": "^7.22.0",
|
90
90
|
"express": "^4.17.1",
|
91
|
+
"libphonenumber-js": "^1.10.61",
|
91
92
|
"multer": "^1.4.2",
|
92
93
|
"react": ">=18.2.0",
|
93
94
|
"react-dom": ">=18.2.0",
|
package/lib/utils/validators.js
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.validatePhone = exports.validateEmail = exports.validateDate = exports.toE164PhoneNumber = void 0;
|
7
|
-
var _libphonenumberJs = require("libphonenumber-js");
|
8
|
-
var validateEmail = exports.validateEmail = function validateEmail(email) {
|
9
|
-
return email.match(
|
10
|
-
// eslint-disable-next-line no-useless-escape
|
11
|
-
/^(([^<>()[\]\\.,;:\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,}))$/);
|
12
|
-
};
|
13
|
-
var toE164PhoneNumber = exports.toE164PhoneNumber = function toE164PhoneNumber(phoneNumberValue) {
|
14
|
-
if (phoneNumberValue !== undefined && phoneNumberValue !== null) {
|
15
|
-
//Filter only numbers from the input
|
16
|
-
var cleaned = ('' + phoneNumberValue).replace(/\D/g, '');
|
17
|
-
|
18
|
-
//Check if the input is of correct
|
19
|
-
var match = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/);
|
20
|
-
if (match) {
|
21
|
-
//Remove the matched extension code
|
22
|
-
//Change this to format for any country code.
|
23
|
-
var intlCode = match[1] ? '+1' : '+1';
|
24
|
-
return [intlCode, match[2], match[3], match[4]].join('');
|
25
|
-
}
|
26
|
-
return '';
|
27
|
-
} else {
|
28
|
-
return '';
|
29
|
-
}
|
30
|
-
};
|
31
|
-
var validatePhone = exports.validatePhone = function validatePhone(phone) {
|
32
|
-
return (0, _libphonenumberJs.isValidPhoneNumber)(toE164PhoneNumber(phone), 'US');
|
33
|
-
};
|
34
|
-
var validateDate = exports.validateDate = function validateDate(dateString) {
|
35
|
-
if (dateString !== undefined && dateString !== null && dateString !== "") {
|
36
|
-
var dateformat = /^(0?[1-9]|1[0-2])[\/](0?[1-9]|[1-2][0-9]|3[01])[\/]\d{4}$/;
|
37
|
-
|
38
|
-
// Matching the date through regular expression
|
39
|
-
if (dateString.match(dateformat)) {
|
40
|
-
var operator = dateString.split('/');
|
41
|
-
|
42
|
-
// Extract the string into month, date and year
|
43
|
-
var datepart = [];
|
44
|
-
if (operator.length > 1) {
|
45
|
-
datepart = dateString.split('/');
|
46
|
-
}
|
47
|
-
var month = parseInt(datepart[0]);
|
48
|
-
var day = parseInt(datepart[1]);
|
49
|
-
var year = parseInt(datepart[2]);
|
50
|
-
if (day > 31 || day < 1) {
|
51
|
-
return false;
|
52
|
-
}
|
53
|
-
var currentYear = new Date().getFullYear();
|
54
|
-
if (year < 1900 || year > currentYear + 5) {
|
55
|
-
return false;
|
56
|
-
}
|
57
|
-
|
58
|
-
// Create a list of days of a month
|
59
|
-
var ListofDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
60
|
-
if (month === 1 || month > 2) {
|
61
|
-
if (day > ListofDays[month - 1]) {
|
62
|
-
// to check if the date is out of range
|
63
|
-
return false;
|
64
|
-
}
|
65
|
-
} else if (month === 2) {
|
66
|
-
var leapYear = false;
|
67
|
-
if (!(year % 4) && year % 100 || !(year % 400)) leapYear = true;
|
68
|
-
if (leapYear === false && day >= 29) return false;else if (leapYear === true && day > 29) {
|
69
|
-
// console.log('Invalid date format!');
|
70
|
-
return false;
|
71
|
-
}
|
72
|
-
} else if (month > 12 || month < 1) {
|
73
|
-
return false;
|
74
|
-
}
|
75
|
-
} else {
|
76
|
-
// console.log("Invalid date format!");
|
77
|
-
return false;
|
78
|
-
}
|
79
|
-
}
|
80
|
-
return true;
|
81
|
-
};
|