@bigbinary/neeto-form-frontend 3.13.9 → 3.14.0

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.
Files changed (86) hide show
  1. package/README.md +131 -81
  2. package/app/javascript/src/translations/ar.json +9 -1
  3. package/app/javascript/src/translations/bg.json +207 -0
  4. package/app/javascript/src/translations/ca.json +207 -0
  5. package/app/javascript/src/translations/cs.json +9 -1
  6. package/app/javascript/src/translations/da.json +207 -0
  7. package/app/javascript/src/translations/de.json +9 -1
  8. package/app/javascript/src/translations/en.json +10 -1
  9. package/app/javascript/src/translations/es-MX.json +207 -0
  10. package/app/javascript/src/translations/es.json +9 -1
  11. package/app/javascript/src/translations/et.json +207 -0
  12. package/app/javascript/src/translations/fi.json +207 -0
  13. package/app/javascript/src/translations/fil.json +207 -0
  14. package/app/javascript/src/translations/fr.json +9 -1
  15. package/app/javascript/src/translations/hi.json +207 -0
  16. package/app/javascript/src/translations/hr.json +207 -0
  17. package/app/javascript/src/translations/id.json +207 -0
  18. package/app/javascript/src/translations/it.json +9 -1
  19. package/app/javascript/src/translations/ja.json +207 -0
  20. package/app/javascript/src/translations/ko.json +207 -0
  21. package/app/javascript/src/translations/nl.json +9 -1
  22. package/app/javascript/src/translations/pl.json +9 -1
  23. package/app/javascript/src/translations/pt-BR.json +207 -0
  24. package/app/javascript/src/translations/pt.json +9 -1
  25. package/app/javascript/src/translations/ro.json +9 -1
  26. package/app/javascript/src/translations/ru.json +9 -1
  27. package/app/javascript/src/translations/sk.json +207 -0
  28. package/app/javascript/src/translations/sl.json +207 -0
  29. package/app/javascript/src/translations/sv.json +207 -0
  30. package/app/javascript/src/translations/th.json +207 -0
  31. package/app/javascript/src/translations/tr.json +207 -0
  32. package/app/javascript/src/translations/uk.json +207 -0
  33. package/app/javascript/src/translations/vi.json +207 -0
  34. package/app/javascript/src/translations/zh-CN.json +207 -0
  35. package/app/javascript/src/translations/zh-TW.json +207 -0
  36. package/dist/BuildForm.js +32 -7
  37. package/dist/BuildForm.js.map +1 -1
  38. package/dist/ExternalForm.js +39 -32
  39. package/dist/ExternalForm.js.map +1 -1
  40. package/dist/Submission.js +1 -1
  41. package/dist/UrlBuilder.js +10 -6
  42. package/dist/UrlBuilder.js.map +1 -1
  43. package/dist/{buildForm-miMj_S28.js → buildForm-CXy5L1RP.js} +2 -2
  44. package/dist/{buildForm-miMj_S28.js.map → buildForm-CXy5L1RP.js.map} +1 -1
  45. package/dist/{buildForm-DQ2wgwuW.js → buildForm-DNCW7prR.js} +2 -2
  46. package/dist/{buildForm-DQ2wgwuW.js.map → buildForm-DNCW7prR.js.map} +1 -1
  47. package/dist/cjs/BuildForm.js +32 -7
  48. package/dist/cjs/BuildForm.js.map +1 -1
  49. package/dist/cjs/ExternalForm.js +38 -31
  50. package/dist/cjs/ExternalForm.js.map +1 -1
  51. package/dist/cjs/Submission.js +1 -1
  52. package/dist/cjs/UrlBuilder.js +10 -6
  53. package/dist/cjs/UrlBuilder.js.map +1 -1
  54. package/dist/cjs/hooks.js +4 -4
  55. package/dist/cjs/index.js +8 -7
  56. package/dist/cjs/index.js.map +1 -1
  57. package/dist/{constants-Dq9-rvtB.js → constants-BVZZfXua.js} +5 -1
  58. package/dist/constants-BVZZfXua.js.map +1 -0
  59. package/dist/{constants-R6y-Scns.js → constants-Bw2NSI7-.js} +5 -4
  60. package/dist/constants-Bw2NSI7-.js.map +1 -0
  61. package/dist/{constants-CDhYxmSQ.js → constants-VzpftVgP.js} +5 -3
  62. package/dist/constants-VzpftVgP.js.map +1 -0
  63. package/dist/{constants-DBuFEVFA.js → constants-b1EQ6-AS.js} +4 -2
  64. package/dist/constants-b1EQ6-AS.js.map +1 -0
  65. package/dist/hooks.js +4 -4
  66. package/dist/{index-CAtNQTCZ.js → index-BARvqe7c.js} +2 -2
  67. package/dist/{index-CAtNQTCZ.js.map → index-BARvqe7c.js.map} +1 -1
  68. package/dist/{index-BGEdOqsc.js → index-BkNaYmLc.js} +2 -2
  69. package/dist/{index-BGEdOqsc.js.map → index-BkNaYmLc.js.map} +1 -1
  70. package/dist/index.js +8 -7
  71. package/dist/index.js.map +1 -1
  72. package/dist/{useFormSubmission-Bor3TuEO.js → useFormSubmission-CYqHLtkA.js} +2 -2
  73. package/dist/{useFormSubmission-Bor3TuEO.js.map → useFormSubmission-CYqHLtkA.js.map} +1 -1
  74. package/dist/{useFormSubmission-D3Bxhy6g.js → useFormSubmission-DMoyM44A.js} +2 -2
  75. package/dist/{useFormSubmission-D3Bxhy6g.js.map → useFormSubmission-DMoyM44A.js.map} +1 -1
  76. package/dist/{utils-BThu7JWp.js → utils-BjgmM0Qs.js} +521 -55
  77. package/dist/utils-BjgmM0Qs.js.map +1 -0
  78. package/dist/{utils-1blEk5zb.js → utils-DdrUdmyb.js} +512 -45
  79. package/dist/utils-DdrUdmyb.js.map +1 -0
  80. package/package.json +15 -15
  81. package/dist/constants-CDhYxmSQ.js.map +0 -1
  82. package/dist/constants-DBuFEVFA.js.map +0 -1
  83. package/dist/constants-Dq9-rvtB.js.map +0 -1
  84. package/dist/constants-R6y-Scns.js.map +0 -1
  85. package/dist/utils-1blEk5zb.js.map +0 -1
  86. package/dist/utils-BThu7JWp.js.map +0 -1
