@bigbinary/neeto-form-frontend 3.1.0 → 3.2.1

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.cjs.js CHANGED
@@ -42,6 +42,7 @@ var Button$1 = require('@bigbinary/neetoui/Button');
42
42
  var Accordion = require('@bigbinary/neetoui/Accordion');
43
43
  var Input = require('@bigbinary/neetoui/formik/Input');
44
44
  var yup = require('yup');
45
+ var Radio = require('@bigbinary/neetoui/formik/Radio');
45
46
  var Checkbox$1 = require('@bigbinary/neetoui/formik/Checkbox');
46
47
  var Checkbox = require('@bigbinary/neetoui/Checkbox');
47
48
  var Delete = require('@bigbinary/neeto-icons/Delete');
@@ -61,19 +62,22 @@ var libphonenumberJs = require('libphonenumber-js');
61
62
  var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
62
63
  var NeetoUIMultiEmailInput = require('@bigbinary/neetoui/MultiEmailInput');
63
64
  var PhoneNumber = require('@bigbinary/neeto-molecules/PhoneNumber');
65
+ var path = require('path');
66
+ var Refresh = require('@bigbinary/neeto-icons/Refresh');
67
+ var Input$1 = require('@bigbinary/neetoui/Input');
68
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
69
+ var ReCAPTCHA = require('react-google-recaptcha');
64
70
  var localeData = require('dayjs/plugin/localeData');
65
71
  var utc = require('dayjs/plugin/utc');
66
72
  var weekday = require('dayjs/plugin/weekday');
67
73
  var weekOfYear = require('dayjs/plugin/weekOfYear');
68
74
  var DatePicker = require('@bigbinary/neetoui/DatePicker');
69
- var path = require('path');
70
- var Input$1 = require('@bigbinary/neetoui/Input');
71
75
  var activestorage = require('@rails/activestorage');
72
76
  var reactDropzone = require('react-dropzone');
73
77
  var FileGeneric = require('@bigbinary/neeto-icons/FileGeneric');
74
78
  var framerMotion = require('framer-motion');
75
79
  var Select$1 = require('@bigbinary/neetoui/Select');
76
- var Radio = require('@bigbinary/neetoui/Radio');
80
+ var Radio$1 = require('@bigbinary/neetoui/Radio');
77
81
  var Textarea$1 = require('@bigbinary/neetoui/Textarea');
78
82
  var server = require('react-dom/server');
79
83
 
@@ -124,6 +128,7 @@ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button$1);
124
128
  var Accordion__default = /*#__PURE__*/_interopDefaultLegacy(Accordion);
125
129
  var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
126
130
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
131
+ var Radio__default = /*#__PURE__*/_interopDefaultLegacy(Radio);
127
132
  var Checkbox__default$1 = /*#__PURE__*/_interopDefaultLegacy(Checkbox$1);
128
133
  var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
129
134
  var Delete__default = /*#__PURE__*/_interopDefaultLegacy(Delete);
@@ -141,16 +146,18 @@ var Check__default = /*#__PURE__*/_interopDefaultLegacy(Check);
141
146
  var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
142
147
  var EditorContent__default = /*#__PURE__*/_interopDefaultLegacy(EditorContent);
143
148
  var NeetoUIMultiEmailInput__default = /*#__PURE__*/_interopDefaultLegacy(NeetoUIMultiEmailInput);
149
+ var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
150
+ var Refresh__default = /*#__PURE__*/_interopDefaultLegacy(Refresh);
151
+ var Input__default$1 = /*#__PURE__*/_interopDefaultLegacy(Input$1);
152
+ var ReCAPTCHA__default = /*#__PURE__*/_interopDefaultLegacy(ReCAPTCHA);
144
153
  var localeData__default = /*#__PURE__*/_interopDefaultLegacy(localeData);
145
154
  var utc__default = /*#__PURE__*/_interopDefaultLegacy(utc);
146
155
  var weekday__default = /*#__PURE__*/_interopDefaultLegacy(weekday);
147
156
  var weekOfYear__default = /*#__PURE__*/_interopDefaultLegacy(weekOfYear);
148
157
  var DatePicker__default = /*#__PURE__*/_interopDefaultLegacy(DatePicker);
149
- var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
150
- var Input__default$1 = /*#__PURE__*/_interopDefaultLegacy(Input$1);
151
158
  var FileGeneric__default = /*#__PURE__*/_interopDefaultLegacy(FileGeneric);
152
159
  var Select__default$1 = /*#__PURE__*/_interopDefaultLegacy(Select$1);
153
- var Radio__default = /*#__PURE__*/_interopDefaultLegacy(Radio);
160
+ var Radio__default$1 = /*#__PURE__*/_interopDefaultLegacy(Radio$1);
154
161
  var Textarea__default$1 = /*#__PURE__*/_interopDefaultLegacy(Textarea$1);
155
162
 
156
163
  var BASE_URL = "/form";
@@ -461,6 +468,9 @@ var QUESTION_KIND = {
461
468
  },
462
469
  FILE_UPLOAD: {
463
470
  value: "file_upload"
471
+ },
472
+ CAPTCHA: {
473
+ value: "captcha"
464
474
  }
465
475
  };
