@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
package/dist/BuildForm.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { useQueryClient } from '@tanstack/react-query';
2
2
  import classnames from 'classnames';
3
- import { isPresent, truncate, findBy, isNotPresent, slugify, existsBy, hyphenate, noop, nullSafe, removeBy } from '@bigbinary/neeto-cist';
3
+ import { isPresent, truncate, findBy, isNotPresent, slugify, existsBy, findById, findIndexById, hyphenate, noop, nullSafe, modifyBy, removeBy } from '@bigbinary/neeto-cist';
4
4
  import Spinner from '@bigbinary/neetoui/Spinner';
5
- import { equals, path, curry, assoc, prop, dissoc, when, includes, isEmpty, reject, keys, pick, omit, evolve, map, mergeLeft, isNil, pipe, filter, isNotNil, uniq, join, pluck, test, paths, difference, split, last, either, T, F } from 'ramda';
6
- import { k as useDeleteQuestion, Q as QUESTION_TYPES, a as useForm, l as useCreateQuestion, m as useUpdateQuestion, C as CAPTCHA_TYPES, n as useReorderQuestions, i as QUERY_KEYS } from './constants-B_OEW8Yc.js';
7
- import { f as buildDisplayLabel, h as INDEPENDENT_LABELS_MAP, i as QUESTION_ACTIONS, j as isElementOverflowing, k as Drag, l as SELECTABLE_KINDS, m as isAutoGeneratedQuestion, n as isRichTextQuestion, N as NON_BASIC_LATIN_CHARACTERS_REGEX, o as RESERVED_FIELD_CODES, d as LABEL_FIELDS, p as isDefaultLanguage, q as buildAddQuestionButtonProps, v as validateEditorContent, F as FIELD_CODES_REJECT_CHARS_REGEX, r as isImmutableField, Q as QUESTIONS_WITHOUT_FIELD_CODE, s as NON_HIDEABLE_FIELDS, t as NON_READ_ONLY_FIELDS, u as RICH_TEXT_QUESTIONS, O as OPINION_LABEL_MAX_LENGTH, w as FILE_TYPES_MAP, x as FILE_GROUPS, y as OPINION_SCALE_MIN_VALUE_OPTIONS, z as OPINION_SCALE_MAX_VALUE_OPTIONS, D as DEFAULT_CHOICE_QUESTION_ATTRIBUTES, M as MINIMUM_OPTIONS, A as IMAGE_HEIGHT_SLIDER_DEFAULTS, B as RATING_OPTIONS, G as STAR_RATING_MIN_VALUE_OPTIONS, H as STAR_RATING_MAX_VALUE_OPTIONS, J as STAR_RATING_ICONS_MAP, K as buildDisabledAddButtonHelpPopoverProps, T as buildReorderPayload, U as isMandatoryField, V as QUESTION_KINDS, a as QUESTION_KIND, W as getActiveQuestionKindDetails, X as DEFAULT_AVAILABLE_LANGUAGES, Y as DEFAULT_ADVANCED_FEATURES, Z as QUESTIONS_INITIAL_VALUE } from './constants-Dcy0vCkf.js';
5
+ import { equals, path, when, assoc, includes, isEmpty, reject, keys, pick, omit, evolve, map, mergeLeft, isNil, pipe, filter, isNotNil, values, uniq, join, pathSatisfies, assocPath, dissoc, append, pluck, test, paths, difference, prop, startsWith, split, last, either, T, F } from 'ramda';
6
+ import { k as useDeleteQuestion, Q as QUESTION_TYPES, a as useForm, l as useCreateQuestion, m as useUpdateQuestion, C as CAPTCHA_TYPES, n as useReorderQuestions, i as QUERY_KEYS } from './constants-30230o5k.js';
7
+ import { h as buildDisplayLabel, i as INDEPENDENT_LABELS_MAP, j as QUESTION_ACTIONS, k as isElementOverflowing, l as Drag, m as SELECTABLE_KINDS, n as isAutoGeneratedQuestion, o as isRichTextQuestion, N as NON_BASIC_LATIN_CHARACTERS_REGEX, p as RESERVED_FIELD_CODES, r as renameKey, e as LABEL_FIELDS, q as isDefaultLanguage, s as buildAddQuestionButtonProps, v as validateEditorContent, F as FIELD_CODES_REJECT_CHARS_REGEX, t as isImmutableField, Q as QUESTIONS_WITHOUT_FIELD_CODE, u as NON_HIDEABLE_FIELDS, w as NON_READ_ONLY_FIELDS, x as RICH_TEXT_QUESTIONS, O as OPINION_LABEL_MAX_LENGTH, A as ADDRESS_FIELD_WIDTHS, d as ADDRESS_FIELD_TYPES, y as generateDefaultOptions, M as MINIMUM_ADDRESS_FIELDS, z as getDeletedRecords, B as randomId, G as getActiveRecords, H as FILE_TYPES_MAP, J as FILE_GROUPS, K as OPINION_SCALE_MIN_VALUE_OPTIONS, T as OPINION_SCALE_MAX_VALUE_OPTIONS, D as DEFAULT_CHOICE_QUESTION_ATTRIBUTES, U as MINIMUM_OPTIONS, V as IMAGE_HEIGHT_SLIDER_DEFAULTS, W as RATING_OPTIONS, X as STAR_RATING_MIN_VALUE_OPTIONS, Y as STAR_RATING_MAX_VALUE_OPTIONS, Z as STAR_RATING_ICONS_MAP, _ as buildDisabledAddButtonHelpPopoverProps, $ as buildReorderPayload, a0 as isMandatoryField, a1 as QUESTION_KINDS, a as QUESTION_KIND, a2 as getActiveQuestionKindDetails, a3 as DEFAULT_AVAILABLE_LANGUAGES, a4 as DEFAULT_ADVANCED_FEATURES, a5 as QUESTIONS_INITIAL_VALUE } from './yup-SHH_PrTm.js';
8
8
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
9
9
  import { useState, useRef, useEffect, createElement } from 'react';
10
10
  import { Droppable, Draggable, DragDropContext } from '@hello-pangea/dnd';
11
11
  import { withT, isMetaKeyPressed, useStateWithDependency, useFuncDebounce, useOnClickOutside } from '@bigbinary/neeto-commons-frontend/react-utils';
12
12
  import { showThumbsUpToastr, withEventTargetValue, hyphenize } from '@bigbinary/neeto-commons-frontend/utils';
13
- import { a as useBuildFormStore } from './buildForm-DA1LRDwr.js';
13
+ import { a as useBuildFormStore } from './buildForm-CkVmGF-A.js';
14
14
  import { shallow } from 'zustand/shallow';
15
15
  import Alert from '@bigbinary/neetoui/Alert';
16
16
  import { useTranslation, Trans } from 'react-i18next';
@@ -21,13 +21,13 @@ import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
21
21
  import Dropdown from '@bigbinary/neetoui/Dropdown';
22
22
  import Tooltip from '@bigbinary/neetoui/Tooltip';
23
23
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
24
- import { i as isFunction, f as fieldWithFallback, c as isNameQuestion } from './index-DGvqFcqA.js';
24
+ import { i as isFunction, f as fieldWithFallback, c as isNameQuestion } from './index-BfavwyMH.js';
25
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
25
26
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
26
27
  import { t } from 'i18next';
27
28
  import { v4 } from 'uuid';
28
29
  import NoData from '@bigbinary/neetoui/NoData';
29
30
  import Button from '@bigbinary/neetoui/Button';
30
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
31
31
  import Pane from '@bigbinary/neetoui/Pane';
32
32
  import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
33
33
  import Form$2 from '@bigbinary/neetoui/formik/Form';
@@ -40,6 +40,8 @@ import NeetoEditor from '@bigbinary/neeto-editor/Editor';
40
40
  import Input from '@bigbinary/neetoui/formik/Input';
41
41
  import { isEditorEmpty } from '@bigbinary/neeto-editor/utils';
42
42
  import * as yup from 'yup';