@@ -3,13 +3,13 @@
3
3
  var React = require('react');
4
4
  var formik = require('formik');
5
5
  var neetoCist = require('@bigbinary/neeto-cist');
6
- var index = require('./index-CAtNQTCZ.js');
6
+ var index = require('./index-BARvqe7c.js');
7
7
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
8
8
  var libphonenumberJs = require('libphonenumber-js');
9
9
  var ramda = require('ramda');
10
10
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
11
  var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
12
- var constants$1 = require('./constants-Dq9-rvtB.js');
12
+ var constants$1 = require('./constants-BVZZfXua.js');
13
13
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
14
14
  var Plus = require('@bigbinary/neeto-icons/Plus');
15
15
  var Button = require('@bigbinary/neetoui/Button');
@@ -23,7 +23,7 @@ var PhoneNumber = require('@bigbinary/neeto-molecules/PhoneNumber');
23
23
  var yup = require('yup');
24
24
  var i18next = require('i18next');
25
25
  var jsxRuntime = require('react/jsx-runtime');
26
- var constants = require('./constants-CDhYxmSQ.js');
26
+ var constants = require('./constants-VzpftVgP.js');
27
27
  var classnames = require('classnames');
28
28
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
29
29
  var Refresh = require('@bigbinary/neeto-icons/Refresh');
@@ -33,6 +33,12 @@ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
33
33
  var ReCAPTCHA = require('react-google-recaptcha');
34
34
  var Checkbox = require('@bigbinary/neetoui/Checkbox');
35
35
  var DatePicker = require('@bigbinary/neetoui/DatePicker');
36
+ var Toastr = require('@bigbinary/neetoui/Toastr');
37
+ var reactQuery = require('@tanstack/react-query');
38
+ var axios = require('axios');
39
+ var CheckCircle = require('@bigbinary/neeto-icons/CheckCircle');
40
+ var Spinner = require('@bigbinary/neetoui/Spinner');
41
+ var NeetoUICallout = require('@bigbinary/neetoui/Callout');
36
42
  var FileUpload = require('@bigbinary/neeto-molecules/FileUpload');
37
43
  var Label = require('@bigbinary/neetoui/Label');
38
44
  var Select = require('@bigbinary/neetoui/Select');
@@ -145,6 +151,76 @@ var FormikWrap = function FormikWrap(_ref) {
145
151
  return children;
146
152
  };
147
153
 
154
+ var RESEND_DELAY = 120;
155
+ var ONE_SECOND = 1000;
156
+ var EMAIL_VERIFICATION_FIELD_NAME_PREFIX = "verificationCode_";
157
+ var EMAIL_VERIFICATION_PREFIX = "neeto_form_nano_email_verification_details_";
158
+ var EMAIL_VERIFICATION_KEYS = {
159
+ EMAIL: "email",
160
+ TOKEN: "token",
161
+ VERIFIED: "verified",
162
+ CODE: "code",
163
+ CODE_SENT_AT: "code-sent-at"
164
+ };
165
+ var CALLOUT_STYLES = {
166
+ WARNING: "warning",
167
+ ERROR: "danger"
168
+ };
169
+ var DEFAULT_CALLOUT_DETAILS = {
170
+ message: "",
171
+ style: ""
172
+ };
173
+
174
+ var getEmailVerificationKey = function getEmailVerificationKey(formId) {
175
+ return "".concat(EMAIL_VERIFICATION_PREFIX, "-").concat(formId);
176
+ };
177
+ var getEmailVerificationDetails = function getEmailVerificationDetails(formId) {
178
+ return utils.getFromLocalStorage(getEmailVerificationKey(formId)) || {};
179
+ };
180
+ var buildVerificationFieldName = function buildVerificationFieldName(questionId) {
181
+ return "".concat(EMAIL_VERIFICATION_FIELD_NAME_PREFIX, "-").concat(questionId);
182
+ };
183
+ var getLastVerificationCodeSentAt = function getLastVerificationCodeSentAt(formId, questionId) {
184
+ var codeSentAt = getEmailVerificationDetail(formId, questionId, EMAIL_VERIFICATION_KEYS.CODE_SENT_AT);
185
+ return Number(codeSentAt) || 0;
186
+ };
187
+ var storeLastVerificationCodeSentAt = function storeLastVerificationCodeSentAt(formId, questionId) {
188
+ var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
189
+ return setEmailVerificationDetail(formId, questionId, _defineProperty({}, EMAIL_VERIFICATION_KEYS.CODE_SENT_AT, Date.now() - offset));
190
+ };
191
+ var getRemainingTime = function getRemainingTime(formId, questionId) {
192
+ var elapsedTime = Math.floor((Date.now() - getLastVerificationCodeSentAt(formId, questionId)) / ONE_SECOND);
193
+ return ramda.max(RESEND_DELAY - elapsedTime, 0);
194
+ };
195
+ var getEmailVerificationDetail = function getEmailVerificationDetail(formId, questionId) {
196
+ var _questionDetails$keys;
197
+ var allDetails = getEmailVerificationDetails(formId);
198
+ var questionDetails = allDetails[questionId] || {};
199
+ for (var _len = arguments.length, keys = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
200
+ keys[_key - 2] = arguments[_key];
201
+ }
202
+ return keys.length === 1 ? (_questionDetails$keys = questionDetails[keys[0]]) !== null && _questionDetails$keys !== void 0 ? _questionDetails$keys : "" : ramda.pick(keys, allDetails);
203
+ };
204
+ var setEmailVerificationDetail = function setEmailVerificationDetail(formId, questionId, data) {
205
+ var storageKey = getEmailVerificationKey(formId);
206
+ var allDetails = getEmailVerificationDetails(formId);
207
+ allDetails[questionId] = ramda.mergeRight(allDetails[questionId] || {}, data);
208
+ utils.setToLocalStorage(storageKey, allDetails);
209
+ };
210
+ var removeEmailVerificationDetail = function removeEmailVerificationDetail(formId, questionId) {
211
+ var storageKey = getEmailVerificationKey(formId);
212
+ var allDetails = getEmailVerificationDetails(formId);
213
+ for (var _len2 = arguments.length, keys = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
214
+ keys[_key2 - 2] = arguments[_key2];
215
+ }
216
+ allDetails[questionId] = ramda.omit(keys, allDetails[questionId]);
217
+ if (ramda.isEmpty(allDetails[questionId])) delete allDetails[questionId];
218
+ ramda.isEmpty(allDetails) ? utils.removeFromLocalStorage(storageKey) : utils.setToLocalStorage(storageKey, allDetails);
219
+ };
220
+ var clearEmailVerificationDetails = function clearEmailVerificationDetails(formId) {
221
+ utils.removeFromLocalStorage(getEmailVerificationKey(formId));
222
+ };
223
+
148
224
  var t$1 = clientI18nInstance.t;