466
476
  var RATING_VALUES = {
@@ -954,7 +964,12 @@ var QUESTION_TYPES = {
954
964
  STAR_RATING: "star_rating",
955
965
  RATING: "rating",
956
966
  DATE: "date",
957
- FILE_UPLOAD: "file_upload"
967
+ FILE_UPLOAD: "file_upload",
968
+ CAPTCHA: "captcha"
969
+ };
970
+ var CAPTCHA_TYPES = {
971
+ RECAPTCHA_V2: "recaptcha_v2",
972
+ MATH_CAPTCHA: "math_captcha"
958
973
  };
959
974
 
960
975
  var PARAGRAPH$1 = QUESTION_TYPES.PARAGRAPH,
@@ -963,12 +978,14 @@ var PARAGRAPH$1 = QUESTION_TYPES.PARAGRAPH,
963
978
  CHECKBOX$2 = QUESTION_TYPES.CHECKBOX,
964
979
  RADIO$2 = QUESTION_TYPES.RADIO,
965
980
  DROPDOWN$2 = QUESTION_TYPES.DROPDOWN,
966
- FILE_UPLOAD$3 = QUESTION_TYPES.FILE_UPLOAD;
981
+ FILE_UPLOAD$3 = QUESTION_TYPES.FILE_UPLOAD,
982
+ CAPTCHA$3 = QUESTION_TYPES.CAPTCHA;
967
983
  var DEFAULT_AVAILABLE_LANGUAGES = [{
968
984
  code: "en",
969
985
  name: "English"
970
986
  }];
971
- var QUESTIONS_WITHOUT_FIELD_CODE = [PARAGRAPH$1, TERMS_AND_CONDITION$1, CONDITION$1, FILE_UPLOAD$3];
987
+ var MANDATORY_KINDS = [CAPTCHA$3];
988
+ var QUESTIONS_WITHOUT_FIELD_CODE = [PARAGRAPH$1, TERMS_AND_CONDITION$1, CONDITION$1, FILE_UPLOAD$3, CAPTCHA$3];
972
989
  var QUESTIONS_INITIAL_VALUE = {
973
990
  enabled: false,
974
991
  questions: [{
@@ -1253,7 +1270,8 @@ var NAME$1 = QUESTION_TYPES.NAME,
1253
1270
  STAR_RATING$2 = QUESTION_TYPES.STAR_RATING,
1254
1271
  RATING$2 = QUESTION_TYPES.RATING,
1255
1272
  DATE$1 = QUESTION_TYPES.DATE,
1256
- FILE_UPLOAD$2 = QUESTION_TYPES.FILE_UPLOAD;
1273
+ FILE_UPLOAD$2 = QUESTION_TYPES.FILE_UPLOAD,
1274
+ CAPTCHA$2 = QUESTION_TYPES.CAPTCHA;
1257
1275
  var DEFAULT_OPTIONS = new Array(MINIMUM_OPTIONS).fill({
1258
1276
  label: ""
1259
1277
  });
@@ -1410,6 +1428,15 @@ var QUESTION_KINDS = [{
1410
1428
  multipleFilesAllowed: true,
1411
1429
  allowedFileTypes: DEFAULT_ALLOWED_FILE_TYPES
1412
1430
  }
1431
+ }, {
1432
+ type: CAPTCHA$2,
1433
+ label: i18next.t("neetoForm.fields.captcha"),
1434
+ isSingular: true,
1435
+ defaults: {
1436
+ label: "",
1437
+ isRequired: true,
1438
+ variant: CAPTCHA_TYPES.RECAPTCHA_V2
1439
+ }
1413
1440
  }];
1414
1441
 
1415
1442
  // To show the question type as label in accordion
@@ -1805,6 +1832,9 @@ var arrayHelpers = {
1805
1832
 
1806
1833
  function ownKeys$v(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; }
1807
1834
  function _objectSpread$v(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$v(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$v(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1835
+ var isChoiceQuestion = function isChoiceQuestion(question) {
1836
+ return ramda.includes(question === null || question === void 0 ? void 0 : question.kind, SELECTABLE_KINDS);
1837
+ };
1808
1838
  var generateUniqueFieldCode = function generateUniqueFieldCode(type, questions) {
1809
1839
  var fieldCodes = ramda.pluck("fieldCode", neetoCist.filterBy({
1810
1840
  kind: type
@@ -1902,6 +1932,7 @@ var getAvailableQuestionKinds = function getAvailableQuestionKinds(_ref5) {
1902
1932
  });
1903
1933
  }, allQuestionKinds);
1904
1934
  };
1935
+ var formatQuestionAttributesForClone = ramda.when(isChoiceQuestion, ramda.assoc("isCloning", true));
1905
1936
 
1906
1937
  var _path$2, _path2, _path3, _path4, _path5, _path6, _path7;
1907
1938
  function _extends$2() { _extends$2 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
@@ -1957,8 +1988,9 @@ var NAME = QUESTION_TYPES.NAME,
1957
1988
  STAR_RATING$1 = QUESTION_TYPES.STAR_RATING,
1958
1989
  RATING$1 = QUESTION_TYPES.RATING,
1959
1990
  DATE = QUESTION_TYPES.DATE,
1960
- FILE_UPLOAD$1 = QUESTION_TYPES.FILE_UPLOAD;
1961
- var QUESTIONS_WITH_ADDITIONAL_DATA = [].concat(_toConsumableArray__default["default"](SELECTABLE_KINDS), [STAR_RATING$1, RATING$1, FILE_UPLOAD$1]);
1991
+ FILE_UPLOAD$1 = QUESTION_TYPES.FILE_UPLOAD,
1992
+ CAPTCHA$1 = QUESTION_TYPES.CAPTCHA;
1993
+ var QUESTIONS_WITH_ADDITIONAL_DATA = [].concat(_toConsumableArray__default["default"](SELECTABLE_KINDS), [STAR_RATING$1, RATING$1, FILE_UPLOAD$1, CAPTCHA$1]);
1962
1994
  var QUESTIONS_WITH_PLACEHOLDERS = [NAME, PHONE, EMAIL, ADDITIONAL_GUESTS, TEXT, TEXTAREA, RICH_TEXT, INTEGER, DECIMAL, DATE];
1963
1995
  var DEFAULT_PLACEHOLDERS = {
1964
1996
  CHECKBOX: i18next.t("neetoForm.questions.common.questionFields.field.labelExample", {
@@ -1985,11 +2017,14 @@ var FormikAdaptiveInput = function FormikAdaptiveInput(_ref) {
1985
2017
  name = _ref.name,
1986
2018
  otherProps = _objectWithoutProperties__default["default"](_ref, _excluded$b);
1987
2019
  var _useFormikContext = formik.useFormikContext(),
2020
+ dirty = _useFormikContext.dirty,
2021
+ isValid = _useFormikContext.isValid,
1988
2022
  submitForm = _useFormikContext.submitForm;
1989
2023
  var handleKeyDown = function handleKeyDown(event) {
1990
2024
  if (event.key !== "Enter" || event.shiftKey) return;
1991
2025
  event.preventDefault();
1992
- submitForm();
2026
+ if (reactUtils.isMetaKeyPressed(event)) return;
2027
+ dirty && isValid && submitForm();
1993
2028
  };
1994
2029
  var handleFocus = function handleFocus(element) {
1995
2030
  var end = element.value.length;
@@ -2503,6 +2538,24 @@ var Edit = function Edit(_ref) {
2503
2538
  });
2504
2539
  };
2505
2540
 
2541
+ var Captcha = reactUtils.withT(function (_ref) {
2542
+ var t = _ref.t;
2543
+ return /*#__PURE__*/jsxRuntime.jsxs(Radio__default["default"], {
2544
+ label: t("neetoForm.common.captchaType"),
2545
+ labelProps: {
2546
+ required: true
2547
+ },
2548
+ name: "variant",
2549
+ children: [/*#__PURE__*/jsxRuntime.jsx(Radio__default["default"].Item, {
2550
+ label: t("neetoForm.common.reCaptchaV2"),
2551
+ value: CAPTCHA_TYPES.RECAPTCHA_V2
2552
+ }), /*#__PURE__*/jsxRuntime.jsx(Radio__default["default"].Item, {
2553
+ label: t("neetoForm.common.mathCaptcha"),
2554
+ value: CAPTCHA_TYPES.MATH_CAPTCHA
2555
+ })]
2556
+ });
2557
+ });
2558
+
2506
2559
  var FileGroup = function FileGroup(_ref) {
2507
2560
  var name = _ref.name,
2508
2561
  label = _ref.label,
@@ -2832,7 +2885,8 @@ var CHECKBOX = QUESTION_TYPES.CHECKBOX,
2832
2885
  DROPDOWN = QUESTION_TYPES.DROPDOWN,
2833
2886
  STAR_RATING = QUESTION_TYPES.STAR_RATING,
2834
2887
  RATING = QUESTION_TYPES.RATING,
2835
- FILE_UPLOAD = QUESTION_TYPES.FILE_UPLOAD;
2888
+ FILE_UPLOAD = QUESTION_TYPES.FILE_UPLOAD,
2889
+ CAPTCHA = QUESTION_TYPES.CAPTCHA;
2836
2890
  var transformValueForOption = function transformValueForOption(_ref) {
2837
2891
  var label = _ref.label,
2838
2892
  type = _ref.type;
@@ -2854,6 +2908,8 @@ var renderAdditionalData = function renderAdditionalData(_ref2) {
2854
2908
  return /*#__PURE__*/jsxRuntime.jsx(StarRating$2, {});
2855
2909
  case FILE_UPLOAD:
2856
2910
  return /*#__PURE__*/jsxRuntime.jsx(FileUpload$1, {});
2911
+ case CAPTCHA:
2912
+ return /*#__PURE__*/jsxRuntime.jsx(Captcha, {});
2857
2913
  default:
2858
2914
  return null;
2859
2915
  }
@@ -3034,12 +3090,11 @@ var Form = function Form(_ref) {
3034
3090
  });
3035
3091
  var displayOrder = selectedQuestion.displayOrder + 1;
3036
3092
  var attributes = ramda.mergeLeft({
3037
- displayOrder: displayOrder,
3038
- isCloning: true
3093
+ displayOrder: displayOrder
3039
3094
  }, values);
3040
3095
  var payload = _objectSpread$n({
3041
3096
  language: selectedLanguage,
3042
- neetoFormQuestion: attributes
3097
+ neetoFormQuestion: formatQuestionAttributesForClone(attributes)
3043
3098
  }, buildRequestArgs);
3044
3099
  createQuestion(payload, {
3045
3100
  onSuccess: function onSuccess(_ref2) {
@@ -3279,7 +3334,7 @@ var BuildForm = function BuildForm(_ref) {
3279
3334
  };
3280
3335
  var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref5) {
3281
3336
  var kind = _ref5.kind;
3282
- return requiredFields.includes(kind);
3337
+ return ramda.concat(MANDATORY_KINDS, requiredFields).includes(kind);
3283
3338
  };
3284
3339
  var isDisabledFieldLabel = isFieldLabelDisabled !== null && isFieldLabelDisabled !== void 0 ? isFieldLabelDisabled : function () {
3285
3340
  return false;
@@ -3593,7 +3648,7 @@ var getInvalidTypeError = function getInvalidTypeError(label, type) {
3593
3648
  });
3594
3649
  };
3595
3650
 
3596
- var _excluded$4 = ["kind", "label", "isRequired", "customValidator"];
3651
+ var _excluded$4 = ["kind", "customValidator"];
3597
3652
  var _fieldKindValidatorMa;
3598
3653
  function ownKeys$j(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; }
3599
3654
  function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -3738,25 +3793,29 @@ var validateFileUploadField = function validateFileUploadField(_ref13) {
3738
3793
  files: files_schema
3739
3794
  });
3740
3795
  };
3741
- var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.EMAIL.value, validateEmailField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.NAME.value, validateNameField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.PHONE.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.TEXT.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.QUESTION.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.TEXTAREA.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.DECIMAL.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.INTEGER.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.RATING.value, validateRatingField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.TERMS.value, validateTermsField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.DATE.value, validateDateField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.STAR_RATING.value, validateStarRatingField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.RICH_TEXT.value, validateRichTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.CONDITION.value, validateConditionField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), _fieldKindValidatorMa);
3742
- var validateFieldValue = function validateFieldValue(_ref14) {
3743
- var kind = _ref14.kind,
3744
- label = _ref14.label,
3745
- isRequired = _ref14.isRequired,
3746
- customValidator = _ref14.customValidator,
3747
- otherProps = _objectWithoutProperties__default["default"](_ref14, _excluded$4);
3796
+ var validateCaptchaField = function validateCaptchaField(_ref14) {
3797
+ var variant = _ref14.variant;
3798
+ return variant === CAPTCHA_TYPES.MATH_CAPTCHA ? yup__namespace.mixed().test("verification failed", t$1("neetoForm.error.captchaVerificationFailed"), function (value) {
3799
+ return neetoCist.isNotPresent(value) || value;
3800
+ }).transform(function (value) {
3801
+ return value === "" ? null : value;
3802
+ }).required(t$1("neetoForm.error.incompleteCaptcha")) : yup__namespace.string().trim().required(t$1("neetoForm.error.incompleteCaptcha"));
3803
+ };
3804
+ var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.EMAIL.value, validateEmailField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.NAME.value, validateNameField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.PHONE.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.TEXT.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.QUESTION.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.TEXTAREA.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.DECIMAL.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.INTEGER.value, validateTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.RATING.value, validateRatingField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.TERMS.value, validateTermsField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.DATE.value, validateDateField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.STAR_RATING.value, validateStarRatingField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.RICH_TEXT.value, validateRichTextField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.CONDITION.value, validateConditionField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), _defineProperty__default["default"](_fieldKindValidatorMa, QUESTION_KIND.CAPTCHA.value, validateCaptchaField), _fieldKindValidatorMa);
3805
+ var validateFieldValue = function validateFieldValue(_ref15) {
3806
+ var kind = _ref15.kind,
3807
+ customValidator = _ref15.customValidator,
3808
+ otherProps = _objectWithoutProperties__default["default"](_ref15, _excluded$4);
3748
3809
  return function (value) {
3749
3810
  if (!(kind in fieldKindValidatorMap)) return;
3750
3811
  var validator = fieldKindValidatorMap[kind];
3751
3812
  var schema = customValidator || validator(_objectSpread$j({
3752
- kind: kind,
3753
- label: label,
3754
- isRequired: isRequired
3813
+ kind: kind
3755
3814
  }, otherProps));
3756
3815
 
3757
3816
  // eslint-disable-next-line consistent-return, no-async-promise-executor
3758
3817
  return new Promise( /*#__PURE__*/function () {
3759
- var _ref15 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(resolve) {
3818
+ var _ref16 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(resolve) {
3760
3819
  return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
3761
3820
  while (1) switch (_context.prev = _context.next) {
3762
3821
  case 0:
@@ -3778,7 +3837,7 @@ var validateFieldValue = function validateFieldValue(_ref14) {
3778
3837
  }, _callee, null, [[0, 6]]);
3779
3838
  }));
3780
3839
  return function (_x) {
3781
- return _ref15.apply(this, arguments);
3840
+ return _ref16.apply(this, arguments);
3782
3841
  };
3783
3842
  }());
3784
3843
  };
@@ -3841,39 +3900,6 @@ var MultipleEmailInput = function MultipleEmailInput(_ref) {
3841
3900
 
3842
3901
  function ownKeys$i(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; }
3843
3902
  function _objectSpread$i(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$i(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$i(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3844
- var ConditionField = function ConditionField(_ref) {
3845
- var question = _ref.question,
3846
- customValidator = _ref.customValidator;
3847
- var name = question.id,
3848
- kind = question.kind,
3849
- isRequired = question.isRequired,
3850
- nodeId = question.nodeId;
3851
- var label = fieldWithFallback(question, "label");
3852
- return /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
3853
- name: name || nodeId,
3854
- validate: validateFieldValue({
3855
- kind: kind,
3856
- label: label,
3857
- isRequired: isRequired,
3858
- customValidator: customValidator
3859
- }),
3860
- children: function children(_ref2) {
3861
- var meta = _ref2.meta,
3862
- field = _ref2.field;
3863
- return /*#__PURE__*/jsxRuntime.jsx(Checkbox__default["default"], _objectSpread$i(_objectSpread$i({}, _objectSpread$i(_objectSpread$i({}, field), {}, {
3864
- label: label,
3865
- name: name
3866
- })), {}, {
3867
- checked: field.value,
3868
- error: meta.touched ? meta.error : "",
3869
- required: isRequired
3870
- }));
3871
- }
3872
- });
3873
- };
3874
-
3875
- 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; }
3876
- 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__default["default"](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; }
3877
3903
  var t = clientI18nInstance.t;
3878
3904
  var toEmailValues = function toEmailValues() {
3879
3905
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -3967,7 +3993,7 @@ var generateInitValues = function generateInitValues(_ref7) {
3967
3993
  var valuesMap = {};
3968
3994
  if (initialValues) {
3969
3995
  valuesMap = initialValues.reduce(function (acc, answer) {
3970
- return _objectSpread$h(_objectSpread$h({}, acc), {}, _defineProperty__default["default"]({}, answer.questionId, {
3996
+ return _objectSpread$i(_objectSpread$i({}, acc), {}, _defineProperty__default["default"]({}, answer.questionId, {
3971
3997
  value: answer.value,
3972
3998
  optionIds: answer.optionIds
3973
3999
  }));
@@ -4196,6 +4222,211 @@ var getSelectedRating = function getSelectedRating(value) {
4196
4222
  return isNaN(parsedValue) ? -1 : parsedValue;
4197
4223
  };
4198
4224
 
4225
+ var CaptchaField = function CaptchaField(_ref) {
4226
+ var question = _ref.question,
4227
+ preview = _ref.preview,
4228
+ customValidator = _ref.customValidator,
4229
+ captchaRef = _ref.captchaRef;
4230
+ var name = question.id,
4231
+ kind = question.kind,
4232
+ isRequired = question.isRequired,
4233
+ variant = question.variant,
4234
+ nodeId = question.nodeId;
4235
+ var label = fieldWithFallback(question, "label");
4236
+ var _useField = formik.useField({
4237
+ name: name || nodeId,
4238
+ validate: validateFieldValue({
4239
+ kind: kind,
4240
+ label: label,
4241
+ isRequired: isRequired,
4242
+ customValidator: customValidator,
4243
+ variant: variant
4244
+ })
4245
+ }),
4246
+ _useField2 = _slicedToArray__default["default"](_useField, 3);
4247
+ _useField2[0];
4248
+ var _useField2$ = _useField2[1],
4249
+ touched = _useField2$.touched,
4250
+ error = _useField2$.error,
4251
+ _useField2$2 = _useField2[2],
4252
+ setValue = _useField2$2.setValue,
4253
+ setTouched = _useField2$2.setTouched;
4254
+ var handleVerifyCaptcha = function handleVerifyCaptcha(response) {
4255
+ setTouched(true);
4256
+ setValue(response);
4257
+ };
4258
+ var Component = CAPTCHA_COMPONENT_MAP[variant];
4259
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
4260
+ className: "neeto-form-engine-input__wrapper",
4261
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
4262
+ className: "neeto-form-engine-input__label-wrapper",
4263
+ children: label && /*#__PURE__*/jsxRuntime.jsx("label", {
4264
+ className: "neeto-form-engine-label",
4265
+ children: getLabel(label, isRequired)
4266
+ })
4267
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
4268
+ className: classnames__default["default"]({
4269
+ "pointer-events-none": preview
4270
+ }),
4271
+ children: /*#__PURE__*/jsxRuntime.jsx(Component, {
4272
+ captchaRef: captchaRef,
4273
+ handleVerifyCaptcha: handleVerifyCaptcha,
4274
+ handleBlur: function handleBlur() {
4275
+ return setTouched(true);
4276
+ }
4277
+ })
4278
+ }), touched && error && /*#__PURE__*/jsxRuntime.jsx("p", {
4279
+ className: "neeto-form-engine-input__error",
4280
+ "data-cy": "neeto-form-engine-captcha-error",
4281
+ children: error
4282
+ })]
4283
+ });
4284
+ };
4285
+
4286
+ var MATH_OPERATORS = {
4287
+ PLUS: "+",
4288
+ MINUS: "-"
4289
+ };
4290
+
4291
+ var generateRandomOperation = function generateRandomOperation() {
4292
+ var firstNumber = neetoCist.getRandomInt(1, 50);
4293
+ var secondNumber = neetoCist.getRandomInt(1, 50);
4294
+ var operator = neetoCist.randomPick.apply(void 0, _toConsumableArray__default["default"](ramda.values(MATH_OPERATORS)));
4295
+ return {
4296
+ firstNumber: firstNumber,
4297
+ secondNumber: secondNumber,
4298
+ operator: operator
4299
+ };
4300
+ };
4301
+
4302
+ var MathCaptcha = function MathCaptcha(_ref) {
4303
+ var captchaRef = _ref.captchaRef,
4304
+ handleVerifyCaptcha = _ref.handleVerifyCaptcha,
4305
+ handleBlur = _ref.handleBlur;
4306
+ var _useState = React$2.useState(generateRandomOperation()),
4307
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
4308
+ operation = _useState2[0],
4309
+ setOperation = _useState2[1];
4310
+ var _useState3 = React$2.useState(""),
4311
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
4312
+ userInput = _useState4[0],
4313
+ setUserInput = _useState4[1];
4314
+ var firstNumber = operation.firstNumber,
4315
+ secondNumber = operation.secondNumber,
4316
+ operator = operation.operator;
4317
+ var resetCaptcha = function resetCaptcha() {
4318
+ setOperation(generateRandomOperation());
4319
+ setUserInput("");
4320
+ };
4321
+ React$2.useImperativeHandle(captchaRef, function () {
4322
+ return {
4323
+ reset: resetCaptcha
4324
+ };
4325
+ });
4326
+ var calculateResult = function calculateResult() {
4327
+ switch (operator) {
4328
+ case MATH_OPERATORS.PLUS:
4329
+ return firstNumber + secondNumber;
4330
+ case MATH_OPERATORS.MINUS:
4331
+ return firstNumber - secondNumber;
4332
+ default:
4333
+ return null;
4334
+ }
4335
+ };
4336
+ var verifyCaptcha = function verifyCaptcha() {
4337
+ var result = calculateResult();
4338
+ if (result === null) return;
4339
+ handleVerifyCaptcha(result === Number(userInput));
4340
+ };
4341
+ reactUtils.useUpdateEffect(function () {
4342
+ verifyCaptcha();
4343
+ }, [userInput]);
4344
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
4345
+ className: "neeto-form-nano-math-captcha",
4346
+ ref: captchaRef,
4347
+ children: [/*#__PURE__*/jsxRuntime.jsx("button", {
4348
+ className: "neeto-form-nano-math-captcha__button",
4349
+ type: "button",
4350
+ onClick: resetCaptcha,
4351
+ children: /*#__PURE__*/jsxRuntime.jsx(Refresh__default["default"], {})
4352
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
4353
+ className: "neeto-form-nano-math-captcha__equation",
4354
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
4355
+ children: firstNumber
4356
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
4357
+ children: operator
4358
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
4359
+ children: secondNumber
4360
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
4361
+ children: "="
4362
+ })]
4363
+ }), /*#__PURE__*/jsxRuntime.jsx(Input__default$1["default"], {
4364
+ required: true,
4365
+ className: "neeto-form-nano-math-captcha__input",
4366
+ value: userInput,
4367
+ onBlur: handleBlur,
4368
+ onChange: utils.withEventTargetValue(setUserInput)
4369
+ })]
4370
+ });
4371
+ };
4372
+
4373
+ var Recaptcha = function Recaptcha(_ref) {
4374
+ var captchaRef = _ref.captchaRef,
4375
+ handleVerifyCaptcha = _ref.handleVerifyCaptcha;
4376
+ var verifyRecaptcha = function verifyRecaptcha(response) {
4377
+ if (response === null) {
4378
+ return;
4379
+ }
4380
+ handleVerifyCaptcha(response);
4381
+ };
4382
+ var expiredRecaptcha = function expiredRecaptcha() {
4383
+ var _captchaRef$current;
4384
+ captchaRef === null || captchaRef === void 0 || (_captchaRef$current = captchaRef.current) === null || _captchaRef$current === void 0 || _captchaRef$current.reset();
4385
+ handleVerifyCaptcha("");
4386
+ };
4387
+ return /*#__PURE__*/jsxRuntime.jsx(ReCAPTCHA__default["default"], {
4388
+ hl: clientI18nInstance.language,
4389
+ ref: captchaRef,
4390
+ sitekey: initializers.globalProps.formNanoRecaptchaV2SiteKey,
4391
+ onChange: verifyRecaptcha,
4392
+ onErrored: neetoCist.noop,
4393
+ onExpired: expiredRecaptcha
4394
+ }, clientI18nInstance.language);
4395
+ };
4396
+
4397
+ 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; }
4398
+ 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__default["default"](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; }
4399
+ var ConditionField = function ConditionField(_ref) {
4400
+ var question = _ref.question,
4401
+ customValidator = _ref.customValidator;
4402
+ var name = question.id,
4403
+ kind = question.kind,
4404
+ isRequired = question.isRequired,
4405
+ nodeId = question.nodeId;
4406
+ var label = fieldWithFallback(question, "label");
4407
+ return /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
4408
+ name: name || nodeId,
4409
+ validate: validateFieldValue({
4410
+ kind: kind,
4411
+ label: label,
4412
+ isRequired: isRequired,
4413
+ customValidator: customValidator
4414
+ }),
4415
+ children: function children(_ref2) {
4416
+ var meta = _ref2.meta,
4417
+ field = _ref2.field;
4418
+ return /*#__PURE__*/jsxRuntime.jsx(Checkbox__default["default"], _objectSpread$h(_objectSpread$h({}, _objectSpread$h(_objectSpread$h({}, field), {}, {
4419
+ label: label,
4420
+ name: name
4421
+ })), {}, {
4422
+ checked: field.value,
4423
+ error: meta.touched ? meta.error : "",
4424
+ required: isRequired
4425
+ }));
4426
+ }
4427
+ });
4428
+ };
4429
+
4199
4430
  var _excluded$3 = ["value"];
4200
4431
  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; }
4201
4432
  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__default["default"](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; }
@@ -4705,15 +4936,15 @@ var FilePreview = reactUtils.withT(function (_ref) {
4705
4936
  }) : ""
4706
4937
  })]
