@bigbinary/neeto-form-frontend 4.2.11 → 4.4.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 (56) hide show
  1. package/app/javascript/src/translations/en.json +50 -3
  2. package/dist/BuildForm.js +548 -87
  3. package/dist/BuildForm.js.map +1 -1
  4. package/dist/ExternalForm.js +7 -7
  5. package/dist/Submission.js +32 -1
  6. package/dist/Submission.js.map +1 -1
  7. package/dist/UrlBuilder.js +9 -8
  8. package/dist/UrlBuilder.js.map +1 -1
  9. package/dist/{buildForm-CooylMLL.js → buildForm-Bdc3ubm4.js} +2 -2
  10. package/dist/{buildForm-CooylMLL.js.map → buildForm-Bdc3ubm4.js.map} +1 -1
  11. package/dist/{buildForm-DcE5kFvR.js → buildForm-CkVmGF-A.js} +2 -2
  12. package/dist/{buildForm-DcE5kFvR.js.map → buildForm-CkVmGF-A.js.map} +1 -1
  13. package/dist/cjs/BuildForm.js +614 -153
  14. package/dist/cjs/BuildForm.js.map +1 -1
  15. package/dist/cjs/ExternalForm.js +21 -21
  16. package/dist/cjs/ExternalForm.js.map +1 -1
  17. package/dist/cjs/Submission.js +32 -1
  18. package/dist/cjs/Submission.js.map +1 -1
  19. package/dist/cjs/UrlBuilder.js +19 -18
  20. package/dist/cjs/UrlBuilder.js.map +1 -1
  21. package/dist/cjs/hooks.js +4 -4
  22. package/dist/cjs/index.js +11 -10
  23. package/dist/cjs/index.js.map +1 -1
  24. package/dist/{constants-51SEJjzI.js → constants-30230o5k.js} +4 -2
  25. package/dist/constants-30230o5k.js.map +1 -0
  26. package/dist/{constants-C9wKMfgo.js → constants-DNNZYQ9X.js} +4 -2
  27. package/dist/constants-DNNZYQ9X.js.map +1 -0
  28. package/dist/hooks.js +4 -4
  29. package/dist/{index-DnHrq-hl.js → index-BfavwyMH.js} +2 -2
  30. package/dist/{index-DnHrq-hl.js.map → index-BfavwyMH.js.map} +1 -1
  31. package/dist/{index-D4URTv1p.js → index-Dz5Yvk3n.js} +2 -2
  32. package/dist/{index-D4URTv1p.js.map → index-Dz5Yvk3n.js.map} +1 -1
  33. package/dist/index.js +11 -10
  34. package/dist/index.js.map +1 -1
  35. package/dist/main.css +1 -1
  36. package/dist/main.css.map +1 -1
  37. package/dist/{useFormSubmission-BGNEnxvm.js → useFormSubmission-CdKlP6De.js} +2 -2
  38. package/dist/{useFormSubmission-BGNEnxvm.js.map → useFormSubmission-CdKlP6De.js.map} +1 -1
  39. package/dist/{useFormSubmission-BUPnuOSG.js → useFormSubmission-zyh3tA0H.js} +2 -2
  40. package/dist/{useFormSubmission-BUPnuOSG.js.map → useFormSubmission-zyh3tA0H.js.map} +1 -1
  41. package/dist/{utils-Dn-q4QBc.js → utils-CDyve_0y.js} +274 -73
  42. package/dist/utils-CDyve_0y.js.map +1 -0
  43. package/dist/{utils-Ch7Ggngj.js → utils-DfujkkDT.js} +323 -122
  44. package/dist/utils-DfujkkDT.js.map +1 -0
  45. package/dist/{constants-BjWWA3Oq.js → yup-DcJey7xZ.js} +149 -26
  46. package/dist/yup-DcJey7xZ.js.map +1 -0
  47. package/dist/{constants-QPLZ_r-D.js → yup-SHH_PrTm.js} +139 -28
  48. package/dist/yup-SHH_PrTm.js.map +1 -0
  49. package/package.json +20 -19
  50. package/types.d.ts +3 -0
  51. package/dist/constants-51SEJjzI.js.map +0 -1
  52. package/dist/constants-BjWWA3Oq.js.map +0 -1
  53. package/dist/constants-C9wKMfgo.js.map +0 -1
  54. package/dist/constants-QPLZ_r-D.js.map +0 -1
  55. package/dist/utils-Ch7Ggngj.js.map +0 -1
  56. 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
- 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';
3
+ import { isPresent, isNotEmpty, findBy, filterBy, findById, isNotPresent, hyphenate, noop, toLabelAndValue, getRandomInt, randomPick, slugify, notEqualsDeep } from '@bigbinary/neeto-cist';
4
+ import { i as isFunction, b as isEmptyValues, f as fieldWithFallback } from './index-BfavwyMH.js';
5
5
  import { dayjs, getFromLocalStorage, setToLocalStorage, removeFromLocalStorage, withEventTargetValue, buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
6
6
  import { parsePhoneNumber } from 'libphonenumber-js';
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';
7
+ import { pick, mergeRight, omit, isEmpty, max, when, is, last, includes, __, mergeLeft, trim, isNil, clamp, prop, map, zipObj, identity, pluck, values, pipe, 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-30230o5k.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';
@@ -18,15 +18,16 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
18
18
  import _regeneratorRuntime from '@babel/runtime/regenerator';
19
19
  import { isEditorEmpty } from '@bigbinary/neeto-editor/utils';
20
20
  import { validation, PhoneNumberInput } from '@bigbinary/neeto-molecules/PhoneNumber';
21
- import * as yup from 'yup';
22
21
  import i18next from 'i18next';
23
22
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
23
+ 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, A as ADDRESS_FIELD_WIDTHS, d as ADDRESS_FIELD_TYPES, e as LABEL_FIELDS, g as generateArray, D as DEFAULT_CHOICE_QUESTION_ATTRIBUTES, f as RATING_OPTIONS, I as ICONS_MAP } from './yup-SHH_PrTm.js';
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 * as yup from 'yup';
26
26
  import classnames from 'classnames';
27
+ import Select from '@bigbinary/neetoui/Select';
28
+ import Input from '@bigbinary/neetoui/Input';
27
29
  import { useUpdateEffect, useStateWithDependency, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
28
30
  import Refresh from '@bigbinary/neeto-icons/Refresh';
29
- import Input from '@bigbinary/neetoui/Input';
30
31
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
31
32
  import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
32
33
  import ReCAPTCHA from 'react-google-recaptcha';
@@ -40,7 +41,6 @@ import Spinner from '@bigbinary/neetoui/Spinner';
40
41
  import NeetoUICallout from '@bigbinary/neetoui/Callout';
41
42
  import { FileUpload } from '@bigbinary/neeto-molecules/FileUpload';
42
43
  import Label from '@bigbinary/neetoui/Label';
43
- import Select from '@bigbinary/neetoui/Select';
44
44
  import Radio from '@bigbinary/neetoui/Radio';
45
45
  import Image from '@bigbinary/neeto-icons/Image';
46
46
  import NeetoEditor from '@bigbinary/neeto-editor/Editor';
@@ -226,8 +226,8 @@ var getInvalidTypeError = function getInvalidTypeError(label, type) {
226
226
  });
227
227
  };
228
228
 
229
- 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; }
230
- 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; }
229
+ 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; }
230
+ 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; }
231
231
  var resolveQueryParamValue = when(is(Array), last);
