@bigbinary/neeto-form-frontend 4.3.0 → 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 (55) hide show
  1. package/app/javascript/src/translations/en.json +39 -3
  2. package/dist/BuildForm.js +480 -86
  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 +8 -8
  8. package/dist/UrlBuilder.js.map +1 -1
  9. package/dist/{buildForm-vzjjarhs.js → buildForm-Bdc3ubm4.js} +2 -2
  10. package/dist/{buildForm-vzjjarhs.js.map → buildForm-Bdc3ubm4.js.map} +1 -1
  11. package/dist/{buildForm-DA1LRDwr.js → buildForm-CkVmGF-A.js} +2 -2
  12. package/dist/{buildForm-DA1LRDwr.js.map → buildForm-CkVmGF-A.js.map} +1 -1
  13. package/dist/cjs/BuildForm.js +552 -158
  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 -19
  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-B_OEW8Yc.js → constants-30230o5k.js} +3 -2
  25. package/dist/constants-30230o5k.js.map +1 -0
  26. package/dist/{constants-DcN-Mvx7.js → constants-DNNZYQ9X.js} +3 -2
  27. package/dist/constants-DNNZYQ9X.js.map +1 -0
  28. package/dist/hooks.js +4 -4
  29. package/dist/{index-DGvqFcqA.js → index-BfavwyMH.js} +2 -2
  30. package/dist/{index-DGvqFcqA.js.map → index-BfavwyMH.js.map} +1 -1
  31. package/dist/{index-BQf-XQOv.js → index-Dz5Yvk3n.js} +2 -2
  32. package/dist/{index-BQf-XQOv.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-C7RL4Doz.js → useFormSubmission-CdKlP6De.js} +2 -2
  38. package/dist/{useFormSubmission-C7RL4Doz.js.map → useFormSubmission-CdKlP6De.js.map} +1 -1
  39. package/dist/{useFormSubmission-CzjIcsVB.js → useFormSubmission-zyh3tA0H.js} +2 -2
  40. package/dist/{useFormSubmission-CzjIcsVB.js.map → useFormSubmission-zyh3tA0H.js.map} +1 -1
  41. package/dist/{utils-BgH6USlj.js → utils-CDyve_0y.js} +147 -61
  42. package/dist/utils-CDyve_0y.js.map +1 -0
  43. package/dist/{utils-CjySOwOO.js → utils-DfujkkDT.js} +198 -112
  44. package/dist/utils-DfujkkDT.js.map +1 -0
  45. package/dist/{constants-BEKfDeAd.js → yup-DcJey7xZ.js} +99 -4
  46. package/dist/yup-DcJey7xZ.js.map +1 -0
  47. package/dist/{constants-Dcy0vCkf.js → yup-SHH_PrTm.js} +92 -6
  48. package/dist/yup-SHH_PrTm.js.map +1 -0
  49. package/package.json +3 -1
  50. package/dist/constants-BEKfDeAd.js.map +0 -1
  51. package/dist/constants-B_OEW8Yc.js.map +0 -1
  52. package/dist/constants-DcN-Mvx7.js.map +0 -1
  53. package/dist/constants-Dcy0vCkf.js.map +0 -1
  54. package/dist/utils-BgH6USlj.js.map +0 -1
  55. package/dist/utils-CjySOwOO.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-DGvqFcqA.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-B_OEW8Yc.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, g as generateArray, D as DEFAULT_CHOICE_QUESTION_ATTRIBUTES, e as RATING_OPTIONS, I as ICONS_MAP } from './constants-Dcy0vCkf.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] : [];
@@ -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
  {
@@ -481,10 +482,19 @@ var generateInitValues = function generateInitValues(_ref9) {
481
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);
482
483
  return;
483
484
  }
484
- default:
485
+ case QUESTION_KIND.ADDRESS.value:
485
486
  {
486
487
  var _valuesMap$id$value6, _valuesMap9;
487
- 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] || "");
488
498
  return;
489
499
  }
490
500
  }
@@ -588,35 +598,9 @@ var isPhoneNumberField = includes(__, [QUESTION_KIND.PHONE.value, QUESTION_KIND.
588
598
 
589
599
  var _excluded$4 = ["kind", "customValidator"];
590
600
  var _fieldKindValidatorMa;
591
- 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; }
592
- 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; }
593
603
  var t = clientI18nInstance.t;
