@bigbinary/neeto-form-frontend 1.2.39 → 1.2.41

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.
package/dist/index.js CHANGED
@@ -1,24 +1,24 @@
1
1
  import * as React$2 from 'react';
2
2
  import React__default, { useState, useRef, useEffect, useContext, useLayoutEffect as useLayoutEffect$1, forwardRef, useImperativeHandle, Fragment, useReducer, useCallback as useCallback$1, useMemo as useMemo$1, createContext, createElement } from 'react';
3
3
  import { useField, useFormikContext, FieldArray, Form as Form$1, Formik, Field, FastField } from 'formik';
4
- import { noop as noop$4, slugify, filterBy, findBy, removeBy, isPresent as isPresent$1, isNotEmpty, findById, notEqualsDeep } from '@bigbinary/neeto-cist';
4
+ import { noop as noop$4, slugify, filterBy, findBy, removeBy, isPresent as isPresent$1, isNotPresent, isNotEmpty, findById, notEqualsDeep } from '@bigbinary/neeto-cist';
5
+ import { withEventTargetValue, showThumbsUpToastr, getQueryParams, dateFormat } from '@bigbinary/neeto-commons-frontend/utils';
5
6
  import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
6
- import { Typography, Dropdown as Dropdown$2, Tooltip, Button as Button$1, Label, Checkbox as Checkbox$1, Alert, Toastr, MultiEmailInput, DatePicker, Radio as Radio$1, Select, Textarea as Textarea$1, Input as Input$2, Spinner as Spinner$2 } from '@bigbinary/neetoui';
7
- import { assoc, prop, isEmpty, path, values, compose as compose$1, trim, useWith, split, either, isNil, equals, difference, reject, pluck, keys, pick, omit, insert, not, pipe as pipe$1, toLower, map, includes, identity, isNotNil, times, filter as filter$1 } from 'ramda';
7
+ import { Tooltip, Dropdown as Dropdown$2, Alert, Typography, Button as Button$1, Label, Checkbox as Checkbox$1, Toastr, MultiEmailInput, DatePicker, Radio as Radio$1, Select, Textarea as Textarea$1, Input as Input$2, Spinner as Spinner$2 } from '@bigbinary/neetoui';
8
+ import { assoc, prop, isEmpty, path, values, compose as compose$1, trim, useWith, split, either, isNil, equals, difference, reject, pluck, keys, pick, omit, insert, not, pipe as pipe$1, toLower, map, includes, identity, isNotNil, times, clamp as clamp$2, filter as filter$1 } from 'ramda';
8
9
  import { useQuery, useQueryClient, useMutation } from 'react-query';
9
10
  import i18next, { t as t$4 } from 'i18next';
10
- import { Input, Email as Email$2, Phone as Phone$2, Up, Down, MenuHorizontal, Delete, Plus, NeetoInvisible, Checkbox as Checkbox$2, Radio, Dropdown as Dropdown$3, Rating as Rating$4, Smiley, Calendar, Upload, Check, Close, FileGeneric } from '@bigbinary/neeto-icons';
11
+ import { Input, Email as Email$2, Phone as Phone$2, Globe, Up, Down, MenuHorizontal, Delete, Plus, NeetoInvisible, Checkbox as Checkbox$2, Radio, Dropdown as Dropdown$3, Rating as Rating$4, Smiley, Calendar, Upload, Check, Close, FileGeneric } from '@bigbinary/neeto-icons';
12
+ import { useMutationWithInvalidation, withImmutableActions, withT, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
11
13
  import axios from 'axios';
12
14
  import ReactDOM, { unstable_batchedUpdates, flushSync as flushSync$1 } from 'react-dom';
13
15
  import { Input as Input$1, Textarea, Checkbox, ActionBlock } from '@bigbinary/neetoui/formik';
14
16
  import { useTranslation, Trans } from 'react-i18next';
15
- import { withImmutableActions, withT, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
16
17
  import { create as create$1 } from 'zustand';
17
18
  import classnames from 'classnames';
18
- import { Editor as Editor$1, isEditorEmpty, EditorContent } from '@bigbinary/neeto-editor';
19
19
  import * as yup from 'yup';
20
20
  import { object, array, string } from 'yup';
21
- import { withEventTargetValue, getQueryParams, dateFormat } from '@bigbinary/neeto-commons-frontend/utils';
21
+ import { Editor as Editor$1, isEditorEmpty, EditorContent } from '@bigbinary/neeto-editor';
22
22
  import useHotkeys from '@bigbinary/neeto-hotkeys';
23
23
  import dayjs from 'dayjs';
24
24
  import { validation, PhoneNumberInput, PhoneNumber as PhoneNumber$1 } from '@bigbinary/neeto-molecules/PhoneNumber';
@@ -125,7 +125,7 @@ function _objectWithoutProperties$1(source, excluded) {
125
125
  return target;
126
126
  }
127
127
 
128
- var _excluded$c = ["size"],
128
+ var _excluded$d = ["size"],
129
129
  _excluded2$1 = ["size"],
130
130
  _excluded3$2 = ["size"],
131
131
  _excluded4$1 = ["size"],
@@ -133,7 +133,7 @@ var _excluded$c = ["size"],
133
133
  var Star = function Star(props) {
134
134
  var _props$size = props.size,
135
135
  size = _props$size === void 0 ? 20 : _props$size,
136
- other = _objectWithoutProperties$1(props, _excluded$c);
136
+ other = _objectWithoutProperties$1(props, _excluded$d);
137
137
  return /*#__PURE__*/React__default.createElement("svg", _extends$8({
138
138
  fill: "none",
139
139
  height: size,
@@ -510,11 +510,19 @@ var updateForm = function updateForm(formId, payload) {
510
510
  var destroyForm = function destroyForm(formId) {
511
511
  return axios["delete"](getFormsUrl(formId));
512
512
  };
513
- var getQuestions = function getQuestions(formId) {
514
- return axios.get(getQuestionsUrl(formId));
513
+ var getQuestions = function getQuestions(formId, language) {
514
+ return axios.get(getQuestionsUrl(formId), {
515
+ params: {
516
+ language: language
517
+ }
518
+ });
515
519
  };
516
- var getPublicQuestions = function getPublicQuestions(formId) {
517
- return axios.get("".concat(BASE_URL, "/api/v1/forms/").concat(formId, "/public/questions/"));
520
+ var getPublicQuestions = function getPublicQuestions(formId, language) {
521
+ return axios.get("".concat(BASE_URL, "/api/v1/forms/").concat(formId, "/public/questions/"), {
522
+ params: {
523
+ language: language
524
+ }
525
+ });
518
526
  };
519
527
  var updateQuestions = function updateQuestions(formId, payload) {
520
528
  return axios.patch(getQuestionsUrl(formId), payload);
@@ -553,133 +561,126 @@ var neetoFormApi = {
553
561
  updatePublicSubmission: updatePublicSubmission
554
562
  };
555
563
 
556
- var _excluded$b = ["formId", "preview"],
564
+ var _excluded$c = ["formId", "preview", "language"],
557
565
  _excluded3$1 = ["formId", "submissionId"];
558
- 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; }
559
- function _objectSpread$f(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$6(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; }
566
+ 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; }
567
+ function _objectSpread$g(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$6(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; }
560
568
  var useForm = function useForm(_ref) {
561
569
  var formId = _ref.formId,
562
- preview = _ref.preview,
563
- options = _objectWithoutProperties$1(_ref, _excluded$b);
564
- return useQuery([QUERY_KEYS.QUESTIONS, preview ? "preview/".concat(formId) : formId], function () {
565
- return neetoFormApi.getPublicQuestions(formId);
566
- }, _objectSpread$f({
570
+ _ref$preview = _ref.preview,
571
+ preview = _ref$preview === void 0 ? null : _ref$preview,
572
+ _ref$language = _ref.language,
573
+ language = _ref$language === void 0 ? "en" : _ref$language,
574
+ options = _objectWithoutProperties$1(_ref, _excluded$c);
575
+ return useQuery([QUERY_KEYS.QUESTIONS, preview ? "preview/".concat(formId) : formId, language], function () {
576
+ return neetoFormApi.getPublicQuestions(formId, language);
577
+ }, _objectSpread$g({
567
578
  keepPreviousData: true
568
579
  }, options));
569
580
  };
570
581
  var useCreateForm = function useCreateForm(options) {
582
+ var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "en";
571
583
  var queryClient = useQueryClient();
572
- return useMutation(neetoFormApi.createForm, _objectSpread$f(_objectSpread$f({}, options), {}, {
584
+ return useMutation(neetoFormApi.createForm, _objectSpread$g(_objectSpread$g({}, options), {}, {
573
585
  onSuccess: function onSuccess(form) {
574
586
  var _options$onSuccess;
575
587
  queryClient.setQueryData(QUERY_KEYS.QUESTIONS, function (forms) {
576
588
  return forms && [].concat(_toConsumableArray$1(forms), [form]);
577
589
  });
578
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, form.id], form);
579
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(form.id)], form);
590
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, form.id, language], form);
591
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(form.id), language], form);
580
592
  queryClient.invalidateQueries([QUERY_KEYS.FORMS]);
581
593
  options === null || options === void 0 || (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 || _options$onSuccess.call(options, form);
582
594
  }
583
595
  }));
584
596
  };
585
597
  var useUpdateForm = function useUpdateForm(options) {
598
+ var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "en";
586
599
  var queryClient = useQueryClient();
587
600
  return useMutation(function (_ref2) {
588
601
  var id = _ref2.id,
589
602
  values = _ref2.values;
590
603
  return neetoFormApi.updateForm(id, values);
591
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
604
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
592
605
  onSuccess: function onSuccess(data, _ref3) {
593
606
  var id = _ref3.id;
594
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, id], function (form) {
595
- return _objectSpread$f(_objectSpread$f({}, form), {}, {
607
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, id, language], function (form) {
608
+ return _objectSpread$g(_objectSpread$g({}, form), {}, {
596
609
  title: data.title
597
610
  });
598
611
  });
599
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id)], function (form) {
600
- return _objectSpread$f(_objectSpread$f({}, form), {}, {
612
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id), language], function (form) {
613
+ return _objectSpread$g(_objectSpread$g({}, form), {}, {
601
614
  title: data.title,
602
615
  questions: data.questions
603
616
  });
604
617
  });
605
618
  queryClient.invalidateQueries([QUERY_KEYS.FORMS]);
606
- queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, id]);
607
- queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, "preview/".concat(id)]);
619
+ queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, id, language]);
620
+ queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, "preview/".concat(id), language]);
608
621
  options.onSuccess && options.onSuccess(data);
609
622
  }
610
623
  }));
