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.
@@ -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 (0, _validators.validateEmail)(value) || "".concat(item === null || item === void 0 ? void 0 : item.label, " field requires valid email address");
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, _validators.validatePhone)(value) || "".concat(item === null || item === void 0 ? void 0 : item.label, " field requires a valid phone number");
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 (0, _validators.validateDate)(value) || 'Please enter a valid Date in the format MM/DD/YYYY';
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.62",
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",
@@ -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
- };