@bigbinary/neeto-form-frontend 4.2.11 → 4.3.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 (51) hide show
  1. package/app/javascript/src/translations/en.json +12 -1
  2. package/dist/BuildForm.js +73 -6
  3. package/dist/BuildForm.js.map +1 -1
  4. package/dist/ExternalForm.js +4 -4
  5. package/dist/Submission.js +1 -1
  6. package/dist/UrlBuilder.js +5 -4
  7. package/dist/UrlBuilder.js.map +1 -1
  8. package/dist/{buildForm-DcE5kFvR.js → buildForm-DA1LRDwr.js} +2 -2
  9. package/dist/{buildForm-DcE5kFvR.js.map → buildForm-DA1LRDwr.js.map} +1 -1
  10. package/dist/{buildForm-CooylMLL.js → buildForm-vzjjarhs.js} +2 -2
  11. package/dist/{buildForm-CooylMLL.js.map → buildForm-vzjjarhs.js.map} +1 -1
  12. package/dist/cjs/BuildForm.js +73 -6
  13. package/dist/cjs/BuildForm.js.map +1 -1
  14. package/dist/cjs/ExternalForm.js +4 -4
  15. package/dist/cjs/Submission.js +1 -1
  16. package/dist/cjs/UrlBuilder.js +5 -4
  17. package/dist/cjs/UrlBuilder.js.map +1 -1
  18. package/dist/cjs/hooks.js +4 -4
  19. package/dist/cjs/index.js +6 -6
  20. package/dist/{constants-BjWWA3Oq.js → constants-BEKfDeAd.js} +53 -25
  21. package/dist/constants-BEKfDeAd.js.map +1 -0
  22. package/dist/{constants-51SEJjzI.js → constants-B_OEW8Yc.js} +2 -1
  23. package/dist/constants-B_OEW8Yc.js.map +1 -0
  24. package/dist/{constants-C9wKMfgo.js → constants-DcN-Mvx7.js} +2 -1
  25. package/dist/constants-DcN-Mvx7.js.map +1 -0
  26. package/dist/{constants-QPLZ_r-D.js → constants-Dcy0vCkf.js} +51 -26
  27. package/dist/constants-Dcy0vCkf.js.map +1 -0
  28. package/dist/hooks.js +4 -4
  29. package/dist/{index-D4URTv1p.js → index-BQf-XQOv.js} +2 -2
  30. package/dist/{index-D4URTv1p.js.map → index-BQf-XQOv.js.map} +1 -1
  31. package/dist/{index-DnHrq-hl.js → index-DGvqFcqA.js} +2 -2
  32. package/dist/{index-DnHrq-hl.js.map → index-DGvqFcqA.js.map} +1 -1
  33. package/dist/index.js +6 -6
  34. package/dist/main.css +1 -1
  35. package/dist/main.css.map +1 -1
  36. package/dist/{useFormSubmission-BGNEnxvm.js → useFormSubmission-C7RL4Doz.js} +2 -2
  37. package/dist/{useFormSubmission-BGNEnxvm.js.map → useFormSubmission-C7RL4Doz.js.map} +1 -1
  38. package/dist/{useFormSubmission-BUPnuOSG.js → useFormSubmission-CzjIcsVB.js} +2 -2
  39. package/dist/{useFormSubmission-BUPnuOSG.js.map → useFormSubmission-CzjIcsVB.js.map} +1 -1
  40. package/dist/{utils-Dn-q4QBc.js → utils-BgH6USlj.js} +148 -33
  41. package/dist/utils-BgH6USlj.js.map +1 -0
  42. package/dist/{utils-Ch7Ggngj.js → utils-CjySOwOO.js} +148 -33
  43. package/dist/utils-CjySOwOO.js.map +1 -0
  44. package/package.json +18 -19
  45. package/types.d.ts +3 -0
  46. package/dist/constants-51SEJjzI.js.map +0 -1
  47. package/dist/constants-BjWWA3Oq.js.map +0 -1
  48. package/dist/constants-C9wKMfgo.js.map +0 -1
  49. package/dist/constants-QPLZ_r-D.js.map +0 -1
  50. package/dist/utils-Ch7Ggngj.js.map +0 -1
  51. package/dist/utils-Dn-q4QBc.js.map +0 -1
@@ -1,13 +1,13 @@
1
1
  import { useEffect, useState, useImperativeHandle, memo, Fragment as Fragment$1 } from 'react';
2
2
  import { useFormikContext, useField, Field as Field$1, FastField } from 'formik';
3
3
  import { isPresent, isNotEmpty, findBy, filterBy, findById, isNotPresent, getRandomInt, randomPick, noop, hyphenate, slugify, notEqualsDeep } from '@bigbinary/neeto-cist';
4
- import { i as isFunction, b as isEmptyValues, f as fieldWithFallback } from './index-DnHrq-hl.js';
4
+ import { i as isFunction, b as isEmptyValues, f as fieldWithFallback } from './index-DGvqFcqA.js';
5
5
  import { dayjs, getFromLocalStorage, setToLocalStorage, removeFromLocalStorage, withEventTargetValue, buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
6
6
  import { parsePhoneNumber } from 'libphonenumber-js';
7
7
  import { pick, mergeRight, omit, isEmpty, max, when, is, last, includes, __, mergeLeft, trim, isNil, clamp, prop, map, zipObj, identity, pluck, pipe, toLower, reject, values, dec, equals } from 'ramda';
8
8
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
9
9
  import EditorContent from '@bigbinary/neeto-editor/EditorContent';
10
- import { Q as QUESTION_TYPES, C as CAPTCHA_TYPES, E as EMAIL_VERIFICATIONS_CREATE_URL, j as EMAIL_VERIFICATIONS_VERIFY_URL } from './constants-51SEJjzI.js';
10
+ import { Q as QUESTION_TYPES, C as CAPTCHA_TYPES, E as EMAIL_VERIFICATIONS_CREATE_URL, j as EMAIL_VERIFICATIONS_VERIFY_URL } from './constants-B_OEW8Yc.js';
11
11
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
12
12
  import Plus from '@bigbinary/neeto-icons/Plus';
13
13
  import Button from '@bigbinary/neetoui/Button';
@@ -22,7 +22,7 @@ import * as yup from 'yup';
22
22
  import i18next from 'i18next';
23
23
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
24
24
  import _toArray from '@babel/runtime/helpers/toArray';
25
- import { a as QUESTION_KIND, P as PARENTHESES_REGEX, E as EMAIL_REGEX, R as RATING_VALUES, S as SCHEMA_LESS_QUESTION_KINDS, c as SIX_DIGIT_NUMBER_REGEX, d as LABEL_FIELDS, D as DEFAULT_CHOICE_QUESTION_ATTRIBUTES, e as RATING_OPTIONS, I as ICONS_MAP, g as generateArray } from './constants-QPLZ_r-D.js';
25
+ import { a as QUESTION_KIND, P as PARENTHESES_REGEX, E as EMAIL_REGEX, R as RATING_VALUES, S as SCHEMA_LESS_QUESTION_KINDS, c as SIX_DIGIT_NUMBER_REGEX, d as LABEL_FIELDS, g as generateArray, D as DEFAULT_CHOICE_QUESTION_ATTRIBUTES, e as RATING_OPTIONS, I as ICONS_MAP } from './constants-Dcy0vCkf.js';
26
26
  import classnames from 'classnames';
27
27
  import { useUpdateEffect, useStateWithDependency, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
28
28
  import Refresh from '@bigbinary/neeto-icons/Refresh';
@@ -271,7 +271,7 @@ var getMultipleOptionsFromURL = function getMultipleOptionsFromURL(_ref2) {
271
271
  return allOptions.includes(option.label);
272
272
  });
273
273
  };