594
- yup.addMethod(yup.array, "unique", function () {
595
- var field, message;
596
- if (arguments.length > 1) {
597
- field = arguments[0];
598
- message = arguments[1];
599
- } else {
600
- message = arguments[0];
601
- }
602
- var getValue = function getValue(item) {
603
- return field ? item[field] : item;
604
- };
605
- var valueInLowerCase = pipe(getValue, toLower);
606
- return this.test("unique", message, function () {
607
- var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
608
- // ignore destroyed items in the array
609
- var validItems = reject(prop("_destroy"), array);
610
- var uniqueItems = new Set(map(valueInLowerCase, validItems));
611
-
612
- // all items are unique
613
- if (validItems.length === uniqueItems.size) return true;
614
- return this.createError({
615
- path: this.path,
616
- message: message
617
- });
618
- });
619
- });
620
604
  var isValidDate = function isValidDate(date) {
621
605
  return date && dayjs(date).isValid();
622
606
  };
@@ -735,20 +719,27 @@ var validateMultiEmailField = function validateMultiEmailField(_ref13) {
735
719
  }
736
720
  return schema;
737
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
+ };
738
729
  var editorHasValue = function editorHasValue(content) {
739
730
  return !isEditorEmpty(content);
740
731
  };
741
- var validateRichTextField = function validateRichTextField(_ref14) {
742
- var isRequired = _ref14.isRequired;
732
+ var validateRichTextField = function validateRichTextField(_ref15) {
733
+ var isRequired = _ref15.isRequired;
743
734
  var schema = yup.string();
744
735
  if (isRequired) {
745
736
  schema = schema.test("required", getRequiredFieldError("content"), editorHasValue);
746
737
  }
747
738
  return schema.trim();
748
739
  };
749
- var validateFileUploadField = function validateFileUploadField(_ref15) {
750
- var isRequired = _ref15.isRequired,
751
- multipleFilesAllowed = _ref15.multipleFilesAllowed;
740
+ var validateFileUploadField = function validateFileUploadField(_ref16) {
741
+ var isRequired = _ref16.isRequired,
742
+ multipleFilesAllowed = _ref16.multipleFilesAllowed;
752
743
  var files_schema = yup.array();
753
744
  if (isRequired) {
754
745
  files_schema = files_schema.of(yup.object().shape({
@@ -761,29 +752,29 @@ var validateFileUploadField = function validateFileUploadField(_ref15) {
761
752
  files: files_schema
762
753
  });
763
754
  };
764
- var validateCaptchaField = function validateCaptchaField(_ref16) {
765
- var variant = _ref16.variant;
755
+ var validateCaptchaField = function validateCaptchaField(_ref17) {
756
+ var variant = _ref17.variant;
766
757
  return variant === CAPTCHA_TYPES.MATH_CAPTCHA ? yup.mixed().test("verification failed", t("neetoForm.error.captchaVerificationFailed"), function (value) {
767
758
  return isNotPresent(value) || value;
768
759
  }).transform(function (value) {
769
760
  return value === "" ? null : value;
770
761
  }).required(t("neetoForm.error.incompleteCaptcha")) : yup.string().trim().required(t("neetoForm.error.incompleteCaptcha"));
771
762
  };
772
- var fieldKindValidatorMap = (_fieldKindValidatorMa = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.EMAIL.value, validateEmailField), QUESTION_KIND.NAME.value, validateNameField), QUESTION_KIND.PHONE.value, validateTextField), QUESTION_KIND.TEXT.value, validateTextField), QUESTION_KIND.QUESTION.value, validateTextField), QUESTION_KIND.TEXTAREA.value, validateTextField), QUESTION_KIND.DECIMAL.value, validateTextField), QUESTION_KIND.INTEGER.value, validateTextField), QUESTION_KIND.DROPDOWN.value, validateSingleChoiceField), QUESTION_KIND.RADIO.value, validateSingleChoiceField), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CHECKBOX.value, validateMultiChoiceField), QUESTION_KIND.RATING.value, validateRatingField), QUESTION_KIND.TERMS.value, validateTermsField), QUESTION_KIND.DATE.value, validateDateField), QUESTION_KIND.STAR_RATING.value, validateStarRatingField), QUESTION_KIND.OPINION_SCALE.value, validateOpinionScaleField), QUESTION_KIND.ADDITIONAL_GUESTS.value, validateMultiEmailField), QUESTION_KIND.RICH_TEXT.value, validateRichTextField), QUESTION_KIND.CONDITION.value, validateConditionField), QUESTION_KIND.FILE_UPLOAD.value, validateFileUploadField), _defineProperty(_defineProperty(_fieldKindValidatorMa, QUESTION_KIND.CAPTCHA.value, validateCaptchaField), QUESTION_KIND.SMS_REMINDER.value, validateTextField));
773
- var validateFieldValue = function validateFieldValue(_ref17) {
774
- var kind = _ref17.kind,
775
- customValidator = _ref17.customValidator,
776
- otherProps = _objectWithoutProperties(_ref17, _excluded$4);
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);
777
768
  return function (value) {
778
769
  if (!(kind in fieldKindValidatorMap)) return;
779
770
  var validator = fieldKindValidatorMap[kind];
780
- var schema = customValidator || validator(_objectSpread$g({
771
+ var schema = customValidator || validator(_objectSpread$h({
781
772
  kind: kind
782
773
  }, otherProps));
783
774
 
784
775
  // eslint-disable-next-line consistent-return, no-async-promise-executor
785
776
  return new Promise(/*#__PURE__*/function () {
786
- var _ref18 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
777
+ var _ref19 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {
787
778
  return _regeneratorRuntime.wrap(function _callee$(_context) {
788
779
  while (1) switch (_context.prev = _context.next) {
789
780
  case 0:
@@ -805,7 +796,7 @@ var validateFieldValue = function validateFieldValue(_ref17) {
805
796
  }, _callee, null, [[0, 6]]);
806
797
  }));
807
798
  return function (_x) {
808
- return _ref18.apply(this, arguments);
799
+ return _ref19.apply(this, arguments);
809
800
  };
810
801
  }());
811
802
  };
@@ -839,7 +830,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
839
830
 
840
831
  // eslint-disable-next-line no-async-promise-executor
841
832
  return new Promise(/*#__PURE__*/function () {
842
- var _ref19 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
833
+ var _ref20 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve) {
843
834
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
844
835
  while (1) switch (_context2.prev = _context2.next) {
845
836
  case 0:
@@ -863,7 +854,7 @@ var validateVerificationCode = function validateVerificationCode(context) {
863
854
  }, _callee2, null, [[0, 6]]);
864
855
  }));
865
856
  return function (_x2) {
866
- return _ref19.apply(this, arguments);
857
+ return _ref20.apply(this, arguments);
867
858
  };
868
859
  }());
869
860
  };
@@ -937,6 +928,94 @@ var MultipleEmailInput = function MultipleEmailInput(_ref) {
937
928
  });
938
929
  };
939
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
+
940
1019
  var CaptchaField = function CaptchaField(_ref) {
941
1020
  var question = _ref.question,
942
1021
  preview = _ref.preview,
@@ -2484,7 +2563,7 @@ var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty(_de
2484
2563
  return /*#__PURE__*/jsx(EditorContent, {
2485
2564
  content: fieldWithFallback(question, "label", true)
2486
2565
  });
2487
- }), QUESTION_KIND.TERMS.value, TermsField), QUESTION_KIND.DATE.value, DateField), QUESTION_KIND.STAR_RATING.value, StarRatingField), QUESTION_KIND.OPINION_SCALE.value, OpinionScaleField), QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), QUESTION_KIND.RICH_TEXT.value, RichTextEditor), QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty(_defineProperty(_defineProperty(_QUESTION_TO_COMPONEN, QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), QUESTION_KIND.CAPTCHA.value, CaptchaField), QUESTION_KIND.SMS_REMINDER.value, PhoneNumberField));
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));
2488
2567
  var CAPTCHA_COMPONENT_MAP = _defineProperty(_defineProperty({}, CAPTCHA_TYPES.RECAPTCHA_V2, Recaptcha), CAPTCHA_TYPES.MATH_CAPTCHA, MathCaptcha);
2489
2568
 
2490
2569
  var getFieldComponent = function getFieldComponent(_ref) {
@@ -2513,6 +2592,13 @@ var getPhoneData = function getPhoneData(value, countryCode) {
2513
2592
  var containsIgnoreCase = function containsIgnoreCase(string, substring) {
2514
2593
  return string.toLowerCase().includes(substring.toLowerCase());
2515
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
+ };
2516
2602
 
2517
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 };
2518
- //# sourceMappingURL=utils-BgH6USlj.js.map
2604
+ //# sourceMappingURL=utils-CDyve_0y.js.map