611
624
  };
612
- var useUpdateQuestions = function useUpdateQuestions(options) {
625
+ var useUpdateQuestions = function useUpdateQuestions(options, language) {
613
626
  var queryClient = useQueryClient();
614
627
  return useMutation(function (_ref4) {
615
628
  var id = _ref4.id,
616
629
  values = _ref4.values;
617
630
  return neetoFormApi.updateQuestions(id, values);
618
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
631
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
619
632
  onSuccess: function onSuccess() {
620
633
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
621
634
  args[_key] = arguments[_key];
622
635
  }
623
636
  var data = args[0],
624
637
  id = args[1].id;
625
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, id], function (form) {
626
- return _objectSpread$f(_objectSpread$f({}, form), {}, {
627
- questions: data.questions
628
- });
629
- });
630
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id)], function (form) {
631
- return _objectSpread$f(_objectSpread$f({}, form), {}, {
632
- questions: data.questions
633
- });
634
- });
638
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, id, language], assoc("questions", data.questions));
639
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id), language], assoc("questions", data.questions));
635
640
  options.onSuccess && options.onSuccess.apply(options, args);
636
641
  }
637
642
  }));
638
643
  };
639
644
  var useForms = function useForms(options) {
640
- return useQuery([QUERY_KEYS.FORMS], neetoFormApi.getForms, _objectSpread$f({
645
+ return useQuery([QUERY_KEYS.FORMS], neetoFormApi.getForms, _objectSpread$g({
641
646
  keepPreviousData: true
642
647
  }, options));
643
648
  };
644
649
  var useDeleteForm = function useDeleteForm(options) {
645
- var queryClient = useQueryClient();
646
- return useMutation(function (_ref5) {
650
+ return useMutationWithInvalidation(function (_ref5) {
647
651
  var id = _ref5.id;
648
652
  return neetoFormApi.destroyForm(id);
649
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
653
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
654
+ keysToInvalidate: function keysToInvalidate(_, _ref6) {
655
+ var id = _ref6.id;
656
+ return [QUERY_KEYS.FORMS, [QUERY_KEYS.QUESTIONS, id], [QUERY_KEYS.QUESTIONS, "preview/".concat(id)]];
657
+ },
650
658
  onSuccess: function onSuccess() {
651
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
652
- args[_key2] = arguments[_key2];
653
- }
654
- var id = args[1].id;
655
- queryClient.invalidateQueries([QUERY_KEYS.FORMS]);
656
- queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, id]);
657
- queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, "preview/".concat(id)]);
658
- options.onSuccess && options.onSuccess.apply(options, args);
659
+ options.onSuccess && options.onSuccess.apply(options, arguments);
659
660
  }
660
661
  }));
661
662
  };
662
- var useSubmission = function useSubmission(_ref7) {
663
- var formId = _ref7.formId,
664
- submissionId = _ref7.submissionId,
665
- options = _objectWithoutProperties$1(_ref7, _excluded3$1);
663
+ var useSubmission = function useSubmission(_ref8) {
664
+ var formId = _ref8.formId,
665
+ submissionId = _ref8.submissionId,
666
+ options = _objectWithoutProperties$1(_ref8, _excluded3$1);
666
667
  return useQuery([QUERY_KEYS.SUBMISSION, formId, submissionId], function () {
667
668
  return neetoFormApi.getPublicSubmission(formId, submissionId);
668
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
669
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
669
670
  keepPreviousData: true
670
671
  }));
671
672
  };