274
- var getStarRatingFromUrl = function getStarRatingFromUrl(_ref3) {
274
+ var getStarRatingOrOpinionScaleFromUrl = function getStarRatingOrOpinionScaleFromUrl(_ref3) {
275
275
  var minValue = _ref3.minValue,
276
276
  maxValue = _ref3.maxValue,
277
277
  fieldCodes = _ref3.fieldCodes,
@@ -464,9 +464,10 @@ var generateInitValues = function generateInitValues(_ref9) {
464
464
  return;
465
465
  }
466
466
  case QUESTION_KIND.STAR_RATING.value:
467
+ case QUESTION_KIND.OPINION_SCALE.value:
467
468
  {
468
469
  var _valuesMap$id$value4, _valuesMap7;
469
- initValues[id] = (_valuesMap$id$value4 = (_valuesMap7 = valuesMap) === null || _valuesMap7 === void 0 || (_valuesMap7 = _valuesMap7[id]) === null || _valuesMap7 === void 0 ? void 0 : _valuesMap7.value) !== null && _valuesMap$id$value4 !== void 0 ? _valuesMap$id$value4 : getStarRatingFromUrl({
470
+ initValues[id] = (_valuesMap$id$value4 = (_valuesMap7 = valuesMap) === null || _valuesMap7 === void 0 || (_valuesMap7 = _valuesMap7[id]) === null || _valuesMap7 === void 0 ? void 0 : _valuesMap7.value) !== null && _valuesMap$id$value4 !== void 0 ? _valuesMap$id$value4 : getStarRatingOrOpinionScaleFromUrl({
470
471
  minValue: minValue,
471
472
  maxValue: maxValue,
472
473
  fieldCodes: fieldCodes,
@@ -694,19 +695,28 @@ var validateStarRatingField = function validateStarRatingField(_ref8) {
694
695
  }
695
696
  return schema.trim();
696
697
  };
697
- var validateTermsField = function validateTermsField(_ref9) {
698
- var _ref9$isRequired = _ref9.isRequired,
699
- isRequired = _ref9$isRequired === void 0 ? true : _ref9$isRequired;
700
- return isRequired ? yup["boolean"]().oneOf([true], t("neetoForm.common.mustAcceptTermsAndConditions")) : yup["boolean"]().notRequired();
698
+ var validateOpinionScaleField = function validateOpinionScaleField(_ref9) {
699
+ var label = _ref9.label,
700
+ isRequired = _ref9.isRequired;
701
+ var schema = yup.string().typeError(getInvalidTypeError(label, "string"));
702
+ if (isRequired) {
703
+ schema = schema.required(getSelectMinError(t("neetoForm.common.selection")));
704
+ }
705
+ return schema.trim();
701
706
  };
702
- var validateConditionField = function validateConditionField(_ref10) {
707
+ var validateTermsField = function validateTermsField(_ref10) {
703
708
  var _ref10$isRequired = _ref10.isRequired,
704
709
  isRequired = _ref10$isRequired === void 0 ? true : _ref10$isRequired;
710
+ return isRequired ? yup["boolean"]().oneOf([true], t("neetoForm.common.mustAcceptTermsAndConditions")) : yup["boolean"]().notRequired();
711
+ };
712
+ var validateConditionField = function validateConditionField(_ref11) {
713
+ var _ref11$isRequired = _ref11.isRequired,
714
+ isRequired = _ref11$isRequired === void 0 ? true : _ref11$isRequired;
705
715
  return isRequired ? yup["boolean"]().oneOf([true], t("neetoForm.common.mustAcceptCondition")) : yup["boolean"]().notRequired();
706
716
  };
707
- var validateDateField = function validateDateField(_ref11) {
708
- var label = _ref11.label,
709
- isRequired = _ref11.isRequired;
717
+ var validateDateField = function validateDateField(_ref12) {
718
+ var label = _ref12.label,
719
+ isRequired = _ref12.isRequired;
710
720
  var schema = yup.string().test("is valid date", getInvalidTypeError(label, "date"), function (value) {
711
721
  return isNotPresent(value) || isValidDate(value);
712
722
  });
@@ -715,8 +725,8 @@ var validateDateField = function validateDateField(_ref11) {
715
725
  }
716
726
  return schema;
717
727
  };
718
- var validateMultiEmailField = function validateMultiEmailField(_ref12) {
719
- var isRequired = _ref12.isRequired;
728
+ var validateMultiEmailField = function validateMultiEmailField(_ref13) {
729
+ var isRequired = _ref13.isRequired;
720
730
  var schema = yup.array().of(yup.object().shape({
721
731
  value: yup.string().email(getInvalidFieldError("Email")).trim()
722
732
  })).nullable();
@@ -728,17 +738,17 @@ var validateMultiEmailField = function validateMultiEmailField(_ref12) {
728
738
  var editorHasValue = function editorHasValue(content) {
729
739
  return !isEditorEmpty(content);
730
740
  };
731
- var validateRichTextField = function validateRichTextField(_ref13) {
732
- var isRequired = _ref13.isRequired;
741
+ var validateRichTextField = function validateRichTextField(_ref14) {
742
+ var isRequired = _ref14.isRequired;
733
743
  var schema = yup.string();
734
744
  if (isRequired) {
735
745
  schema = schema.test("required", getRequiredFieldError("content"), editorHasValue);
736
746
  }
737
747
  return schema.trim();
738
748
  };
739
- var validateFileUploadField = function validateFileUploadField(_ref14) {
740
- var isRequired = _ref14.isRequired,
741
- multipleFilesAllowed = _ref14.multipleFilesAllowed;
749
+ var validateFileUploadField = function validateFileUploadField(_ref15) {
750
+ var isRequired = _ref15.isRequired,
751
+ multipleFilesAllowed = _ref15.multipleFilesAllowed;
742
752
  var files_schema = yup.array();
743
753
  if (isRequired) {
744
754
  files_schema = files_schema.of(yup.object().shape({
@@ -751,19 +761,19 @@ var validateFileUploadField = function validateFileUploadField(_ref14) {
751
761
  files: files_schema
752
762
  });
753
763
  };
754
- var validateCaptchaField = function validateCaptchaField(_ref15) {
755
- var variant = _ref15.variant;
764
+ var validateCaptchaField = function validateCaptchaField(_ref16) {
765
+ var variant = _ref16.variant;
756
766
  return variant === CAPTCHA_TYPES.MATH_CAPTCHA ? yup.mixed().test("verification failed", t("neetoForm.error.captchaVerificationFailed"), function (value) {
757
767
  return isNotPresent(value) || value;
758
768
  }).transform(function (value) {
759
769
  return value === "" ? null : value;
760
770
  }).required(t("neetoForm.error.incompleteCaptcha")) : yup.string().trim().required(t("neetoForm.error.incompleteCaptcha"));
761
771
  };
762
- var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.EMAIL.value, validateEmailField), QUESTION_KIND.NAME.value, validateNameField), QUESTION_KIND.PHONE.value, validateTextField), QUESTION_KIND.TEXT.value, validateTextField), QUESTION_KIND.QUESTION.value, validateTextField), QUESTION_KIND.TEXTAREA.value, validateTextField), QUESTION_KIND.DECIMAL.value, validateTextField), QUESTION_KIND.INTEGER.value, validateTextField), QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), QUESTION_KIND.RATING.value, validateRatingField), QUESTION_KIND.TERMS.value, validateTermsField), QUESTION_KIND.DATE.value, validateDateField), QUESTION_KIND.STAR_RATING.value, validateStarRatingField), QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), QUESTION_KIND.RICH_TEXT.value, validateRichTextField), QUESTION_KIND.CONDITION.value, validateConditionField), QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), QUESTION_KIND.CAPTCHA.value, validateCaptchaField), _defineProperty(_fieldKindValidatorMa, QUESTION_KIND.SMS_REMINDER.value, validateTextField));
763
- var validateFieldValue = function validateFieldValue(_ref16) {
764
- var kind = _ref16.kind,
765
- customValidator = _ref16.customValidator,
766
- otherProps = _objectWithoutProperties(_ref16, _excluded$4);
772
+ var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.EMAIL.value, validateEmailField), QUESTION_KIND.NAME.value, validateNameField), QUESTION_KIND.PHONE.value, validateTextField), QUESTION_KIND.TEXT.value, validateTextField), QUESTION_KIND.QUESTION.value, validateTextField), QUESTION_KIND.TEXTAREA.value, validateTextField), QUESTION_KIND.DECIMAL.value, validateTextField), QUESTION_KIND.INTEGER.value, validateTextField), QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), QUESTION_KIND.RATING.value, validateRatingField), QUESTION_KIND.TERMS.value, validateTermsField), QUESTION_KIND.DATE.value, validateDateField), QUESTION_KIND.STAR_RATING.value, validateStarRatingField), QUESTION_KIND.OPINION_SCALE.value, validateOpinionScaleField), QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), QUESTION_KIND.RICH_TEXT.value, validateRichTextField), QUESTION_KIND.CONDITION.value, validateConditionField), QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), _defineProperty(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CAPTCHA.value, validateCaptchaField), QUESTION_KIND.SMS_REMINDER.value, validateTextField));
773
+ var validateFieldValue = function validateFieldValue(_ref17) {
774
+ var kind = _ref17.kind,
775
+ customValidator = _ref17.customValidator,
776
+ otherProps = _objectWithoutProperties(_ref17, _excluded$4);
767
777
  return function (value) {
768
778
  if (!(kind in fieldKindValidatorMap)) return;
769
779
  var validator = fieldKindValidatorMap[kind];
@@ -773,7 +783,7 @@ var validateFieldValue = function validateFieldValue(_ref16) {
773
783
 
774
784
  // eslint-disable-next-line consistent-return, no-async-promise-executor
775
785
  return new Promise(/*#__PURE__*/function () {
776
- var _ref17 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
786
+ var _ref18 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
777
787
  return _regeneratorRuntime.wrap(function _callee$(_context) {
778
788
  while (1) switch (_context.prev = _context.next) {
779
789
  case 0:
@@ -795,7 +805,7 @@ var validateFieldValue = function validateFieldValue(_ref16) {
795
805
  }, _callee, null, [[0, 6]]);
796
806
  }));
797
807
  return function (_x) {
798
- return _ref17.apply(this, arguments);
808
+ return _ref18.apply(this, arguments);
799
809
  };
800
810
  }());
801
811
  };
@@ -829,7 +839,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
829
839
 
830
840
  // eslint-disable-next-line no-async-promise-executor
831
841
  return new Promise(/*#__PURE__*/function () {
832
- var _ref18 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
842
+ var _ref19 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
833
843
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
834
844
  while (1) switch (_context2.prev = _context2.next) {
835
845
  case 0:
@@ -853,7 +863,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
853
863
  }, _callee2, null, [[0, 6]]);
854
864
  }));
855
865
  return function (_x2) {
856
- return _ref18.apply(this, arguments);
866
+ return _ref19.apply(this, arguments);
857
867
  };
858
868
  }());
859
869
  };
@@ -1726,6 +1736,111 @@ var NameField = function NameField(props) {
1726
1736
  }));
1727
1737
  };
1728
1738
 
1739
+ var OpinionScaleField = function OpinionScaleField(_ref) {
1740
+ var question = _ref.question,
1741
+ customValidator = _ref.customValidator;
1742
+ var name = question.id,
1743
+ kind = question.kind,
1744
+ isRequired = question.isRequired,
1745
+ minValue = question.minValue,
1746
+ maxValue = question.maxValue,
1747
+ isReadOnly = question.isReadOnly,
1748
+ hasOpinionLabels = question.hasOpinionLabels;
1749
+ var label = fieldWithFallback(question, "label");
1750
+ var leftOpinionLabel = fieldWithFallback(question, "leftOpinionLabel");
1751
+ var rightOpinionLabel = fieldWithFallback(question, "rightOpinionLabel");
1752
+ var _useField = useField({
1753
+ name: name,
1754
+ validate: validateFieldValue({
1755
+ kind: kind,
1756
+ label: label,
1757
+ isRequired: isRequired,
1758
+ customValidator: customValidator
1759
+ })
1760
+ }),
1761
+ _useField2 = _slicedToArray(_useField, 3),
1762
+ field = _useField2[0],
1763
+ _useField2$ = _useField2[1],
1764
+ error = _useField2$.error,
1765
+ touched = _useField2$.touched,
1766
+ setValue = _useField2[2].setValue;
1767
+ var handleClick = function handleClick(event, index) {
1768
+ if (index !== parseInt(field.value)) return;
1769
+ event.preventDefault();
1770
+ setValue("");
1771
+ };
1772
+ var opinionScaleOptions = generateArray(minValue, maxValue);
1773
+ return /*#__PURE__*/jsxs("div", {
1774
+ className: "neeto-form-engine-input__wrapper neeto-form-engine-opinion-scale",
1775
+ children: [/*#__PURE__*/jsx("div", {
1776
+ className: "neeto-form-engine-input__label-wrapper",
1777
+ children: /*#__PURE__*/jsx("label", {
1778
+ className: "neeto-form-engine-label",
1779
+ "data-testid": "opinion-scale-input-label",
1780
+ children: getLabel(label, isRequired)
1781
+ })
1782
+ }), /*#__PURE__*/jsx("div", {
1783
+ className: "neeto-form-nano-opinion-scale",
1784
+ "data-testid": "form-opinion-scale",
1785
+ children: /*#__PURE__*/jsxs("div", {
1786
+ className: "neeto-form-nano-opinion-scale__group",
1787
+ children: [hasOpinionLabels && /*#__PURE__*/jsx("div", {
1788
+ className: "neeto-form-nano-opinion-scale__labels-wrap neeto-form-nano-opinion-scale__labels-wrap-mobile",
1789
+ children: /*#__PURE__*/jsx("label", {
1790
+ className: "neeto-form-nano-opinion-scale__label",
1791
+ "data-testid": "opinion-scale-left-label",
1792
+ children: leftOpinionLabel
1793
+ })
1794
+ }), /*#__PURE__*/jsx("ul", {
1795
+ className: "neeto-form-nano-opinion-scale__list",
1796
+ "data-testid": "opinion-scale-list",
1797
+ children: opinionScaleOptions.map(function (step) {
1798
+ return /*#__PURE__*/jsx("li", {
1799
+ className: "neeto-form-nano-opinion-scale__item",
1800
+ "data-testid": "opinion-scale-list-item",
1801
+ children: /*#__PURE__*/jsxs("label", {
1802
+ className: "neeto-form-nano-opinion-scale__item-label",
1803
+ "data-testid": "opinion-scale-label",
1804
+ onClick: function onClick(event) {
1805
+ return handleClick(event, step);
1806
+ },
1807
+ children: [/*#__PURE__*/jsx(Field$1, {
1808
+ name: name,
1809
+ checked: parseInt(field.value) === step,
1810
+ className: "neeto-form-nano-sr-only neeto-form-nano-opinion-scale__item-input",
1811
+ "data-testid": "opinion-scale-input-".concat(step),
1812
+ disabled: isReadOnly,
1813
+ type: "radio",
1814
+ value: step
1815
+ }), /*#__PURE__*/jsx("span", {
1816
+ className: "neeto-form-nano-opinion-scale__item-highlight",
1817
+ "data-testid": "opinion-scale-item-".concat(step),
1818
+ children: step
1819
+ })]
1820
+ })
1821
+ }, step);
1822
+ })
1823
+ }), hasOpinionLabels && /*#__PURE__*/jsxs("div", {
1824
+ className: "neeto-form-nano-opinion-scale__labels-wrap",
1825
+ children: [/*#__PURE__*/jsx("label", {
1826
+ className: "neeto-form-nano-opinion-scale__label neeto-form-nano-opinion-scale__label--start",
1827
+ "data-testid": "opinion-scale-left-label",
1828
+ children: leftOpinionLabel
1829
+ }), /*#__PURE__*/jsx("label", {
1830
+ className: "neeto-form-nano-opinion-scale__label neeto-form-nano-opinion-scale__label--end",
1831
+ "data-testid": "opinion-scale-right-label",
1832
+ children: rightOpinionLabel
1833
+ })]
1834
+ })]
1835
+ })
1836
+ }), touched && error && /*#__PURE__*/jsx("p", {
1837
+ className: "neeto-form-engine-input__error",
1838
+ "data-testid": "neeto-form-engine-opinion-scale-error",
1839
+ children: error
1840
+ })]
1841
+ });
1842
+ };
1843
+
1729
1844
  var ChoiceImage = function ChoiceImage(_ref) {
1730
1845
  var src = _ref.src,
1731
1846
  alt = _ref.alt,
@@ -2369,7 +2484,7 @@ var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty(_de
2369
2484
  return /*#__PURE__*/jsx(EditorContent, {
2370
2485
  content: fieldWithFallback(question, "label", true)
2371
2486
  });
2372
- }), QUESTION_KIND.TERMS.value, TermsField), QUESTION_KIND.DATE.value, DateField), QUESTION_KIND.STAR_RATING.value, StarRatingField), QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), QUESTION_KIND.RICH_TEXT.value, RichTextEditor), QUESTION_KIND.CONDITION.value, ConditionField), QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), _defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.CAPTCHA.value, CaptchaField), QUESTION_KIND.SMS_REMINDER.value, PhoneNumberField));
2487
+ }), QUESTION_KIND.TERMS.value, TermsField), QUESTION_KIND.DATE.value, DateField), QUESTION_KIND.STAR_RATING.value, StarRatingField), QUESTION_KIND.OPINION_SCALE.value, OpinionScaleField), QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), QUESTION_KIND.RICH_TEXT.value, RichTextEditor), QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty(_defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), QUESTION_KIND.CAPTCHA.value, CaptchaField), QUESTION_KIND.SMS_REMINDER.value, PhoneNumberField));
2373
2488
  var CAPTCHA_COMPONENT_MAP = _defineProperty(_defineProperty({}, CAPTCHA_TYPES.RECAPTCHA_V2, Recaptcha), CAPTCHA_TYPES.MATH_CAPTCHA, MathCaptcha);
2374
2489
 
2375
2490
  var getFieldComponent = function getFieldComponent(_ref) {
@@ -2400,4 +2515,4 @@ var containsIgnoreCase = function containsIgnoreCase(string, substring) {
2400
2515
  };
2401
2516
 
2402
2517
  export { FormikWrap as F, getFieldComponent as a, buildAutoCompleteAttribute as b, clientI18nInstance as c, getWithExpiry as d, clearEmailVerificationDetails as e, generateFormResponse as f, generateInitValues as g, clearLocalStorageValues as h, mergeRefs as m, renderButtonsInOrder as r };
2403
- //# sourceMappingURL=utils-Dn-q4QBc.js.map
2518
+ //# sourceMappingURL=utils-BgH6USlj.js.map