4707
4938
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
4708
- className: classnames__default["default"]("neeto-form-engine-file-upload__actions"),
4939
+ className: "neeto-form-engine-file-upload__actions",
4709
4940
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
4710
4941
  className: classnames__default["default"]("neeto-form-engine-file-upload__success-indicator", {
4711
4942
  "neeto-form-engine-file-upload__success-indicator--active": file.url
4712
4943
  }),
4713
4944
  children: file.url && /*#__PURE__*/jsxRuntime.jsx(Check__default["default"], {})
4714
4945
  }), /*#__PURE__*/jsxRuntime.jsx("button", {
4946
+ className: "neeto-form-engine-file-upload__button--red neeto-form-engine-file-upload__remove-button",
4715
4947
  type: "button",
4716
- className: classnames__default["default"]("neeto-form-engine-file-upload__button--red neeto-form-engine-file-upload__remove-button"),
4717
4948
  onClick: cancel,
4718
4949
  children: /*#__PURE__*/jsxRuntime.jsx(Close__default["default"], {})
4719
4950
  })]
@@ -4864,8 +5095,8 @@ var Choices = function Choices(_ref) {
4864
5095
  onChange = _ref.onChange,
4865
5096
  error = _ref.error;
4866
5097
  var isCheckBox = type === "checkbox";
4867
- var ChoiceWrapper = isCheckBox ? "div" : Radio__default["default"];
4868
- var Component = isCheckBox ? Checkbox__default["default"] : Radio__default["default"].Item;
5098
+ var ChoiceWrapper = isCheckBox ? "div" : Radio__default$1["default"];
5099
+ var Component = isCheckBox ? Checkbox__default["default"] : Radio__default$1["default"].Item;
4869
5100
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
4870
5101
  className: "neeto-form-engine-choices__wrapper",
4871
5102
  "data-cy": "".concat(neetoCist.hyphenate(label), "-select-container-wrapper"),
@@ -5357,13 +5588,14 @@ var TextField = function TextField(_ref) {
5357
5588
  }));
5358
5589
  };
5359
5590
 
5360
- var _QUESTION_TO_COMPONEN;
5591
+ var _QUESTION_TO_COMPONEN, _CAPTCHA_COMPONENT_MA;
5361
5592
  var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.TEXT.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.NAME.value, NameField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.EMAIL.value, EmailField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.INTEGER.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.DECIMAL.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.PHONE.value, PhoneNumberField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.QUESTION.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.TEXTAREA.value, TextField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.CHECKBOX.value, OptionsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.RADIO.value, OptionsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.DROPDOWN.value, OptionsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.RATING.value, RatingField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.PARAGRAPH.value, function (_ref) {
5362
5593
  var question = _ref.question;
5363
5594
  return /*#__PURE__*/jsxRuntime.jsx(EditorContent__default["default"], {
5364
5595
  content: fieldWithFallback(question, "label", true)
5365
5596
  });
5366
- }), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.TERMS.value, TermsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.DATE.value, DateField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.STAR_RATING.value, StarRatingField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.RICH_TEXT.value, RichTextEditor), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), _QUESTION_TO_COMPONEN);
5597
+ }), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.TERMS.value, TermsField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.DATE.value, DateField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.STAR_RATING.value, StarRatingField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.RICH_TEXT.value, RichTextEditor), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), _defineProperty__default["default"](_QUESTION_TO_COMPONEN, QUESTION_KIND.CAPTCHA.value, CaptchaField), _QUESTION_TO_COMPONEN);
5598
+ var CAPTCHA_COMPONENT_MAP = (_CAPTCHA_COMPONENT_MA = {}, _defineProperty__default["default"](_CAPTCHA_COMPONENT_MA, CAPTCHA_TYPES.RECAPTCHA_V2, Recaptcha), _defineProperty__default["default"](_CAPTCHA_COMPONENT_MA, CAPTCHA_TYPES.MATH_CAPTCHA, MathCaptcha), _CAPTCHA_COMPONENT_MA);
5367
5599
 