672
673
  var useCreateSubmission = function useCreateSubmission(options) {
673
674
  var queryClient = useQueryClient();
674
- return useMutation(function (_ref8) {
675
- var formId = _ref8.formId,
676
- values = _ref8.values;
675
+ return useMutation(function (_ref9) {
676
+ var formId = _ref9.formId,
677
+ values = _ref9.values;
677
678
  return neetoFormApi.submitPublicForm(formId, values);
678
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
679
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
679
680
  onSuccess: function onSuccess() {
680
681
  var _data$submission, _data$submission2;
681
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
682
- args[_key3] = arguments[_key3];
682
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
683
+ args[_key2] = arguments[_key2];
683
684
  }
684
685
  var data = args[0],
685
686
  formId = args[1].formId;
@@ -692,15 +693,15 @@ var useCreateSubmission = function useCreateSubmission(options) {
692
693
  };
693
694
  var useUpdateSubmission = function useUpdateSubmission(options) {
694
695
  var queryClient = useQueryClient();
695
- return useMutation(function (_ref9) {
696
- var formId = _ref9.formId,
697
- values = _ref9.values;
696
+ return useMutation(function (_ref10) {
697
+ var formId = _ref10.formId,
698
+ values = _ref10.values;
698
699
  return neetoFormApi.updatePublicSubmission(formId, values);
699
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
700
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
700
701
  onSuccess: function onSuccess() {
701
702
  var _data$submission3;
702
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
703
- args[_key4] = arguments[_key4];
703
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
704
+ args[_key3] = arguments[_key3];
704
705
  }
705
706
  var data = args[0],
706
707
  formId = args[1].formId;
@@ -802,12 +803,12 @@ var useUpdateSubmission = function useUpdateSubmission(options) {
802
803
  nodeId: "37683bae-da1b-4890-ade9-0664006dc57d"
803
804
  }]
804
805
  });
805
- var THUMBS_UP = {
806
- icon: "👍",
807
- className: "w-20"
808
- };
809
806
  var QUESTIONS_WITHOUT_FIELD_CODE = ["paragraph", "termsandcondition", "condition", "file_upload"];
810
807
  var RESERVED_FIELD_CODES = ["month", "date", "time"];
808
+ var DEFAULT_AVAILABLE_LANGUAGES = [{
809
+ code: "en",
810
+ name: "English"
811
+ }];
811
812
 
812
813
  function _arrayWithHoles$3(arr) {
813
814
  if (Array.isArray(arr)) return arr;
@@ -890,7 +891,7 @@ function _defineProperty$5(obj, key, value) {
890
891
  return obj;
891
892
  }
892
893
 
893
- function ownKeys$f(e, r) {
894
+ function ownKeys$g(e, r) {
894
895
  var t = Object.keys(e);
895
896
  if (Object.getOwnPropertySymbols) {
896
897
  var o = Object.getOwnPropertySymbols(e);
@@ -903,9 +904,9 @@ function ownKeys$f(e, r) {
903
904
  function _objectSpread2(e) {
904
905
  for (var r = 1; r < arguments.length; r++) {
905
906
  var t = null != arguments[r] ? arguments[r] : {};
906
- r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) {
907
+ r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) {
907
908
  _defineProperty$5(e, r, t[r]);
908
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) {
909
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) {
909
910
  Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
910
911
  });
911
912
  }
@@ -1625,7 +1626,7 @@ reactIs_production_min.isValidElementType=function(a){return "string"===typeof a
1625
1626
 
1626
1627
  var reactIsExports = reactIs.exports;
1627
1628
 
1628
- const _excluded$a = ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"];
1629
+ const _excluded$b = ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"];
1629
1630
  function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {
1630
1631
  areStatesEqual,
1631
1632
  areOwnPropsEqual,
@@ -1695,7 +1696,7 @@ function finalPropsSelectorFactory(dispatch, _ref) {
1695
1696
  initMapDispatchToProps,
1696
1697
  initMergeProps
1697
1698
  } = _ref,
1698
- options = _objectWithoutPropertiesLoose$1(_ref, _excluded$a);
1699
+ options = _objectWithoutPropertiesLoose$1(_ref, _excluded$b);
1699
1700
 
1700
1701
  const mapStateToProps = initMapStateToProps(dispatch, options);
1701
1702
  const mapDispatchToProps = initMapDispatchToProps(dispatch, options);
@@ -2032,7 +2033,7 @@ function shallowEqual(objA, objB) {
2032
2033
  return true;
2033
2034
  }
2034
2035
 
2035
- const _excluded$9 = ["reactReduxForwardedRef"];
2036
+ const _excluded$a = ["reactReduxForwardedRef"];
2036
2037
  let useSyncExternalStore = notInitialized;
2037
2038
  const initializeConnect = fn => {
2038
2039
  useSyncExternalStore = fn;
@@ -2210,7 +2211,7 @@ function connect(mapStateToProps, mapDispatchToProps, mergeProps, {
2210
2211
  const {
2211
2212
  reactReduxForwardedRef
2212
2213
  } = props,
2213
- wrapperProps = _objectWithoutPropertiesLoose$1(props, _excluded$9);
2214
+ wrapperProps = _objectWithoutPropertiesLoose$1(props, _excluded$a);
2214
2215
 
2215
2216
  return [props.context, reactReduxForwardedRef, wrapperProps];
2216
2217
  }, [props]);
@@ -9776,8 +9777,8 @@ const ConnectedDroppable = connect(makeMapStateToProps, mapDispatchToProps, (sta
9776
9777
  })(Droppable$1);
9777
9778
  var ConnectedDroppable$1 = ConnectedDroppable;
9778
9779
 
9779
- 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; }
9780
- 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$6(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; }
9780
+ 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; }
9781
+ 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$6(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; }
9781
9782
  var defaultConfig = {
9782
9783
  strict: true,
9783
9784
  matchKey: "value"
@@ -9785,7 +9786,7 @@ var defaultConfig = {
9785
9786
  var findOptionByValue = function findOptionByValue(value) {
9786
9787
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
9787
9788
  var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
9788
- var configObject = _objectSpread$e(_objectSpread$e({}, defaultConfig), config);
9789
+ var configObject = _objectSpread$f(_objectSpread$f({}, defaultConfig), config);
9789
9790
  var matchKey = configObject.matchKey,
9790
9791
  strict = configObject.strict;
9791
9792
  return options.find(function (option) {
@@ -9799,7 +9800,7 @@ var filterOptionsByValues = function filterOptionsByValues() {
9799
9800
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
9800
9801
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
9801
9802
  var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
9802
- var configObject = _objectSpread$e(_objectSpread$e({}, defaultConfig), config);
9803
+ var configObject = _objectSpread$f(_objectSpread$f({}, defaultConfig), config);
9803
9804
  var matchKey = configObject.matchKey,
9804
9805
  strict = configObject.strict;
9805
9806
  return options.filter(function (option) {
@@ -9817,7 +9818,7 @@ var destroyFromList = function destroyFromList(items, index) {
9817
9818
  var nextItems = _toConsumableArray$1(items);
9818
9819
  nextItems.splice(index, 1);
9819
9820
  if (itemToRemove.id) {
9820
- nextItems.push(_objectSpread$e(_objectSpread$e({}, itemToRemove), {}, {
9821
+ nextItems.push(_objectSpread$f(_objectSpread$f({}, itemToRemove), {}, {
9821
9822
  _destroy: true
9822
9823
  }));
9823
9824
  }
@@ -9864,6 +9865,84 @@ var useBuildFormState = function useBuildFormState() {
9864
9865
  return useBuildFormStore(prop("formState"));
9865
9866
  };
9866
9867
 
9868
+ var ChangeLanguageDropdown = function ChangeLanguageDropdown(_ref) {
9869
+ var dirty = _ref.dirty,
9870
+ initialLanguage = _ref.initialLanguage,
9871
+ languages = _ref.languages,
9872
+ onChange = _ref.onChange;
9873
+ var _useState = useState(false),
9874
+ _useState2 = _slicedToArray$3(_useState, 2),
9875
+ isUnsavedChangesAlertOpen = _useState2[0],
9876
+ setIsUnsavedChangesAlertOpen = _useState2[1];
9877
+ var _useState3 = useState(initialLanguage),
9878
+ _useState4 = _slicedToArray$3(_useState3, 2),
9879
+ selectedLanguage = _useState4[0],
9880
+ setSelectedLanguage = _useState4[1];
9881
+ var _useTranslation = useTranslation(),
9882
+ t = _useTranslation.t;
9883
+ var languageChangeHandler = function languageChangeHandler(code) {
9884
+ if (!dirty) {
9885
+ onChange(code);
9886
+ return;
9887
+ }
9888
+ setSelectedLanguage(code);
9889
+ setIsUnsavedChangesAlertOpen(true);
9890
+ };
9891
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Tooltip, {
9892
+ content: t("neetoForm.questions.changeLanguage")
9893
+ }, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Dropdown$2, {
9894
+ buttonStyle: "text",
9895
+ icon: Globe,
9896
+ position: "top-start"
9897
+ }, /*#__PURE__*/React__default.createElement(Dropdown$2.Menu, null, languages.map(function (_ref2) {
9898
+ var code = _ref2.code,
9899
+ name = _ref2.name;
9900
+ return /*#__PURE__*/React__default.createElement(Dropdown$2.MenuItem.Button, {
9901
+ isActive: initialLanguage === code,
9902
+ key: code,
9903
+ onClick: function onClick() {
9904
+ return languageChangeHandler(code);
9905
+ }
9906
+ }, name);
9907
+ }))))), /*#__PURE__*/React__default.createElement(Alert, {
9908
+ isOpen: isUnsavedChangesAlertOpen,
9909
+ message: t("neetoForm.questions.unsavedChangesAlert.message"),
9910
+ submitButtonLabel: t("neetoForm.questions.unsavedChangesAlert.discard"),
9911
+ title: t("neetoForm.questions.unsavedChangesAlert.title"),
9912
+ onClose: function onClose() {
9913
+ return setIsUnsavedChangesAlertOpen(false);
9914
+ },
9915
+ onSubmit: function onSubmit() {
9916
+ onChange(selectedLanguage);
9917
+ setIsUnsavedChangesAlertOpen(false);
9918
+ }
9919
+ }));
9920
+ };
9921
+
9922
+ var Overview = function Overview(_ref) {
9923
+ var title = _ref.title,
9924
+ description = _ref.description,
9925
+ availableLanguages = _ref.availableLanguages,
9926
+ selectedLanguage = _ref.selectedLanguage,
9927
+ dirty = _ref.dirty,
9928
+ onLanguageChange = _ref.onLanguageChange;
9929
+ return /*#__PURE__*/React__default.createElement("div", {
9930
+ className: "mb-4 flex-shrink-0"
9931
+ }, /*#__PURE__*/React__default.createElement("div", {
9932
+ className: "flex items-center justify-between"
9933
+ }, /*#__PURE__*/React__default.createElement(Typography, {
9934
+ "data-cy": "neeto-form-engine-overview-title",
9935
+ lineHeight: "normal",
9936
+ style: "h4",
9937
+ weight: "semibold"
9938
+ }, title), availableLanguages.length > 1 && /*#__PURE__*/React__default.createElement(ChangeLanguageDropdown, {
9939
+ dirty: dirty,
9940
+ initialLanguage: selectedLanguage,
9941
+ languages: availableLanguages,
9942
+ onChange: onLanguageChange
9943
+ })), description);
9944
+ };
9945
+
9867
9946
  var ListItem = function ListItem(_ref) {
9868
9947
  var _ref$icon = _ref.icon,
9869
9948
  Icon = _ref$icon === void 0 ? null : _ref$icon,
@@ -9878,14 +9957,14 @@ var ListItem = function ListItem(_ref) {
9878
9957
  }, label));
9879
9958
  };
9880
9959
 
9881
- var _excluded$8 = ["size", "color"],
9960
+ var _excluded$9 = ["size", "color"],
9882
9961
  _excluded2 = ["size", "color"],
9883
9962
  _excluded3 = ["size", "color"],
9884
9963
  _excluded4 = ["size", "color"];
9885
9964
  var BadSmiley = function BadSmiley(props) {
9886
9965
  var size = props.size,
9887
9966
  color = props.color,
9888
- other = _objectWithoutProperties$1(props, _excluded$8);
9967
+ other = _objectWithoutProperties$1(props, _excluded$9);
9889
9968
  return /*#__PURE__*/React__default.createElement("svg", _extends$8({
9890
9969
  fill: "none",
9891
9970
  height: size,
@@ -10098,10 +10177,10 @@ var Accordion = function Accordion(_ref) {
10098
10177
  }));
10099
10178
  };
10100
10179
 
10101
- var _excluded$7 = ["maxLength"];
10180
+ var _excluded$8 = ["maxLength"];
10102
10181
  var InputWithMaxLength = function InputWithMaxLength(_ref) {
10103
10182
  var maxLength = _ref.maxLength,
10104
- props = _objectWithoutProperties$1(_ref, _excluded$7);
10183
+ props = _objectWithoutProperties$1(_ref, _excluded$8);
10105
10184
  var _useField = useField(props),
10106
10185
  _useField2 = _slicedToArray$3(_useField, 3),
10107
10186
  value = _useField2[0].value,
@@ -10117,10 +10196,10 @@ var InputWithMaxLength = function InputWithMaxLength(_ref) {
10117
10196
  }));
10118
10197
  };
10119
10198
 
10120
- var _excluded$6 = ["maxLength"];
10199
+ var _excluded$7 = ["maxLength"];
10121
10200
  var TextAreaWithMaxLength = function TextAreaWithMaxLength(_ref) {
10122
10201
  var maxLength = _ref.maxLength,
10123
- props = _objectWithoutProperties$1(_ref, _excluded$6);
10202
+ props = _objectWithoutProperties$1(_ref, _excluded$7);
10124
10203
  var _useField = useField(props),
10125
10204
  _useField2 = _slicedToArray$3(_useField, 3),
10126
10205
  value = _useField2[0].value,
@@ -10218,6 +10297,7 @@ var FILE_TYPES = {
10218
10297
  IMAGES: "images",
10219
10298
  AUDIO_VIDEO: "audio/video"
10220
10299
  };
10300
+ var MULTIPLE_CHOICE_FIELD_MIN_OPTIONS = 2;
10221
10301
  var SINGLE_CHOICE_FIELD_MIN_OPTIONS$1 = 2;
10222
10302
  var DROPDOWN_FIELD_MIN_OPTIONS$1 = 2;
10223
10303
  var STAR_RATING_ICONS_MAP = {
@@ -10239,6 +10319,8 @@ var FILE_GROUPS = [{
10239
10319
  label: t$4("neetoForm.fileTypes.audioVideo"),
10240
10320
  name: FILE_TYPES.AUDIO_VIDEO
10241
10321
  }];
10322
+ var STAR_RATING_MIN_COUNT = 0;
10323
+ var STAR_RATING_MAX_COUNT = 10;
10242
10324
 
10243
10325
  var Dropdown$1 = function Dropdown(_ref) {
10244
10326
  var item = _ref.item,
@@ -10540,7 +10622,10 @@ var MultipleChoice$1 = function MultipleChoice(_ref) {
10540
10622
  disabled: isLabelDisabled,
10541
10623
  label: t("neetoForm.questions.common.questionFields.field.question"),
10542
10624
  name: "".concat(name, ".label"),
10543
- rows: 1
10625
+ rows: 1,
10626
+ placeholder: t("neetoForm.questions.common.questionFields.field.labelExample", {
10627
+ what: t("neetoForm.common.hobbies")
10628
+ })
10544
10629
  })), /*#__PURE__*/React__default.createElement("div", {
10545
10630
  className: "w-full"
10546
10631
  }, /*#__PURE__*/React__default.createElement(FieldArray, {
@@ -10559,14 +10644,17 @@ var MultipleChoice$1 = function MultipleChoice(_ref) {
10559
10644
  }, /*#__PURE__*/React__default.createElement(InputWithMaxLength, {
10560
10645
  required: true,
10561
10646
  disabled: freezeOptions,
10562
- name: "".concat(name, ".optionsAttributes.").concat(index, ".label")
10647
+ name: "".concat(name, ".optionsAttributes.").concat(index, ".label"),
10648
+ placeholder: t("neetoForm.questions.common.questionFields.field.numberedOption", {
10649
+ number: index + 1
10650
+ })
10563
10651
  }), !freezeOptions && /*#__PURE__*/React__default.createElement(Button$1, {
10564
- className: classnames({
10565
- invisible: index === 0
10566
- }),
10567
10652
  icon: Delete,
10568
10653
  size: "small",
10569
10654
  style: "text",
10655
+ className: classnames({
10656
+ invisible: index < MULTIPLE_CHOICE_FIELD_MIN_OPTIONS
10657
+ }),
10570
10658
  tooltipProps: {
10571
10659
  position: "top",
10572
10660
  content: t("neetoForm.common.delete")
@@ -10783,7 +10871,10 @@ var SingleChoice$1 = function SingleChoice(_ref) {
10783
10871
  disabled: isLabelDisabled,
10784
10872
  label: t("neetoForm.questions.common.questionFields.field.question"),
10785
10873
  name: "".concat(name, ".label"),
10786
- rows: 1
10874
+ rows: 1,
10875
+ placeholder: t("neetoForm.questions.common.questionFields.field.labelExample", {
10876
+ what: t("neetoForm.common.country")
10877
+ })
10787
10878
  })), /*#__PURE__*/React__default.createElement("div", {
10788
10879
  className: "w-full"
10789
10880
  }, /*#__PURE__*/React__default.createElement(FieldArray, {
@@ -10843,6 +10934,26 @@ var SingleChoice$1 = function SingleChoice(_ref) {
10843
10934
  }));
10844
10935
  };
10845
10936
 
10937
+ var validateStarRatingCount = function validateStarRatingCount(value) {
10938
+ try {
10939
+ var schema = yup.number().integer().transform(function (value) {
10940
+ return isNaN(value) ? null : value;
10941
+ }).min(STAR_RATING_MIN_COUNT, t$4("neetoForm.error.minCount", {
10942
+ field: t$4("neetoForm.common.count"),
10943
+ value: STAR_RATING_MIN_COUNT
10944
+ })).max(STAR_RATING_MAX_COUNT, t$4("neetoForm.error.maxCount", {
10945
+ field: t$4("neetoForm.common.count"),
10946
+ value: STAR_RATING_MAX_COUNT
10947
+ })).nullable().required(t$4("neetoForm.common.fieldReq", {
10948
+ field: t$4("neetoForm.common.count")
10949
+ }));
10950
+ schema.validateSync(value);
10951
+ return undefined;
10952
+ } catch (error) {
10953
+ return error.message;
10954
+ }
10955
+ };
10956
+
10846
10957
  var StarRating$3 = function StarRating(_ref) {
10847
10958
  var name = _ref.name,
10848
10959
  isRequired = _ref.isRequired,
@@ -10852,8 +10963,19 @@ var StarRating$3 = function StarRating(_ref) {
10852
10963
  t = _useTranslation.t;
10853
10964
  var _useField = useField("".concat(name, ".shape")),
10854
10965
  _useField2 = _slicedToArray$3(_useField, 3),
10855
- value = _useField2[0].value,
10856
- setValue = _useField2[2].setValue;
10966
+ shape = _useField2[0].value;
10967
+ _useField2[1];
10968
+ var setShape = _useField2[2].setValue;
10969
+ var _useField3 = useField({
10970
+ name: "".concat(name, ".count"),
10971
+ validate: validateStarRatingCount
10972
+ }),
10973
+ _useField4 = _slicedToArray$3(_useField3, 3),
10974
+ countField = _useField4[0],
10975
+ _useField4$ = _useField4[1],
10976
+ countTouched = _useField4$.touched,
10977
+ countError = _useField4$.error,
10978
+ setCount = _useField4[2].setValue;
10857
10979
  return /*#__PURE__*/React__default.createElement("div", {
10858
10980
  className: "space-y-4"
10859
10981
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -10864,19 +10986,22 @@ var StarRating$3 = function StarRating(_ref) {
10864
10986
  label: t("neetoForm.questions.common.questionFields.field.question"),
10865
10987
  name: "".concat(name, ".label"),
10866
10988
  rows: 1
10867
- })), /*#__PURE__*/React__default.createElement(InputWithMaxLength, {
10989
+ })), /*#__PURE__*/React__default.createElement(InputWithMaxLength, _extends$8({
10990
+ required: true
10991
+ }, countField, {
10992
+ error: countTouched ? countError : "",
10868
10993
  label: t("neetoForm.common.count"),
10869
- max: 15,
10870
- min: 0,
10871
- name: "".concat(name, ".count"),
10872
- type: "number"
10873
- }), /*#__PURE__*/React__default.createElement(Label, null, t("neetoForm.common.icon")), /*#__PURE__*/React__default.createElement("div", {
10994
+ max: STAR_RATING_MAX_COUNT,
10995
+ min: STAR_RATING_MIN_COUNT,
10996
+ type: "number",
10997
+ onChange: withEventTargetValue(setCount)
10998
+ })), /*#__PURE__*/React__default.createElement(Label, null, t("neetoForm.common.icon")), /*#__PURE__*/React__default.createElement("div", {
10874
10999
  className: "flex gap-2"
10875
11000
  }, Object.entries(STAR_RATING_ICONS_MAP).map(function (_ref2) {
10876
11001
  var _ref3 = _slicedToArray$3(_ref2, 2),
10877
11002
  name = _ref3[0],
10878
11003
  Shape = _ref3[1];
10879
- var isActive = name === value;
11004
+ var isActive = name === shape;
10880
11005
  return /*#__PURE__*/React__default.createElement("div", {
10881
11006
  key: name,
10882
11007
  className: classnames("flex h-10 w-10 items-center justify-center gap-2", "neeto-ui-border-gray-800 neeto-ui-rounded-full cursor-pointer border", "transition-all duration-300 ease-in-out", {
@@ -10884,7 +11009,7 @@ var StarRating$3 = function StarRating(_ref) {
10884
11009
  "neeto-ui-text-white neeto-ui-bg-gray-800": isActive
10885
11010
  }),
10886
11011
  onClick: function onClick() {
10887
- return setValue(name);
11012
+ return setShape(name);
10888
11013
  }
10889
11014
  }, /*#__PURE__*/React__default.createElement(Shape, null));
10890
11015
  })), !isRequired && /*#__PURE__*/React__default.createElement("div", {
@@ -10972,22 +11097,28 @@ var Editor = function Editor(_ref) {
10972
11097
  name: fieldName,
10973
11098
  validate: validateContent
10974
11099
  }),
10975
- _useField2 = _slicedToArray$3(_useField, 2),
11100
+ _useField2 = _slicedToArray$3(_useField, 3),
10976
11101
  value = _useField2[0].value,
10977
- error = _useField2[1].error;
11102
+ _useField2$ = _useField2[1],
11103
+ touched = _useField2$.touched,
11104
+ error = _useField2$.error,
11105
+ setTouched = _useField2[2].setTouched;
10978
11106
  return /*#__PURE__*/React__default.createElement("div", {
10979
11107
  className: "w-full cursor-auto"
10980
11108
  }, /*#__PURE__*/React__default.createElement(Editor$1, {
10981
- error: error,
10982
11109
  className: "px-2 pb-2",
10983
11110
  contentClassName: "border-none",
10984
11111
  disabled: isLabelDisabled,
11112
+ error: touched ? error : "",
10985
11113
  errorWrapperClassName: "border-none",
10986
11114
  id: "editor",
10987
11115
  initialValue: value,
10988
11116
  menuClassName: "border-none",
10989
11117
  name: fieldName,
10990
11118
  ref: editorRef,
11119
+ onBlur: function onBlur() {
11120
+ setTouched(true);
11121
+ },
10991
11122
  onChange: function onChange(text) {
10992
11123
  var _editorRef$current$ed;
10993
11124
  setFieldValue((_editorRef$current$ed = editorRef.current.editor) === null || _editorRef$current$ed === void 0 || (_editorRef$current$ed = _editorRef$current$ed.contentComponent) === null || _editorRef$current$ed === void 0 || (_editorRef$current$ed = _editorRef$current$ed.props) === null || _editorRef$current$ed === void 0 ? void 0 : _editorRef$current$ed.name, text);
@@ -11115,9 +11246,9 @@ var QUESTION_KINDS = [{
11115
11246
  defaults: {
11116
11247
  label: "",
11117
11248
  isRequired: false,
11118
- optionsAttributes: [{
11249
+ optionsAttributes: new Array(MULTIPLE_CHOICE_FIELD_MIN_OPTIONS).fill({
11119
11250
  label: ""
11120
- }]
11251
+ })
11121
11252
  }
11122
11253
  }, {
11123
11254
  type: "radio",
@@ -11390,8 +11521,8 @@ var arrayHelpers = {
11390
11521
  moveItem: moveItem
11391
11522
  };
11392
11523
 
11393
- 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; }
11394
- 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$6(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; }
11524
+ 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; }
11525
+ 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$6(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; }
11395
11526
  var generateUniqueFieldCode = function generateUniqueFieldCode(type, questions) {
11396
11527
  var fieldCodes = pluck("fieldCode", filterBy({
11397
11528
  kind: type
@@ -11427,7 +11558,7 @@ var handleFieldDragEnd = function handleFieldDragEnd(_ref2) {
11427
11558
  var nextItems = _toConsumableArray$1(items);
11428
11559
  arrayHelpers.moveItem(nextItems, source.index, destination.index);
11429
11560
  var orderedItems = nextItems.map(function (item, index) {
11430
- return _objectSpread$d(_objectSpread$d({}, item), {}, {
11561
+ return _objectSpread$e(_objectSpread$e({}, item), {}, {
11431
11562
  displayOrder: index
11432
11563
  });
11433
11564
  });
@@ -11441,7 +11572,7 @@ var createFieldData = function createFieldData(_ref3) {
11441
11572
  _ref3$isRequired = _ref3.isRequired,
11442
11573
  isRequired = _ref3$isRequired === void 0 ? undefined : _ref3$isRequired,
11443
11574
  questions = _ref3.questions;
11444
- return _objectSpread$d(_objectSpread$d({}, defaults), {}, {
11575
+ return _objectSpread$e(_objectSpread$e({}, defaults), {}, {
11445
11576
  metadata: metadata,
11446
11577
  isRequired: isRequired,
11447
11578
  kind: type,
@@ -11462,7 +11593,7 @@ var duplicateFieldData = function duplicateFieldData(_ref4) {
11462
11593
  optionsAttributes = item.optionsAttributes;
11463
11594
  var defaultAttributeNames = keys(questionKind.defaults || {});
11464
11595
  var defaultAttributes = pick(defaultAttributeNames, item);
11465
- return _objectSpread$d(_objectSpread$d({}, defaultAttributes), {}, {
11596
+ return _objectSpread$e(_objectSpread$e({}, defaultAttributes), {}, {
11466
11597
  isRequired: isRequired,
11467
11598
  kind: kind,
11468
11599
  label: label,
@@ -11569,9 +11700,9 @@ var List = function List(_ref) {
11569
11700
  })))));
11570
11701
  };
11571
11702
 
11572
- var _excluded$5 = ["questionKinds", "showAddQuestionDivider", "onValueChange", "showActionBlock", "formId", "isDeletable", "isRequiredField", "submitButtonProps", "cancelButtonProps", "isKindAlreadyActive", "getActiveKindDetails", "kindUniqueOn", "isDisabledFieldLabel", "disabledAddButtonTooltipProps", "enableFieldCode"];
11573
- 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; }
11574
- 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$6(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; }
11703
+ var _excluded$6 = ["questionKinds", "showAddQuestionDivider", "onValueChange", "showActionBlock", "formId", "isDeletable", "isRequiredField", "submitButtonProps", "cancelButtonProps", "isKindAlreadyActive", "getActiveKindDetails", "kindUniqueOn", "isDisabledFieldLabel", "disabledAddButtonTooltipProps", "enableFieldCode", "formTitle", "formDescription", "selectedLanguage", "availableLanguages", "onLanguageChange"];
11704
+ 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; }
11705
+ 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$6(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; }
11575
11706
  var Form = function Form(_ref) {
11576
11707
  var _INDEPENDENT_LABELS_M, _questions$deleteQues, _questions$deleteQues2;
11577
11708
  var questionKinds = _ref.questionKinds,
@@ -11589,7 +11720,12 @@ var Form = function Form(_ref) {
11589
11720
  isDisabledFieldLabel = _ref.isDisabledFieldLabel,
11590
11721
  disabledAddButtonTooltipProps = _ref.disabledAddButtonTooltipProps,
11591
11722
  enableFieldCode = _ref.enableFieldCode,
11592
- formDomProps = _objectWithoutProperties$1(_ref, _excluded$5);
11723
+ formTitle = _ref.formTitle,
11724
+ formDescription = _ref.formDescription,
11725
+ selectedLanguage = _ref.selectedLanguage,
11726
+ availableLanguages = _ref.availableLanguages,
11727
+ onLanguageChange = _ref.onLanguageChange,
11728
+ formDomProps = _objectWithoutProperties$1(_ref, _excluded$6);
11593
11729
  var _useTranslation = useTranslation(),
11594
11730
  t = _useTranslation.t;
11595
11731
  var _useState = useState({}),
@@ -11659,7 +11795,7 @@ var Form = function Form(_ref) {
11659
11795
  questions: questions
11660
11796
  }), values.questions);
11661
11797
  setFieldValue("questions", newQuestions.map(function (question, index) {
11662
- return _objectSpread$c(_objectSpread$c({}, question), {}, {
11798
+ return _objectSpread$d(_objectSpread$d({}, question), {}, {
11663
11799
  displayOrder: index + 1
11664
11800
  });
11665
11801
  }));
@@ -11676,6 +11812,10 @@ var Form = function Form(_ref) {
11676
11812
  }
11677
11813
  };
11678
11814
  };
11815
+ var handleLanguageChange = function handleLanguageChange(code) {
11816
+ resetForm();
11817
+ onLanguageChange(code);
11818
+ };
11679
11819
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Alert, {
11680
11820
  isOpen: deleteQuestionIndex !== null,
11681
11821
  submitButtonLabel: t("neetoForm.common.delete"),
@@ -11700,6 +11840,13 @@ var Form = function Form(_ref) {
11700
11840
  className: "flex h-full flex-col"
11701
11841
  }, formDomProps, {
11702
11842
  noValidate: true
11843
+ }), formTitle && /*#__PURE__*/React__default.createElement(Overview, {
11844
+ availableLanguages: availableLanguages,
11845
+ dirty: dirty,
11846
+ selectedLanguage: selectedLanguage,
11847
+ description: formDescription,
11848
+ title: formTitle,
11849
+ onLanguageChange: handleLanguageChange
11703
11850
  }), /*#__PURE__*/React__default.createElement("div", {
11704
11851
  className: "w-full flex-grow overflow-y-auto"
11705
11852
  }, hasActiveQuestions ? /*#__PURE__*/React__default.createElement(FieldArray, {
@@ -11759,10 +11906,10 @@ var Form = function Form(_ref) {
11759
11906
  className: "neeto-ui-border-gray-300 flex-shrink-0 border-t py-4"
11760
11907
  }, /*#__PURE__*/React__default.createElement(ActionBlock, {
11761
11908
  className: "space-x-2",
11762
- cancelButtonProps: _objectSpread$c({
11909
+ cancelButtonProps: _objectSpread$d({
11763
11910
  label: t("neetoForm.common.reset")
11764
11911
  }, cancelButtonProps),
11765
- submitButtonProps: _objectSpread$c({
11912
+ submitButtonProps: _objectSpread$d({
11766
11913
  disabled: isSubmitting || !dirty
11767
11914
  }, submitButtonProps)
11768
11915
  }))));
@@ -11822,8 +11969,8 @@ var formValidationSchema = object().shape({
11822
11969
  })).required()
11823
11970
  });
11824
11971
 
11825
- 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; }
11826
- 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$6(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; }
11972
+ 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; }
11973
+ 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$6(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; }
11827
11974
  var BuildForm = function BuildForm(_ref) {
11828
11975
  var id = _ref.id,
11829
11976
  onUpdate = _ref.onUpdate,
@@ -11856,20 +12003,27 @@ var BuildForm = function BuildForm(_ref) {
11856
12003
  allowAdditionalGuests = _ref$allowAdditionalG === void 0 ? false : _ref$allowAdditionalG,
11857
12004
  disabledAddButtonTooltipProps = _ref.disabledAddButtonTooltipProps,
11858
12005
  _ref$enableFieldCode = _ref.enableFieldCode,
11859
- enableFieldCode = _ref$enableFieldCode === void 0 ? false : _ref$enableFieldCode;
12006
+ enableFieldCode = _ref$enableFieldCode === void 0 ? false : _ref$enableFieldCode,
12007
+ _ref$availableLanguag = _ref.availableLanguages,
12008
+ availableLanguages = _ref$availableLanguag === void 0 ? DEFAULT_AVAILABLE_LANGUAGES : _ref$availableLanguag,
12009
+ formDescription = _ref.formDescription,
12010
+ _ref$formTitle = _ref.formTitle,
12011
+ formTitle = _ref$formTitle === void 0 ? "" : _ref$formTitle,
12012
+ _ref$selectedLanguage = _ref.selectedLanguage,
12013
+ selectedLanguage = _ref$selectedLanguage === void 0 ? "en" : _ref$selectedLanguage,
12014
+ _ref$onLanguageChange = _ref.onLanguageChange,
12015
+ onLanguageChange = _ref$onLanguageChange === void 0 ? noop$4 : _ref$onLanguageChange;
11860
12016
  var queryClient = useQueryClient();
11861
12017
  var _useUpdateQuestions = useUpdateQuestions({
11862
12018
  formId: id,
11863
- onError: function onError(error) {
11864
- return Toastr.error(error);
11865
- },
11866
- onSuccess: function onSuccess() {
11867
- return Toastr.success("", THUMBS_UP);
11868
- }
12019
+ language: selectedLanguage,
12020
+ onError: Toastr.error,
12021
+ onSuccess: showThumbsUpToastr
11869
12022
  }),
11870
12023
  updateQuestions = _useUpdateQuestions.mutateAsync;
11871
12024
  var _useForm = useForm({
11872
12025
  formId: id,
12026
+ language: selectedLanguage,
11873
12027
  onSuccess: function onSuccess(data) {
11874
12028
  return onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(data);
11875
12029
  },
@@ -11899,26 +12053,31 @@ var BuildForm = function BuildForm(_ref) {
11899
12053
  className: "flex h-full w-full items-center justify-center py-6"
11900
12054
  }, /*#__PURE__*/React__default.createElement(PageLoader, null));
11901
12055
  }
11902
- var handleSubmit = function handleSubmit(payload) {
11903
- return updateQuestions({
12056
+ var handleSubmit = function handleSubmit(payload, _ref2) {
12057
+ var resetForm = _ref2.resetForm;
12058
+ updateQuestions({
11904
12059
  id: id,
11905
- values: _objectSpread$b({
11906
- neetoFormQuestion: payload
12060
+ values: _objectSpread$c({
12061
+ neetoFormQuestion: _objectSpread$c(_objectSpread$c({}, payload), {}, {
12062
+ language: selectedLanguage
12063
+ })
11907
12064
  }, buildRequestArgs)
12065
+ }, {
12066
+ onSuccess: resetForm
11908
12067
  });
11909
12068
  };
11910
12069
  var onValueChange = function onValueChange(questions) {
11911
- var _queryClient$getQuery = queryClient.getQueryState([QUERY_KEYS.QUESTIONS, id]),
12070
+ var _queryClient$getQuery = queryClient.getQueryState([QUERY_KEYS.QUESTIONS, id, selectedLanguage]),
11912
12071
  dataUpdateCount = _queryClient$getQuery.dataUpdateCount;
11913
12072
  if (dataUpdateCount > 0) {
11914
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id)], assoc("questions", questions));
12073
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id), selectedLanguage], assoc("questions", questions));
11915
12074
  }
11916
12075
  };
11917
12076
  var isDeletable = isQuestionDeletable !== null && isQuestionDeletable !== void 0 ? isQuestionDeletable : function (question) {
11918
12077
  return !nonRemovableFields.includes(question.kind);
11919
12078
  };
11920
- var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref2) {
11921
- var kind = _ref2.kind;
12079
+ var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref3) {
12080
+ var kind = _ref3.kind;
11922
12081
  return requiredFields.includes(kind);
11923
12082
  };
11924
12083
  var isDisabledFieldLabel = isFieldLabelDisabled !== null && isFieldLabelDisabled !== void 0 ? isFieldLabelDisabled : function () {
@@ -11936,20 +12095,25 @@ var BuildForm = function BuildForm(_ref) {
11936
12095
  },
11937
12096
  validationSchema: formValidationSchema,
11938
12097
  onSubmit: handleSubmit
11939
- }, function (_ref3) {
11940
- var errors = _ref3.errors,
11941
- setFieldError = _ref3.setFieldError;
11942
- return /*#__PURE__*/React__default.createElement(Form, _extends$8({}, _objectSpread$b(_objectSpread$b({}, formDomProps), {}, {
12098
+ }, function (_ref4) {
12099
+ var errors = _ref4.errors,
12100
+ setFieldError = _ref4.setFieldError;
12101
+ return /*#__PURE__*/React__default.createElement(Form, _extends$8({}, _objectSpread$c(_objectSpread$c({}, formDomProps), {}, {
12102
+ availableLanguages: availableLanguages,
11943
12103
  cancelButtonProps: cancelButtonProps,
11944
12104
  disabledAddButtonTooltipProps: disabledAddButtonTooltipProps,
11945
12105
  enableFieldCode: enableFieldCode,
12106
+ formDescription: formDescription,
12107
+ formTitle: formTitle,
11946
12108
  getActiveKindDetails: getActiveKindDetails,
11947
12109
  isDeletable: isDeletable,
11948
12110
  isDisabledFieldLabel: isDisabledFieldLabel,
11949
12111
  isKindAlreadyActive: isKindAlreadyActive,
11950
12112
  isRequiredField: isRequiredField,
11951
12113
  kindUniqueOn: kindUniqueOn,
12114
+ onLanguageChange: onLanguageChange,
11952
12115
  onValueChange: onValueChange,
12116
+ selectedLanguage: selectedLanguage,
11953
12117
  showActionBlock: showActionBlock,
11954
12118
  showAddQuestionDivider: showAddQuestionDivider,
11955
12119
  submitButtonProps: submitButtonProps
@@ -12372,7 +12536,7 @@ var Spinner = function Spinner(_ref) {
12372
12536
  };
12373
12537
  var Spinner$1 = /*#__PURE__*/React__default.memo(Spinner);
12374
12538
 
12375
- var _excluded$4 = ["label", "loading", "success", "className"];
12539
+ var _excluded$5 = ["label", "loading", "success", "className"];
12376
12540
  var Button = function Button(_ref) {
12377
12541
  var label = _ref.label,
12378
12542
  _ref$loading = _ref.loading,
@@ -12381,7 +12545,7 @@ var Button = function Button(_ref) {
12381
12545
  success = _ref$success === void 0 ? false : _ref$success,
12382
12546
  _ref$className = _ref.className,
12383
12547
  className = _ref$className === void 0 ? "" : _ref$className,
12384
- otherProps = _objectWithoutProperties$1(_ref, _excluded$4);
12548
+ otherProps = _objectWithoutProperties$1(_ref, _excluded$5);
12385
12549
  return /*#__PURE__*/React__default.createElement("button", _extends$8({
12386
12550
  className: classnames("neeto-form-engine-button", className)
12387
12551
  }, otherProps), loading && /*#__PURE__*/React__default.createElement(ButtonLoader, null), success && /*#__PURE__*/React__default.createElement(Success$2, null), label);
@@ -14142,9 +14306,9 @@ function _unsupportedIterableToArray$6(o, minLen) { if (!o) return; if (typeof o
14142
14306
 
14143
14307
  function _arrayLikeToArray$6(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14144
14308
 
14145
- function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14309
+ function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14146
14310
 
14147
- function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty$4(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14311
+ function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$b(Object(source), !0).forEach(function (key) { _defineProperty$4(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14148
14312
 
14149
14313
  function _defineProperty$4(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14150
14314
  var DEFAULT_OPTIONS = {
@@ -14171,7 +14335,7 @@ var DEFAULT_OPTIONS = {
14171
14335
  function formatNumber(input, format, options, metadata) {
14172
14336
  // Apply default options.
14173
14337
  if (options) {
14174
- options = _objectSpread$a(_objectSpread$a({}, DEFAULT_OPTIONS), options);
14338
+ options = _objectSpread$b(_objectSpread$b({}, DEFAULT_OPTIONS), options);
14175
14339
  } else {
14176
14340
  options = DEFAULT_OPTIONS;
14177
14341
  }
@@ -14316,9 +14480,9 @@ function formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry,
14316
14480
  }
14317
14481
  }
14318
14482
 
14319
- function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14483
+ function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14320
14484
 
14321
- function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty$3(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14485
+ function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty$3(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14322
14486
 
14323
14487
  function _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14324
14488
 
@@ -14430,7 +14594,7 @@ var PhoneNumber = /*#__PURE__*/function () {
14430
14594
  }, {
14431
14595
  key: "format",
14432
14596
  value: function format(_format, options) {
14433
- return formatNumber(this, _format, options ? _objectSpread$9(_objectSpread$9({}, options), {}, {
14597
+ return formatNumber(this, _format, options ? _objectSpread$a(_objectSpread$a({}, options), {}, {
14434
14598
  v2: true
14435
14599
  }) : {
14436
14600
  v2: true
@@ -15473,20 +15637,20 @@ function parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCo
15473
15637
  };
15474
15638
  }
15475
15639
 
15476
- function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15640
+ function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15477
15641
 
15478
- function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15642
+ function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15479
15643
 
15480
15644
  function _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15481
15645
  function parsePhoneNumberWithError$2(text, options, metadata) {
15482
- return parse$1(text, _objectSpread$8(_objectSpread$8({}, options), {}, {
15646
+ return parse$1(text, _objectSpread$9(_objectSpread$9({}, options), {}, {
15483
15647
  v2: true
15484
15648
  }), metadata);
15485
15649
  }
15486
15650
 
15487
- function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15651
+ function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15488
15652
 
15489
- function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15653
+ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15490
15654
 
15491
15655
  function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15492
15656
 
@@ -15534,7 +15698,7 @@ function normalizeArguments(args) {
15534
15698
  }
15535
15699
 
15536
15700
  if (arg_2) {
15537
- options = _objectSpread$7({
15701
+ options = _objectSpread$8({
15538
15702
  defaultCountry: arg_2
15539
15703
  }, options);
15540
15704
  }
@@ -15593,7 +15757,10 @@ var getInvalidTypeError = function getInvalidTypeError(label, type) {
15593
15757
  });
15594
15758
  };
15595
15759
 
15760
+ var _excluded$4 = ["kind", "label", "isRequired", "customValidator"];
15596
15761
  var _fieldKindValidatorMa;
15762
+ 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; }
15763
+ 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$6(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; }
15597
15764
  yup.addMethod(yup.array, "unique", function () {
15598
15765
  var field, message;
15599
15766
  if (arguments.length > 1) {
@@ -15620,6 +15787,9 @@ yup.addMethod(yup.array, "unique", function () {
15620
15787
  });
15621
15788
  });
15622
15789
  });
15790
+ var isValidDate = function isValidDate(date) {
15791
+ return date && dayjs(date).isValid();
15792
+ };
15623
15793
  var validateTextField = function validateTextField(_ref) {
15624
15794
  var kind = _ref.kind,
15625
15795
  label = _ref.label,
@@ -15673,9 +15843,11 @@ var validateConditionField = function validateConditionField(_ref7) {
15673
15843
  var validateDateField = function validateDateField(_ref8) {
15674
15844
  var label = _ref8.label,
15675
15845
  isRequired = _ref8.isRequired;
15676
- var schema = yup.date().typeError("").nullable();
15846
+ var schema = yup.string().test("is valid date", getInvalidTypeError(label, "date"), function (value) {
15847
+ return isNotPresent(value) || isValidDate(value);
15848
+ });
15677
15849
  if (isRequired) {
15678
- schema = yup.date().typeError(getInvalidTypeError(label, "date")).required(getRequiredFieldError(label));
15850
+ schema = schema.required(getRequiredFieldError(label));
15679
15851
  }
15680
15852
  return schema;
15681
15853
  };
@@ -15701,14 +15873,15 @@ var validateRichTextField = function validateRichTextField(_ref10) {
15701
15873
  return schema.trim();
15702
15874
  };
15703
15875
  var validateFileUploadField = function validateFileUploadField(_ref11) {
15704
- var isRequired = _ref11.isRequired;
15876
+ var isRequired = _ref11.isRequired,
15877
+ multipleFilesAllowed = _ref11.multipleFilesAllowed;
15705
15878
  var files_schema = yup.array();
15706
15879
  if (isRequired) {
15707
15880
  files_schema = files_schema.of(yup.object().shape({
15708
15881
  name: yup.string(),
15709
15882
  signedId: yup.string().required(t$4("neetoForm.fileUpload.validations.waitForUpload")),
15710
15883
  url: yup.string().required(t$4("neetoForm.fileUpload.validations.waitForUpload"))
15711
- })).unique("name", t$4("neetoForm.fileUpload.validations.removeDuplicates")).min(1, t$4("neetoForm.fileUpload.validations.atLeastOneFileRequired"));
15884
+ })).unique("name", t$4("neetoForm.fileUpload.validations.removeDuplicates")).min(1, multipleFilesAllowed ? t$4("neetoForm.fileUpload.validations.atLeastOneFileRequired") : t$4("neetoForm.fileUpload.validations.fileIsRequired"));
15712
15885
  }
15713
15886
  return yup.object().shape({
15714
15887
  files: files_schema
@@ -15719,15 +15892,16 @@ var validateFieldValue = function validateFieldValue(_ref12) {
15719
15892
  var kind = _ref12.kind,
15720
15893
  label = _ref12.label,
15721
15894
  isRequired = _ref12.isRequired,
15722
- customValidator = _ref12.customValidator;
15895
+ customValidator = _ref12.customValidator,
15896
+ otherProps = _objectWithoutProperties$1(_ref12, _excluded$4);
15723
15897
  return function (value) {
15724
15898
  if (!(kind in fieldKindValidatorMap)) return;
15725
15899
  var validator = fieldKindValidatorMap[kind];
15726
- var schema = customValidator || validator({
15900
+ var schema = customValidator || validator(_objectSpread$7({
15727
15901
  kind: kind,
15728
15902
  label: label,
15729
15903
  isRequired: isRequired
15730
- });
15904
+ }, otherProps));
15731
15905
 
15732
15906
  // eslint-disable-next-line consistent-return, no-async-promise-executor
15733
15907
  return new Promise( /*#__PURE__*/function () {
@@ -26206,7 +26380,8 @@ var FileUploadField = function FileUploadField(_ref) {
26206
26380
  kind: kind,
26207
26381
  label: label,
26208
26382
  isRequired: isRequired,
26209
- customValidator: customValidator
26383
+ customValidator: customValidator,
26384
+ multipleFilesAllowed: multipleFilesAllowed
26210
26385
  })
26211
26386
  }),
26212
26387
  _useField2 = _slicedToArray$3(_useField, 2);
@@ -26351,15 +26526,15 @@ var OptionsField = function OptionsField(_ref) {
26351
26526
  var onChange = field.onChange,
26352
26527
  value = field.value;
26353
26528
  return /*#__PURE__*/React__default.createElement(Component, {
26354
- error: getError(meta),
26355
26529
  isRequired: isRequired,
26356
- label: getLabel$1(label, isRequired),
26357
26530
  name: name,
26531
+ error: getError(meta),
26532
+ label: getLabel$1(label, isRequired),
26358
26533
  options: transformedOptions,
26359
26534
  type: kind,
26360
26535
  value: kind === QUESTION_KIND.DROPDOWN.value ? findBy({
26361
26536
  value: value
26362
- }, transformedOptions) : value,
26537
+ }, transformedOptions) || null : value,
26363
26538
  onChange: kind === QUESTION_KIND.DROPDOWN.value ? handleSelect : onChange
26364
26539
  });
26365
26540
  });
@@ -26618,6 +26793,7 @@ var StarRatingField = function StarRatingField(_ref) {
26618
26793
  isRequired = question.isRequired,
26619
26794
  count = question.count,
26620
26795
  shape = question.shape;
26796
+ var sanitizedCount = clamp$2(0, 10, parseInt(count)) || 0;
26621
26797
  return /*#__PURE__*/React__default.createElement(Field, {
26622
26798
  name: name,
26623
26799
  validate: validateFieldValue({
@@ -26630,11 +26806,11 @@ var StarRatingField = function StarRatingField(_ref) {
26630
26806
  var meta = _ref2.meta,
26631
26807
  field = _ref2.field;
26632
26808
  return /*#__PURE__*/React__default.createElement(StarRating$1, _extends$8({
26633
- count: count,
26634
- error: meta.touched ? meta.error : "",
26635
- label: getLabel$1(label, isRequired),
26636
26809
  name: name,
26637
- shape: shape
26810
+ shape: shape,
26811
+ count: sanitizedCount,
26812
+ error: meta.touched ? meta.error : "",
26813
+ label: getLabel$1(label, isRequired)
26638
26814
  }, field));
26639
26815
  });
26640
26816
  };
@@ -26851,7 +27027,9 @@ var ExternalForm = function ExternalForm(_ref) {
26851
27027
  _ref$autoCompleteKind = _ref.autoCompleteKinds,
26852
27028
  autoCompleteKinds = _ref$autoCompleteKind === void 0 ? [] : _ref$autoCompleteKind,
26853
27029
  _ref$enablePreFilling = _ref.enablePreFilling,
26854
- enablePreFilling = _ref$enablePreFilling === void 0 ? false : _ref$enablePreFilling;
27030
+ enablePreFilling = _ref$enablePreFilling === void 0 ? false : _ref$enablePreFilling,
27031
+ _ref$language = _ref.language,
27032
+ language = _ref$language === void 0 ? "en" : _ref$language;
26855
27033
  var _useState = useState(false),
26856
27034
  _useState2 = _slicedToArray$3(_useState, 2),
26857
27035
  isSubmitted = _useState2[0],
@@ -27062,6 +27240,7 @@ var ExternalForm = function ExternalForm(_ref) {
27062
27240
  var _useForm = useForm({
27063
27241
  formId: formId,
27064
27242
  preview: preview,
27243
+ language: language,
27065
27244
  onError: Toastr.error,
27066
27245
  enabled: !preview,
27067
27246
  placeholderData: {
@@ -29833,6 +30012,12 @@ var Submission = function Submission(_ref3) {
29833
30012
  }));
29834
30013
  };
29835
30014
 
30015
+ var getPreFillableQuestions = function getPreFillableQuestions(questions) {
30016
+ var modifiedQuestions = map(assoc("isRequired", false), questions);
30017
+ return modifiedQuestions.filter(function (question) {
30018
+ return !QUESTIONS_WITHOUT_FIELD_CODE.includes(question.kind);
30019
+ });
30020
+ };
29836
30021
  var buildQueryParameters = function buildQueryParameters(responses, questions) {
29837
30022
  var filteredResponses = filter$1(isPresent$1, responses);
29838
30023
  var queryParameters = {};
@@ -29980,7 +30165,7 @@ var UrlBuilder = function UrlBuilder(_ref) {
29980
30165
  }
29981
30166
  var title = form.title,
29982
30167
  questions = form.questions;
29983
- var modifiedQuestions = map(assoc("isRequired", false), questions);
30168
+ var modifiedQuestions = getPreFillableQuestions(questions);
29984
30169
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, showTitle && /*#__PURE__*/React__default.createElement("div", {
29985
30170
  className: "py-6 text-center"
29986
30171
  }, /*#__PURE__*/React__default.createElement(Typography, _extends$8({