232
232
  var toEmailValues = function toEmailValues() {
233
233
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -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,
@@ -366,7 +366,7 @@ var generateInitValues = function generateInitValues(_ref9) {
366
366
  var valuesMap = {};
367
367
  if (initialValues) {
368
368
  valuesMap = initialValues.reduce(function (acc, answer) {
369
- return _objectSpread$h(_objectSpread$h({}, acc), {}, _defineProperty({}, answer.questionId, {
369
+ return _objectSpread$i(_objectSpread$i({}, acc), {}, _defineProperty({}, answer.questionId, {
370
370
  value: answer.value,
371
371
  optionIds: answer.optionIds
372
372
  }));
@@ -378,7 +378,8 @@ var generateInitValues = function generateInitValues(_ref9) {
378
378
  optionsAttributes = question.optionsAttributes,
379
379
  fieldCode = question.fieldCode,
380
380
  minValue = question.minValue,
381
- maxValue = question.maxValue;
381
+ maxValue = question.maxValue,
382
+ fields = question.fields;
382
383
  switch (kind) {
383
384
  case QUESTION_KIND.CONDITION.value:
384
385
  {
@@ -464,9 +465,10 @@ var generateInitValues = function generateInitValues(_ref9) {
464
465
  return;
465
466
  }
466
467
  case QUESTION_KIND.STAR_RATING.value:
468
+ case QUESTION_KIND.OPINION_SCALE.value:
467
469
  {
468
470
  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({
471
+ 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
472
  minValue: minValue,
471
473
  maxValue: maxValue,
472
474
  fieldCodes: fieldCodes,
@@ -480,10 +482,19 @@ var generateInitValues = function generateInitValues(_ref9) {
480
482
  initValues[id] = (_valuesMap$id$value5 = (_valuesMap8 = valuesMap) === null || _valuesMap8 === void 0 || (_valuesMap8 = _valuesMap8[id]) === null || _valuesMap8 === void 0 ? void 0 : _valuesMap8.value) !== null && _valuesMap$id$value5 !== void 0 ? _valuesMap$id$value5 : getNameFromUrl(question, fieldCodes);
481
483
  return;
482
484
  }
483
- default:
485
+ case QUESTION_KIND.ADDRESS.value:
484
486
  {
485
487
  var _valuesMap$id$value6, _valuesMap9;
486
- initValues[id] = (_valuesMap$id$value6 = (_valuesMap9 = valuesMap) === null || _valuesMap9 === void 0 || (_valuesMap9 = _valuesMap9[id]) === null || _valuesMap9 === void 0 ? void 0 : _valuesMap9.value) !== null && _valuesMap$id$value6 !== void 0 ? _valuesMap$id$value6 : resolveQueryParamValue(fieldCodes[fieldCode] || "");
488
+ initValues[id] = (_valuesMap$id$value6 = (_valuesMap9 = valuesMap) === null || _valuesMap9 === void 0 || (_valuesMap9 = _valuesMap9[id]) === null || _valuesMap9 === void 0 ? void 0 : _valuesMap9.value) !== null && _valuesMap$id$value6 !== void 0 ? _valuesMap$id$value6 : fields.reduce(function (values, field) {
489
+ values[field.id] = "";
490
+ return values;
491
+ }, {});
492
+ return;
493
+ }
494
+ default:
495
+ {
496
+ var _valuesMap$id$value7, _valuesMap10;
497
+ initValues[id] = (_valuesMap$id$value7 = (_valuesMap10 = valuesMap) === null || _valuesMap10 === void 0 || (_valuesMap10 = _valuesMap10[id]) === null || _valuesMap10 === void 0 ? void 0 : _valuesMap10.value) !== null && _valuesMap$id$value7 !== void 0 ? _valuesMap$id$value7 : resolveQueryParamValue(fieldCodes[fieldCode] || "");
487
498
  return;
488
499
  }
489
500
  }
@@ -587,35 +598,9 @@ var isPhoneNumberField = includes(__, [QUESTION_KIND.PHONE.value, QUESTION_KIND.
587
598
 
588
599
  var _excluded$4 = ["kind", "customValidator"];
589
600
  var _fieldKindValidatorMa;
590
- 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; }
591
- 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; }
601
+ 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; }
602
+ 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; }
592
603
  var t = clientI18nInstance.t;
593
- yup.addMethod(yup.array, "unique", function () {
594
- var field, message;
595
- if (arguments.length > 1) {
596
- field = arguments[0];
597
- message = arguments[1];
598
- } else {
599
- message = arguments[0];
600
- }
601
- var getValue = function getValue(item) {
602
- return field ? item[field] : item;
603
- };
604
- var valueInLowerCase = pipe(getValue, toLower);
605
- return this.test("unique", message, function () {
606
- var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
607
- // ignore destroyed items in the array
608
- var validItems = reject(prop("_destroy"), array);
609
- var uniqueItems = new Set(map(valueInLowerCase, validItems));
610
-
611
- // all items are unique
612
- if (validItems.length === uniqueItems.size) return true;
613
- return this.createError({
614
- path: this.path,
615
- message: message
616
- });
617
- });
618
- });
619
604
  var isValidDate = function isValidDate(date) {
620
605
  return date && dayjs(date).isValid();
621
606
  };
@@ -694,19 +679,28 @@ var validateStarRatingField = function validateStarRatingField(_ref8) {
694
679
  }
695
680
  return schema.trim();
696
681
  };
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();
682
+ var validateOpinionScaleField = function validateOpinionScaleField(_ref9) {
683
+ var label = _ref9.label,
684
+ isRequired = _ref9.isRequired;
685
+ var schema = yup.string().typeError(getInvalidTypeError(label, "string"));
686
+ if (isRequired) {
687
+ schema = schema.required(getSelectMinError(t("neetoForm.common.selection")));
688
+ }
689
+ return schema.trim();
701
690
  };
702
- var validateConditionField = function validateConditionField(_ref10) {
691
+ var validateTermsField = function validateTermsField(_ref10) {
703
692
  var _ref10$isRequired = _ref10.isRequired,
704
693
  isRequired = _ref10$isRequired === void 0 ? true : _ref10$isRequired;
694
+ return isRequired ? yup["boolean"]().oneOf([true], t("neetoForm.common.mustAcceptTermsAndConditions")) : yup["boolean"]().notRequired();
695
+ };
696
+ var validateConditionField = function validateConditionField(_ref11) {
697
+ var _ref11$isRequired = _ref11.isRequired,
698
+ isRequired = _ref11$isRequired === void 0 ? true : _ref11$isRequired;
705
699
  return isRequired ? yup["boolean"]().oneOf([true], t("neetoForm.common.mustAcceptCondition")) : yup["boolean"]().notRequired();
706
700
  };
707
- var validateDateField = function validateDateField(_ref11) {
708
- var label = _ref11.label,
709
- isRequired = _ref11.isRequired;
701
+ var validateDateField = function validateDateField(_ref12) {
702
+ var label = _ref12.label,
703
+ isRequired = _ref12.isRequired;
710
704
  var schema = yup.string().test("is valid date", getInvalidTypeError(label, "date"), function (value) {
711
705
  return isNotPresent(value) || isValidDate(value);
712
706
  });
@@ -715,8 +709,8 @@ var validateDateField = function validateDateField(_ref11) {
715
709
  }
716
710
  return schema;
717
711
  };
718
- var validateMultiEmailField = function validateMultiEmailField(_ref12) {
719
- var isRequired = _ref12.isRequired;
712
+ var validateMultiEmailField = function validateMultiEmailField(_ref13) {
713
+ var isRequired = _ref13.isRequired;
720
714
  var schema = yup.array().of(yup.object().shape({
721
715
  value: yup.string().email(getInvalidFieldError("Email")).trim()
722
716
  })).nullable();
@@ -725,20 +719,27 @@ var validateMultiEmailField = function validateMultiEmailField(_ref12) {
725
719
  }
726
720
  return schema;
727
721
  };
722
+ var validateAddressField = function validateAddressField(_ref14) {
723
+ var label = _ref14.label,
724
+ isRequired = _ref14.isRequired;
725
+ var schema = yup.string().typeError(getInvalidTypeError(label, "string"));
726
+ if (isRequired) schema = schema.trim().required(getRequiredFieldError(label));
727
+ return schema.trim();
728
+ };
728
729
  var editorHasValue = function editorHasValue(content) {
729
730
  return !isEditorEmpty(content);
730
731
  };
731
- var validateRichTextField = function validateRichTextField(_ref13) {
732
- var isRequired = _ref13.isRequired;
732
+ var validateRichTextField = function validateRichTextField(_ref15) {
733
+ var isRequired = _ref15.isRequired;
733
734
  var schema = yup.string();
734
735
  if (isRequired) {
735
736
  schema = schema.test("required", getRequiredFieldError("content"), editorHasValue);
736
737
  }
737
738
  return schema.trim();
738
739
  };
739
- var validateFileUploadField = function validateFileUploadField(_ref14) {
740
- var isRequired = _ref14.isRequired,
741
- multipleFilesAllowed = _ref14.multipleFilesAllowed;
740
+ var validateFileUploadField = function validateFileUploadField(_ref16) {
741
+ var isRequired = _ref16.isRequired,
742
+ multipleFilesAllowed = _ref16.multipleFilesAllowed;
742
743
  var files_schema = yup.array();
743
744
  if (isRequired) {
744
745
  files_schema = files_schema.of(yup.object().shape({
@@ -751,29 +752,29 @@ var validateFileUploadField = function validateFileUploadField(_ref14) {
751
752
  files: files_schema
752
753
  });
753
754
  };
754
- var validateCaptchaField = function validateCaptchaField(_ref15) {
755
- var variant = _ref15.variant;
755
+ var validateCaptchaField = function validateCaptchaField(_ref17) {
756
+ var variant = _ref17.variant;
756
757
  return variant === CAPTCHA_TYPES.MATH_CAPTCHA ? yup.mixed().test("verification failed", t("neetoForm.error.captchaVerificationFailed"), function (value) {
757
758
  return isNotPresent(value) || value;
758
759
  }).transform(function (value) {
759
760
  return value === "" ? null : value;
760
761
  }).required(t("neetoForm.error.incompleteCaptcha")) : yup.string().trim().required(t("neetoForm.error.incompleteCaptcha"));
761
762
  };
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);
763
+ 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(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CAPTCHA.value, validateCaptchaField), QUESTION_KIND.SMS_REMINDER.value, validateTextField), QUESTION_KIND.ADDRESS.value, validateAddressField));
764
+ var validateFieldValue = function validateFieldValue(_ref18) {
765
+ var kind = _ref18.kind,
766
+ customValidator = _ref18.customValidator,
767
+ otherProps = _objectWithoutProperties(_ref18, _excluded$4);
767
768
  return function (value) {
768
769
  if (!(kind in fieldKindValidatorMap)) return;
769
770
  var validator = fieldKindValidatorMap[kind];
770
- var schema = customValidator || validator(_objectSpread$g({
771
+ var schema = customValidator || validator(_objectSpread$h({
771
772
  kind: kind
772
773
  }, otherProps));
773
774
 
774
775
  // eslint-disable-next-line consistent-return, no-async-promise-executor
775
776
  return new Promise(/*#__PURE__*/function () {
776
- var _ref17 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
777
+ var _ref19 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
777
778
  return _regeneratorRuntime.wrap(function _callee$(_context) {
778
779
  while (1) switch (_context.prev = _context.next) {
779
780
  case 0:
@@ -795,7 +796,7 @@ var validateFieldValue = function validateFieldValue(_ref16) {
795
796
  }, _callee, null, [[0, 6]]);
796
797
  }));
797
798
  return function (_x) {
798
- return _ref17.apply(this, arguments);
799
+ return _ref19.apply(this, arguments);
799
800
  };
800
801
  }());
801
802
  };
@@ -829,7 +830,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
829
830
 
830
831
  // eslint-disable-next-line no-async-promise-executor
831
832
  return new Promise(/*#__PURE__*/function () {
832
- var _ref18 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
833
+ var _ref20 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
833
834
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
834
835
  while (1) switch (_context2.prev = _context2.next) {
835
836
  case 0:
@@ -853,7 +854,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
853
854
  }, _callee2, null, [[0, 6]]);
854
855
  }));
855
856
  return function (_x2) {
856
- return _ref18.apply(this, arguments);
857
+ return _ref20.apply(this, arguments);
857
858
  };
858
859
  }());
859
860
  };
@@ -927,6 +928,94 @@ var MultipleEmailInput = function MultipleEmailInput(_ref) {
927
928
  });
928
929
  };
929
930
 
931
+ 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; }
932
+ 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; }
933
+ var AddressField = function AddressField(_ref) {
934
+ var question = _ref.question,
935
+ customValidator = _ref.customValidator;
936
+ var name = question.id,
937
+ kind = question.kind,
938
+ isAddressRequired = question.isRequired,
939
+ isReadOnly = question.isReadOnly,
940
+ _question$fields = question.fields,
941
+ fields = _question$fields === void 0 ? [] : _question$fields;
942
+ var label = fieldWithFallback(question, "label");
943
+ var transformedFields = fields.map(function (field) {
944
+ return _objectSpread$g(_objectSpread$g({}, field), {}, {
945
+ label: fieldWithFallback(field, "label")
946
+ });
947
+ });
948
+ return /*#__PURE__*/jsxs("div", {
949
+ className: "neeto-form-engine-address-wrapper",
950
+ children: [/*#__PURE__*/jsx("div", {
951
+ className: "neeto-form-engine-input__label-wrapper",
952
+ children: label && /*#__PURE__*/jsx("label", {
953
+ className: "neeto-form-engine-label",
954
+ "data-testid": "".concat(hyphenate(label), "-input-label"),
955
+ children: label
956
+ })
957
+ }), /*#__PURE__*/jsx("div", {
958
+ className: "neeto-form-engine-address pb-1",
959
+ children: getVisibleOptions(transformedFields).map(function (_ref2) {
960
+ var id = _ref2.id,
961
+ label = _ref2.label,
962
+ width = _ref2.width,
963
+ fieldType = _ref2.fieldType,
964
+ properties = _ref2.properties,
965
+ isRequired = _ref2.isRequired;
966
+ return /*#__PURE__*/jsx("div", {
967
+ "data-testid": "neeto-form-engine-address-fields",
968
+ className: classnames("neeto-form-engine-address__field", {
969
+ "neeto-form-engine-address__field--width-full": width === ADDRESS_FIELD_WIDTHS.FULL,
970
+ "neeto-form-engine-address__field--width-half": width === ADDRESS_FIELD_WIDTHS.HALF,
971
+ "neeto-form-engine-address__field--width-one-forth": width === ADDRESS_FIELD_WIDTHS.ONE_FOURTH,
972
+ "neeto-form-engine-address__field--width-three-forth": width === ADDRESS_FIELD_WIDTHS.THREE_FOURTH
973
+ }),
974
+ children: /*#__PURE__*/jsx(Field$1, {
975
+ name: "".concat(name, ".").concat(id),
976
+ validate: isAddressRequired ? validateFieldValue({
977
+ kind: kind,
978
+ label: label,
979
+ isRequired: isRequired,
980
+ customValidator: customValidator
981
+ }) : noop,
982
+ children: function children(_ref3) {
983
+ var _properties$options;
984
+ var field = _ref3.field,
985
+ meta = _ref3.meta,
986
+ form = _ref3.form;
987
+ return fieldType === ADDRESS_FIELD_TYPES.SELECT ? /*#__PURE__*/jsx(Select, _objectSpread$g(_objectSpread$g({
988
+ label: label,
989
+ size: "large"
990
+ }, field), {}, {
991
+ error: meta.touched && meta.error,
992
+ isDisabled: isReadOnly,
993
+ menuPosition: "absolute",
994
+ required: isRequired,
995
+ value: toLabelAndValue(field.value),
996
+ options: properties === null || properties === void 0 || (_properties$options = properties.options) === null || _properties$options === void 0 ? void 0 : _properties$options.map(function (_ref4) {
997
+ var label = _ref4.label;
998
+ return toLabelAndValue(label);
999
+ }),
1000
+ onChange: function onChange(_ref5) {
1001
+ var value = _ref5.value;
1002
+ return !isReadOnly && form.setFieldValue("".concat(name, ".").concat(id), value);
1003
+ }
1004
+ })) : /*#__PURE__*/jsx(Input, _objectSpread$g(_objectSpread$g({}, _objectSpread$g(_objectSpread$g({}, field), {}, {
1005
+ label: label
1006
+ })), {}, {
1007
+ disabled: isReadOnly,
1008
+ error: meta.touched && meta.error,
1009
+ required: isRequired
1010
+ }));
1011
+ }
1012
+ })
1013
+ }, id);
1014
+ })
1015
+ })]
1016
+ });
1017
+ };
1018
+
930
1019
  var CaptchaField = function CaptchaField(_ref) {
931
1020
  var question = _ref.question,
932
1021
  preview = _ref.preview,
@@ -1726,6 +1815,111 @@ var NameField = function NameField(props) {
1726
1815
  }));
1727
1816
  };
1728
1817
 
1818
+ var OpinionScaleField = function OpinionScaleField(_ref) {
1819
+ var question = _ref.question,
1820
+ customValidator = _ref.customValidator;
1821
+ var name = question.id,
1822
+ kind = question.kind,
1823
+ isRequired = question.isRequired,
1824
+ minValue = question.minValue,
1825
+ maxValue = question.maxValue,
1826
+ isReadOnly = question.isReadOnly,
1827
+ hasOpinionLabels = question.hasOpinionLabels;
1828
+ var label = fieldWithFallback(question, "label");
1829
+ var leftOpinionLabel = fieldWithFallback(question, "leftOpinionLabel");
1830
+ var rightOpinionLabel = fieldWithFallback(question, "rightOpinionLabel");
1831
+ var _useField = useField({
1832
+ name: name,
1833
+ validate: validateFieldValue({
1834
+ kind: kind,
1835
+ label: label,
1836
+ isRequired: isRequired,
1837
+ customValidator: customValidator
1838
+ })
1839
+ }),
1840
+ _useField2 = _slicedToArray(_useField, 3),
1841
+ field = _useField2[0],
1842
+ _useField2$ = _useField2[1],
1843
+ error = _useField2$.error,
1844
+ touched = _useField2$.touched,
1845
+ setValue = _useField2[2].setValue;
1846
+ var handleClick = function handleClick(event, index) {
1847
+ if (index !== parseInt(field.value)) return;
1848
+ event.preventDefault();
1849
+ setValue("");
1850
+ };
1851
+ var opinionScaleOptions = generateArray(minValue, maxValue);
1852
+ return /*#__PURE__*/jsxs("div", {
1853
+ className: "neeto-form-engine-input__wrapper neeto-form-engine-opinion-scale",
1854
+ children: [/*#__PURE__*/jsx("div", {
1855
+ className: "neeto-form-engine-input__label-wrapper",
1856
+ children: /*#__PURE__*/jsx("label", {
1857
+ className: "neeto-form-engine-label",
1858
+ "data-testid": "opinion-scale-input-label",
1859
+ children: getLabel(label, isRequired)
1860
+ })
1861
+ }), /*#__PURE__*/jsx("div", {
1862
+ className: "neeto-form-nano-opinion-scale",
1863
+ "data-testid": "form-opinion-scale",
1864
+ children: /*#__PURE__*/jsxs("div", {
1865
+ className: "neeto-form-nano-opinion-scale__group",
1866
+ children: [hasOpinionLabels && /*#__PURE__*/jsx("div", {
1867
+ className: "neeto-form-nano-opinion-scale__labels-wrap neeto-form-nano-opinion-scale__labels-wrap-mobile",
1868
+ children: /*#__PURE__*/jsx("label", {
1869
+ className: "neeto-form-nano-opinion-scale__label",
1870
+ "data-testid": "opinion-scale-left-label",
1871
+ children: leftOpinionLabel
1872
+ })
1873
+ }), /*#__PURE__*/jsx("ul", {
1874
+ className: "neeto-form-nano-opinion-scale__list",
1875
+ "data-testid": "opinion-scale-list",
1876
+ children: opinionScaleOptions.map(function (step) {
1877
+ return /*#__PURE__*/jsx("li", {
1878
+ className: "neeto-form-nano-opinion-scale__item",
1879
+ "data-testid": "opinion-scale-list-item",
1880
+ children: /*#__PURE__*/jsxs("label", {
1881
+ className: "neeto-form-nano-opinion-scale__item-label",
1882
+ "data-testid": "opinion-scale-label",
1883
+ onClick: function onClick(event) {
1884
+ return handleClick(event, step);
1885
+ },
1886
+ children: [/*#__PURE__*/jsx(Field$1, {
1887
+ name: name,
1888
+ checked: parseInt(field.value) === step,
1889
+ className: "neeto-form-nano-sr-only neeto-form-nano-opinion-scale__item-input",
1890
+ "data-testid": "opinion-scale-input-".concat(step),
1891
+ disabled: isReadOnly,
1892
+ type: "radio",
1893
+ value: step
1894
+ }), /*#__PURE__*/jsx("span", {
1895
+ className: "neeto-form-nano-opinion-scale__item-highlight",
1896
+ "data-testid": "opinion-scale-item-".concat(step),
1897
+ children: step
1898
+ })]
1899
+ })
1900
+ }, step);
1901
+ })
1902
+ }), hasOpinionLabels && /*#__PURE__*/jsxs("div", {
1903
+ className: "neeto-form-nano-opinion-scale__labels-wrap",
1904
+ children: [/*#__PURE__*/jsx("label", {
1905
+ className: "neeto-form-nano-opinion-scale__label neeto-form-nano-opinion-scale__label--start",
1906
+ "data-testid": "opinion-scale-left-label",
1907
+ children: leftOpinionLabel
1908
+ }), /*#__PURE__*/jsx("label", {
1909
+ className: "neeto-form-nano-opinion-scale__label neeto-form-nano-opinion-scale__label--end",
1910
+ "data-testid": "opinion-scale-right-label",
1911
+ children: rightOpinionLabel
1912
+ })]
1913
+ })]
1914
+ })
1915
+ }), touched && error && /*#__PURE__*/jsx("p", {
1916
+ className: "neeto-form-engine-input__error",
1917
+ "data-testid": "neeto-form-engine-opinion-scale-error",
1918
+ children: error
1919
+ })]
1920
+ });
1921
+ };
1922
+
1729
1923
  var ChoiceImage = function ChoiceImage(_ref) {
1730
1924
  var src = _ref.src,
1731
1925
  alt = _ref.alt,
@@ -2369,7 +2563,7 @@ var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty(_de
2369
2563
  return /*#__PURE__*/jsx(EditorContent, {
2370
2564
  content: fieldWithFallback(question, "label", true)
2371
2565
  });
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));
2566
+ }), 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(_defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), QUESTION_KIND.CAPTCHA.value, CaptchaField), QUESTION_KIND.SMS_REMINDER.value, PhoneNumberField), QUESTION_KIND.ADDRESS.value, AddressField));
2373
2567
  var CAPTCHA_COMPONENT_MAP = _defineProperty(_defineProperty({}, CAPTCHA_TYPES.RECAPTCHA_V2, Recaptcha), CAPTCHA_TYPES.MATH_CAPTCHA, MathCaptcha);
2374
2568
 
2375
2569
  var getFieldComponent = function getFieldComponent(_ref) {
@@ -2398,6 +2592,13 @@ var getPhoneData = function getPhoneData(value, countryCode) {
2398
2592
  var containsIgnoreCase = function containsIgnoreCase(string, substring) {
2399
2593
  return string.toLowerCase().includes(substring.toLowerCase());
2400
2594
  };
2595
+ var getVisibleOptions = function getVisibleOptions(options) {
2596
+ return Array.isArray(options) ? options.filter(function (option) {
2597
+ return !option.deleted;
2598
+ }).sort(function (a, b) {
2599
+ return a.position - b.position;
2600
+ }) : [];
2601
+ };
2401
2602
 
2402
2603
  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
2604
+ //# sourceMappingURL=utils-CDyve_0y.js.map