5368
5600
  var getFieldComponent = function getFieldComponent(_ref) {
5369
5601
  var kind = _ref.kind;
@@ -5415,9 +5647,8 @@ const SvgSuccess = props => /*#__PURE__*/React__namespace.createElement("svg", _
5415
5647
  height: 344
5416
5648
  }))));
5417
5649
 
5418
- var Success = function Success() {
5419
- var _useTranslation = reactI18next.useTranslation(),
5420
- t = _useTranslation.t;
5650
+ var Success = reactUtils.withT(function (_ref) {
5651
+ var t = _ref.t;
5421
5652
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
5422
5653
  className: "flex h-full w-full flex-col items-center justify-center space-y-4",
5423
5654
  children: [/*#__PURE__*/jsxRuntime.jsx(SvgSuccess, {}), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
@@ -5428,7 +5659,7 @@ var Success = function Success() {
5428
5659
  children: t("neetoForm.successPage.title2")
5429
5660
  })]
5430
5661
  });
5431
- };
5662
+ });
5432
5663
  var Success$1 = /*#__PURE__*/React$2.memo(Success);
5433
5664
 
5434
5665
  function _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
@@ -5500,6 +5731,7 @@ var ExternalForm = function ExternalForm(_ref) {
5500
5731
  var formRef = React$2.useRef();
5501
5732
  var formikInnerRef = React$2.useRef();
5502
5733
  var editorRef = React$2.useRef();
5734
+ var captchaRef = React$2.useRef(null);
5503
5735
  var queryClient = reactQuery.useQueryClient();
5504
5736
  React$2.useEffect(function () {
5505
5737
  if (ramda.equals(language, clientI18nInstance.resolvedLanguage)) return;
@@ -5656,7 +5888,7 @@ var ExternalForm = function ExternalForm(_ref) {
5656
5888
  };
5657
5889
  }();
5658
5890
  var _onReset = function onReset(e, handleReset) {
5659
- var _editorRef$current, _formDomProps$onReset;
5891
+ var _editorRef$current, _captchaRef$current, _formDomProps$onReset;
5660
5892
  if (clearValuesOnReset) {
5661
5893
  clearLocalStorageValues("".concat(formId, "/values"));
5662
5894
  setLocalValues(generateInitValues({
@@ -5667,6 +5899,7 @@ var ExternalForm = function ExternalForm(_ref) {
5667
5899
  });
5668
5900
  }
5669
5901
  editorRef === null || editorRef === void 0 || (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.editor) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.commands) === null || _editorRef$current === void 0 || _editorRef$current.setContent("");
5902
+ (_captchaRef$current = captchaRef.current) === null || _captchaRef$current === void 0 || _captchaRef$current.reset();
5670
5903
  handleReset(e);
5671
5904
  formDomProps === null || formDomProps === void 0 || (_formDomProps$onReset = formDomProps.onReset) === null || _formDomProps$onReset === void 0 || _formDomProps$onReset.call(formDomProps, e);
5672
5905
  };
@@ -5783,6 +6016,7 @@ var ExternalForm = function ExternalForm(_ref) {
5783
6016
  var FieldComponent = getFieldComponent(question);
5784
6017
  return /*#__PURE__*/jsxRuntime.jsxs(React$2.Fragment, {
5785
6018
  children: [/*#__PURE__*/jsxRuntime.jsx(FieldComponent, {
6019
+ captchaRef: captchaRef,
5786
6020
  editorProps: editorProps,
5787
6021
  editorRef: editorRef,
5788
6022
  preview: preview,
@@ -8374,7 +8608,13 @@ var linkifyDecorator = function linkifyDecorator(decoratedHref, decoratedText, k
8374
8608
  children: decoratedText
8375
8609
  }, key);
8376
8610
  };
8377
- var filterResponses = neetoCist.removeBy({
8611
+ var filterResponses = function filterResponses(responses, kinds) {
8612
+ var filteredResponses = neetoCist.removeBy({
8613
+ kind: ramda.includes(ramda.__, kinds)
8614
+ }, responses);
8615
+ return filterAdditionalGuestResponses(filteredResponses);
8616
+ };
8617
+ var filterAdditionalGuestResponses = neetoCist.removeBy({
8378
8618
  kind: QUESTION_KIND.ADDITIONAL_GUESTS.value,
8379
8619
  value: neetoCist.isNotPresent
8380
8620
  });
@@ -8415,7 +8655,7 @@ var getValue = function getValue(_ref) {
8415
8655
  return value === null || value === void 0 ? void 0 : value.join(", ");
8416
8656
  }
8417
8657
  if (kind === QUESTION_KIND.CONDITION.value) {
8418
- return value ? i18next.t("neetoForm.common.yes") : i18next.t("neetoForm.common.no");
8658
+ return (value === null || value === void 0 ? void 0 : value.toLowerCase()) === "true" ? i18next.t("neetoForm.common.yes") : i18next.t("neetoForm.common.no");
8419
8659
  }
8420
8660
  return value;
8421
8661
  };
@@ -8437,7 +8677,9 @@ var Submission = function Submission(_ref2) {
8437
8677
  _ref2$questionLabelPr = _ref2.questionLabelProps,
8438
8678
  questionLabelProps = _ref2$questionLabelPr === void 0 ? {} : _ref2$questionLabelPr,
8439
8679
  _ref2$answerProps = _ref2.answerProps,
8440
- answerProps = _ref2$answerProps === void 0 ? {} : _ref2$answerProps;
8680
+ answerProps = _ref2$answerProps === void 0 ? {} : _ref2$answerProps,
8681
+ _ref2$omitKinds = _ref2.omitKinds,
8682
+ omitKinds = _ref2$omitKinds === void 0 ? [] : _ref2$omitKinds;
8441
8683
  var _useSubmission = useSubmission({
8442
8684
  formId: formId,
8443
8685
  submissionId: submissionId,
@@ -8450,7 +8692,7 @@ var Submission = function Submission(_ref2) {
8450
8692
  } : _useSubmission$data,
8451
8693
  isLoading = _useSubmission.isLoading;
8452
8694
  var responses = submission.responses;
8453
- var filteredResponses = filterResponses(responses);
8695
+ var filteredResponses = filterResponses(responses, omitKinds);
8454
8696
  var renderSubmittedValue = function renderSubmittedValue(kind, value) {
8455
8697
  switch (kind) {
8456
8698
  case QUESTION_KIND.RICH_TEXT.value: