@bigbinary/neeto-form-frontend 3.1.0 → 3.2.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.
package/dist/index.js CHANGED
@@ -1,19 +1,19 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import * as React$2 from 'react';
3
- import React__default, { memo, useState, createElement, useRef, useEffect, useCallback, Fragment as Fragment$1 } from 'react';
3
+ import React__default, { memo, useState, createElement, useRef, useEffect, useImperativeHandle, useCallback, Fragment as Fragment$1 } from 'react';
4
4
  import { useQuery, useQueryClient, useMutation, keepPreviousData } from '@tanstack/react-query';
5
5
  import classnames from 'classnames';
6
6
  import { useFormikContext, useField, FieldArray, Form as Form$3, Formik, Field, FastField } from 'formik';
7
- import { filterNonNull, noop, findBy, toLabelAndValue, isPresent, truncate, slugify, filterBy, hyphenate, removeBy, isNotPresent, isNotEmpty, findById, notEqualsDeep } from '@bigbinary/neeto-cist';
7
+ import { filterNonNull, noop, findBy, toLabelAndValue, isPresent, truncate, slugify, filterBy, hyphenate, removeBy, isNotPresent, isNotEmpty, findById, getRandomInt, randomPick, notEqualsDeep } from '@bigbinary/neeto-cist';
8
8
  import { buildUrl, showThumbsUpToastr, withEventTargetValue, getQueryParams, dateFormat } from '@bigbinary/neeto-commons-frontend/utils';
9
9
  import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
10
- import { assoc, mergeLeft, compose, isEmpty, trim, useWith, path, split, isNotNil, either, isNil, values, equals, modify, prop, range, includes, __, reduce, reject, keys, pick, omit, pluck, without, difference, pipe, last, not, toLower, map, clamp, identity, filter } from 'ramda';
10
+ import { assoc, mergeLeft, compose, isEmpty, trim, useWith, path, split, isNotNil, either, isNil, values, equals, modify, prop, range, includes, __, reduce, reject, keys, pick, omit, pluck, without, difference, pipe, last, concat, not, toLower, map, clamp, identity, filter } from 'ramda';
11
11
  import i18next, { t as t$3 } from 'i18next';
12
12
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
14
14
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
15
15
  import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from '@bigbinary/neeto-commons-frontend/constants';
16
- import { useMutationWithInvalidation, withImmutableActions, withT, useStateWithDependency, useOnClickOutside, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
16
+ import { useMutationWithInvalidation, withImmutableActions, isMetaKeyPressed, withT, useStateWithDependency, useOnClickOutside, useUpdateEffect, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
17
17
  import axios from 'axios';
18
18
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
19
19
  import { Droppable, Draggable, DragDropContext } from '@hello-pangea/dnd';
@@ -39,6 +39,7 @@ import Button$1 from '@bigbinary/neetoui/Button';
39
39
  import Accordion from '@bigbinary/neetoui/Accordion';
40
40
  import Input from '@bigbinary/neetoui/formik/Input';
41
41
  import * as yup from 'yup';
42
+ import Radio from '@bigbinary/neetoui/formik/Radio';
42
43
  import Checkbox$1 from '@bigbinary/neetoui/formik/Checkbox';
43
44
  import Checkbox from '@bigbinary/neetoui/Checkbox';
44
45
  import Delete from '@bigbinary/neeto-icons/Delete';
@@ -58,19 +59,22 @@ import { parsePhoneNumber } from 'libphonenumber-js';
58
59
  import EditorContent from '@bigbinary/neeto-editor/EditorContent';
59
60
  import NeetoUIMultiEmailInput from '@bigbinary/neetoui/MultiEmailInput';
60
61
  import { validation, PhoneNumberInput, PhoneNumber } from '@bigbinary/neeto-molecules/PhoneNumber';
62
+ import path$1 from 'path';
63
+ import Refresh from '@bigbinary/neeto-icons/Refresh';
64
+ import Input$1 from '@bigbinary/neetoui/Input';
65
+ import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
66
+ import ReCAPTCHA from 'react-google-recaptcha';
61
67
  import localeData from 'dayjs/plugin/localeData';
62
68
  import utc from 'dayjs/plugin/utc';
63
69
  import weekday from 'dayjs/plugin/weekday';
64
70
  import weekOfYear from 'dayjs/plugin/weekOfYear';
65
71
  import DatePicker from '@bigbinary/neetoui/DatePicker';
66
- import path$1 from 'path';
67
- import Input$1 from '@bigbinary/neetoui/Input';
68
72
  import { DirectUpload } from '@rails/activestorage';
69
73
  import { useDropzone } from 'react-dropzone';
70
74
  import FileGeneric from '@bigbinary/neeto-icons/FileGeneric';
71
75
  import { motion } from 'framer-motion';
72
76
  import Select$1 from '@bigbinary/neetoui/Select';
73
- import Radio from '@bigbinary/neetoui/Radio';
77
+ import Radio$1 from '@bigbinary/neetoui/Radio';
74
78
  import Textarea$1 from '@bigbinary/neetoui/Textarea';
75
79
  import { renderToString } from 'react-dom/server';
76
80
 
@@ -382,6 +386,9 @@ var QUESTION_KIND = {
382
386
  },
383
387
  FILE_UPLOAD: {
384
388
  value: "file_upload"
389
+ },
390
+ CAPTCHA: {
391
+ value: "captcha"
385
392
  }
386
393
  };
387
394
  var RATING_VALUES = {
@@ -875,7 +882,12 @@ var QUESTION_TYPES = {
875
882
  STAR_RATING: "star_rating",
876
883
  RATING: "rating",
877
884
  DATE: "date",
878
- FILE_UPLOAD: "file_upload"
885
+ FILE_UPLOAD: "file_upload",
886
+ CAPTCHA: "captcha"
887
+ };
888
+ var CAPTCHA_TYPES = {
889
+ RECAPTCHA_V2: "recaptcha_v2",
890
+ MATH_CAPTCHA: "math_captcha"
879
891
  };
880
892
 
881
893
  var PARAGRAPH$1 = QUESTION_TYPES.PARAGRAPH,
@@ -884,12 +896,14 @@ var PARAGRAPH$1 = QUESTION_TYPES.PARAGRAPH,
884
896
  CHECKBOX$2 = QUESTION_TYPES.CHECKBOX,
885
897
  RADIO$2 = QUESTION_TYPES.RADIO,
886
898
  DROPDOWN$2 = QUESTION_TYPES.DROPDOWN,
887
- FILE_UPLOAD$3 = QUESTION_TYPES.FILE_UPLOAD;
899
+ FILE_UPLOAD$3 = QUESTION_TYPES.FILE_UPLOAD,
900
+ CAPTCHA$3 = QUESTION_TYPES.CAPTCHA;
888
901
  var DEFAULT_AVAILABLE_LANGUAGES = [{
889
902
  code: "en",
890
903
  name: "English"
891
904
  }];
892
- var QUESTIONS_WITHOUT_FIELD_CODE = [PARAGRAPH$1, TERMS_AND_CONDITION$1, CONDITION$1, FILE_UPLOAD$3];
905
+ var MANDATORY_KINDS = [CAPTCHA$3];
906
+ var QUESTIONS_WITHOUT_FIELD_CODE = [PARAGRAPH$1, TERMS_AND_CONDITION$1, CONDITION$1, FILE_UPLOAD$3, CAPTCHA$3];
893
907
  var QUESTIONS_INITIAL_VALUE = {
894
908
  enabled: false,
895
909
  questions: [{
@@ -1174,7 +1188,8 @@ var NAME$1 = QUESTION_TYPES.NAME,
1174
1188
  STAR_RATING$2 = QUESTION_TYPES.STAR_RATING,
1175
1189
  RATING$2 = QUESTION_TYPES.RATING,
1176
1190
  DATE$1 = QUESTION_TYPES.DATE,
1177
- FILE_UPLOAD$2 = QUESTION_TYPES.FILE_UPLOAD;
1191
+ FILE_UPLOAD$2 = QUESTION_TYPES.FILE_UPLOAD,
1192
+ CAPTCHA$2 = QUESTION_TYPES.CAPTCHA;
1178
1193
  var DEFAULT_OPTIONS = new Array(MINIMUM_OPTIONS).fill({
1179
1194
  label: ""
1180
1195
  });
@@ -1331,6 +1346,15 @@ var QUESTION_KINDS = [{
1331
1346
  multipleFilesAllowed: true,
1332
1347
  allowedFileTypes: DEFAULT_ALLOWED_FILE_TYPES
1333
1348
  }
1349
+ }, {
1350
+ type: CAPTCHA$2,
1351
+ label: t$3("neetoForm.fields.captcha"),
1352
+ isSingular: true,
1353
+ defaults: {
1354
+ label: "",
1355
+ isRequired: true,
1356
+ variant: CAPTCHA_TYPES.RECAPTCHA_V2
1357
+ }
1334
1358
  }];
1335
1359
 
1336
1360
  // To show the question type as label in accordion
@@ -1878,8 +1902,9 @@ var NAME = QUESTION_TYPES.NAME,
1878
1902
  STAR_RATING$1 = QUESTION_TYPES.STAR_RATING,
1879
1903
  RATING$1 = QUESTION_TYPES.RATING,
1880
1904
  DATE = QUESTION_TYPES.DATE,
1881
- FILE_UPLOAD$1 = QUESTION_TYPES.FILE_UPLOAD;
1882
- var QUESTIONS_WITH_ADDITIONAL_DATA = [].concat(_toConsumableArray(SELECTABLE_KINDS), [STAR_RATING$1, RATING$1, FILE_UPLOAD$1]);
1905
+ FILE_UPLOAD$1 = QUESTION_TYPES.FILE_UPLOAD,
1906
+ CAPTCHA$1 = QUESTION_TYPES.CAPTCHA;
1907
+ var QUESTIONS_WITH_ADDITIONAL_DATA = [].concat(_toConsumableArray(SELECTABLE_KINDS), [STAR_RATING$1, RATING$1, FILE_UPLOAD$1, CAPTCHA$1]);
1883
1908
  var QUESTIONS_WITH_PLACEHOLDERS = [NAME, PHONE, EMAIL, ADDITIONAL_GUESTS, TEXT, TEXTAREA, RICH_TEXT, INTEGER, DECIMAL, DATE];
1884
1909
  var DEFAULT_PLACEHOLDERS = {
1885
1910
  CHECKBOX: t$3("neetoForm.questions.common.questionFields.field.labelExample", {
@@ -1906,11 +1931,14 @@ var FormikAdaptiveInput = function FormikAdaptiveInput(_ref) {
1906
1931
  name = _ref.name,
1907
1932
  otherProps = _objectWithoutProperties(_ref, _excluded$b);
1908
1933
  var _useFormikContext = useFormikContext(),
1934
+ dirty = _useFormikContext.dirty,
1935
+ isValid = _useFormikContext.isValid,
1909
1936
  submitForm = _useFormikContext.submitForm;
1910
1937
  var handleKeyDown = function handleKeyDown(event) {
1911
1938
  if (event.key !== "Enter" || event.shiftKey) return;
1912
1939
  event.preventDefault();
1913
- submitForm();
1940
+ if (isMetaKeyPressed(event)) return;
1941
+ dirty && isValid && submitForm();
1914
1942
  };
1915
1943
  var handleFocus = function handleFocus(element) {
1916
1944
  var end = element.value.length;
@@ -2424,6 +2452,24 @@ var Edit = function Edit(_ref) {
2424
2452
  });
2425
2453
  };
2426
2454
 
2455
+ var Captcha = withT(function (_ref) {
2456
+ var t = _ref.t;
2457
+ return /*#__PURE__*/jsxs(Radio, {
2458
+ label: t("neetoForm.common.captchaType"),
2459
+ labelProps: {
2460
+ required: true
2461
+ },
2462
+ name: "variant",
2463
+ children: [/*#__PURE__*/jsx(Radio.Item, {
2464
+ label: t("neetoForm.common.reCaptchaV2"),
2465
+ value: CAPTCHA_TYPES.RECAPTCHA_V2
2466
+ }), /*#__PURE__*/jsx(Radio.Item, {
2467
+ label: t("neetoForm.common.mathCaptcha"),
2468
+ value: CAPTCHA_TYPES.MATH_CAPTCHA
2469
+ })]
2470
+ });
2471
+ });
2472
+
2427
2473
  var FileGroup = function FileGroup(_ref) {
2428
2474
  var name = _ref.name,
2429
2475
  label = _ref.label,
@@ -2753,7 +2799,8 @@ var CHECKBOX = QUESTION_TYPES.CHECKBOX,
2753
2799
  DROPDOWN = QUESTION_TYPES.DROPDOWN,
2754
2800
  STAR_RATING = QUESTION_TYPES.STAR_RATING,
2755
2801
  RATING = QUESTION_TYPES.RATING,
2756
- FILE_UPLOAD = QUESTION_TYPES.FILE_UPLOAD;
2802
+ FILE_UPLOAD = QUESTION_TYPES.FILE_UPLOAD,
2803
+ CAPTCHA = QUESTION_TYPES.CAPTCHA;
2757
2804
  var transformValueForOption = function transformValueForOption(_ref) {
2758
2805
  var label = _ref.label,
2759
2806
  type = _ref.type;
@@ -2775,6 +2822,8 @@ var renderAdditionalData = function renderAdditionalData(_ref2) {
2775
2822
  return /*#__PURE__*/jsx(StarRating$2, {});
2776
2823
  case FILE_UPLOAD:
2777
2824
  return /*#__PURE__*/jsx(FileUpload$1, {});
2825
+ case CAPTCHA:
2826
+ return /*#__PURE__*/jsx(Captcha, {});
2778
2827
  default:
2779
2828
  return null;
2780
2829
  }
@@ -3200,7 +3249,7 @@ var BuildForm = function BuildForm(_ref) {
3200
3249
  };
3201
3250
  var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref5) {
3202
3251
  var kind = _ref5.kind;
3203
- return requiredFields.includes(kind);
3252
+ return concat(MANDATORY_KINDS, requiredFields).includes(kind);
3204
3253
  };
3205
3254
  var isDisabledFieldLabel = isFieldLabelDisabled !== null && isFieldLabelDisabled !== void 0 ? isFieldLabelDisabled : function () {
3206
3255
  return false;
@@ -3514,7 +3563,7 @@ var getInvalidTypeError = function getInvalidTypeError(label, type) {
3514
3563
  });
3515
3564
  };
3516
3565
 
3517
- var _excluded$4 = ["kind", "label", "isRequired", "customValidator"];
3566
+ var _excluded$4 = ["kind", "customValidator"];
3518
3567
  var _fieldKindValidatorMa;
3519
3568
  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; }
3520
3569
  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(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; }
@@ -3659,25 +3708,29 @@ var validateFileUploadField = function validateFileUploadField(_ref13) {
3659
3708
  files: files_schema
3660
3709
  });
3661
3710
  };
3662
- var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.EMAIL.value, validateEmailField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.NAME.value, validateNameField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.PHONE.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.TEXT.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.QUESTION.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.TEXTAREA.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.DECIMAL.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.INTEGER.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.RATING.value, validateRatingField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.TERMS.value, validateTermsField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.DATE.value, validateDateField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.STAR_RATING.value, validateStarRatingField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.RICH_TEXT.value, validateRichTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CONDITION.value, validateConditionField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), _fieldKindValidatorMa);
3663
- var validateFieldValue = function validateFieldValue(_ref14) {
3664
- var kind = _ref14.kind,
3665
- label = _ref14.label,
3666
- isRequired = _ref14.isRequired,
3667
- customValidator = _ref14.customValidator,
3668
- otherProps = _objectWithoutProperties(_ref14, _excluded$4);
3711
+ var validateCaptchaField = function validateCaptchaField(_ref14) {
3712
+ var variant = _ref14.variant;
3713
+ return variant === CAPTCHA_TYPES.MATH_CAPTCHA ? yup.mixed().test("verification failed", t$1("neetoForm.error.captchaVerificationFailed"), function (value) {
3714
+ return isNotPresent(value) || value;
3715
+ }).transform(function (value) {
3716
+ return value === "" ? null : value;
3717
+ }).required(t$1("neetoForm.error.incompleteCaptcha")) : yup.string().trim().required(t$1("neetoForm.error.incompleteCaptcha"));
3718
+ };
3719
+ var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.EMAIL.value, validateEmailField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.NAME.value, validateNameField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.PHONE.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.TEXT.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.QUESTION.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.TEXTAREA.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.DECIMAL.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.INTEGER.value, validateTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.RATING.value, validateRatingField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.TERMS.value, validateTermsField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.DATE.value, validateDateField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.STAR_RATING.value, validateStarRatingField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.RICH_TEXT.value, validateRichTextField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CONDITION.value, validateConditionField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CAPTCHA.value, validateCaptchaField), _fieldKindValidatorMa);
3720
+ var validateFieldValue = function validateFieldValue(_ref15) {
3721
+ var kind = _ref15.kind,
3722
+ customValidator = _ref15.customValidator,
3723
+ otherProps = _objectWithoutProperties(_ref15, _excluded$4);
3669
3724
  return function (value) {
3670
3725
  if (!(kind in fieldKindValidatorMap)) return;
3671
3726
  var validator = fieldKindValidatorMap[kind];
3672
3727
  var schema = customValidator || validator(_objectSpread$j({
3673
- kind: kind,
3674
- label: label,
3675
- isRequired: isRequired
3728
+ kind: kind
3676
3729
  }, otherProps));
3677
3730
 
3678
3731
  // eslint-disable-next-line consistent-return, no-async-promise-executor
3679
3732
  return new Promise( /*#__PURE__*/function () {
3680
- var _ref15 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
3733
+ var _ref16 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
3681
3734
  return _regeneratorRuntime.wrap(function _callee$(_context) {
3682
3735
  while (1) switch (_context.prev = _context.next) {
3683
3736
  case 0:
@@ -3699,7 +3752,7 @@ var validateFieldValue = function validateFieldValue(_ref14) {
3699
3752
  }, _callee, null, [[0, 6]]);
3700
3753
  }));
3701
3754
  return function (_x) {
3702
- return _ref15.apply(this, arguments);
3755
+ return _ref16.apply(this, arguments);
3703
3756
  };
3704
3757
  }());
3705
3758
  };
@@ -3762,39 +3815,6 @@ var MultipleEmailInput = function MultipleEmailInput(_ref) {
3762
3815
 
3763
3816
  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; }
3764
3817
  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(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; }
3765
- var ConditionField = function ConditionField(_ref) {
3766
- var question = _ref.question,
3767
- customValidator = _ref.customValidator;
3768
- var name = question.id,
3769
- kind = question.kind,
3770
- isRequired = question.isRequired,
3771
- nodeId = question.nodeId;
3772
- var label = fieldWithFallback(question, "label");
3773
- return /*#__PURE__*/jsx(Field, {
3774
- name: name || nodeId,
3775
- validate: validateFieldValue({
3776
- kind: kind,
3777
- label: label,
3778
- isRequired: isRequired,
3779
- customValidator: customValidator
3780
- }),
3781
- children: function children(_ref2) {
3782
- var meta = _ref2.meta,
3783
- field = _ref2.field;
3784
- return /*#__PURE__*/jsx(Checkbox, _objectSpread$i(_objectSpread$i({}, _objectSpread$i(_objectSpread$i({}, field), {}, {
3785
- label: label,
3786
- name: name
3787
- })), {}, {
3788
- checked: field.value,
3789
- error: meta.touched ? meta.error : "",
3790
- required: isRequired
3791
- }));
3792
- }
3793
- });
3794
- };
3795
-
3796
- 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; }
3797
- 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; }
3798
3818
  var t = clientI18nInstance.t;
3799
3819
  var toEmailValues = function toEmailValues() {
3800
3820
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -3888,7 +3908,7 @@ var generateInitValues = function generateInitValues(_ref7) {
3888
3908
  var valuesMap = {};
3889
3909
  if (initialValues) {
3890
3910
  valuesMap = initialValues.reduce(function (acc, answer) {
3891
- return _objectSpread$h(_objectSpread$h({}, acc), {}, _defineProperty({}, answer.questionId, {
3911
+ return _objectSpread$i(_objectSpread$i({}, acc), {}, _defineProperty({}, answer.questionId, {
3892
3912
  value: answer.value,
3893
3913
  optionIds: answer.optionIds
3894
3914
  }));
@@ -4117,6 +4137,211 @@ var getSelectedRating = function getSelectedRating(value) {
4117
4137
  return isNaN(parsedValue) ? -1 : parsedValue;
4118
4138
  };
4119
4139
 
4140
+ var CaptchaField = function CaptchaField(_ref) {
4141
+ var question = _ref.question,
4142
+ preview = _ref.preview,
4143
+ customValidator = _ref.customValidator,
4144
+ captchaRef = _ref.captchaRef;
4145
+ var name = question.id,
4146
+ kind = question.kind,
4147
+ isRequired = question.isRequired,
4148
+ variant = question.variant,
4149
+ nodeId = question.nodeId;
4150
+ var label = fieldWithFallback(question, "label");
4151
+ var _useField = useField({
4152
+ name: name || nodeId,
4153
+ validate: validateFieldValue({
4154
+ kind: kind,
4155
+ label: label,
4156
+ isRequired: isRequired,
4157
+ customValidator: customValidator,
4158
+ variant: variant
4159
+ })
4160
+ }),
4161
+ _useField2 = _slicedToArray(_useField, 3);
4162
+ _useField2[0];
4163
+ var _useField2$ = _useField2[1],
4164
+ touched = _useField2$.touched,
4165
+ error = _useField2$.error,
4166
+ _useField2$2 = _useField2[2],
4167
+ setValue = _useField2$2.setValue,
4168
+ setTouched = _useField2$2.setTouched;
4169
+ var handleVerifyCaptcha = function handleVerifyCaptcha(response) {
4170
+ setTouched(true);
4171
+ setValue(response);
4172
+ };
4173
+ var Component = CAPTCHA_COMPONENT_MAP[variant];
4174
+ return /*#__PURE__*/jsxs("div", {
4175
+ className: "neeto-form-engine-input__wrapper",
4176
+ children: [/*#__PURE__*/jsx("div", {
4177
+ className: "neeto-form-engine-input__label-wrapper",
4178
+ children: label && /*#__PURE__*/jsx("label", {
4179
+ className: "neeto-form-engine-label",
4180
+ children: getLabel(label, isRequired)
4181
+ })
4182
+ }), /*#__PURE__*/jsx("div", {
4183
+ className: classnames({
4184
+ "pointer-events-none": preview
4185
+ }),
4186
+ children: /*#__PURE__*/jsx(Component, {
4187
+ captchaRef: captchaRef,
4188
+ handleVerifyCaptcha: handleVerifyCaptcha,
4189
+ handleBlur: function handleBlur() {
4190
+ return setTouched(true);
4191
+ }
4192
+ })
4193
+ }), touched && error && /*#__PURE__*/jsx("p", {
4194
+ className: "neeto-form-engine-input__error",
4195
+ "data-cy": "neeto-form-engine-captcha-error",
4196
+ children: error
4197
+ })]
4198
+ });
4199
+ };
4200
+
4201
+ var MATH_OPERATORS = {
4202
+ PLUS: "+",
4203
+ MINUS: "-"
4204
+ };
4205
+
4206
+ var generateRandomOperation = function generateRandomOperation() {
4207
+ var firstNumber = getRandomInt(1, 50);
4208
+ var secondNumber = getRandomInt(1, 50);
4209
+ var operator = randomPick.apply(void 0, _toConsumableArray(values(MATH_OPERATORS)));
4210
+ return {
4211
+ firstNumber: firstNumber,
4212
+ secondNumber: secondNumber,
4213
+ operator: operator
4214
+ };
4215
+ };
4216
+
4217
+ var MathCaptcha = function MathCaptcha(_ref) {
4218
+ var captchaRef = _ref.captchaRef,
4219
+ handleVerifyCaptcha = _ref.handleVerifyCaptcha,
4220
+ handleBlur = _ref.handleBlur;
4221
+ var _useState = useState(generateRandomOperation()),
4222
+ _useState2 = _slicedToArray(_useState, 2),
4223
+ operation = _useState2[0],
4224
+ setOperation = _useState2[1];
4225
+ var _useState3 = useState(""),
4226
+ _useState4 = _slicedToArray(_useState3, 2),
4227
+ userInput = _useState4[0],
4228
+ setUserInput = _useState4[1];
4229
+ var firstNumber = operation.firstNumber,
4230
+ secondNumber = operation.secondNumber,
4231
+ operator = operation.operator;
4232
+ var resetCaptcha = function resetCaptcha() {
4233
+ setOperation(generateRandomOperation());
4234
+ setUserInput("");
4235
+ };
4236
+ useImperativeHandle(captchaRef, function () {
4237
+ return {
4238
+ reset: resetCaptcha
4239
+ };
4240
+ });
4241
+ var calculateResult = function calculateResult() {
4242
+ switch (operator) {
4243
+ case MATH_OPERATORS.PLUS:
4244
+ return firstNumber + secondNumber;
4245
+ case MATH_OPERATORS.MINUS:
4246
+ return firstNumber - secondNumber;
4247
+ default:
4248
+ return null;
4249
+ }
4250
+ };
4251
+ var verifyCaptcha = function verifyCaptcha() {
4252
+ var result = calculateResult();
4253
+ if (result === null) return;
4254
+ handleVerifyCaptcha(result === Number(userInput));
4255
+ };
4256
+ useUpdateEffect(function () {
4257
+ verifyCaptcha();
4258
+ }, [userInput]);
4259
+ return /*#__PURE__*/jsxs("div", {
4260
+ className: "neeto-form-nano-math-captcha",
4261
+ ref: captchaRef,
4262
+ children: [/*#__PURE__*/jsx("button", {
4263
+ className: "neeto-form-nano-math-captcha__button",
4264
+ type: "button",
4265
+ onClick: resetCaptcha,
4266
+ children: /*#__PURE__*/jsx(Refresh, {})
4267
+ }), /*#__PURE__*/jsxs("div", {
4268
+ className: "neeto-form-nano-math-captcha__equation",
4269
+ children: [/*#__PURE__*/jsx("span", {
4270
+ children: firstNumber
4271
+ }), /*#__PURE__*/jsx("span", {
4272
+ children: operator
4273
+ }), /*#__PURE__*/jsx("span", {
4274
+ children: secondNumber
4275
+ }), /*#__PURE__*/jsx("span", {
4276
+ children: "="
4277
+ })]
4278
+ }), /*#__PURE__*/jsx(Input$1, {
4279
+ required: true,
4280
+ className: "neeto-form-nano-math-captcha__input",
4281
+ value: userInput,
4282
+ onBlur: handleBlur,
4283
+ onChange: withEventTargetValue(setUserInput)
4284
+ })]
4285
+ });
4286
+ };
4287
+
4288
+ var Recaptcha = function Recaptcha(_ref) {
4289
+ var captchaRef = _ref.captchaRef,
4290
+ handleVerifyCaptcha = _ref.handleVerifyCaptcha;
4291
+ var verifyRecaptcha = function verifyRecaptcha(response) {
4292
+ if (response === null) {
4293
+ return;
4294
+ }
4295
+ handleVerifyCaptcha(response);
4296
+ };
4297
+ var expiredRecaptcha = function expiredRecaptcha() {
4298
+ var _captchaRef$current;
4299
+ captchaRef === null || captchaRef === void 0 || (_captchaRef$current = captchaRef.current) === null || _captchaRef$current === void 0 || _captchaRef$current.reset();
4300
+ handleVerifyCaptcha("");
4301
+ };
4302
+ return /*#__PURE__*/jsx(ReCAPTCHA, {
4303
+ hl: clientI18nInstance.language,
4304
+ ref: captchaRef,
4305
+ sitekey: globalProps.formNanoRecaptchaV2SiteKey,
4306
+ onChange: verifyRecaptcha,
4307
+ onErrored: noop,
4308
+ onExpired: expiredRecaptcha
4309
+ }, clientI18nInstance.language);
4310
+ };
4311
+
4312
+ 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; }
4313
+ 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; }
4314
+ var ConditionField = function ConditionField(_ref) {
4315
+ var question = _ref.question,
4316
+ customValidator = _ref.customValidator;
4317
+ var name = question.id,
4318
+ kind = question.kind,
4319
+ isRequired = question.isRequired,
4320
+ nodeId = question.nodeId;
4321
+ var label = fieldWithFallback(question, "label");
4322
+ return /*#__PURE__*/jsx(Field, {
4323
+ name: name || nodeId,
4324
+ validate: validateFieldValue({
4325
+ kind: kind,
4326
+ label: label,
4327
+ isRequired: isRequired,
4328
+ customValidator: customValidator
4329
+ }),
4330
+ children: function children(_ref2) {
4331
+ var meta = _ref2.meta,
4332
+ field = _ref2.field;
4333
+ return /*#__PURE__*/jsx(Checkbox, _objectSpread$h(_objectSpread$h({}, _objectSpread$h(_objectSpread$h({}, field), {}, {
4334
+ label: label,
4335
+ name: name
4336
+ })), {}, {
4337
+ checked: field.value,
4338
+ error: meta.touched ? meta.error : "",
4339
+ required: isRequired
4340
+ }));
4341
+ }
4342
+ });
4343
+ };
4344
+
4120
4345
  var _excluded$3 = ["value"];
4121
4346
  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; }
4122
4347
  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; }
@@ -4626,15 +4851,15 @@ var FilePreview = withT(function (_ref) {
4626
4851
  }) : ""
4627
4852
  })]
4628
4853
  }), /*#__PURE__*/jsxs("div", {
4629
- className: classnames("neeto-form-engine-file-upload__actions"),
4854
+ className: "neeto-form-engine-file-upload__actions",
4630
4855
  children: [/*#__PURE__*/jsx("span", {
4631
4856
  className: classnames("neeto-form-engine-file-upload__success-indicator", {
4632
4857
  "neeto-form-engine-file-upload__success-indicator--active": file.url
4633
4858
  }),
4634
4859
  children: file.url && /*#__PURE__*/jsx(Check, {})
4635
4860
  }), /*#__PURE__*/jsx("button", {
4861
+ className: "neeto-form-engine-file-upload__button--red neeto-form-engine-file-upload__remove-button",
4636
4862
  type: "button",
4637
- className: classnames("neeto-form-engine-file-upload__button--red neeto-form-engine-file-upload__remove-button"),
4638
4863
  onClick: cancel,
4639
4864
  children: /*#__PURE__*/jsx(Close, {})
4640
4865
  })]
@@ -4785,8 +5010,8 @@ var Choices = function Choices(_ref) {
4785
5010
  onChange = _ref.onChange,
4786
5011
  error = _ref.error;
4787
5012
  var isCheckBox = type === "checkbox";
4788
- var ChoiceWrapper = isCheckBox ? "div" : Radio;
4789
- var Component = isCheckBox ? Checkbox : Radio.Item;
5013
+ var ChoiceWrapper = isCheckBox ? "div" : Radio$1;
5014
+ var Component = isCheckBox ? Checkbox : Radio$1.Item;
4790
5015
  return /*#__PURE__*/jsxs("div", {
4791
5016
  className: "neeto-form-engine-choices__wrapper",
4792
5017
  "data-cy": "".concat(hyphenate(label), "-select-container-wrapper"),
@@ -5278,13 +5503,14 @@ var TextField = function TextField(_ref) {
5278
5503
  }));
5279
5504
  };
5280
5505
 
5281
- var _QUESTION_TO_COMPONEN;
5506
+ var _QUESTION_TO_COMPONEN, _CAPTCHA_COMPONENT_MA;
5282
5507
  var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.TEXT.value, TextField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.NAME.value, NameField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.EMAIL.value, EmailField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.INTEGER.value, TextField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.DECIMAL.value, TextField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.PHONE.value, PhoneNumberField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.QUESTION.value, TextField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.TEXTAREA.value, TextField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.CHECKBOX.value, OptionsField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.RADIO.value, OptionsField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.DROPDOWN.value, OptionsField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.RATING.value, RatingField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.PARAGRAPH.value, function (_ref) {
5283
5508
  var question = _ref.question;
5284
5509
  return /*#__PURE__*/jsx(EditorContent, {
5285
5510
  content: fieldWithFallback(question, "label", true)
5286
5511
  });
5287
- }), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.TERMS.value, TermsField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.DATE.value, DateField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.STAR_RATING.value, StarRatingField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.RICH_TEXT.value, RichTextEditor), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), _QUESTION_TO_COMPONEN);
5512
+ }), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.TERMS.value, TermsField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.DATE.value, DateField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.STAR_RATING.value, StarRatingField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.RICH_TEXT.value, RichTextEditor), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), _defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.CAPTCHA.value, CaptchaField), _QUESTION_TO_COMPONEN);
5513
+ var CAPTCHA_COMPONENT_MAP = (_CAPTCHA_COMPONENT_MA = {}, _defineProperty(_CAPTCHA_COMPONENT_MA, CAPTCHA_TYPES.RECAPTCHA_V2, Recaptcha), _defineProperty(_CAPTCHA_COMPONENT_MA, CAPTCHA_TYPES.MATH_CAPTCHA, MathCaptcha), _CAPTCHA_COMPONENT_MA);
5288
5514
 
5289
5515
  var getFieldComponent = function getFieldComponent(_ref) {
5290
5516
  var kind = _ref.kind;
@@ -5336,9 +5562,8 @@ const SvgSuccess = props => /*#__PURE__*/React$2.createElement("svg", _extends({
5336
5562
  height: 344
5337
5563
  }))));
5338
5564
 
5339
- var Success = function Success() {
5340
- var _useTranslation = useTranslation(),
5341
- t = _useTranslation.t;
5565
+ var Success = withT(function (_ref) {
5566
+ var t = _ref.t;
5342
5567
  return /*#__PURE__*/jsxs("div", {
5343
5568
  className: "flex h-full w-full flex-col items-center justify-center space-y-4",
5344
5569
  children: [/*#__PURE__*/jsx(SvgSuccess, {}), /*#__PURE__*/jsx(Typography, {
@@ -5349,7 +5574,7 @@ var Success = function Success() {
5349
5574
  children: t("neetoForm.successPage.title2")
5350
5575
  })]
5351
5576
  });
5352
- };
5577
+ });
5353
5578
  var Success$1 = /*#__PURE__*/memo(Success);
5354
5579
 
5355
5580
  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; } } }; }
@@ -5421,6 +5646,7 @@ var ExternalForm = function ExternalForm(_ref) {
5421
5646
  var formRef = useRef();
5422
5647
  var formikInnerRef = useRef();
5423
5648
  var editorRef = useRef();
5649
+ var captchaRef = useRef(null);
5424
5650
  var queryClient = useQueryClient();
5425
5651
  useEffect(function () {
5426
5652
  if (equals(language, clientI18nInstance.resolvedLanguage)) return;
@@ -5577,7 +5803,7 @@ var ExternalForm = function ExternalForm(_ref) {
5577
5803
  };
5578
5804
  }();
5579
5805
  var _onReset = function onReset(e, handleReset) {
5580
- var _editorRef$current, _formDomProps$onReset;
5806
+ var _editorRef$current, _captchaRef$current, _formDomProps$onReset;
5581
5807
  if (clearValuesOnReset) {
5582
5808
  clearLocalStorageValues("".concat(formId, "/values"));
5583
5809
  setLocalValues(generateInitValues({
@@ -5588,6 +5814,7 @@ var ExternalForm = function ExternalForm(_ref) {
5588
5814
  });
5589
5815
  }
5590
5816
  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("");
5817
+ (_captchaRef$current = captchaRef.current) === null || _captchaRef$current === void 0 || _captchaRef$current.reset();
5591
5818
  handleReset(e);
5592
5819
  formDomProps === null || formDomProps === void 0 || (_formDomProps$onReset = formDomProps.onReset) === null || _formDomProps$onReset === void 0 || _formDomProps$onReset.call(formDomProps, e);
5593
5820
  };
@@ -5704,6 +5931,7 @@ var ExternalForm = function ExternalForm(_ref) {
5704
5931
  var FieldComponent = getFieldComponent(question);
5705
5932
  return /*#__PURE__*/jsxs(Fragment$1, {
5706
5933
  children: [/*#__PURE__*/jsx(FieldComponent, {
5934
+ captchaRef: captchaRef,
5707
5935
  editorProps: editorProps,
5708
5936
  editorRef: editorRef,
5709
5937
  preview: preview,
@@ -8295,7 +8523,13 @@ var linkifyDecorator = function linkifyDecorator(decoratedHref, decoratedText, k
8295
8523
  children: decoratedText
8296
8524
  }, key);
8297
8525
  };
8298
- var filterResponses = removeBy({
8526
+ var filterResponses = function filterResponses(responses, kinds) {
8527
+ var filteredResponses = removeBy({
8528
+ kind: includes(__, kinds)
8529
+ }, responses);
8530
+ return filterAdditionalGuestResponses(filteredResponses);
8531
+ };
8532
+ var filterAdditionalGuestResponses = removeBy({
8299
8533
  kind: QUESTION_KIND.ADDITIONAL_GUESTS.value,
8300
8534
  value: isNotPresent
8301
8535
  });
@@ -8358,7 +8592,9 @@ var Submission = function Submission(_ref2) {
8358
8592
  _ref2$questionLabelPr = _ref2.questionLabelProps,
8359
8593
  questionLabelProps = _ref2$questionLabelPr === void 0 ? {} : _ref2$questionLabelPr,
8360
8594
  _ref2$answerProps = _ref2.answerProps,
8361
- answerProps = _ref2$answerProps === void 0 ? {} : _ref2$answerProps;
8595
+ answerProps = _ref2$answerProps === void 0 ? {} : _ref2$answerProps,
8596
+ _ref2$omitKinds = _ref2.omitKinds,
8597
+ omitKinds = _ref2$omitKinds === void 0 ? [] : _ref2$omitKinds;
8362
8598
  var _useSubmission = useSubmission({
8363
8599
  formId: formId,
8364
8600
  submissionId: submissionId,
@@ -8371,7 +8607,7 @@ var Submission = function Submission(_ref2) {
8371
8607
  } : _useSubmission$data,
8372
8608
  isLoading = _useSubmission.isLoading;
8373
8609
  var responses = submission.responses;
8374
- var filteredResponses = filterResponses(responses);
8610
+ var filteredResponses = filterResponses(responses, omitKinds);
8375
8611
  var renderSubmittedValue = function renderSubmittedValue(kind, value) {
8376
8612
  switch (kind) {
8377
8613
  case QUESTION_KIND.RICH_TEXT.value: