@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
@@ -3,13 +3,13 @@
3
3
  var React = require('react');
4
4
  var formik = require('formik');
5
5
  var neetoCist = require('@bigbinary/neeto-cist');
6
- var index = require('./index-D4URTv1p.js');
6
+ var index = require('./index-Dz5Yvk3n.js');
7
7
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
8
8
  var libphonenumberJs = require('libphonenumber-js');
9
9
  var ramda = require('ramda');
10
10
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
11
  var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
12
- var constants$1 = require('./constants-C9wKMfgo.js');
12
+ var constants = require('./constants-DNNZYQ9X.js');
13
13
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
14
14
  var Plus = require('@bigbinary/neeto-icons/Plus');
15
15
  var Button = require('@bigbinary/neetoui/Button');
@@ -20,15 +20,16 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
20
20
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
21
21
  var utils$1 = require('@bigbinary/neeto-editor/utils');
22
22
  var PhoneNumber = require('@bigbinary/neeto-molecules/PhoneNumber');
23
- var yup = require('yup');
24
23
  var i18next = require('i18next');
25
24
  var jsxRuntime = require('react/jsx-runtime');
25
+ var yup = require('./yup-DcJey7xZ.js');
26
26
  var _toArray = require('@babel/runtime/helpers/toArray');
27
- var constants = require('./constants-BjWWA3Oq.js');
27
+ var yup$1 = require('yup');
28
28
  var classnames = require('classnames');
29
+ var Select = require('@bigbinary/neetoui/Select');
30
+ var Input = require('@bigbinary/neetoui/Input');
29
31
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
30
32
  var Refresh = require('@bigbinary/neeto-icons/Refresh');
31
- var Input = require('@bigbinary/neetoui/Input');
32
33
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
33
34
  var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
34
35
  var ReCAPTCHA = require('react-google-recaptcha');
@@ -42,7 +43,6 @@ var Spinner = require('@bigbinary/neetoui/Spinner');
42
43
  var NeetoUICallout = require('@bigbinary/neetoui/Callout');
43
44
  var FileUpload = require('@bigbinary/neeto-molecules/FileUpload');
44
45
  var Label = require('@bigbinary/neetoui/Label');
45
- var Select = require('@bigbinary/neetoui/Select');
46
46
  var Radio = require('@bigbinary/neetoui/Radio');
47
47
  var Image = require('@bigbinary/neeto-icons/Image');
48
48
  var NeetoEditor = require('@bigbinary/neeto-editor/Editor');
@@ -65,7 +65,7 @@ function _interopNamespaceDefault(e) {
65
65
  return Object.freeze(n);
66
66
  }
67
67
 
68
- var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
68
+ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup$1);
69
69
 
70
70
  var clientI18nInstance = i18next.cloneInstance();
71
71
 
@@ -247,8 +247,8 @@ var getInvalidTypeError = function getInvalidTypeError(label, type) {
247
247
  });
248
248
  };
249
249
 
250
- 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; }
251
- 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; }
250
+ 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; }
251
+ 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; }
252
252
  var resolveQueryParamValue = ramda.when(ramda.is(Array), ramda.last);
253
253
  var toEmailValues = function toEmailValues() {
254
254
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -264,7 +264,7 @@ var getPhoneNumberFromUrl = function getPhoneNumberFromUrl(fieldCodes, fieldCode
264
264
  var _resolveQueryParamVal;
265
265
  var countryCode = resolveQueryParamValue(fieldCodes["".concat(fieldCode, ".country")]);
266
266
  var phoneNumber = resolveQueryParamValue(fieldCodes["".concat(fieldCode, ".number")]);
267
- var phoneNumberWithCountryCode = (_resolveQueryParamVal = resolveQueryParamValue(fieldCodes[fieldCode])) === null || _resolveQueryParamVal === void 0 ? void 0 : _resolveQueryParamVal.replace(constants.PARENTHESES_REGEX, "");
267
+ var phoneNumberWithCountryCode = (_resolveQueryParamVal = resolveQueryParamValue(fieldCodes[fieldCode])) === null || _resolveQueryParamVal === void 0 ? void 0 : _resolveQueryParamVal.replace(yup.PARENTHESES_REGEX, "");
268
268
  if (phoneNumberWithCountryCode) return phoneNumberWithCountryCode;
269
269
  if (!countryCode || !phoneNumber) return undefined;
270
270
  var formattedValue = getPhoneData(phoneNumber, countryCode);
@@ -292,7 +292,7 @@ var getMultipleOptionsFromURL = function getMultipleOptionsFromURL(_ref2) {
292
292
  return allOptions.includes(option.label);
293
293
  });
294
294
  };
295
- var getStarRatingFromUrl = function getStarRatingFromUrl(_ref3) {
295
+ var getStarRatingOrOpinionScaleFromUrl = function getStarRatingOrOpinionScaleFromUrl(_ref3) {
296
296
  var minValue = _ref3.minValue,
297
297
  maxValue = _ref3.maxValue,
298
298
  fieldCodes = _ref3.fieldCodes,
@@ -311,7 +311,7 @@ var getAdditionalGuestsFromUrl = function getAdditionalGuestsFromUrl(_ref4) {
311
311
  return {
312
312
  label: email.trim(),
313
313
  value: email.trim(),
314
- valid: constants.EMAIL_REGEX.test(email.trim())
314
+ valid: yup.EMAIL_REGEX.test(email.trim())
315
315
  };
316
316
  });
317
317
  };
@@ -319,7 +319,7 @@ var getRatingFromUrl = function getRatingFromUrl(_ref5) {
319
319
  var fieldCodes = _ref5.fieldCodes,
320
320
  fieldCode = _ref5.fieldCode;
321
321
  var fieldCodeValue = resolveQueryParamValue(fieldCodes[fieldCode]);
322
- var allowedValues = Object.values(constants.RATING_VALUES).map(ramda.prop("value"));
322
+ var allowedValues = Object.values(yup.RATING_VALUES).map(ramda.prop("value"));
323
323
  return allowedValues.includes(fieldCodeValue) ? fieldCodeValue : "";
324
324
  };
325
325
  var getNumberFromUrl = function getNumberFromUrl(_ref6) {
@@ -327,7 +327,7 @@ var getNumberFromUrl = function getNumberFromUrl(_ref6) {
327
327
  fieldCode = _ref6.fieldCode,
328
328
  kind = _ref6.kind;
329
329
  var fieldCodeValue = resolveQueryParamValue(fieldCodes[fieldCode]);
330
- var parsedValue = kind === constants.QUESTION_KIND.INTEGER.value ? parseInt(fieldCodeValue) : parseFloat(fieldCodeValue);
330
+ var parsedValue = kind === yup.QUESTION_KIND.INTEGER.value ? parseInt(fieldCodeValue) : parseFloat(fieldCodeValue);
331
331
  return parsedValue || "";
332
332
  };
333
333
  var getNameFromUrl = function getNameFromUrl(_ref7, fieldCodes) {
@@ -363,7 +363,7 @@ var getNameFromUrl = function getNameFromUrl(_ref7, fieldCodes) {
363
363
  var buildEmailVerificationEntries = function buildEmailVerificationEntries() {
364
364
  var questions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
365
365
  var emailQuestionsRequiringVerification = neetoCist.filterBy({
366
- kind: constants$1.QUESTION_TYPES.EMAIL,
366
+ kind: constants.QUESTION_TYPES.EMAIL,
367
367
  isVerificationEnabled: true
368
368
  }, questions);
369
369
  var fieldNames = ramda.map(function (_ref8) {
@@ -387,7 +387,7 @@ var generateInitValues = function generateInitValues(_ref9) {
387
387
  var valuesMap = {};
388
388
  if (initialValues) {
389
389
  valuesMap = initialValues.reduce(function (acc, answer) {
390
- return _objectSpread$h(_objectSpread$h({}, acc), {}, _defineProperty({}, answer.questionId, {
390
+ return _objectSpread$i(_objectSpread$i({}, acc), {}, _defineProperty({}, answer.questionId, {
391
391
  value: answer.value,
392
392
  optionIds: answer.optionIds
393
393
  }));
@@ -399,15 +399,16 @@ var generateInitValues = function generateInitValues(_ref9) {
399
399
  optionsAttributes = question.optionsAttributes,
400
400
  fieldCode = question.fieldCode,
401
401
  minValue = question.minValue,
402
- maxValue = question.maxValue;
402
+ maxValue = question.maxValue,
403
+ fields = question.fields;
403
404
  switch (kind) {
404
- case constants.QUESTION_KIND.CONDITION.value:
405
+ case yup.QUESTION_KIND.CONDITION.value:
405
406
  {
406
407
  var _valuesMap$id$value, _valuesMap;
407
408
  initValues[id] = (_valuesMap$id$value = (_valuesMap = valuesMap) === null || _valuesMap === void 0 || (_valuesMap = _valuesMap[id]) === null || _valuesMap === void 0 ? void 0 : _valuesMap.value) !== null && _valuesMap$id$value !== void 0 ? _valuesMap$id$value : false;
408
409
  return;
409
410
  }
410
- case constants.QUESTION_KIND.ADDITIONAL_GUESTS.value:
411
+ case yup.QUESTION_KIND.ADDITIONAL_GUESTS.value:
411
412
  {
412
413
  var _valuesMap2;
413
414
  var emailsFromSubmission = toEmailValues((_valuesMap2 = valuesMap) === null || _valuesMap2 === void 0 || (_valuesMap2 = _valuesMap2[id]) === null || _valuesMap2 === void 0 ? void 0 : _valuesMap2.value);
@@ -417,7 +418,7 @@ var generateInitValues = function generateInitValues(_ref9) {
417
418
  });
418
419
  return;
419
420
  }
420
- case constants.QUESTION_KIND.CHECKBOX.value:
421
+ case yup.QUESTION_KIND.CHECKBOX.value:
421
422
  {
422
423
  var _valuesMap$id;
423
424
  initValues[id] = (_valuesMap$id = valuesMap[id]) !== null && _valuesMap$id !== void 0 && (_valuesMap$id = _valuesMap$id.optionIds) !== null && _valuesMap$id !== void 0 && _valuesMap$id.length ? optionsAttributes.map(function (option) {
@@ -430,8 +431,8 @@ var generateInitValues = function generateInitValues(_ref9) {
430
431
  });
431
432
  return;
432
433
  }
433
- case constants.QUESTION_KIND.RADIO.value:
434
- case constants.QUESTION_KIND.DROPDOWN.value:
434
+ case yup.QUESTION_KIND.RADIO.value:
435
+ case yup.QUESTION_KIND.DROPDOWN.value:
435
436
  {
436
437
  var _optionsAttributes$fi;
437
438
  initValues[id] = ((_optionsAttributes$fi = optionsAttributes.find(function (option) {
@@ -444,8 +445,8 @@ var generateInitValues = function generateInitValues(_ref9) {
444
445
  });
445
446
  return;
446
447
  }
447
- case constants.QUESTION_KIND.INTEGER.value:
448
- case constants.QUESTION_KIND.DECIMAL.value:
448
+ case yup.QUESTION_KIND.INTEGER.value:
449
+ case yup.QUESTION_KIND.DECIMAL.value:
449
450
  {
450
451
  var _valuesMap3;
451
452
  initValues[id] = ((_valuesMap3 = valuesMap) === null || _valuesMap3 === void 0 || (_valuesMap3 = _valuesMap3[id]) === null || _valuesMap3 === void 0 ? void 0 : _valuesMap3.value) || getNumberFromUrl({
@@ -455,7 +456,7 @@ var generateInitValues = function generateInitValues(_ref9) {
455
456
  });
456
457
  return;
457
458
  }
458
- case constants.QUESTION_KIND.RATING.value:
459
+ case yup.QUESTION_KIND.RATING.value:
459
460
  {
460
461
  var _valuesMap4;
461
462
  initValues[id] = ((_valuesMap4 = valuesMap) === null || _valuesMap4 === void 0 || (_valuesMap4 = _valuesMap4[id]) === null || _valuesMap4 === void 0 ? void 0 : _valuesMap4.value) || getRatingFromUrl({
@@ -464,12 +465,12 @@ var generateInitValues = function generateInitValues(_ref9) {
464
465
  });
465
466
  return;
466
467
  }
467
- case constants.QUESTION_KIND.TERMS.value:
468
+ case yup.QUESTION_KIND.TERMS.value:
468
469
  {
469
470
  initValues[id] = false;
470
471
  return;
471
472
  }
472
- case constants.QUESTION_KIND.FILE_UPLOAD.value:
473
+ case yup.QUESTION_KIND.FILE_UPLOAD.value:
473
474
  {
474
475
  var _valuesMap$id$value2, _valuesMap5;
475
476
  initValues[id] = {
@@ -477,17 +478,18 @@ var generateInitValues = function generateInitValues(_ref9) {
477
478
  };
478
479
  return;
479
480
  }
480
- case constants.QUESTION_KIND.PHONE.value:
481
- case constants.QUESTION_KIND.SMS_REMINDER.value:
481
+ case yup.QUESTION_KIND.PHONE.value:
482
+ case yup.QUESTION_KIND.SMS_REMINDER.value:
482
483
  {
483
484
  var _valuesMap$id$value3, _valuesMap6;
484
485
  initValues[id] = (_valuesMap$id$value3 = (_valuesMap6 = valuesMap) === null || _valuesMap6 === void 0 || (_valuesMap6 = _valuesMap6[id]) === null || _valuesMap6 === void 0 ? void 0 : _valuesMap6.value) !== null && _valuesMap$id$value3 !== void 0 ? _valuesMap$id$value3 : getPhoneNumberFromUrl(fieldCodes, fieldCode);
485
486
  return;
486
487
  }
487
- case constants.QUESTION_KIND.STAR_RATING.value:
488
+ case yup.QUESTION_KIND.STAR_RATING.value:
489
+ case yup.QUESTION_KIND.OPINION_SCALE.value:
488
490
  {
489
491
  var _valuesMap$id$value4, _valuesMap7;
490
- 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({
492
+ 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({
491
493
  minValue: minValue,
492
494
  maxValue: maxValue,
493
495
  fieldCodes: fieldCodes,
@@ -495,16 +497,25 @@ var generateInitValues = function generateInitValues(_ref9) {
495
497
  });
496
498
  return;
497
499
  }
498
- case constants.QUESTION_KIND.NAME.value:
500
+ case yup.QUESTION_KIND.NAME.value:
499
501
  {
500
502
  var _valuesMap$id$value5, _valuesMap8;
501
503
  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);
502
504
  return;
503
505
  }
504
- default:
506
+ case yup.QUESTION_KIND.ADDRESS.value:
505
507
  {
506
508
  var _valuesMap$id$value6, _valuesMap9;
507
- 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] || "");
509
+ 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) {
510
+ values[field.id] = "";
511
+ return values;
512
+ }, {});
513
+ return;
514
+ }
515
+ default:
516
+ {
517
+ var _valuesMap$id$value7, _valuesMap10;
518
+ 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] || "");
508
519
  return;
509
520
  }
510
521
  }
@@ -518,9 +529,9 @@ var generateFormResponse = function generateFormResponse(response, questions) {
518
529
  var id = question.id,
519
530
  kind = question.kind,
520
531
  optionsAttributes = question.optionsAttributes;
521
- if (!constants.SCHEMA_LESS_QUESTION_KINDS.includes(kind)) {
532
+ if (!yup.SCHEMA_LESS_QUESTION_KINDS.includes(kind)) {
522
533
  var responseValue = response[id];
523
- if (kind === constants.QUESTION_KIND.RADIO.value || kind === constants.QUESTION_KIND.DROPDOWN.value) {
534
+ if (kind === yup.QUESTION_KIND.RADIO.value || kind === yup.QUESTION_KIND.DROPDOWN.value) {
524
535
  var option = neetoCist.findById(responseValue, optionsAttributes);
525
536
  if (option) {
526
537
  formResponse.push({
@@ -530,7 +541,7 @@ var generateFormResponse = function generateFormResponse(response, questions) {
530
541
  kind: kind
531
542
  });
532
543
  }
533
- } else if (kind === constants.QUESTION_KIND.CHECKBOX.value) {
544
+ } else if (kind === yup.QUESTION_KIND.CHECKBOX.value) {
534
545
  responseValue.forEach(function (isChecked, index) {
535
546
  if (!isChecked) return;
536
547
  var option = optionsAttributes[index];
@@ -547,19 +558,19 @@ var generateFormResponse = function generateFormResponse(response, questions) {
547
558
  value: responseValue ? libphonenumberJs.parsePhoneNumber(responseValue).formatInternational() : "",
548
559
  kind: kind
549
560
  });
550
- } else if (kind === constants.QUESTION_KIND.ADDITIONAL_GUESTS.value) {
561
+ } else if (kind === yup.QUESTION_KIND.ADDITIONAL_GUESTS.value) {
551
562
  formResponse.push({
552
563
  questionId: id,
553
564
  value: responseValue ? ramda.pluck("value", responseValue) : null,
554
565
  kind: kind
555
566
  });
556
- } else if (kind === constants.QUESTION_KIND.FILE_UPLOAD.value) {
567
+ } else if (kind === yup.QUESTION_KIND.FILE_UPLOAD.value) {
557
568
  formResponse.push({
558
569
  questionId: id,
559
570
  files: neetoCist.isPresent(responseValue) ? responseValue.files : null,
560
571
  kind: kind
561
572
  });
562
- } else if (kind === constants.QUESTION_KIND.DATE.value) {
573
+ } else if (kind === yup.QUESTION_KIND.DATE.value) {
563
574
  formResponse.push({
564
575
  questionId: id,
565
576
  value: utils.dayjs(responseValue).isValid() ?
@@ -604,39 +615,13 @@ var getSelectedRating = function getSelectedRating(value) {
604
615
  var parsedValue = parseInt(value);
605
616
  return isNaN(parsedValue) ? -1 : parsedValue;
606
617
  };
607
- var isPhoneNumberField = ramda.includes(ramda.__, [constants.QUESTION_KIND.PHONE.value, constants.QUESTION_KIND.SMS_REMINDER.value]);
618
+ var isPhoneNumberField = ramda.includes(ramda.__, [yup.QUESTION_KIND.PHONE.value, yup.QUESTION_KIND.SMS_REMINDER.value]);
608
619
 
609
620
  var _excluded$4 = ["kind", "customValidator"];
610
621
  var _fieldKindValidatorMa;
611
- 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; }
612
- 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; }
622
+ 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; }
623
+ 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; }
613
624
  var t = clientI18nInstance.t;
614
- yup__namespace.addMethod(yup__namespace.array, "unique", function () {
615
- var field, message;
616
- if (arguments.length > 1) {
617
- field = arguments[0];
618
- message = arguments[1];
619
- } else {
620
- message = arguments[0];
621
- }
622
- var getValue = function getValue(item) {
623
- return field ? item[field] : item;
624
- };
625
- var valueInLowerCase = ramda.pipe(getValue, ramda.toLower);
626
- return this.test("unique", message, function () {
627
- var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
628
- // ignore destroyed items in the array
629
- var validItems = ramda.reject(ramda.prop("_destroy"), array);
630
- var uniqueItems = new Set(ramda.map(valueInLowerCase, validItems));
631
-
632
- // all items are unique
633
- if (validItems.length === uniqueItems.size) return true;
634
- return this.createError({
635
- path: this.path,
636
- message: message
637
- });
638
- });
639
- });
640
625
  var isValidDate = function isValidDate(date) {
641
626
  return date && utils.dayjs(date).isValid();
642
627
  };
@@ -715,19 +700,28 @@ var validateStarRatingField = function validateStarRatingField(_ref8) {
715
700
  }
716
701
  return schema.trim();
717
702
  };
718
- var validateTermsField = function validateTermsField(_ref9) {
719
- var _ref9$isRequired = _ref9.isRequired,
720
- isRequired = _ref9$isRequired === void 0 ? true : _ref9$isRequired;
721
- return isRequired ? yup__namespace["boolean"]().oneOf([true], t("neetoForm.common.mustAcceptTermsAndConditions")) : yup__namespace["boolean"]().notRequired();
703
+ var validateOpinionScaleField = function validateOpinionScaleField(_ref9) {
704
+ var label = _ref9.label,
705
+ isRequired = _ref9.isRequired;
706
+ var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string"));
707
+ if (isRequired) {
708
+ schema = schema.required(getSelectMinError(t("neetoForm.common.selection")));
709
+ }
710
+ return schema.trim();
722
711
  };
723
- var validateConditionField = function validateConditionField(_ref10) {
712
+ var validateTermsField = function validateTermsField(_ref10) {
724
713
  var _ref10$isRequired = _ref10.isRequired,
725
714
  isRequired = _ref10$isRequired === void 0 ? true : _ref10$isRequired;
715
+ return isRequired ? yup__namespace["boolean"]().oneOf([true], t("neetoForm.common.mustAcceptTermsAndConditions")) : yup__namespace["boolean"]().notRequired();
716
+ };
717
+ var validateConditionField = function validateConditionField(_ref11) {
718
+ var _ref11$isRequired = _ref11.isRequired,
719
+ isRequired = _ref11$isRequired === void 0 ? true : _ref11$isRequired;
726
720
  return isRequired ? yup__namespace["boolean"]().oneOf([true], t("neetoForm.common.mustAcceptCondition")) : yup__namespace["boolean"]().notRequired();
727
721
  };
728
- var validateDateField = function validateDateField(_ref11) {
729
- var label = _ref11.label,
730
- isRequired = _ref11.isRequired;
722
+ var validateDateField = function validateDateField(_ref12) {
723
+ var label = _ref12.label,
724
+ isRequired = _ref12.isRequired;
731
725
  var schema = yup__namespace.string().test("is valid date", getInvalidTypeError(label, "date"), function (value) {
732
726
  return neetoCist.isNotPresent(value) || isValidDate(value);
733
727
  });
@@ -736,8 +730,8 @@ var validateDateField = function validateDateField(_ref11) {
736
730
  }
737
731
  return schema;
738
732
  };
739
- var validateMultiEmailField = function validateMultiEmailField(_ref12) {
740
- var isRequired = _ref12.isRequired;
733
+ var validateMultiEmailField = function validateMultiEmailField(_ref13) {
734
+ var isRequired = _ref13.isRequired;
741
735
  var schema = yup__namespace.array().of(yup__namespace.object().shape({
742
736
  value: yup__namespace.string().email(getInvalidFieldError("Email")).trim()
743
737
  })).nullable();
@@ -746,20 +740,27 @@ var validateMultiEmailField = function validateMultiEmailField(_ref12) {
746
740
  }
747
741
  return schema;
748
742
  };
743
+ var validateAddressField = function validateAddressField(_ref14) {
744
+ var label = _ref14.label,
745
+ isRequired = _ref14.isRequired;
746
+ var schema = yup__namespace.string().typeError(getInvalidTypeError(label, "string"));
747
+ if (isRequired) schema = schema.trim().required(getRequiredFieldError(label));
748
+ return schema.trim();
749
+ };
749
750
  var editorHasValue = function editorHasValue(content) {
750
751
  return !utils$1.isEditorEmpty(content);
751
752
  };
752
- var validateRichTextField = function validateRichTextField(_ref13) {
753
- var isRequired = _ref13.isRequired;
753
+ var validateRichTextField = function validateRichTextField(_ref15) {
754
+ var isRequired = _ref15.isRequired;
754
755
  var schema = yup__namespace.string();
755
756
  if (isRequired) {
756
757
  schema = schema.test("required", getRequiredFieldError("content"), editorHasValue);
757
758
  }
758
759
  return schema.trim();
759
760
  };
760
- var validateFileUploadField = function validateFileUploadField(_ref14) {
761
- var isRequired = _ref14.isRequired,
762
- multipleFilesAllowed = _ref14.multipleFilesAllowed;
761
+ var validateFileUploadField = function validateFileUploadField(_ref16) {
762
+ var isRequired = _ref16.isRequired,
763
+ multipleFilesAllowed = _ref16.multipleFilesAllowed;
763
764
  var files_schema = yup__namespace.array();
764
765
  if (isRequired) {
765
766
  files_schema = files_schema.of(yup__namespace.object().shape({
@@ -772,29 +773,29 @@ var validateFileUploadField = function validateFileUploadField(_ref14) {
772
773
  files: files_schema
773
774
  });
774
775
  };
775
- var validateCaptchaField = function validateCaptchaField(_ref15) {
776
- var variant = _ref15.variant;
777
- return variant === constants$1.CAPTCHA_TYPES.MATH_CAPTCHA ? yup__namespace.mixed().test("verification failed", t("neetoForm.error.captchaVerificationFailed"), function (value) {
776
+ var validateCaptchaField = function validateCaptchaField(_ref17) {
777
+ var variant = _ref17.variant;
778
+ return variant === constants.CAPTCHA_TYPES.MATH_CAPTCHA ? yup__namespace.mixed().test("verification failed", t("neetoForm.error.captchaVerificationFailed"), function (value) {
778
779
  return neetoCist.isNotPresent(value) || value;
779
780
  }).transform(function (value) {
780
781
  return value === "" ? null : value;
781
782
  }).required(t("neetoForm.error.incompleteCaptcha")) : yup__namespace.string().trim().required(t("neetoForm.error.incompleteCaptcha"));
782
783
  };
783
- var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, constants.QUESTION_KIND.EMAIL.value, validateEmailField), constants.QUESTION_KIND.NAME.value, validateNameField), constants.QUESTION_KIND.PHONE.value, validateTextField), constants.QUESTION_KIND.TEXT.value, validateTextField), constants.QUESTION_KIND.QUESTION.value, validateTextField), constants.QUESTION_KIND.TEXTAREA.value, validateTextField), constants.QUESTION_KIND.DECIMAL.value, validateTextField), constants.QUESTION_KIND.INTEGER.value, validateTextField), constants.QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), constants.QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, constants.QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), constants.QUESTION_KIND.RATING.value, validateRatingField), constants.QUESTION_KIND.TERMS.value, validateTermsField), constants.QUESTION_KIND.DATE.value, validateDateField), constants.QUESTION_KIND.STAR_RATING.value, validateStarRatingField), constants.QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), constants.QUESTION_KIND.RICH_TEXT.value, validateRichTextField), constants.QUESTION_KIND.CONDITION.value, validateConditionField), constants.QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), constants.QUESTION_KIND.CAPTCHA.value, validateCaptchaField), _defineProperty(_fieldKindValidatorMa, constants.QUESTION_KIND.SMS_REMINDER.value, validateTextField));
784
- var validateFieldValue = function validateFieldValue(_ref16) {
785
- var kind = _ref16.kind,
786
- customValidator = _ref16.customValidator,
787
- otherProps = _objectWithoutProperties(_ref16, _excluded$4);
784
+ var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, yup.QUESTION_KIND.EMAIL.value, validateEmailField), yup.QUESTION_KIND.NAME.value, validateNameField), yup.QUESTION_KIND.PHONE.value, validateTextField), yup.QUESTION_KIND.TEXT.value, validateTextField), yup.QUESTION_KIND.QUESTION.value, validateTextField), yup.QUESTION_KIND.TEXTAREA.value, validateTextField), yup.QUESTION_KIND.DECIMAL.value, validateTextField), yup.QUESTION_KIND.INTEGER.value, validateTextField), yup.QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), yup.QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, yup.QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), yup.QUESTION_KIND.RATING.value, validateRatingField), yup.QUESTION_KIND.TERMS.value, validateTermsField), yup.QUESTION_KIND.DATE.value, validateDateField), yup.QUESTION_KIND.STAR_RATING.value, validateStarRatingField), yup.QUESTION_KIND.OPINION_SCALE.value, validateOpinionScaleField), yup.QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), yup.QUESTION_KIND.RICH_TEXT.value, validateRichTextField), yup.QUESTION_KIND.CONDITION.value, validateConditionField), yup.QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), _defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, yup.QUESTION_KIND.CAPTCHA.value, validateCaptchaField), yup.QUESTION_KIND.SMS_REMINDER.value, validateTextField), yup.QUESTION_KIND.ADDRESS.value, validateAddressField));
785
+ var validateFieldValue = function validateFieldValue(_ref18) {
786
+ var kind = _ref18.kind,
787
+ customValidator = _ref18.customValidator,
788
+ otherProps = _objectWithoutProperties(_ref18, _excluded$4);
788
789
  return function (value) {
789
790
  if (!(kind in fieldKindValidatorMap)) return;
790
791
  var validator = fieldKindValidatorMap[kind];
791
- var schema = customValidator || validator(_objectSpread$g({
792
+ var schema = customValidator || validator(_objectSpread$h({
792
793
  kind: kind
793
794
  }, otherProps));
794
795
 
795
796
  // eslint-disable-next-line consistent-return, no-async-promise-executor
796
797
  return new Promise(/*#__PURE__*/function () {
797
- var _ref17 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
798
+ var _ref19 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
798
799
  return _regeneratorRuntime.wrap(function _callee$(_context) {
799
800
  while (1) switch (_context.prev = _context.next) {
800
801
  case 0:
@@ -816,7 +817,7 @@ var validateFieldValue = function validateFieldValue(_ref16) {
816
817
  }, _callee, null, [[0, 6]]);
817
818
  }));
818
819
  return function (_x) {
819
- return _ref17.apply(this, arguments);
820
+ return _ref19.apply(this, arguments);
820
821
  };
821
822
  }());
822
823
  };
@@ -840,7 +841,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
840
841
  }).test("is-6-digit-number", t("neetoForm.error.mustBeASixDigitNumber", {
841
842
  entity: entity
842
843
  }), function (value) {
843
- return neetoCist.isNotPresent(value) || constants.SIX_DIGIT_NUMBER_REGEX.test(value);
844
+ return neetoCist.isNotPresent(value) || yup.SIX_DIGIT_NUMBER_REGEX.test(value);
844
845
  }).test("verify code", t("neetoForm.error.emailNotVerified"), function () {
845
846
  var _this$options;
846
847
  return this === null || this === void 0 || (_this$options = this.options) === null || _this$options === void 0 || (_this$options = _this$options.context) === null || _this$options === void 0 ? void 0 : _this$options.isCodeVerified;
@@ -850,7 +851,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
850
851
 
851
852
  // eslint-disable-next-line no-async-promise-executor
852
853
  return new Promise(/*#__PURE__*/function () {
853
- var _ref18 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
854
+ var _ref20 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
854
855
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
855
856
  while (1) switch (_context2.prev = _context2.next) {
856
857
  case 0:
@@ -874,7 +875,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
874
875
  }, _callee2, null, [[0, 6]]);
875
876
  }));
876
877
  return function (_x2) {
877
- return _ref18.apply(this, arguments);
878
+ return _ref20.apply(this, arguments);
878
879
  };
879
880
  }());
880
881
  };
@@ -948,6 +949,94 @@ var MultipleEmailInput = function MultipleEmailInput(_ref) {
948
949
  });
949
950
  };
950
951
 
952
+ 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; }
953
+ 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; }
954
+ var AddressField = function AddressField(_ref) {
955
+ var question = _ref.question,
956
+ customValidator = _ref.customValidator;
957
+ var name = question.id,
958
+ kind = question.kind,
959
+ isAddressRequired = question.isRequired,
960
+ isReadOnly = question.isReadOnly,
961
+ _question$fields = question.fields,
962
+ fields = _question$fields === void 0 ? [] : _question$fields;
963
+ var label = index.fieldWithFallback(question, "label");
964
+ var transformedFields = fields.map(function (field) {
965
+ return _objectSpread$g(_objectSpread$g({}, field), {}, {
966
+ label: index.fieldWithFallback(field, "label")
967
+ });
968
+ });
969
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
970
+ className: "neeto-form-engine-address-wrapper",
971
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
972
+ className: "neeto-form-engine-input__label-wrapper",
973
+ children: label && /*#__PURE__*/jsxRuntime.jsx("label", {
974
+ className: "neeto-form-engine-label",
975
+ "data-testid": "".concat(neetoCist.hyphenate(label), "-input-label"),
976
+ children: label
977
+ })
978
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
979
+ className: "neeto-form-engine-address pb-1",
980
+ children: getVisibleOptions(transformedFields).map(function (_ref2) {
981
+ var id = _ref2.id,
982
+ label = _ref2.label,
983
+ width = _ref2.width,
984
+ fieldType = _ref2.fieldType,
985
+ properties = _ref2.properties,
986
+ isRequired = _ref2.isRequired;
987
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
988
+ "data-testid": "neeto-form-engine-address-fields",
989
+ className: classnames("neeto-form-engine-address__field", {
990
+ "neeto-form-engine-address__field--width-full": width === yup.ADDRESS_FIELD_WIDTHS.FULL,
991
+ "neeto-form-engine-address__field--width-half": width === yup.ADDRESS_FIELD_WIDTHS.HALF,
992
+ "neeto-form-engine-address__field--width-one-forth": width === yup.ADDRESS_FIELD_WIDTHS.ONE_FOURTH,
993
+ "neeto-form-engine-address__field--width-three-forth": width === yup.ADDRESS_FIELD_WIDTHS.THREE_FOURTH
994
+ }),
995
+ children: /*#__PURE__*/jsxRuntime.jsx(formik.Field, {
996
+ name: "".concat(name, ".").concat(id),
997
+ validate: isAddressRequired ? validateFieldValue({
998
+ kind: kind,
999
+ label: label,
1000
+ isRequired: isRequired,
1001
+ customValidator: customValidator
1002
+ }) : neetoCist.noop,
1003
+ children: function children(_ref3) {
1004
+ var _properties$options;
1005
+ var field = _ref3.field,
1006
+ meta = _ref3.meta,
1007
+ form = _ref3.form;
1008
+ return fieldType === yup.ADDRESS_FIELD_TYPES.SELECT ? /*#__PURE__*/jsxRuntime.jsx(Select, _objectSpread$g(_objectSpread$g({
1009
+ label: label,
1010
+ size: "large"
1011
+ }, field), {}, {
1012
+ error: meta.touched && meta.error,
1013
+ isDisabled: isReadOnly,
1014
+ menuPosition: "absolute",
1015
+ required: isRequired,
1016
+ value: neetoCist.toLabelAndValue(field.value),
1017
+ options: properties === null || properties === void 0 || (_properties$options = properties.options) === null || _properties$options === void 0 ? void 0 : _properties$options.map(function (_ref4) {
1018
+ var label = _ref4.label;
1019
+ return neetoCist.toLabelAndValue(label);
1020
+ }),
1021
+ onChange: function onChange(_ref5) {
1022
+ var value = _ref5.value;
1023
+ return !isReadOnly && form.setFieldValue("".concat(name, ".").concat(id), value);
1024
+ }
1025
+ })) : /*#__PURE__*/jsxRuntime.jsx(Input, _objectSpread$g(_objectSpread$g({}, _objectSpread$g(_objectSpread$g({}, field), {}, {
1026
+ label: label
1027
+ })), {}, {
1028
+ disabled: isReadOnly,
1029
+ error: meta.touched && meta.error,
1030
+ required: isRequired
1031
+ }));
1032
+ }
1033
+ })
1034
+ }, id);
1035
+ })
1036
+ })]
1037
+ });
1038
+ };
1039
+
951
1040
  var CaptchaField = function CaptchaField(_ref) {
952
1041
  var question = _ref.question,
953
1042
  preview = _ref.preview,
@@ -1170,7 +1259,7 @@ var DateField = function DateField(_ref) {
1170
1259
  nodeId = question.nodeId,
1171
1260
  isReadOnly = question.isReadOnly;
1172
1261
  var label = index.fieldWithFallback(question, "label");
1173
- var _QUESTION_KIND$kind$t = constants.QUESTION_KIND[kind.toUpperCase()].type,
1262
+ var _QUESTION_KIND$kind$t = yup.QUESTION_KIND[kind.toUpperCase()].type,
1174
1263
  type = _QUESTION_KIND$kind$t === void 0 ? "date" : _QUESTION_KIND$kind$t;
1175
1264
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1176
1265
  className: "neeto-form-engine-input__wrapper",
@@ -1228,7 +1317,7 @@ var create = function create(_ref) {
1228
1317
  var formId = _ref.formId,
1229
1318
  questionId = _ref.questionId,
1230
1319
  payload = _ref.payload;
1231
- return axios.post(utils.buildUrl(constants$1.EMAIL_VERIFICATIONS_CREATE_URL, {
1320
+ return axios.post(utils.buildUrl(constants.EMAIL_VERIFICATIONS_CREATE_URL, {
1232
1321
  formId: formId,
1233
1322
  questionId: questionId
1234
1323
  }), payload, {
@@ -1239,7 +1328,7 @@ var verify = function verify(_ref2) {
1239
1328
  var formId = _ref2.formId,
1240
1329
  questionId = _ref2.questionId,
1241
1330
  payload = _ref2.payload;
1242
- return axios.post(utils.buildUrl(constants$1.EMAIL_VERIFICATIONS_VERIFY_URL, {
1331
+ return axios.post(utils.buildUrl(constants.EMAIL_VERIFICATIONS_VERIFY_URL, {
1243
1332
  formId: formId,
1244
1333
  questionId: questionId
1245
1334
  }), payload, {
@@ -1478,7 +1567,7 @@ var EmailField = function EmailField(_ref) {
1478
1567
  _useState2 = _slicedToArray(_useState, 2),
1479
1568
  calloutDetails = _useState2[0],
1480
1569
  setCalloutDetails = _useState2[1];
1481
- var type = constants.QUESTION_KIND[kind.toUpperCase()].type;
1570
+ var type = yup.QUESTION_KIND[kind.toUpperCase()].type;
1482
1571
  var _useState3 = React.useState(getLastVerificationCodeSentAt(questionId) > 0),
1483
1572
  _useState4 = _slicedToArray(_useState3, 2),
1484
1573
  hasSentVerificationCode = _useState4[0],
@@ -1684,7 +1773,7 @@ var Field = function Field(_ref) {
1684
1773
  nodeId = question.nodeId,
1685
1774
  isReadOnly = question.isReadOnly;
1686
1775
  var label = index.fieldWithFallback(question, labelField);
1687
- var type = constants.QUESTION_KIND.NAME.type;
1776
+ var type = yup.QUESTION_KIND.NAME.type;
1688
1777
  var _useField = formik.useField({
1689
1778
  name: name || nodeId,
1690
1779
  validate: validateFieldValue({
@@ -1730,23 +1819,128 @@ var NameField = function NameField(props) {
1730
1819
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1731
1820
  className: "flex w-full justify-between space-x-4",
1732
1821
  children: [/*#__PURE__*/jsxRuntime.jsx(Field, _objectSpread$9(_objectSpread$9({}, props), {}, {
1733
- labelField: constants.LABEL_FIELDS.FIRST_NAME,
1822
+ labelField: yup.LABEL_FIELDS.FIRST_NAME,
1734
1823
  name: "".concat(id, ".firstName"),
1735
1824
  placeholderField: "firstNamePlaceholder"
1736
1825
  })), /*#__PURE__*/jsxRuntime.jsx(Field, _objectSpread$9(_objectSpread$9({}, props), {}, {
1737
- labelField: constants.LABEL_FIELDS.LAST_NAME,
1826
+ labelField: yup.LABEL_FIELDS.LAST_NAME,
1738
1827
  name: "".concat(id, ".lastName"),
1739
1828
  placeholderField: "lastNamePlaceholder"
1740
1829
  }))]
1741
1830
  });
1742
1831
  }
1743
1832
  return /*#__PURE__*/jsxRuntime.jsx(Field, _objectSpread$9(_objectSpread$9({}, props), {}, {
1744
- labelField: constants.LABEL_FIELDS.FULL_NAME,
1833
+ labelField: yup.LABEL_FIELDS.FULL_NAME,
1745
1834
  name: "".concat(id, ".fullName"),
1746
1835
  placeholderField: "fullNamePlaceholder"
1747
1836
  }));
1748
1837
  };
1749
1838
 
1839
+ var OpinionScaleField = function OpinionScaleField(_ref) {
1840
+ var question = _ref.question,
1841
+ customValidator = _ref.customValidator;
1842
+ var name = question.id,
1843
+ kind = question.kind,
1844
+ isRequired = question.isRequired,
1845
+ minValue = question.minValue,
1846
+ maxValue = question.maxValue,
1847
+ isReadOnly = question.isReadOnly,
1848
+ hasOpinionLabels = question.hasOpinionLabels;
1849
+ var label = index.fieldWithFallback(question, "label");
1850
+ var leftOpinionLabel = index.fieldWithFallback(question, "leftOpinionLabel");
1851
+ var rightOpinionLabel = index.fieldWithFallback(question, "rightOpinionLabel");
1852
+ var _useField = formik.useField({
1853
+ name: name,
1854
+ validate: validateFieldValue({
1855
+ kind: kind,
1856
+ label: label,
1857
+ isRequired: isRequired,
1858
+ customValidator: customValidator
1859
+ })
1860
+ }),
1861
+ _useField2 = _slicedToArray(_useField, 3),
1862
+ field = _useField2[0],
1863
+ _useField2$ = _useField2[1],
1864
+ error = _useField2$.error,
1865
+ touched = _useField2$.touched,
1866
+ setValue = _useField2[2].setValue;
1867
+ var handleClick = function handleClick(event, index) {
1868
+ if (index !== parseInt(field.value)) return;
1869
+ event.preventDefault();
1870
+ setValue("");
1871
+ };
1872
+ var opinionScaleOptions = yup.generateArray(minValue, maxValue);
1873
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
1874
+ className: "neeto-form-engine-input__wrapper neeto-form-engine-opinion-scale",
1875
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
1876
+ className: "neeto-form-engine-input__label-wrapper",
1877
+ children: /*#__PURE__*/jsxRuntime.jsx("label", {
1878
+ className: "neeto-form-engine-label",
1879
+ "data-testid": "opinion-scale-input-label",
1880
+ children: getLabel(label, isRequired)
1881
+ })
1882
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
1883
+ className: "neeto-form-nano-opinion-scale",
1884
+ "data-testid": "form-opinion-scale",
1885
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
1886
+ className: "neeto-form-nano-opinion-scale__group",
1887
+ children: [hasOpinionLabels && /*#__PURE__*/jsxRuntime.jsx("div", {
1888
+ className: "neeto-form-nano-opinion-scale__labels-wrap neeto-form-nano-opinion-scale__labels-wrap-mobile",
1889
+ children: /*#__PURE__*/jsxRuntime.jsx("label", {
1890
+ className: "neeto-form-nano-opinion-scale__label",
1891
+ "data-testid": "opinion-scale-left-label",
1892
+ children: leftOpinionLabel
1893
+ })
1894
+ }), /*#__PURE__*/jsxRuntime.jsx("ul", {
1895
+ className: "neeto-form-nano-opinion-scale__list",
1896
+ "data-testid": "opinion-scale-list",
1897
+ children: opinionScaleOptions.map(function (step) {
1898
+ return /*#__PURE__*/jsxRuntime.jsx("li", {
1899
+ className: "neeto-form-nano-opinion-scale__item",
1900
+ "data-testid": "opinion-scale-list-item",
1901
+ children: /*#__PURE__*/jsxRuntime.jsxs("label", {
1902
+ className: "neeto-form-nano-opinion-scale__item-label",
1903
+ "data-testid": "opinion-scale-label",
1904
+ onClick: function onClick(event) {
1905
+ return handleClick(event, step);
1906
+ },
1907
+ children: [/*#__PURE__*/jsxRuntime.jsx(formik.Field, {
1908
+ name: name,
1909
+ checked: parseInt(field.value) === step,
1910
+ className: "neeto-form-nano-sr-only neeto-form-nano-opinion-scale__item-input",
1911
+ "data-testid": "opinion-scale-input-".concat(step),
1912
+ disabled: isReadOnly,
1913
+ type: "radio",
1914
+ value: step
1915
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
1916
+ className: "neeto-form-nano-opinion-scale__item-highlight",
1917
+ "data-testid": "opinion-scale-item-".concat(step),
1918
+ children: step
1919
+ })]
1920
+ })
1921
+ }, step);
1922
+ })
1923
+ }), hasOpinionLabels && /*#__PURE__*/jsxRuntime.jsxs("div", {
1924
+ className: "neeto-form-nano-opinion-scale__labels-wrap",
1925
+ children: [/*#__PURE__*/jsxRuntime.jsx("label", {
1926
+ className: "neeto-form-nano-opinion-scale__label neeto-form-nano-opinion-scale__label--start",
1927
+ "data-testid": "opinion-scale-left-label",
1928
+ children: leftOpinionLabel
1929
+ }), /*#__PURE__*/jsxRuntime.jsx("label", {
1930
+ className: "neeto-form-nano-opinion-scale__label neeto-form-nano-opinion-scale__label--end",
1931
+ "data-testid": "opinion-scale-right-label",
1932
+ children: rightOpinionLabel
1933
+ })]
1934
+ })]
1935
+ })
1936
+ }), touched && error && /*#__PURE__*/jsxRuntime.jsx("p", {
1937
+ className: "neeto-form-engine-input__error",
1938
+ "data-testid": "neeto-form-engine-opinion-scale-error",
1939
+ children: error
1940
+ })]
1941
+ });
1942
+ };
1943
+
1750
1944
  var ChoiceImage = function ChoiceImage(_ref) {
1751
1945
  var src = _ref.src,
1752
1946
  alt = _ref.alt,
@@ -1807,11 +2001,11 @@ var Choices = function Choices(_ref) {
1807
2001
  error = _ref.error,
1808
2002
  disabled = _ref.isDisabled,
1809
2003
  _ref$isPictureChoice = _ref.isPictureChoice,
1810
- isPictureChoice = _ref$isPictureChoice === void 0 ? constants.DEFAULT_CHOICE_QUESTION_ATTRIBUTES.isPictureChoice : _ref$isPictureChoice,
2004
+ isPictureChoice = _ref$isPictureChoice === void 0 ? yup.DEFAULT_CHOICE_QUESTION_ATTRIBUTES.isPictureChoice : _ref$isPictureChoice,
1811
2005
  _ref$imageHeight = _ref.imageHeight,
1812
- imageHeight = _ref$imageHeight === void 0 ? constants.DEFAULT_CHOICE_QUESTION_ATTRIBUTES.imageHeight : _ref$imageHeight,
2006
+ imageHeight = _ref$imageHeight === void 0 ? yup.DEFAULT_CHOICE_QUESTION_ATTRIBUTES.imageHeight : _ref$imageHeight,
1813
2007
  _ref$shouldFitImages = _ref.shouldFitImages,
1814
- shouldFitImages = _ref$shouldFitImages === void 0 ? constants.DEFAULT_CHOICE_QUESTION_ATTRIBUTES.shouldFitImages : _ref$shouldFitImages;
2008
+ shouldFitImages = _ref$shouldFitImages === void 0 ? yup.DEFAULT_CHOICE_QUESTION_ATTRIBUTES.shouldFitImages : _ref$shouldFitImages;
1815
2009
  var isCheckBox = type === "checkbox";
1816
2010
  var ChoiceWrapper = isCheckBox ? "div" : Radio;
1817
2011
  var Component = isCheckBox ? Checkbox : Radio.Item;
@@ -1891,7 +2085,7 @@ var OptionsField = function OptionsField(_ref) {
1891
2085
  _question$optionsAttr = question.optionsAttributes,
1892
2086
  options = _question$optionsAttr === void 0 ? [] : _question$optionsAttr;
1893
2087
  var isPictureChoice = isPictureChoiceFromQuestion;
1894
- var isDropdown = kind === constants.QUESTION_KIND.DROPDOWN.value;
2088
+ var isDropdown = kind === yup.QUESTION_KIND.DROPDOWN.value;
1895
2089
  var label = index.fieldWithFallback(question, "label");
1896
2090
  var Component = isDropdown ? Select : Choices$1;
1897
2091
  var transformedOptions = isDropdown ? options.map(function (option) {
@@ -2028,7 +2222,7 @@ var Rating = function Rating(_ref) {
2028
2222
  };
2029
2223
  var render = function render() {
2030
2224
  var labels = [highestRatingLabel, averageRatingLabel, lowestRatingLabel];
2031
- return constants.RATING_OPTIONS.map(function (_ref2, index) {
2225
+ return yup.RATING_OPTIONS.map(function (_ref2, index) {
2032
2226
  var Icon = _ref2.icon,
2033
2227
  modifier = _ref2.modifier,
2034
2228
  rating = _ref2.value;
@@ -2098,9 +2292,9 @@ var RatingField = function RatingField(_ref) {
2098
2292
  disabled: isReadOnly,
2099
2293
  error: meta.touched ? meta.error : "",
2100
2294
  label: getLabel(label, isRequired),
2101
- averageRatingLabel: index.fieldWithFallback(question, "averageRatingLabel") || constants.RATING_VALUES.AVERAGE.label,
2102
- highestRatingLabel: index.fieldWithFallback(question, "highestRatingLabel") || constants.RATING_VALUES.GOOD.label,
2103
- lowestRatingLabel: index.fieldWithFallback(question, "lowestRatingLabel") || constants.RATING_VALUES.BAD.label
2295
+ averageRatingLabel: index.fieldWithFallback(question, "averageRatingLabel") || yup.RATING_VALUES.AVERAGE.label,
2296
+ highestRatingLabel: index.fieldWithFallback(question, "highestRatingLabel") || yup.RATING_VALUES.GOOD.label,
2297
+ lowestRatingLabel: index.fieldWithFallback(question, "lowestRatingLabel") || yup.RATING_VALUES.BAD.label
2104
2298
  }));
2105
2299
  }
2106
2300
  });
@@ -2189,7 +2383,7 @@ var RatingButton = function RatingButton(_ref) {
2189
2383
  var handleClick = function handleClick(e) {
2190
2384
  return e.currentTarget.nextElementSibling.click();
2191
2385
  };
2192
- var Icon = constants.ICONS_MAP[iconType];
2386
+ var Icon = yup.ICONS_MAP[iconType];
2193
2387
  var selectedRating = getSelectedRating(value);
2194
2388
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
2195
2389
  children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
@@ -2239,7 +2433,7 @@ var StarRating = function StarRating(_ref) {
2239
2433
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
2240
2434
  className: "neeto-form-engine-star-rating__row",
2241
2435
  "data-testid": "star-rating-input-field",
2242
- children: constants.generateArray(minValue, maxValue).map(function (index) {
2436
+ children: yup.generateArray(minValue, maxValue).map(function (index) {
2243
2437
  return /*#__PURE__*/jsxRuntime.jsx(RatingButton$1, _objectSpread$3({
2244
2438
  label: index,
2245
2439
  rating: index
@@ -2341,12 +2535,12 @@ var TextField = function TextField(_ref) {
2341
2535
  isReadOnly = question.isReadOnly,
2342
2536
  nodeId = question.nodeId;
2343
2537
  var label = index.fieldWithFallback(question, "label");
2344
- var _QUESTION_KIND$kind$t = constants.QUESTION_KIND[kind.toUpperCase()],
2538
+ var _QUESTION_KIND$kind$t = yup.QUESTION_KIND[kind.toUpperCase()],
2345
2539
  _QUESTION_KIND$kind$t2 = _QUESTION_KIND$kind$t.type,
2346
2540
  type = _QUESTION_KIND$kind$t2 === void 0 ? "text" : _QUESTION_KIND$kind$t2,
2347
2541
  onKeyDown = _QUESTION_KIND$kind$t.onKeyDown,
2348
2542
  otherProps = _QUESTION_KIND$kind$t.otherProps;
2349
- var Component = kind === constants.QUESTION_KIND.TEXTAREA.value ? Textarea : Input;
2543
+ var Component = kind === yup.QUESTION_KIND.TEXTAREA.value ? Textarea : Input;
2350
2544
  var _useField = formik.useField({
2351
2545
  name: name || nodeId,
2352
2546
  validate: validateFieldValue({
@@ -2385,13 +2579,13 @@ var TextField = function TextField(_ref) {
2385
2579
  };
2386
2580
 
2387
2581
  var _QUESTION_TO_COMPONEN;
2388
- var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.TEXT.value, TextField), constants.QUESTION_KIND.NAME.value, NameField), constants.QUESTION_KIND.EMAIL.value, EmailField), constants.QUESTION_KIND.INTEGER.value, TextField), constants.QUESTION_KIND.DECIMAL.value, TextField), constants.QUESTION_KIND.PHONE.value, PhoneNumberField), constants.QUESTION_KIND.QUESTION.value, TextField), constants.QUESTION_KIND.TEXTAREA.value, TextField), constants.QUESTION_KIND.CHECKBOX.value, OptionsField), constants.QUESTION_KIND.RADIO.value, OptionsField), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.DROPDOWN.value, OptionsField), constants.QUESTION_KIND.RATING.value, RatingField), constants.QUESTION_KIND.PARAGRAPH.value, function (_ref) {
2582
+ var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, yup.QUESTION_KIND.TEXT.value, TextField), yup.QUESTION_KIND.NAME.value, NameField), yup.QUESTION_KIND.EMAIL.value, EmailField), yup.QUESTION_KIND.INTEGER.value, TextField), yup.QUESTION_KIND.DECIMAL.value, TextField), yup.QUESTION_KIND.PHONE.value, PhoneNumberField), yup.QUESTION_KIND.QUESTION.value, TextField), yup.QUESTION_KIND.TEXTAREA.value, TextField), yup.QUESTION_KIND.CHECKBOX.value, OptionsField), yup.QUESTION_KIND.RADIO.value, OptionsField), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, yup.QUESTION_KIND.DROPDOWN.value, OptionsField), yup.QUESTION_KIND.RATING.value, RatingField), yup.QUESTION_KIND.PARAGRAPH.value, function (_ref) {
2389
2583
  var question = _ref.question;
2390
2584
  return /*#__PURE__*/jsxRuntime.jsx(EditorContent, {
2391
2585
  content: index.fieldWithFallback(question, "label", true)
2392
2586
  });
2393
- }), constants.QUESTION_KIND.TERMS.value, TermsField), constants.QUESTION_KIND.DATE.value, DateField), constants.QUESTION_KIND.STAR_RATING.value, StarRatingField), constants.QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), constants.QUESTION_KIND.RICH_TEXT.value, RichTextEditor), constants.QUESTION_KIND.CONDITION.value, ConditionField), constants.QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), _defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, constants.QUESTION_KIND.CAPTCHA.value, CaptchaField), constants.QUESTION_KIND.SMS_REMINDER.value, PhoneNumberField));
2394
- var CAPTCHA_COMPONENT_MAP = _defineProperty(_defineProperty({}, constants$1.CAPTCHA_TYPES.RECAPTCHA_V2, Recaptcha), constants$1.CAPTCHA_TYPES.MATH_CAPTCHA, MathCaptcha);
2587
+ }), yup.QUESTION_KIND.TERMS.value, TermsField), yup.QUESTION_KIND.DATE.value, DateField), yup.QUESTION_KIND.STAR_RATING.value, StarRatingField), yup.QUESTION_KIND.OPINION_SCALE.value, OpinionScaleField), yup.QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), yup.QUESTION_KIND.RICH_TEXT.value, RichTextEditor), yup.QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, yup.QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), yup.QUESTION_KIND.CAPTCHA.value, CaptchaField), yup.QUESTION_KIND.SMS_REMINDER.value, PhoneNumberField), yup.QUESTION_KIND.ADDRESS.value, AddressField));
2588
+ var CAPTCHA_COMPONENT_MAP = _defineProperty(_defineProperty({}, constants.CAPTCHA_TYPES.RECAPTCHA_V2, Recaptcha), constants.CAPTCHA_TYPES.MATH_CAPTCHA, MathCaptcha);
2395
2589
 