43
+ import OptionFields from '@bigbinary/neeto-molecules/OptionFields';
44
+ import { AnimatePresence, motion } from 'framer-motion';
43
45
  import Radio from '@bigbinary/neetoui/formik/Radio';
44
46
  import Label from '@bigbinary/neetoui/Label';
45
47
  import CreatableSelect from 'react-select/creatable';
@@ -51,7 +53,6 @@ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
51
53
  import _regeneratorRuntime from '@babel/runtime/regenerator';
52
54
  import Checkbox$1 from '@bigbinary/neetoui/formik/Checkbox';
53
55
  import Checkbox from '@bigbinary/neetoui/Checkbox';
54
- import OptionFields from '@bigbinary/neeto-molecules/OptionFields';
55
56
  import Slider from '@bigbinary/neetoui/Slider';
56
57
  import HelpPopover from '@bigbinary/neeto-molecules/HelpPopover';
57
58
  import '@bigbinary/neeto-commons-frontend/constants';
@@ -325,8 +326,8 @@ var Card = function Card(_ref) {
325
326
  });
326
327
  };
327
328
 
328
- function ownKeys$e(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; }
329
- function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
329
+ 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; }
330
+ 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; }
330
331
  var Questions = function Questions(_ref) {
331
332
  var questions = _ref.questions,
332
333
  isDeletable = _ref.isDeletable,
@@ -345,7 +346,7 @@ var Questions = function Questions(_ref) {
345
346
  var droppableProps = _ref2.droppableProps,
346
347
  placeholder = _ref2.placeholder,
347
348
  innerRef = _ref2.innerRef;
348
- return /*#__PURE__*/jsxs("div", _objectSpread$e(_objectSpread$e({}, droppableProps), {}, {
349
+ return /*#__PURE__*/jsxs("div", _objectSpread$i(_objectSpread$i({}, droppableProps), {}, {
349
350
  className: "space-y-2",
350
351
  ref: innerRef,
351
352
  children: [questions.map(function (question, index) {
@@ -359,7 +360,7 @@ var Questions = function Questions(_ref) {
359
360
  var draggableProps = _ref3.draggableProps,
360
361
  dragHandleProps = _ref3.dragHandleProps,
361
362
  innerRef = _ref3.innerRef;
362
- return /*#__PURE__*/jsx("div", _objectSpread$e(_objectSpread$e(_objectSpread$e({}, draggableProps), dragHandleProps), {}, {
363
+ return /*#__PURE__*/jsx("div", _objectSpread$i(_objectSpread$i(_objectSpread$i({}, draggableProps), dragHandleProps), {}, {
363
364
  ref: innerRef,
364
365
  children: /*#__PURE__*/jsx(Card, {
365
366
  allQuestionKinds: allQuestionKinds,
@@ -392,11 +393,15 @@ var arrayHelpers = {
392
393
  moveItem: moveItem
393
394
  };
394
395
 
395
- function ownKeys$d(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; }
396
- function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
396
+ var _excluded$b = ["fields"];
397
+ 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; }
398
+ 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; }
397
399
  var isChoiceQuestion = function isChoiceQuestion(question) {
398
400
  return includes(question === null || question === void 0 ? void 0 : question.kind, SELECTABLE_KINDS);
399
401
  };
402
+ var isAddressQuestion = function isAddressQuestion(question) {
403
+ return (question === null || question === void 0 ? void 0 : question.kind) === QUESTION_TYPES.ADDRESS;
404
+ };
400
405
  var underscoredWithoutSpecialCharacters = function underscoredWithoutSpecialCharacters(string) {
401
406
  return string.toLowerCase().replace(/[\s-]/g, "_").replace(/[\W]/gi, "").replace(/_+/g, "_").replace(/^_+|_+$/, "");
402
407
  };
@@ -420,9 +425,6 @@ var generateFieldCodePrefix = function generateFieldCodePrefix(label, kind) {
420
425
  }
421
426
  return addSuffixForReservedFieldCode(prefix) || "";
422
427
  };
423
- var renameKey = curry(function (oldKey, newKey, obj) {
424
- return assoc(newKey, prop(oldKey, obj), dissoc(oldKey, obj));
425
- });
426
428
  var modifyDefaultValues = function modifyDefaultValues(_ref) {
427
429
  var values = _ref.values,
428
430
  kind = _ref.kind,
@@ -475,7 +477,7 @@ var handleFieldDragEnd = function handleFieldDragEnd(_ref4) {
475
477
  var nextItems = _toConsumableArray(items);
476
478
  arrayHelpers.moveItem(nextItems, source.index, destination.index);
477
479
  var orderedItems = nextItems.map(function (item, index) {
478
- return _objectSpread$d(_objectSpread$d({}, item), {}, {
480
+ return _objectSpread$h(_objectSpread$h({}, item), {}, {
479
481
  displayOrder: index
480
482
  });
481
483
  });
@@ -497,7 +499,7 @@ var createFieldData = function createFieldData(_ref5) {
497
499
  selectedLanguage: selectedLanguage,
498
500
  isUsingDefaultQuestionKinds: isUsingDefaultQuestionKinds
499
501
  });
500
- return _objectSpread$d(_objectSpread$d({}, modifiedDefaultValues), {}, {
502
+ return _objectSpread$h(_objectSpread$h({}, modifiedDefaultValues), {}, {
501
503
  metadata: metadata,
502
504
  isRequired: isRequired,
503
505
  kind: type,
@@ -521,15 +523,18 @@ var duplicateFieldData = function duplicateFieldData(_ref6) {
521
523
  }, questionKinds);
522
524
  var label = fieldWithFallback(item, "label");
523
525
  var defaultAttributeNames = keys(questionKind.defaults || {});
524
- var defaultAttributes = pick(defaultAttributeNames, item);
526
+ var _pick = pick(defaultAttributeNames, item),
527
+ fields = _pick.fields,
528
+ defaultAttributes = _objectWithoutProperties(_pick, _excluded$b);
525
529
  var newQuestionLabel = isRichTextQuestion(kind) ? label : t("neetoForm.common.clonedElementLabel", {
526
530
  label: label
527
531
  });
528
- return _objectSpread$d(_objectSpread$d({}, defaultAttributes), {}, {
532
+ return _objectSpread$h(_objectSpread$h({}, defaultAttributes), {}, {
529
533
  isRequired: isRequired,
530
534
  kind: kind,
531
535
  label: newQuestionLabel,
532
536
  optionsAttributes: optionsAttributes && optionsAttributes.map(omit(["id"])),
537
+ fieldsAttributes: fields && fields.map(omit(["id"])),
533
538
  nodeId: v4(),
534
539
  fieldCode: generateUniqueFieldCode({
535
540
  questions: questions,
@@ -553,7 +558,9 @@ var getAvailableQuestionKinds = function getAvailableQuestionKinds(_ref7) {
553
558
  });
554
559
  }, allQuestionKinds);
555
560
  };
556
- var formatQuestionAttributesForClone = when(isChoiceQuestion, assoc("isCloning", true));
561
+ var formatQuestionAttributesForClone = when(function (question) {
562
+ return isChoiceQuestion(question) || isAddressQuestion(question);
563
+ }, assoc("isCloning", true));
557
564
 
558
565
  var HelpText = withT(function (_ref) {
559
566
  var t = _ref.t,
@@ -605,8 +612,9 @@ var NAME = QUESTION_TYPES.NAME,
605
612
  DATE = QUESTION_TYPES.DATE,
606
613
  FILE_UPLOAD$1 = QUESTION_TYPES.FILE_UPLOAD,
607
614
  CAPTCHA$1 = QUESTION_TYPES.CAPTCHA,
608
- SMS_REMINDER = QUESTION_TYPES.SMS_REMINDER;
609
- var QUESTIONS_WITH_ADDITIONAL_DATA = [].concat(_toConsumableArray(SELECTABLE_KINDS), [STAR_RATING$1, OPINION_SCALE$1, RATING$1, FILE_UPLOAD$1, CAPTCHA$1, EMAIL$1]);
615
+ SMS_REMINDER = QUESTION_TYPES.SMS_REMINDER,
616
+ ADDRESS$1 = QUESTION_TYPES.ADDRESS;
617
+ var QUESTIONS_WITH_ADDITIONAL_DATA = [].concat(_toConsumableArray(SELECTABLE_KINDS), [STAR_RATING$1, OPINION_SCALE$1, RATING$1, FILE_UPLOAD$1, CAPTCHA$1, EMAIL$1, ADDRESS$1]);
610
618
  var QUESTIONS_WITH_PLACEHOLDERS = [NAME, PHONE, EMAIL$1, ADDITIONAL_GUESTS, TEXT, TEXTAREA, RICH_TEXT, INTEGER, DECIMAL, DATE, SMS_REMINDER];
611
619
  var DEFAULT_PLACEHOLDERS = {
612
620
  CHECKBOX: t("neetoForm.questions.common.questionFields.field.labelExample", {
@@ -626,18 +634,19 @@ var INITIAL_VALUES = {
626
634
  isSplitMode: false
627
635
  };
628
636
  var VALID_FIELD_CODE_REGEX = /^[a-z0-9]+(_[a-z0-9]+)*$/;
637
+ var DRAFT_ID_PREFIX = "draft-";
629
638
 
630
639
  var useHelpDoc = function useHelpDoc(key) {
631
640
  return useBuildFormStore(path(["formState", "helpDocUrls", key]));
632
641
  };
633
642
 
634
- var _excluded$7 = ["label", "name"];
635
- function ownKeys$c(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; }
636
- function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
643
+ var _excluded$a = ["label", "name"];
644
+ 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; }
645
+ 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; }
637
646
  var FormikAdaptiveInput = function FormikAdaptiveInput(_ref) {
638
647
  var label = _ref.label,
639
648
  name = _ref.name,
640
- otherProps = _objectWithoutProperties(_ref, _excluded$7);
649
+ otherProps = _objectWithoutProperties(_ref, _excluded$a);
641
650
  var _useFormikContext = useFormikContext(),
642
651
  dirty = _useFormikContext.dirty,
643
652
  isValid = _useFormikContext.isValid,
@@ -652,7 +661,7 @@ var FormikAdaptiveInput = function FormikAdaptiveInput(_ref) {
652
661
  var end = element.value.length;
653
662
  element.setSelectionRange(end, end);
654
663
  };
655
- return /*#__PURE__*/jsx(Textarea, _objectSpread$c({
664
+ return /*#__PURE__*/jsx(Textarea, _objectSpread$g({
656
665
  label: label,
657
666
  name: name,
658
667
  className: "neeto-form-nano-adaptive-input",
@@ -666,8 +675,8 @@ var FormikAdaptiveInput = function FormikAdaptiveInput(_ref) {
666
675
  }, otherProps));
667
676
  };
668
677
 
669
- function ownKeys$b(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; }
670
- function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
678
+ function ownKeys$f(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; }
679
+ function _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
671
680
  var LabelWithPlaceholder = function LabelWithPlaceholder(_ref) {
672
681
  var kind = _ref.kind,
673
682
  isLabelDisabled = _ref.isLabelDisabled,
@@ -681,14 +690,14 @@ var LabelWithPlaceholder = function LabelWithPlaceholder(_ref) {
681
690
  var shouldShowPlaceholder = includes(kind, QUESTIONS_WITH_PLACEHOLDERS);
682
691
  return /*#__PURE__*/jsxs("div", {
683
692
  className: "space-y-4",
684
- children: [/*#__PURE__*/jsx(FormikAdaptiveInput, _objectSpread$b({
693
+ children: [/*#__PURE__*/jsx(FormikAdaptiveInput, _objectSpread$f({
685
694
  required: true,
686
695
  disabled: isLabelDisabled,
687
696
  label: t("neetoForm.questions.common.questionFields.field.question"),
688
697
  name: "label",
689
698
  placeholder: DEFAULT_PLACEHOLDERS[kind],
690
699
  onChange: withEventTargetValue(handleLabelChange)
691
- }, labelProps)), shouldShowPlaceholder && /*#__PURE__*/jsx(FormikAdaptiveInput, _objectSpread$b({
700
+ }, labelProps)), shouldShowPlaceholder && /*#__PURE__*/jsx(FormikAdaptiveInput, _objectSpread$f({
692
701
  className: "neeto-form-nano-placeholder-input neeto-form-nano-placeholder-input-".concat(kind),
693
702
  name: "placeholder",
694
703
  label: t("neetoForm.questions.common.questionFields.field.placeholder")
@@ -696,8 +705,8 @@ var LabelWithPlaceholder = function LabelWithPlaceholder(_ref) {
696
705
  });
697
706
  };
698
707
 
699
- function ownKeys$a(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; }
700
- function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
708
+ function ownKeys$e(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; }
709
+ function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
701
710
  var Name = function Name(_ref) {
702
711
  var isLabelDisabled = _ref.isLabelDisabled,
703
712
  _handleLabelChange = _ref.handleLabelChange;
@@ -717,7 +726,7 @@ var Name = function Name(_ref) {
717
726
  label: t("neetoForm.common.splitAsFirstAndLastNames"),
718
727
  name: "isSplitMode"
719
728
  }), isSplitMode && !usesCustomSubmissionComponent ? /*#__PURE__*/jsxs(Fragment, {
720
- children: [/*#__PURE__*/jsx(LabelWithPlaceholder, _objectSpread$a(_objectSpread$a({}, commonProps), {}, {
729
+ children: [/*#__PURE__*/jsx(LabelWithPlaceholder, _objectSpread$e(_objectSpread$e({}, commonProps), {}, {
721
730
  handleLabelChange: function handleLabelChange(value) {
722
731
  return _handleLabelChange(value, LABEL_FIELDS.FIRST_NAME);
723
732
  },
@@ -729,7 +738,7 @@ var Name = function Name(_ref) {
729
738
  label: t("neetoForm.questions.common.questionFields.field.firstNamePlaceholder"),
730
739
  name: "firstNamePlaceholder"
731
740
  }
732
- })), /*#__PURE__*/jsx(LabelWithPlaceholder, _objectSpread$a(_objectSpread$a({}, commonProps), {}, {
741
+ })), /*#__PURE__*/jsx(LabelWithPlaceholder, _objectSpread$e(_objectSpread$e({}, commonProps), {}, {
733
742
  handleLabelChange: function handleLabelChange(value) {
734
743
  return _handleLabelChange(value, LABEL_FIELDS.LAST_NAME);
735
744
  },
@@ -742,7 +751,7 @@ var Name = function Name(_ref) {
742
751
  name: "lastNamePlaceholder"
743
752
  }
744
753
  }))]
745
- }) : /*#__PURE__*/jsx(LabelWithPlaceholder, _objectSpread$a(_objectSpread$a({}, commonProps), {}, {
754
+ }) : /*#__PURE__*/jsx(LabelWithPlaceholder, _objectSpread$e(_objectSpread$e({}, commonProps), {}, {
746
755
  labelProps: {
747
756
  name: LABEL_FIELDS.FULL_NAME
748
757
  },
@@ -909,12 +918,12 @@ var RequiredSwitch = withT(function (_ref) {
909
918
  });
910
919
  });
911
920
 
912
- var _excluded$6 = ["maxLength"];
913
- function ownKeys$9(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; }
914
- function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
921
+ var _excluded$9 = ["maxLength"];
922
+ function ownKeys$d(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; }
923
+ function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
915
924
  var InputWithMaxLength = function InputWithMaxLength(_ref) {
916
925
  var maxLength = _ref.maxLength,
917
- props = _objectWithoutProperties(_ref, _excluded$6);
926
+ props = _objectWithoutProperties(_ref, _excluded$9);
918
927
  var _useField = useField(props),
919
928
  _useField2 = _slicedToArray(_useField, 3),
920
929
  value = _useField2[0].value,
@@ -925,7 +934,7 @@ var InputWithMaxLength = function InputWithMaxLength(_ref) {
925
934
  }
926
935
  }, [value, maxLength, setValue]);
927
936
  var shouldShowMaxLength = value && value.length > maxLength - 10;
928
- return /*#__PURE__*/jsx(Input, _objectSpread$9(_objectSpread$9({}, props), shouldShowMaxLength && {
937
+ return /*#__PURE__*/jsx(Input, _objectSpread$d(_objectSpread$d({}, props), shouldShowMaxLength && {
929
938
  maxLength: maxLength
930
939
  }));
931
940
  };
@@ -1090,7 +1099,7 @@ var Form$1 = function Form(_ref) {
1090
1099
  dataTestid: "settings-card",
1091
1100
  title: t("neetoForm.common.settings"),
1092
1101
  children: [isBasicSettingsVisible && /*#__PURE__*/jsxs(Fragment, {
1093
- children: [!isImmutable && /*#__PURE__*/jsx(RequiredSwitch, {}), shouldShowHideSwitch && /*#__PURE__*/jsx(Switch, {
1102
+ children: [!isImmutable && kind !== QUESTION_TYPES.ADDRESS && /*#__PURE__*/jsx(RequiredSwitch, {}), shouldShowHideSwitch && /*#__PURE__*/jsx(Switch, {
1094
1103
  label: t("neetoForm.common.hideQuestion"),
1095
1104
  name: "isHidden",
1096
1105
  labelProps: hideSwitchLabelProps(hideQuestionHelpDocUrl)
@@ -1185,6 +1194,14 @@ var formValidationSchema = function formValidationSchema(question) {
1185
1194
  })
1186
1195
  })) : schema.notRequired();
1187
1196
  }),
1197
+ fields: yup.array().when("kind", function (kind, schema) {
1198
+ return kind === QUESTION_TYPES.ADDRESS ? schema.of(yup.object().shape({
1199
+ label: yup.string().when("_destroy", {
1200
+ is: true,
1201
+ otherwise: yup.string().trim().required(t("neetoForm.error.allFieldsRequired"))
1202
+ })
1203
+ })) : schema.notRequired();
1204
+ }),
1188
1205
  highestRatingLabel: yup.string().nullable(),
1189
1206
  averageRatingLabel: yup.string().nullable(),
1190
1207
  lowestRatingLabel: yup.string().nullable(),
@@ -1193,16 +1210,16 @@ var formValidationSchema = function formValidationSchema(question) {
1193
1210
  });
1194
1211
  };
1195
1212
 
1196
- var _excluded$5 = ["question", "onClose", "questions", "handleSelect", "isOpen"];
1197
- function ownKeys$8(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; }
1198
- function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1213
+ var _excluded$8 = ["question", "onClose", "questions", "handleSelect", "isOpen"];
1214
+ function ownKeys$c(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; }
1215
+ function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1199
1216
  var Add = function Add(_ref) {
1200
1217
  var question = _ref.question,
1201
1218
  onClose = _ref.onClose,
1202
1219
  questions = _ref.questions,
1203
1220
  handleSelect = _ref.handleSelect,
1204
1221
  isOpen = _ref.isOpen,
1205
- props = _objectWithoutProperties(_ref, _excluded$5);
1222
+ props = _objectWithoutProperties(_ref, _excluded$8);
1206
1223
  var _useBuildFormStore = useBuildFormStore(function (store) {
1207
1224
  var _store$formState, _store$formState2, _store$formState3;
1208
1225
  return {
@@ -1236,7 +1253,7 @@ var Add = function Add(_ref) {
1236
1253
  language: language,
1237
1254
  neetoFormQuestion: mergeLeft({
1238
1255
  displayOrder: displayOrder
1239
- }, values)
1256
+ }, transformValues(values))
1240
1257
  }, {
1241
1258
  onSuccess: function onSuccess(_ref2) {
1242
1259
  var questions = _ref2.questions;
@@ -1261,7 +1278,7 @@ var Add = function Add(_ref) {
1261
1278
  onSubmit: handleSubmit
1262
1279
  },
1263
1280
  children: /*#__PURE__*/jsxs(Fragment, {
1264
- children: [/*#__PURE__*/jsx(Form$1, _objectSpread$8({}, _objectSpread$8(_objectSpread$8({}, props), {}, {
1281
+ children: [/*#__PURE__*/jsx(Form$1, _objectSpread$c({}, _objectSpread$c(_objectSpread$c({}, props), {}, {
1265
1282
  question: question,
1266
1283
  questions: questions
1267
1284
  }))), /*#__PURE__*/jsx(Pane.Footer, {
@@ -1277,14 +1294,14 @@ var Add = function Add(_ref) {
1277
1294
  });
1278
1295
  };
1279
1296
 
1280
- var _excluded$4 = ["question", "isOpen", "onClose"];
1281
- function ownKeys$7(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; }
1282
- function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1297
+ var _excluded$7 = ["question", "isOpen", "onClose"];
1298
+ function ownKeys$b(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; }
1299
+ function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1283
1300
  var Edit = function Edit(_ref) {
1284
1301
  var question = _ref.question,
1285
1302
  isOpen = _ref.isOpen,
1286
1303
  onClose = _ref.onClose,
1287
- props = _objectWithoutProperties(_ref, _excluded$4);
1304
+ props = _objectWithoutProperties(_ref, _excluded$7);
1288
1305
  var _useTranslation = useTranslation(),
1289
1306
  t = _useTranslation.t;
1290
1307
  var _useBuildFormStore = useBuildFormStore(function (store) {
@@ -1305,7 +1322,7 @@ var Edit = function Edit(_ref) {
1305
1322
  if (isUpdating || !isOpen) return;
1306
1323
  var payload = {
1307
1324
  language: language,
1308
- neetoFormQuestion: values
1325
+ neetoFormQuestion: transformValues(values)
1309
1326
  };
1310
1327
  updateQuestion({
1311
1328
  questionId: question.id,
@@ -1338,7 +1355,7 @@ var Edit = function Edit(_ref) {
1338
1355
  onSubmit: handleSubmit
1339
1356
  },
1340
1357
  children: /*#__PURE__*/jsxs(Fragment, {
1341
- children: [/*#__PURE__*/jsx(Form$1, _objectSpread$7(_objectSpread$7({}, _objectSpread$7({
1358
+ children: [/*#__PURE__*/jsx(Form$1, _objectSpread$b(_objectSpread$b({}, _objectSpread$b({
1342
1359
  question: question
1343
1360
  }, props)), {}, {
1344
1361
  isEdit: true
@@ -1355,6 +1372,359 @@ var Edit = function Edit(_ref) {
1355
1372
  });
1356
1373
  };
1357
1374
 
1375
+ var VARIANTS = {
1376
+ hidden: {
1377
+ opacity: 0,
1378
+ height: 0,
1379
+ overflow: "hidden"
1380
+ },
1381
+ visible: {
1382
+ opacity: 1,
1383
+ height: "auto"
1384
+ }
1385
+ };
1386
+
1387
+ var _excluded$6 = ["open", "className", "children"];
1388
+ function ownKeys$a(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; }
1389
+ function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1390
+ var Collapsible = function Collapsible(_ref) {
1391
+ var open = _ref.open,
1392
+ _ref$className = _ref.className,
1393
+ className = _ref$className === void 0 ? "" : _ref$className,
1394
+ children = _ref.children,
1395
+ otherProps = _objectWithoutProperties(_ref, _excluded$6);
1396
+ return /*#__PURE__*/jsx(AnimatePresence, {
1397
+ children: open && /*#__PURE__*/jsx(motion.div, _objectSpread$a(_objectSpread$a({
1398
+ animate: "visible",
1399
+ exit: "hidden",
1400
+ initial: "hidden",
1401
+ transition: {
1402
+ duration: 0.3
1403
+ },
1404
+ variants: VARIANTS
1405
+ }, otherProps), {}, {
1406
+ children: /*#__PURE__*/jsx("div", {
1407
+ className: className,
1408
+ children: children
1409
+ })
1410
+ }))
1411
+ });
1412
+ };
1413
+
1414
+ var ADDRESS_FIELD_WIDTH_OPTIONS = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ADDRESS_FIELD_WIDTHS.FULL, {
1415
+ label: t("neetoForm.questions.address.widths.full"),
1416
+ value: ADDRESS_FIELD_WIDTHS.FULL
1417
+ }), ADDRESS_FIELD_WIDTHS.HALF, {
1418
+ label: t("neetoForm.questions.address.widths.half"),
1419
+ value: ADDRESS_FIELD_WIDTHS.HALF
1420
+ }), ADDRESS_FIELD_WIDTHS.ONE_FOURTH, {
1421
+ label: t("neetoForm.questions.address.widths.oneFourth"),
1422
+ value: ADDRESS_FIELD_WIDTHS.ONE_FOURTH
1423
+ }), ADDRESS_FIELD_WIDTHS.THREE_FOURTH, {
1424
+ label: t("neetoForm.questions.address.widths.threeFourth"),
1425
+ value: ADDRESS_FIELD_WIDTHS.THREE_FOURTH
1426
+ });
1427
+ var ADDRESS_FIELD_TYPE_OPTIONS = _defineProperty(_defineProperty({}, ADDRESS_FIELD_TYPES.INPUT, {
1428
+ label: t("neetoForm.questions.address.types.textInput"),
1429
+ value: ADDRESS_FIELD_TYPES.INPUT
1430
+ }), ADDRESS_FIELD_TYPES.SELECT, {
1431
+ label: t("neetoForm.questions.address.types.dropdown"),
1432
+ value: ADDRESS_FIELD_TYPES.SELECT
1433
+ });
1434
+ var ADDRESS_FIELD_FORM_VALIDATION_SCHEMA = yup.object().shape({
1435
+ label: yup.string().trim().required(t("neetoForm.error.requiredField", {
1436
+ label: t("neetoForm.questions.common.questionFields.field.label")
1437
+ })),
1438
+ width: yup.object().nullable().required(t("neetoForm.error.requiredField", {
1439
+ label: t("neetoForm.questions.address.width")
1440
+ })),
1441
+ fieldType: yup.object().nullable().required(t("neetoForm.error.requiredField", {
1442
+ label: t("neetoForm.questions.address.type")
1443
+ })),
1444
+ properties: yup.object().shape({
1445
+ options: yup.array().of(yup.object().shape({
1446
+ label: yup.string().required(t("neetoForm.error.requiredField", {
1447
+ label: t("neetoForm.common.option")
1448
+ }))
1449
+ })).unique("label", t("neetoForm.error.removeDuplicates"))
1450
+ })
1451
+ });
1452
+ var ERROR_MESSAGE_DELIMITER$1 = ". ";
1453
+
1454
+ function ownKeys$9(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; }
1455
+ function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1456
+ var removeDuplicateErrorMessages$1 = pipe(filter(isNotNil), map(values), uniq, join(ERROR_MESSAGE_DELIMITER$1));
1457
+ var getAddressModalInitialValues = function getAddressModalInitialValues(field) {
1458
+ return field ? _objectSpread$9(_objectSpread$9({}, field), {}, {
1459
+ width: ADDRESS_FIELD_WIDTH_OPTIONS[field.width],
1460
+ fieldType: ADDRESS_FIELD_TYPE_OPTIONS[field.fieldType]
1461
+ }) : {
1462
+ label: "",
1463
+ isRequired: false,
1464
+ width: ADDRESS_FIELD_WIDTH_OPTIONS[ADDRESS_FIELD_WIDTHS.FULL],
1465
+ fieldType: ADDRESS_FIELD_TYPE_OPTIONS[ADDRESS_FIELD_TYPES.INPUT]
1466
+ };
1467
+ };
1468
+ var sanitizeAddressField = function sanitizeAddressField(field, isSelectField, defaultOptions) {
1469
+ var hasOptions = pathSatisfies(isPresent, ["properties", "options"], field);
1470
+ if (isSelectField && !hasOptions) {
1471
+ return assocPath(["properties", "options"], defaultOptions, field);
1472
+ }
1473
+ if (!isSelectField && hasOptions) {
1474
+ return dissoc("properties", field);
1475
+ }
1476
+ return field;
1477
+ };
1478
+ var formatErrorMessage$1 = function formatErrorMessage(error) {
1479
+ if (typeof error === "string") return error;
1480
+ return removeDuplicateErrorMessages$1(error);
1481
+ };
1482
+
1483
+ var _excluded$5 = ["width", "fieldType"];
1484
+ function ownKeys$8(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; }
1485
+ function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1486
+ var ManagePane = function ManagePane(_ref) {
1487
+ var isOpen = _ref.isOpen,
1488
+ selectedFieldId = _ref.selectedFieldId,
1489
+ onClose = _ref.onClose,
1490
+ title = _ref.title,
1491
+ fields = _ref.fields,
1492
+ initialFocusRef = _ref.initialFocusRef;
1493
+ var _useField = useField("fields"),
1494
+ _useField2 = _slicedToArray(_useField, 3),
1495
+ allFields = _useField2[0].value,
1496
+ setValue = _useField2[2].setValue;
1497
+ var _useTranslation = useTranslation(),
1498
+ t = _useTranslation.t;
1499
+ var defaultOptions = generateDefaultOptions(MINIMUM_ADDRESS_FIELDS);
1500
+ var editingField = findById(selectedFieldId, fields);
1501
+ var initialValues = getAddressModalInitialValues(editingField);
1502
+ var handleSubmit = function handleSubmit(_ref2) {
1503
+ var width = _ref2.width,
1504
+ fieldType = _ref2.fieldType,
1505
+ field = _objectWithoutProperties(_ref2, _excluded$5);
1506
+ var deletedFields = getDeletedRecords(allFields);
1507
+ var isSelectField = fieldType.value === ADDRESS_FIELD_TYPES.SELECT;
1508
+ var sanitizedField = sanitizeAddressField(field, isSelectField, defaultOptions);
1509
+ if (isNil(selectedFieldId)) {
1510
+ var position = fields.length;
1511
+ var id = "draft-".concat(randomId());
1512
+ var newField = _objectSpread$8(_objectSpread$8({
1513
+ id: id
1514
+ }, sanitizedField), {}, {
1515
+ altId: "alt-".concat(randomId()),
1516
+ position: position,
1517
+ width: width.value,
1518
+ fieldType: fieldType.value
1519
+ });
1520
+ var nextFields = append(newField, fields);
1521
+ setValue([].concat(_toConsumableArray(nextFields), _toConsumableArray(deletedFields)));
1522
+ } else {
1523
+ var selectedFieldIndex = findIndexById(selectedFieldId, fields);
1524
+ setValue(assoc(selectedFieldIndex, _objectSpread$8(_objectSpread$8({}, sanitizedField), {}, {
1525
+ width: width.value,
1526
+ fieldType: fieldType.value
1527
+ }), [].concat(_toConsumableArray(fields), _toConsumableArray(deletedFields))));
1528
+ }
1529
+ onClose();
1530
+ };
1531
+ var handleFieldTypeChange = function handleFieldTypeChange(setFieldValue, values) {
1532
+ return function (fieldType) {
1533
+ var _values$properties;
1534
+ setFieldValue("fieldType", fieldType);
1535
+ if (fieldType.value === ADDRESS_FIELD_TYPES.SELECT && isNotPresent((_values$properties = values.properties) === null || _values$properties === void 0 ? void 0 : _values$properties.options)) {
1536
+ setFieldValue("properties.options", defaultOptions);
1537
+ }
1538
+ };
1539
+ };
1540
+ return /*#__PURE__*/jsxs(Pane, {
1541
+ initialFocusRef: initialFocusRef,
1542
+ isOpen: isOpen,
1543
+ onClose: onClose,
1544
+ children: [/*#__PURE__*/jsx(Pane.Header, {
1545
+ children: /*#__PURE__*/jsx(Typography, {
1546
+ "data-testid": "add-address-field-title",
1547
+ style: "h2",
1548
+ weight: "semibold",
1549
+ children: title
1550
+ })
1551
+ }), /*#__PURE__*/jsx(Form$2, {
1552
+ formikProps: {
1553
+ initialValues: initialValues,
1554
+ validationSchema: ADDRESS_FIELD_FORM_VALIDATION_SCHEMA,
1555
+ onSubmit: handleSubmit
1556
+ },
1557
+ children: function children(_ref3) {
1558
+ var _values$fieldType;
1559
+ var values = _ref3.values,
1560
+ setFieldValue = _ref3.setFieldValue;
1561
+ return /*#__PURE__*/jsxs(Fragment, {
1562
+ children: [/*#__PURE__*/jsx(Pane.Body, {
1563
+ children: /*#__PURE__*/jsxs("div", {
1564
+ className: "w-full space-y-6",
1565
+ children: [/*#__PURE__*/jsx(Input, {
1566
+ name: "label",
1567
+ ref: initialFocusRef,
1568
+ label: t("neetoForm.questions.common.questionFields.field.label"),
1569
+ placeholder: t("neetoForm.questions.address.fieldLabelPlaceholder")
1570
+ }), /*#__PURE__*/jsxs("div", {
1571
+ className: "grid grid-cols-2 gap-6",
1572
+ children: [/*#__PURE__*/jsx(Select, {
1573
+ label: t("neetoForm.questions.address.width"),
1574
+ name: "width",
1575
+ options: Object.values(ADDRESS_FIELD_WIDTH_OPTIONS)
1576
+ }), /*#__PURE__*/jsx(Select, {
1577
+ label: t("neetoForm.questions.address.type"),
1578
+ name: "fieldType",
1579
+ options: Object.values(ADDRESS_FIELD_TYPE_OPTIONS),
1580
+ onChange: handleFieldTypeChange(setFieldValue, values)
1581
+ })]
1582
+ }), /*#__PURE__*/jsx(Collapsible, {
1583
+ open: (values === null || values === void 0 || (_values$fieldType = values.fieldType) === null || _values$fieldType === void 0 ? void 0 : _values$fieldType.value) === ADDRESS_FIELD_TYPES.SELECT,
1584
+ children: /*#__PURE__*/jsx("div", {
1585
+ className: "flex flex-col",
1586
+ children: /*#__PURE__*/jsx(OptionFields, {
1587
+ draggable: true,
1588
+ minOptions: MINIMUM_ADDRESS_FIELDS,
1589
+ name: "properties.options"
1590
+ })
1591
+ })
1592
+ }), /*#__PURE__*/jsx("div", {
1593
+ className: "flex items-center gap-4",
1594
+ children: /*#__PURE__*/jsx(Switch, {
1595
+ label: t("neetoForm.common.required"),
1596
+ name: "isRequired"
1597
+ })
1598
+ })]
1599
+ })
1600
+ }), /*#__PURE__*/jsx(Pane.Footer, {
1601
+ children: /*#__PURE__*/jsx("div", {
1602
+ className: "flex items-center gap-2",
1603
+ children: /*#__PURE__*/jsx(ActionBlock, {
1604
+ className: "flex gap-x-2",
1605
+ cancelButtonProps: {
1606
+ type: "reset",
1607
+ onClick: onClose,
1608
+ disabled: false
1609
+ },
1610
+ submitButtonProps: {
1611
+ label: t("neetoForm.common.saveChanges")
1612
+ }
1613
+ })
1614
+ })
1615
+ })]
1616
+ });
1617
+ }
1618
+ })]
1619
+ });
1620
+ };
1621
+
1622
+ var Address = function Address() {
1623
+ var _findById;
1624
+ var _useState = useState(false),
1625
+ _useState2 = _slicedToArray(_useState, 2),
1626
+ isAddressFieldPaneOpen = _useState2[0],
1627
+ setIsAddressFieldPaneOpen = _useState2[1];
1628
+ var _useState3 = useState(false),
1629
+ _useState4 = _slicedToArray(_useState3, 2),
1630
+ isDeleteAddressFieldAlertOpen = _useState4[0],
1631
+ setIsDeleteAddressFieldAlertOpen = _useState4[1];
1632
+ var _useState5 = useState(null),
1633
+ _useState6 = _slicedToArray(_useState5, 2),
1634
+ selectedFieldId = _useState6[0],
1635
+ setSelectedFieldId = _useState6[1];
1636
+ var initialFocusRef = useRef(null);
1637
+ var _useTranslation = useTranslation(),
1638
+ t = _useTranslation.t;
1639
+ var _useBuildFormStore = useBuildFormStore(function (store) {
1640
+ var _store$formState;
1641
+ return {
1642
+ selectedLanguage: (_store$formState = store["formState"]) === null || _store$formState === void 0 ? void 0 : _store$formState["selectedLanguage"]
1643
+ };
1644
+ }, shallow),
1645
+ selectedLanguage = _useBuildFormStore.selectedLanguage;
1646
+ var name = "fields";
1647
+ var _useField = useField(name),
1648
+ _useField2 = _slicedToArray(_useField, 3),
1649
+ fields = _useField2[0].value,
1650
+ _useField2$ = _useField2[1],
1651
+ error = _useField2$.error,
1652
+ touched = _useField2$.touched,
1653
+ setFields = _useField2[2].setValue;
1654
+ var handleDelete = function handleDelete() {
1655
+ var deletedFields = getDeletedRecords(fields);
1656
+ var nextFields = getActiveRecords(fields);
1657
+ var selectedFieldIndex = findIndexById(selectedFieldId, nextFields);
1658
+ nextFields = assocPath([selectedFieldIndex, "deleted"], true, nextFields);
1659
+ setFields([].concat(_toConsumableArray(nextFields), _toConsumableArray(deletedFields)));
1660
+ };
1661
+ return /*#__PURE__*/jsxs(Fragment, {
1662
+ children: [/*#__PURE__*/jsx(Block, {
1663
+ dataTestid: "address-fields-block",
1664
+ title: t("neetoForm.questions.address.fields"),
1665
+ children: /*#__PURE__*/jsxs("div", {
1666
+ children: [/*#__PURE__*/jsx(OptionFields, {
1667
+ name: name,
1668
+ draggable: true,
1669
+ shouldDestroy: true,
1670
+ editable: false,
1671
+ isNewItemsPrefilled: isDefaultLanguage(selectedLanguage),
1672
+ itemLabel: t("neetoForm.common.field"),
1673
+ minOptions: MINIMUM_ADDRESS_FIELDS,
1674
+ shouldResetEmptyOptionOnBlur: false,
1675
+ buttonProps: {
1676
+ label: t("neetoForm.questions.address.addField"),
1677
+ onClick: function onClick() {
1678
+ return setIsAddressFieldPaneOpen(true);
1679
+ }
1680
+ },
1681
+ onDelete: function onDelete(id) {
1682
+ setSelectedFieldId(id);
1683
+ setIsDeleteAddressFieldAlertOpen(true);
1684
+ },
1685
+ onEdit: function onEdit(id) {
1686
+ setSelectedFieldId(id);
1687
+ setIsAddressFieldPaneOpen(true);
1688
+ }
1689
+ }), touched && error && /*#__PURE__*/jsx("p", {
1690
+ className: "neeto-form-engine-input__error",
1691
+ "data-testid": "neeto-form-engine-address-fields-error",
1692
+ children: formatErrorMessage$1(error)
1693
+ })]
1694
+ })
1695
+ }), /*#__PURE__*/jsx(ManagePane, {
1696
+ initialFocusRef: initialFocusRef,
1697
+ selectedFieldId: selectedFieldId,
1698
+ fields: getActiveRecords(fields),
1699
+ isOpen: isAddressFieldPaneOpen,
1700
+ title: isNotNil(selectedFieldId) ? t("neetoForm.questions.address.editField") : t("neetoForm.questions.address.addField"),
1701
+ onClose: function onClose() {
1702
+ setIsAddressFieldPaneOpen(false);
1703
+ setSelectedFieldId(null);
1704
+ }
1705
+ }), /*#__PURE__*/jsx(Alert, {
1706
+ isOpen: isDeleteAddressFieldAlertOpen,
1707
+ submitButtonLabel: t("neetoForm.common.delete"),
1708
+ title: t("neetoForm.questions.address.deleteAlert.title"),
1709
+ message: /*#__PURE__*/jsx(Trans, {
1710
+ i18nKey: "neetoForm.questions.address.deleteAlert.message",
1711
+ values: {
1712
+ label: (_findById = findById(selectedFieldId, fields)) === null || _findById === void 0 ? void 0 : _findById.label
1713
+ }
1714
+ }),
1715
+ onClose: function onClose() {
1716
+ setIsDeleteAddressFieldAlertOpen(false);
1717
+ setSelectedFieldId(null);
1718
+ },
1719
+ onSubmit: function onSubmit() {
1720
+ setIsDeleteAddressFieldAlertOpen(false);
1721
+ handleDelete();
1722
+ setSelectedFieldId(null);
1723
+ }
1724
+ })]
1725
+ });
1726
+ };
1727
+
1358
1728
  var Captcha = withT(function (_ref) {
1359
1729
  var t = _ref.t;
1360
1730
  return /*#__PURE__*/jsxs(Radio, {
@@ -1373,19 +1743,19 @@ var Captcha = withT(function (_ref) {
1373
1743
  });
1374
1744
  });
1375
1745
 
1376
- var _excluded$3 = ["name", "title", "className"];
1377
- function ownKeys$6(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; }
1378
- function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1746
+ var _excluded$4 = ["name", "title", "className"];
1747
+ function ownKeys$7(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; }
1748
+ function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1379
1749
  var SwitchBlock = function SwitchBlock(_ref) {
1380
1750
  var name = _ref.name,
1381
1751
  title = _ref.title,
1382
1752
  _ref$className = _ref.className,
1383
1753
  className = _ref$className === void 0 ? "" : _ref$className,
1384
- otherProps = _objectWithoutProperties(_ref, _excluded$3);
1754
+ otherProps = _objectWithoutProperties(_ref, _excluded$4);
1385
1755
  return /*#__PURE__*/jsxs(Label, {
1386
1756
  className: classnames("flex items-center justify-start gap-2 ", className),
1387
1757
  "data-testid": "neeto-form-engine-".concat(hyphenate(title && name), "-toggle-label"),
1388
- children: [/*#__PURE__*/jsx(Switch, _objectSpread$6(_objectSpread$6({}, _objectSpread$6(_objectSpread$6({}, otherProps), {}, {
1758
+ children: [/*#__PURE__*/jsx(Switch, _objectSpread$7(_objectSpread$7({}, _objectSpread$7(_objectSpread$7({}, otherProps), {}, {
1389
1759
  name: name
1390
1760
  })), {}, {
1391
1761
  "data-testid": "neeto-form-engine-".concat(hyphenate(title && name), "-switch")
@@ -1414,9 +1784,9 @@ var EMAIL_VERIFICATION_TRANSLATIONS = {
1414
1784
  popoverDescription: t("neetoForm.emailVerification.popoverDescription")
1415
1785
  };
1416
1786
 
1417
- var _excluded$2 = ["children"];
1418
- function ownKeys$5(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; }
1419
- function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1787
+ var _excluded$3 = ["children"];
1788
+ function ownKeys$6(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; }
1789
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1420
1790
  var STYLES = {
1421
1791
  border: {
1422
1792
  "default": "1px solid rgb(var(--neeto-ui-gray-400))",
@@ -1428,8 +1798,8 @@ var STYLES = {
1428
1798
  }
1429
1799
  };
1430
1800
  var MultiValueRemove = function MultiValueRemove(props) {
1431
- return /*#__PURE__*/jsx(components.MultiValueRemove, _objectSpread$5(_objectSpread$5({}, props), {}, {
1432
- innerProps: _objectSpread$5(_objectSpread$5({}, props.innerProps), {}, _defineProperty({}, "data-testid", "".concat(hyphenize(props.data.label), "-remove-icon"))),
1801
+ return /*#__PURE__*/jsx(components.MultiValueRemove, _objectSpread$6(_objectSpread$6({}, props), {}, {
1802
+ innerProps: _objectSpread$6(_objectSpread$6({}, props.innerProps), {}, _defineProperty({}, "data-testid", "".concat(hyphenize(props.data.label), "-remove-icon"))),
1433
1803
  children: /*#__PURE__*/jsx(Close, {
1434
1804
  size: 16
1435
1805
  })
@@ -1437,7 +1807,7 @@ var MultiValueRemove = function MultiValueRemove(props) {
1437
1807
  };
1438
1808
  var ValueContainer = function ValueContainer(_ref) {
1439
1809
  var children = _ref.children,
1440
- props = _objectWithoutProperties(_ref, _excluded$2);
1810
+ props = _objectWithoutProperties(_ref, _excluded$3);
1441
1811
  var _useTranslation = useTranslation(),
1442
1812
  t = _useTranslation.t;
1443
1813
  var getValue = props.getValue,
@@ -1449,8 +1819,8 @@ var ValueContainer = function ValueContainer(_ref) {
1449
1819
  firstChild = _children[0],
1450
1820
  rest = _children.slice(1);
1451
1821
  var shouldCollapse = !isFocused && value.length > visibleDomainsCount;
1452
- return /*#__PURE__*/jsxs(components.ValueContainer, _objectSpread$5(_objectSpread$5({}, props), {}, {
1453
- innerProps: _objectSpread$5(_objectSpread$5({}, props.innerProps), {}, _defineProperty({}, "data-testid", "multi-domain-input-container")),
1822
+ return /*#__PURE__*/jsxs(components.ValueContainer, _objectSpread$6(_objectSpread$6({}, props), {}, {
1823
+ innerProps: _objectSpread$6(_objectSpread$6({}, props.innerProps), {}, _defineProperty({}, "data-testid", "multi-domain-input-container")),
1454
1824
  children: [shouldCollapse ? firstChild.slice(0, visibleDomainsCount) : firstChild, shouldCollapse && /*#__PURE__*/jsx(Tag, {
1455
1825
  style: "secondary",
1456
1826
  label: t("neetoForm.common.remainingItemsCount", {
@@ -1460,8 +1830,8 @@ var ValueContainer = function ValueContainer(_ref) {
1460
1830
  }));
1461
1831
  };
1462
1832
  var ClearIndicator = function ClearIndicator(props) {
1463
- return /*#__PURE__*/jsx(components.ClearIndicator, _objectSpread$5(_objectSpread$5({}, props), {}, {
1464
- innerProps: _objectSpread$5(_objectSpread$5({}, props.innerProps), {}, _defineProperty({}, "data-testid", "clear-all-button")),
1833
+ return /*#__PURE__*/jsx(components.ClearIndicator, _objectSpread$6(_objectSpread$6({}, props), {}, {
1834
+ innerProps: _objectSpread$6(_objectSpread$6({}, props.innerProps), {}, _defineProperty({}, "data-testid", "clear-all-button")),
1465
1835
  children: /*#__PURE__*/jsx(Close, {
1466
1836
  className: "cursor-pointer",
1467
1837
  size: 16
@@ -1482,7 +1852,7 @@ var CUSTOM_STYLES = {
1482
1852
  input: assoc("overflow", "hidden"),
1483
1853
  multiValue: function multiValue(styles, _ref2) {
1484
1854
  var valid = _ref2.data.valid;
1485
- return _objectSpread$5(_objectSpread$5({}, styles), {}, {
1855
+ return _objectSpread$6(_objectSpread$6({}, styles), {}, {
1486
1856
  border: valid ? STYLES.border["default"] : STYLES.border.error,
1487
1857
  color: valid ? STYLES.color["default"] : STYLES.color.error
1488
1858
  });
@@ -1524,9 +1894,9 @@ var formatErrorMessage = function formatErrorMessage(error) {
1524
1894
  return removeDuplicateErrorMessages(error);
1525
1895
  };
1526
1896
 
1527
- var _excluded$1 = ["label", "value", "onChange", "error", "onBlur"];
1528
- function ownKeys$4(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; }
1529
- function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1897
+ var _excluded$2 = ["label", "value", "onChange", "error", "onBlur"];
1898
+ function ownKeys$5(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; }
1899
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1530
1900
  var MultiDomainInput = function MultiDomainInput(_ref) {
1531
1901
  var _ref$label = _ref.label,
1532
1902
  label = _ref$label === void 0 ? "" : _ref$label,
@@ -1538,7 +1908,7 @@ var MultiDomainInput = function MultiDomainInput(_ref) {
1538
1908
  error = _ref$error === void 0 ? "" : _ref$error,
1539
1909
  _ref$onBlur = _ref.onBlur,
1540
1910
  onBlur = _ref$onBlur === void 0 ? noop : _ref$onBlur,
1541
- otherProps = _objectWithoutProperties(_ref, _excluded$1);
1911
+ otherProps = _objectWithoutProperties(_ref, _excluded$2);
1542
1912
  var _useState = useState(""),
1543
1913
  _useState2 = _slicedToArray(_useState, 2),
1544
1914
  inputValue = _useState2[0],
@@ -1585,7 +1955,7 @@ var MultiDomainInput = function MultiDomainInput(_ref) {
1585
1955
  "data-testid": "".concat(hyphenize(label), "-input-label"),
1586
1956
  children: label
1587
1957
  })
1588
- }), /*#__PURE__*/jsx(CreatableSelect, _objectSpread$4({
1958
+ }), /*#__PURE__*/jsx(CreatableSelect, _objectSpread$5({
1589
1959
  isMulti: true,
1590
1960
  required: true,
1591
1961
  classNamePrefix: "neeto-ui-react-select",
@@ -1595,7 +1965,7 @@ var MultiDomainInput = function MultiDomainInput(_ref) {
1595
1965
  className: classnames("neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select", {
1596
1966
  "neeto-ui-react-select__container--error": !!error
1597
1967
  }),
1598
- styles: _objectSpread$4(_objectSpread$4({}, CUSTOM_STYLES), {}, {
1968
+ styles: _objectSpread$5(_objectSpread$5({}, CUSTOM_STYLES), {}, {
1599
1969
  control: mergeLeft({
1600
1970
  maxHeight: "200px",
1601
1971
  overflowY: "auto"
@@ -1607,7 +1977,7 @@ var MultiDomainInput = function MultiDomainInput(_ref) {
1607
1977
  },
1608
1978
  onInputChange: setInputValue,
1609
1979
  onKeyDown: handleKeyDown
1610
- }, _objectSpread$4({
1980
+ }, _objectSpread$5({
1611
1981
  inputValue: inputValue,
1612
1982
  isFocused: isFocused,
1613
1983
  onChange: onChange,
@@ -1629,8 +1999,8 @@ var MultiDomainInput = function MultiDomainInput(_ref) {
1629
1999
  });
1630
2000
  };
1631
2001
 
1632
- function ownKeys$3(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; }
1633
- function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2002
+ function ownKeys$4(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; }
2003
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1634
2004
  var validateDomains = function validateDomains(value) {
1635
2005
  var schema = yup.array().of(yup.string().test("verify domains", t("neetoForm.error.invalidDomain"), function (domain) {
1636
2006
  return VALID_DOMAIN_REGEX.test(domain);
@@ -1670,7 +2040,7 @@ var buildHelpPopoverLabelProps = function buildHelpPopoverLabelProps(popoverDesc
1670
2040
  return {
1671
2041
  helpIconProps: {
1672
2042
  "data-testid": "help-popover-button",
1673
- popoverProps: _objectSpread$3({
2043
+ popoverProps: _objectSpread$4({
1674
2044
  description: popoverDescription
1675
2045
  }, helpLink && {
1676
2046
  helpLinkProps: {
@@ -1921,8 +2291,8 @@ var OpinionScale = function OpinionScale() {
1921
2291
  });
1922
2292
  };
1923
2293
 
1924
- function ownKeys$2(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; }
1925
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2294
+ function ownKeys$3(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; }
2295
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1926
2296
  var Options = function Options(_ref) {
1927
2297
  var questionProps = _ref.questionProps;
1928
2298
  var _useTranslation = useTranslation(),
@@ -1967,7 +2337,7 @@ var Options = function Options(_ref) {
1967
2337
  return /*#__PURE__*/jsxs("div", {
1968
2338
  className: "w-full space-y-4",
1969
2339
  children: [/*#__PURE__*/jsxs("div", {
1970
- children: [/*#__PURE__*/jsx(Label, _objectSpread$2(_objectSpread$2({
2340
+ children: [/*#__PURE__*/jsx(Label, _objectSpread$3(_objectSpread$3({
1971
2341
  className: "mb-2 block"
1972
2342
  }, optionLabelProps), {}, {
1973
2343
  children: t("neetoForm.questions.common.questionFields.field.options")
@@ -2123,6 +2493,9 @@ var StarRating = function StarRating() {
2123
2493
  });
2124
2494
  };
2125
2495
 
2496
+ var _excluded$1 = ["fields"];
2497
+ function ownKeys$2(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; }
2498
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2126
2499
  var CHECKBOX = QUESTION_TYPES.CHECKBOX,
2127
2500
  RADIO = QUESTION_TYPES.RADIO,
2128
2501
  DROPDOWN = QUESTION_TYPES.DROPDOWN,
@@ -2131,12 +2504,16 @@ var CHECKBOX = QUESTION_TYPES.CHECKBOX,
2131
2504
  RATING = QUESTION_TYPES.RATING,
2132
2505
  FILE_UPLOAD = QUESTION_TYPES.FILE_UPLOAD,
2133
2506
  CAPTCHA = QUESTION_TYPES.CAPTCHA,
2134
- EMAIL = QUESTION_TYPES.EMAIL;
2507
+ EMAIL = QUESTION_TYPES.EMAIL,
2508
+ ADDRESS = QUESTION_TYPES.ADDRESS;
2135
2509
  var transformValueForOption = function transformValueForOption(_ref) {
2136
2510
  var label = _ref.label,
2137
2511
  type = _ref.type;
2138
2512
  return "".concat(slugify(label), "-").concat(type);
2139
2513
  };
2514
+ var omitDraftId = modifyBy({
2515
+ id: startsWith(DRAFT_ID_PREFIX)
2516
+ }, omit(["id"]));
2140
2517
  var renderAdditionalData = function renderAdditionalData(_ref2) {
2141
2518
  var kind = _ref2.kind,
2142
2519
  questionProps = _ref2.questionProps,
@@ -2158,6 +2535,8 @@ var renderAdditionalData = function renderAdditionalData(_ref2) {
2158
2535
  return /*#__PURE__*/jsx(FileUpload, {});
2159
2536
  case CAPTCHA:
2160
2537
  return /*#__PURE__*/jsx(Captcha, {});
2538
+ case ADDRESS:
2539
+ return /*#__PURE__*/jsx(Address, {});
2161
2540
  case EMAIL:
2162
2541
  return !usesCustomSubmissionComponent && /*#__PURE__*/jsx(Email, {
2163
2542
  usesCustomSubmissionComponent: usesCustomSubmissionComponent
@@ -2234,6 +2613,21 @@ var readOnlySwitchLabelProps = function readOnlySwitchLabelProps(helpUrl) {
2234
2613
  }
2235
2614
  };
2236
2615
  };
2616
+ var transformValues = function transformValues(values) {
2617
+ switch (values.kind) {
2618
+ case QUESTION_TYPES.ADDRESS:
2619
+ {
2620
+ var _values$fields = values.fields,
2621
+ fields = _values$fields === void 0 ? [] : _values$fields,
2622
+ rest = _objectWithoutProperties(values, _excluded$1);
2623
+ return _objectSpread$2(_objectSpread$2({}, rest), {}, {
2624
+ fieldsAttributes: map(renameKey("deleted", "_destroy"), omitDraftId(fields))
2625
+ });
2626
+ }
2627
+ default:
2628
+ return values;
2629
+ }
2630
+ };
2237
2631
 
2238
2632
  var _excluded = ["isOpen", "onClose", "action", "question", "availableQuestionKinds"];
2239
2633
  function ownKeys$1(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; }