149
225
  var getInvalidFieldError = function getInvalidFieldError(label) {
150
226
  return t$1("neetoForm.error.invalidField", {
@@ -170,8 +246,8 @@ var getInvalidTypeError = function getInvalidTypeError(label, type) {
170
246
  });
171
247
  };
172
248
 
173
- function ownKeys$f(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; }
174
- function _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
249
+ function ownKeys$h(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; }
250
+ function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
175
251
  var toEmailValues = function toEmailValues() {
176
252
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
177
253
  return values.map(function (value) {
@@ -262,22 +338,34 @@ var getNameFromUrl = function getNameFromUrl(_ref7, fieldCodes) {
262
338
  fullName: fieldCodes[fieldCode] || ""
263
339
  };
264
340
  };
341
+ var buildEmailVerificationEntries = function buildEmailVerificationEntries() {
342
+ var questions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
343
+ var emailQuestionsRequiringVerification = neetoCist.filterBy({
344
+ kind: constants$1.QUESTION_TYPES.EMAIL,
345
+ isVerificationEnabled: true
346
+ }, questions);
347
+ var fieldNames = ramda.map(function (_ref8) {
348
+ var id = _ref8.id;
349
+ return buildVerificationFieldName(id);
350
+ }, emailQuestionsRequiringVerification);
351
+ return ramda.zipObj(fieldNames, Array(fieldNames.length).fill(""));
352
+ };
265
353
  var getLabel = function getLabel(label, isRequired) {
266
354
  return isRequired ? "".concat(label, "*") : label;
267
355
  };
268
- var generateInitValues = function generateInitValues(_ref8) {
269
- var questions = _ref8.questions,
270
- _ref8$initialValues = _ref8.initialValues,
271
- initialValues = _ref8$initialValues === void 0 ? [] : _ref8$initialValues,
272
- _ref8$localValues = _ref8.localValues,
273
- localValues = _ref8$localValues === void 0 ? {} : _ref8$localValues,
274
- _ref8$fieldCodes = _ref8.fieldCodes,
275
- fieldCodes = _ref8$fieldCodes === void 0 ? {} : _ref8$fieldCodes;
356
+ var generateInitValues = function generateInitValues(_ref9) {
357
+ var questions = _ref9.questions,
358
+ _ref9$initialValues = _ref9.initialValues,
359
+ initialValues = _ref9$initialValues === void 0 ? [] : _ref9$initialValues,
360
+ _ref9$localValues = _ref9.localValues,
361
+ localValues = _ref9$localValues === void 0 ? {} : _ref9$localValues,
362
+ _ref9$fieldCodes = _ref9.fieldCodes,
363
+ fieldCodes = _ref9$fieldCodes === void 0 ? {} : _ref9$fieldCodes;
276
364
  var initValues = {};
277
365
  var valuesMap = {};
278
366
  if (initialValues) {
279
367
  valuesMap = initialValues.reduce(function (acc, answer) {
280
- return _objectSpread$f(_objectSpread$f({}, acc), {}, _defineProperty({}, answer.questionId, {
368
+ return _objectSpread$h(_objectSpread$h({}, acc), {}, _defineProperty({}, answer.questionId, {
281
369
  value: answer.value,
282
370
  optionIds: answer.optionIds
283
371
  }));
@@ -399,7 +487,8 @@ var generateInitValues = function generateInitValues(_ref8) {
399
487
  }
400
488
  }
401
489
  });
402
- return !index.isEmptyValues(localValues) ? localValues : initValues;
490
+ var formInitialValues = !index.isEmptyValues(localValues) ? localValues : initValues;
491
+ return ramda.mergeLeft(formInitialValues, buildEmailVerificationEntries(questions));
403
492
  };
404
493
  var generateFormResponse = function generateFormResponse(response, questions) {
405
494
  var formResponse = [];
@@ -497,8 +586,8 @@ var isPhoneNumberField = ramda.includes(ramda.__, [constants.QUESTION_KIND.PHONE
497
586
 
498
587
  var _excluded$4 = ["kind", "customValidator"];
499
588
  var _fieldKindValidatorMa;
500
- function ownKeys$e(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; }
501
- function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
589
+ function ownKeys$g(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; }
590
+ function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
502
591
  var t = clientI18nInstance.t;
503
592
  yup__namespace.addMethod(yup__namespace.array, "unique", function () {
504
593
  var field, message;
@@ -677,7 +766,7 @@ var validateFieldValue = function validateFieldValue(_ref16) {
677
766
  return function (value) {
678
767
  if (!(kind in fieldKindValidatorMap)) return;
679
768
  var validator = fieldKindValidatorMap[kind];
680
- var schema = customValidator || validator(_objectSpread$e({
769
+ var schema = customValidator || validator(_objectSpread$g({
681
770
  kind: kind
682
771
  }, otherProps));
683
772
 
@@ -710,6 +799,61 @@ var validateFieldValue = function validateFieldValue(_ref16) {
710
799
  }());
711
800
  };
712
801
  };
802
+ var validateVerificationCode = function validateVerificationCode(context) {
803
+ return function (value) {
804
+ var entity = t("neetoForm.emailVerification.verificationCode");
805
+ var schema = yup__namespace.string().trim().when("$isVerificationEnabled", {
806
+ is: true,
807
+ then: function then(schema) {
808
+ return schema.when("$isRequired", {
809
+ is: true,
810
+ then: function then(s) {
811
+ return s.required(getRequiredFieldError(entity));
812
+ }
813
+ }).when("$email", function (email, s) {
814
+ if (email !== null && email !== void 0 && email.trim()) {
815
+ return s.required(getRequiredFieldError(entity));
816
+ }
817
+ return s;
818
+ }).test("is-6-digit-number", t("neetoForm.error.mustBeASixDigitNumber", {
819
+ entity: entity
820
+ }), function (value) {
821
+ return neetoCist.isNotPresent(value) || constants.SIX_DIGIT_NUMBER_REGEX.test(value);
822
+ });
823
+ }
824
+ });
825
+
826
+ // eslint-disable-next-line no-async-promise-executor
827
+ return new Promise(/*#__PURE__*/function () {
828
+ var _ref18 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
829
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
830
+ while (1) switch (_context2.prev = _context2.next) {
831
+ case 0:
832
+ _context2.prev = 0;
833
+ _context2.next = 3;
834
+ return schema.validate(value, {
835
+ context: context
836
+ });
837
+ case 3:
838
+ resolve(undefined);
839
+ _context2.next = 9;
840
+ break;
841
+ case 6:
842
+ _context2.prev = 6;
843
+ _context2.t0 = _context2["catch"](0);
844
+ resolve(_context2.t0.message);
845
+ case 9:
846
+ case "end":
847
+ return _context2.stop();
848
+ }
849
+ }, _callee2, null, [[0, 6]]);
850
+ }));
851
+ return function (_x2) {
852
+ return _ref18.apply(this, arguments);
853
+ };
854
+ }());
855
+ };
856
+ };
713
857
 
714
858
  var MultipleEmailInput = function MultipleEmailInput(_ref) {
715
859
  var question = _ref.question,
@@ -956,8 +1100,8 @@ var Recaptcha = function Recaptcha(_ref) {
956
1100
  }, clientI18nInstance.language);
957
1101
  };
958
1102
 
959
- function ownKeys$d(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; }
960
- function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1103
+ function ownKeys$f(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; }
1104
+ function _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
961
1105
  var ConditionField = function ConditionField(_ref) {
962
1106
  var question = _ref.question,
963
1107
  customValidator = _ref.customValidator;
@@ -977,7 +1121,7 @@ var ConditionField = function ConditionField(_ref) {
977
1121
  children: function children(_ref2) {
978
1122
  var meta = _ref2.meta,
979
1123
  field = _ref2.field;
980
- return /*#__PURE__*/jsxRuntime.jsx(Checkbox, _objectSpread$d(_objectSpread$d({}, _objectSpread$d(_objectSpread$d({}, field), {}, {
1124
+ return /*#__PURE__*/jsxRuntime.jsx(Checkbox, _objectSpread$f(_objectSpread$f({}, _objectSpread$f(_objectSpread$f({}, field), {}, {
981
1125
  label: label,
982
1126
  name: name
983
1127
  })), {}, {
@@ -990,8 +1134,8 @@ var ConditionField = function ConditionField(_ref) {
990
1134
  };
991
1135
 
992
1136
  var _excluded$3 = ["value"];
993
- function ownKeys$c(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; }
994
- function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1137
+ function ownKeys$e(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; }
1138
+ function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
995
1139
  var DateField = function DateField(_ref) {
996
1140
  var question = _ref.question,
997
1141
  customValidator = _ref.customValidator;
@@ -1028,7 +1172,7 @@ var DateField = function DateField(_ref) {
1028
1172
  value = _ref2$field.value,
1029
1173
  field = _objectWithoutProperties(_ref2$field, _excluded$3),
1030
1174
  form = _ref2.form;
1031
- return /*#__PURE__*/jsxRuntime.jsx(DatePicker, _objectSpread$c(_objectSpread$c({}, _objectSpread$c(_objectSpread$c({}, field), {}, {
1175
+ return /*#__PURE__*/jsxRuntime.jsx(DatePicker, _objectSpread$e(_objectSpread$e({}, _objectSpread$e(_objectSpread$e({}, field), {}, {
1032
1176
  type: type
1033
1177
  })), {}, {
1034
1178
  "data-cy": "".concat(neetoCist.hyphenate(label), "-input-field"),
@@ -1050,13 +1194,239 @@ var DateField = function DateField(_ref) {
1050
1194
  });
1051
1195
  };
1052
1196
 
1197
+ var create = function create(_ref) {
1198
+ var formId = _ref.formId,
1199
+ questionId = _ref.questionId,
1200
+ payload = _ref.payload;
1201
+ return axios.post(utils.buildUrl(constants$1.EMAIL_VERIFICATIONS_CREATE_URL, {
1202
+ formId: formId,
1203
+ questionId: questionId
1204
+ }), payload, {
1205
+ showToastr: false
1206
+ });
1207
+ };
1208
+ var verify = function verify(_ref2) {
1209
+ var formId = _ref2.formId,
1210
+ questionId = _ref2.questionId,
1211
+ payload = _ref2.payload;
1212
+ return axios.post(utils.buildUrl(constants$1.EMAIL_VERIFICATIONS_VERIFY_URL, {
1213
+ formId: formId,
1214
+ questionId: questionId
1215
+ }), payload, {
1216
+ showToastr: false
1217
+ });
1218
+ };
1219
+ var emailVerificationsApi = {
1220
+ create: create,
1221
+ verify: verify
1222
+ };
1223
+
1224
+ function ownKeys$d(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; }
1225
+ function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1226
+ var getMutationCallbacks = function getMutationCallbacks(options) {
1227
+ return {
1228
+ onSuccess: function onSuccess() {
1229
+ var _options$onSuccess;
1230
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1231
+ args[_key] = arguments[_key];
1232
+ }
1233
+ return (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call.apply(_options$onSuccess, [options].concat(args));
1234
+ },
1235
+ onError: function onError() {
1236
+ var _options$onError;
1237
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1238
+ args[_key2] = arguments[_key2];
1239
+ }
1240
+ return (_options$onError = options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call.apply(_options$onError, [options].concat(args));
1241
+ }
1242
+ };
1243
+ };
1244
+ var useSendEmailVerificationCode = function useSendEmailVerificationCode(formId, questionId) {
1245
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1246
+ return reactQuery.useMutation(_objectSpread$d(_objectSpread$d({
1247
+ mutationFn: function mutationFn(payload) {
1248
+ return emailVerificationsApi.create({
1249
+ formId: formId,
1250
+ questionId: questionId,
1251
+ payload: payload
1252
+ });
1253
+ }
1254
+ }, options), getMutationCallbacks(options)));
1255
+ };
1256
+ var useVerifyEmailVerificationCode = function useVerifyEmailVerificationCode(formId, questionId) {
1257
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1258
+ return reactQuery.useMutation(_objectSpread$d(_objectSpread$d({
1259
+ mutationFn: function mutationFn(payload) {
1260
+ return emailVerificationsApi.verify({
1261
+ formId: formId,
1262
+ questionId: questionId,
1263
+ payload: payload
1264
+ });
1265
+ }
1266
+ }, options), getMutationCallbacks(options)));
1267
+ };
1268
+
1269
+ var SendCodeButton = function SendCodeButton(_ref) {
1270
+ var isCodeVerified = _ref.isCodeVerified,
1271
+ isSendingVerificationCode = _ref.isSendingVerificationCode,
1272
+ handleClick = _ref.handleClick,
1273
+ isDisabled = _ref.isDisabled;
1274
+ var _useTranslation = reactI18next.useTranslation(),
1275
+ t = _useTranslation.t;
1276
+ if (isCodeVerified) {
1277
+ return /*#__PURE__*/jsxRuntime.jsx(CheckCircle, {});
1278
+ }
1279
+ return /*#__PURE__*/jsxRuntime.jsx(Button, {
1280
+ disabled: isDisabled,
1281
+ size: "small",
1282
+ style: "secondary",
1283
+ onClick: handleClick,
1284
+ children: isSendingVerificationCode ? /*#__PURE__*/jsxRuntime.jsx(Spinner, {
1285
+ size: "16"
1286
+ }) : t("neetoForm.emailVerification.sendCode")
1287
+ });
1288
+ };
1289
+
1290
+ var ResendVerificationCode = function ResendVerificationCode(_ref) {
1291
+ var formId = _ref.formId,
1292
+ questionId = _ref.questionId,
1293
+ sendVerificationCode = _ref.sendVerificationCode,
1294
+ isResendDisabled = _ref.isResendDisabled;
1295
+ var _useState = React.useState(getRemainingTime(formId, questionId)),
1296
+ _useState2 = _slicedToArray(_useState, 2),
1297
+ secondsLeft = _useState2[0],
1298
+ setSecondsLeft = _useState2[1];
1299
+ var _useTranslation = reactI18next.useTranslation(),
1300
+ t = _useTranslation.t;
1301
+ React.useEffect(function () {
1302
+ if (secondsLeft <= 0) return undefined;
1303
+ var interval = setTimeout(function () {
1304
+ setSecondsLeft(ramda.pipe(ramda.dec, ramda.max(0)));
1305
+ }, ONE_SECOND);
1306
+ return function () {
1307
+ return clearTimeout(interval);
1308
+ };
1309
+ }, [secondsLeft]);
1310
+ var handleResendClick = function handleResendClick() {
1311
+ if (secondsLeft !== 0) return;
1312
+ sendVerificationCode();
1313
+ setSecondsLeft(RESEND_DELAY);
1314
+ storeLastVerificationCodeSentAt(formId, questionId);
1315
+ };
1316
+ return /*#__PURE__*/jsxRuntime.jsx("p", {
1317
+ children: !isResendDisabled && secondsLeft > 0 ? t("neetoForm.emailVerification.resendInSeconds", {
1318
+ secondsLeft: secondsLeft
1319
+ }) : /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
1320
+ i18nKey: "neetoForm.emailVerification.resendCode",
1321
+ components: {
1322
+ button: /*#__PURE__*/jsxRuntime.jsx(Button, {
1323
+ disabled: isResendDisabled,
1324
+ size: "small",
1325
+ style: "link",
1326
+ onClick: handleResendClick
1327
+ })
1328
+ }
1329
+ })
1330
+ });
1331
+ };
1332
+
1333
+ function ownKeys$c(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; }
1334
+ function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1335
+ var VerifyCode = function VerifyCode(_ref) {
1336
+ var formId = _ref.formId,
1337
+ questionId = _ref.questionId,
1338
+ email = _ref.email,
1339
+ emailVerificationToken = _ref.emailVerificationToken,
1340
+ setIsCodeVerified = _ref.setIsCodeVerified,
1341
+ handleResponseError = _ref.handleResponseError,
1342
+ hasSentVerificationCode = _ref.hasSentVerificationCode,
1343
+ calloutDetails = _ref.calloutDetails,
1344
+ handleSendVerificationCode = _ref.handleSendVerificationCode,
1345
+ isRequired = _ref.isRequired,
1346
+ isVerificationEnabled = _ref.isVerificationEnabled;
1347
+ var _useTranslation = reactI18next.useTranslation(),
1348
+ t = _useTranslation.t;
1349
+ var verificationFieldName = buildVerificationFieldName(questionId);
1350
+ var _useField = formik.useField({
1351
+ name: verificationFieldName,
1352
+ validate: validateVerificationCode({
1353
+ isVerificationEnabled: isVerificationEnabled,
1354
+ isRequired: isRequired,
1355
+ email: email
1356
+ })
1357
+ }),
1358
+ _useField2 = _slicedToArray(_useField, 3),
1359
+ field = _useField2[0],
1360
+ _useField2$ = _useField2[1],
1361
+ touched = _useField2$.touched,
1362
+ error = _useField2$.error,
1363
+ _useField2$2 = _useField2[2],
1364
+ setValue = _useField2$2.setValue,
1365
+ setTouched = _useField2$2.setTouched;
1366
+ var code = field.value;
1367
+ var _useState = React.useState(code),
1368
+ _useState2 = _slicedToArray(_useState, 2),
1369
+ previousCode = _useState2[0],
1370
+ setPreviousCode = _useState2[1];
1371
+ var _useVerifyEmailVerifi = useVerifyEmailVerificationCode(formId, questionId, {
1372
+ onSuccess: function onSuccess(_, _ref2) {
1373
+ var emailVerifications = _ref2.emailVerifications;
1374
+ setIsCodeVerified(true);
1375
+ setPreviousCode(emailVerifications.otp);
1376
+ setEmailVerificationDetail(formId, questionId, _defineProperty(_defineProperty(_defineProperty({}, EMAIL_VERIFICATION_KEYS.EMAIL, emailVerifications.email), EMAIL_VERIFICATION_KEYS.CODE, emailVerifications.otp), EMAIL_VERIFICATION_KEYS.VERIFIED, true));
1377
+ },
1378
+ onError: handleResponseError
1379
+ }),
1380
+ verifyCode = _useVerifyEmailVerifi.mutate,
1381
+ isVerifyingCode = _useVerifyEmailVerifi.isPending;
1382
+ var hasError = neetoCist.isPresent(error);
1383
+ React.useEffect(function () {
1384
+ var handleVerifyCode = function handleVerifyCode() {
1385
+ if (ramda.equals(code, previousCode) || hasError || (code === null || code === void 0 ? void 0 : code.length) !== 6) {
1386
+ return;
1387
+ }
1388
+ verifyCode({
1389
+ emailVerifications: {
1390
+ email: email,
1391
+ token: emailVerificationToken,
1392
+ otp: code
1393
+ }
1394
+ });
1395
+ };
1396
+ handleVerifyCode();
1397
+ }, [code, hasError]);
1398
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1399
+ children: [/*#__PURE__*/jsxRuntime.jsx(Input, _objectSpread$c(_objectSpread$c({}, _objectSpread$c({}, field)), {}, {
1400
+ disabled: isVerifyingCode,
1401
+ error: touched ? error : "",
1402
+ loading: isVerifyingCode,
1403
+ name: verificationFieldName,
1404
+ placeholder: t("neetoForm.emailVerification.verificationCode"),
1405
+ size: "small",
1406
+ onBlur: function onBlur() {
1407
+ return setTouched(true);
1408
+ },
1409
+ onChange: utils.withEventTargetValue(setValue)
1410
+ })), hasSentVerificationCode && /*#__PURE__*/jsxRuntime.jsx(ResendVerificationCode, {
1411
+ formId: formId,
1412
+ questionId: questionId,
1413
+ isResendDisabled: calloutDetails.style === CALLOUT_STYLES.ERROR,
1414
+ sendVerificationCode: handleSendVerificationCode
1415
+ }), calloutDetails.message && /*#__PURE__*/jsxRuntime.jsx(NeetoUICallout, {
1416
+ style: calloutDetails.style,
1417
+ children: calloutDetails.message
1418
+ })]
1419
+ });
1420
+ };
1421
+
1053
1422
  function ownKeys$b(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; }
1054
1423
  function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1055
1424
  var EmailField = function EmailField(_ref) {
1056
1425
  var question = _ref.question,
1057
1426
  customValidator = _ref.customValidator,
1058
- autoComplete = _ref.autoComplete;
1059
- var name = question.id,
1427
+ autoComplete = _ref.autoComplete,
1428
+ isPreview = _ref.preview;
1429
+ var questionId = question.id,
1060
1430
  kind = question.kind,
1061
1431
  isRequired = question.isRequired,
1062
1432
  isReadOnly = question.isReadOnly,
@@ -1064,11 +1434,26 @@ var EmailField = function EmailField(_ref) {
1064
1434
  whitelistedDomains = question.whitelistedDomains,
1065
1435
  isDomainBlacklistingEnabled = question.isDomainBlacklistingEnabled,
1066
1436
  blacklistedDomains = question.blacklistedDomains,
1067
- nodeId = question.nodeId;
1437
+ isVerificationEnabled = question.isVerificationEnabled,
1438
+ nodeId = question.nodeId,
1439
+ formId = question.formId;
1068
1440
  var label = index.fieldWithFallback(question, "label");
1441
+ var _useState = React.useState(DEFAULT_CALLOUT_DETAILS),
1442
+ _useState2 = _slicedToArray(_useState, 2),
1443
+ calloutDetails = _useState2[0],
1444
+ setCalloutDetails = _useState2[1];
1069
1445
  var type = constants.QUESTION_KIND[kind.toUpperCase()].type;
1446
+ var _useState3 = React.useState(getLastVerificationCodeSentAt(questionId) > 0),
1447
+ _useState4 = _slicedToArray(_useState3, 2),
1448
+ hasSentVerificationCode = _useState4[0],
1449
+ setHasSentVerificationCode = _useState4[1];
1450
+ var verificationStatus = getEmailVerificationDetail(formId, questionId, EMAIL_VERIFICATION_KEYS.VERIFIED);
1451
+ var _useStateWithDependen = reactUtils.useStateWithDependency(verificationStatus, [verificationStatus]),
1452
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
1453
+ isCodeVerified = _useStateWithDependen2[0],
1454
+ setIsCodeVerified = _useStateWithDependen2[1];
1070
1455
  var _useField = formik.useField({
1071
- name: name || nodeId,
1456
+ name: questionId || nodeId,
1072
1457
  validate: validateFieldValue({
1073
1458
  kind: kind,
1074
1459
  label: label,
@@ -1086,23 +1471,104 @@ var EmailField = function EmailField(_ref) {
1086
1471
  _useField2$2 = _useField2[2],
1087
1472
  setValue = _useField2$2.setValue,
1088
1473
  setTouched = _useField2$2.setTouched;
1474
+ var _useFormikContext = formik.useFormikContext(),
1475
+ setFieldValue = _useFormikContext.setFieldValue;
1476
+ var email = field.value;
1477
+ var emailVerificationToken = getEmailVerificationDetail(formId, questionId, EMAIL_VERIFICATION_KEYS.TOKEN);
1478
+ var handleResponseError = function handleResponseError(error) {
1479
+ var _error$response;
1480
+ var message = error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 || (_error$response = _error$response.data) === null || _error$response === void 0 ? void 0 : _error$response.error;
1481
+ if ((error === null || error === void 0 ? void 0 : error.status) === 429) {
1482
+ setCalloutDetails({
1483
+ message: message,
1484
+ style: CALLOUT_STYLES.ERROR
1485
+ });
1486
+ storeLastVerificationCodeSentAt(formId, questionId, RESEND_DELAY * ONE_SECOND);
1487
+ } else {
1488
+ Toastr.error(message);
1489
+ }
1490
+ };
1491
+
1492
+ // TODO backend validation
1493
+ var _useSendEmailVerifica = useSendEmailVerificationCode(formId, questionId, {
1494
+ onSuccess: function onSuccess(_ref2) {
1495
+ var token = _ref2.token,
1496
+ message = _ref2.message;
1497
+ setHasSentVerificationCode(true);
1498
+ storeLastVerificationCodeSentAt(formId, questionId);
1499
+ if (!emailVerificationToken) {
1500
+ setEmailVerificationDetail(formId, questionId, _defineProperty({}, EMAIL_VERIFICATION_KEYS.TOKEN, token));
1501
+ }
1502
+ if (message) {
1503
+ setCalloutDetails({
1504
+ message: message,
1505
+ style: CALLOUT_STYLES.WARNING
1506
+ });
1507
+ }
1508
+ },
1509
+ onError: handleResponseError
1510
+ }),
1511
+ sendVerificationCode = _useSendEmailVerifica.mutate,
1512
+ isSendingVerificationCode = _useSendEmailVerifica.isPending;
1513
+ var resetVerifiedData = function resetVerifiedData(email) {
1514
+ var verifiedEmail = getEmailVerificationDetail(formId, questionId, EMAIL_VERIFICATION_KEYS.EMAIL);
1515
+ if (email !== verifiedEmail) {
1516
+ removeEmailVerificationDetail(formId, questionId, ramda.values(ramda.omit(["TOKEN"], EMAIL_VERIFICATION_KEYS)));
1517
+ setIsCodeVerified(false);
1518
+ setFieldValue(buildVerificationFieldName(questionId), "");
1519
+ setHasSentVerificationCode(false);
1520
+ setCalloutDetails(DEFAULT_CALLOUT_DETAILS);
1521
+ }
1522
+ };
1089
1523
  var handleFieldChange = utils.withEventTargetValue(setValue);
1090
- return /*#__PURE__*/jsxRuntime.jsx(Input, _objectSpread$b(_objectSpread$b({}, _objectSpread$b(_objectSpread$b({
1091
- type: type
1092
- }, field), {}, {
1093
- autoComplete: autoComplete,
1094
- label: label
1095
- })), {}, {
1096
- disabled: isReadOnly,
1097
- error: touched ? error : "",
1098
- name: kind,
1099
- placeholder: index.fieldWithFallback(question, "placeholder"),
1100
- required: isRequired,
1101
- onBlur: function onBlur() {
1102
- return setTouched(true);
1103
- },
1104
- onChange: handleFieldChange
1105
- }));
1524
+ var handleSendVerificationCode = function handleSendVerificationCode() {
1525
+ return sendVerificationCode({
1526
+ emailVerifications: {
1527
+ email: email,
1528
+ token: emailVerificationToken
1529
+ }
1530
+ });
1531
+ };
1532
+ var shouldShowVerifyButton = isVerificationEnabled && (isPreview || neetoCist.isPresent(email) && neetoCist.isNotPresent(error));
1533
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
1534
+ className: "flex-col space-y-2",
1535
+ children: [/*#__PURE__*/jsxRuntime.jsx(Input, _objectSpread$b(_objectSpread$b({}, _objectSpread$b(_objectSpread$b({
1536
+ type: type
1537
+ }, field), {}, {
1538
+ autoComplete: autoComplete,
1539
+ label: label
1540
+ }, shouldShowVerifyButton && {
1541
+ suffix: /*#__PURE__*/jsxRuntime.jsx(SendCodeButton, {
1542
+ isCodeVerified: isCodeVerified,
1543
+ isSendingVerificationCode: isSendingVerificationCode,
1544
+ handleClick: isPreview ? neetoCist.noop : handleSendVerificationCode,
1545
+ isDisabled: isCodeVerified || hasSentVerificationCode
1546
+ })
1547
+ })), {}, {
1548
+ disabled: isReadOnly,
1549
+ error: touched && !isCodeVerified ? error : "",
1550
+ name: kind,
1551
+ placeholder: index.fieldWithFallback(question, "placeholder"),
1552
+ required: isRequired,
1553
+ onBlur: function onBlur() {
1554
+ return setTouched(true);
1555
+ },
1556
+ onBlurCapture: utils.withEventTargetValue(resetVerifiedData),
1557
+ onChange: handleFieldChange
1558
+ })), shouldShowVerifyButton && !isCodeVerified && /*#__PURE__*/jsxRuntime.jsx(VerifyCode, {
1559
+ calloutDetails: calloutDetails,
1560
+ email: email,
1561
+ emailVerificationToken: emailVerificationToken,
1562
+ formId: formId,
1563
+ handleResponseError: handleResponseError,
1564
+ handleSendVerificationCode: handleSendVerificationCode,
1565
+ hasSentVerificationCode: hasSentVerificationCode,
1566
+ isRequired: isRequired,
1567
+ isVerificationEnabled: isVerificationEnabled,
1568
+ questionId: questionId,
1569
+ setIsCodeVerified: setIsCodeVerified
1570
+ })]
1571
+ });
1106
1572
  };
1107
1573
 
1108
1574
  var FileUploadField = function FileUploadField(_ref) {
@@ -1827,6 +2293,7 @@ var containsIgnoreCase = function containsIgnoreCase(string, substring) {
1827
2293
 
1828
2294
  exports.FormikWrap = FormikWrap;
1829
2295
  exports.buildAutoCompleteAttribute = buildAutoCompleteAttribute;
2296
+ exports.clearEmailVerificationDetails = clearEmailVerificationDetails;
1830
2297
  exports.clearLocalStorageValues = clearLocalStorageValues;
1831
2298
  exports.clientI18nInstance = clientI18nInstance;
1832
2299
  exports.generateFormResponse = generateFormResponse;
@@ -1835,4 +2302,4 @@ exports.getFieldComponent = getFieldComponent;
1835
2302
  exports.getWithExpiry = getWithExpiry;
1836
2303
  exports.mergeRefs = mergeRefs;
1837
2304
  exports.renderButtonsInOrder = renderButtonsInOrder;
1838
- //# sourceMappingURL=utils-1blEk5zb.js.map
2305
+ //# sourceMappingURL=utils-DdrUdmyb.js.map