2396
2590
  var getFieldComponent = function getFieldComponent(_ref) {
2397
2591
  var kind = _ref.kind;
@@ -2419,6 +2613,13 @@ var getPhoneData = function getPhoneData(value, countryCode) {
2419
2613
  var containsIgnoreCase = function containsIgnoreCase(string, substring) {
2420
2614
  return string.toLowerCase().includes(substring.toLowerCase());
2421
2615
  };
2616
+ var getVisibleOptions = function getVisibleOptions(options) {
2617
+ return Array.isArray(options) ? options.filter(function (option) {
2618
+ return !option.deleted;
2619
+ }).sort(function (a, b) {
2620
+ return a.position - b.position;
2621
+ }) : [];
2622
+ };
2422
2623
 
2423
2624
  exports.FormikWrap = FormikWrap;
2424
2625
  exports.buildAutoCompleteAttribute = buildAutoCompleteAttribute;
@@ -2431,4 +2632,4 @@ exports.getFieldComponent = getFieldComponent;
2431
2632
  exports.getWithExpiry = getWithExpiry;
2432
2633
  exports.mergeRefs = mergeRefs;
2433
2634
  exports.renderButtonsInOrder = renderButtonsInOrder;
2434
- //# sourceMappingURL=utils-Ch7Ggngj.js.map
2635
+ //# sourceMappingURL=utils-DfujkkDT.js.map