@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.cjs.js CHANGED
@@ -5,22 +5,22 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React$2 = require('react');
6
6
  var formik = require('formik');
7
7
  var neetoCist = require('@bigbinary/neeto-cist');
8
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
8
9
  var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
9
10
  var neetoui = require('@bigbinary/neetoui');
10
11
  var ramda = require('ramda');
11
12
  var reactQuery = require('react-query');
12
13
  var i18next = require('i18next');
13
14
  var neetoIcons = require('@bigbinary/neeto-icons');
15
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
14
16
  var axios = require('axios');
15
17
  var ReactDOM = require('react-dom');
16
18
  var formik$1 = require('@bigbinary/neetoui/formik');
17
19
  var reactI18next = require('react-i18next');
18
- var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
19
20
  var zustand = require('zustand');
20
21
  var classnames = require('classnames');
21
- var neetoEditor = require('@bigbinary/neeto-editor');
22
22
  var yup = require('yup');
23
- var utils = require('@bigbinary/neeto-commons-frontend/utils');
23
+ var neetoEditor = require('@bigbinary/neeto-editor');
24
24
  var useHotkeys = require('@bigbinary/neeto-hotkeys');
25
25
  var dayjs = require('dayjs');
26
26
  var PhoneNumber$1 = require('@bigbinary/neeto-molecules/PhoneNumber');
@@ -163,7 +163,7 @@ function _objectWithoutProperties$1(source, excluded) {
163
163
  return target;
164
164
  }
165
165
 
166
- var _excluded$c = ["size"],
166
+ var _excluded$d = ["size"],
167
167
  _excluded2$1 = ["size"],
168
168
  _excluded3$2 = ["size"],
169
169
  _excluded4$1 = ["size"],
@@ -171,7 +171,7 @@ var _excluded$c = ["size"],
171
171
  var Star = function Star(props) {
172
172
  var _props$size = props.size,
173
173
  size = _props$size === void 0 ? 20 : _props$size,
174
- other = _objectWithoutProperties$1(props, _excluded$c);
174
+ other = _objectWithoutProperties$1(props, _excluded$d);
175
175
  return /*#__PURE__*/React__default["default"].createElement("svg", _extends$8({
176
176
  fill: "none",
177
177
  height: size,
@@ -548,11 +548,19 @@ var updateForm = function updateForm(formId, payload) {
548
548
  var destroyForm = function destroyForm(formId) {
549
549
  return axios__default["default"]["delete"](getFormsUrl(formId));
550
550
  };
551
- var getQuestions = function getQuestions(formId) {
552
- return axios__default["default"].get(getQuestionsUrl(formId));
551
+ var getQuestions = function getQuestions(formId, language) {
552
+ return axios__default["default"].get(getQuestionsUrl(formId), {
553
+ params: {
554
+ language: language
555
+ }
556
+ });
553
557
  };
554
- var getPublicQuestions = function getPublicQuestions(formId) {
555
- return axios__default["default"].get("".concat(BASE_URL, "/api/v1/forms/").concat(formId, "/public/questions/"));
558
+ var getPublicQuestions = function getPublicQuestions(formId, language) {
559
+ return axios__default["default"].get("".concat(BASE_URL, "/api/v1/forms/").concat(formId, "/public/questions/"), {
560
+ params: {
561
+ language: language
562
+ }
563
+ });
556
564
  };
557
565
  var updateQuestions = function updateQuestions(formId, payload) {
558
566
  return axios__default["default"].patch(getQuestionsUrl(formId), payload);
@@ -591,133 +599,126 @@ var neetoFormApi = {
591
599
  updatePublicSubmission: updatePublicSubmission
592
600
  };
593
601
 
594
- var _excluded$b = ["formId", "preview"],
602
+ var _excluded$c = ["formId", "preview", "language"],
595
603
  _excluded3$1 = ["formId", "submissionId"];
596
- 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; }
597
- 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; }
604
+ 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; }
605
+ 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; }
598
606
  var useForm = function useForm(_ref) {
599
607
  var formId = _ref.formId,
600
- preview = _ref.preview,
601
- options = _objectWithoutProperties$1(_ref, _excluded$b);
602
- return reactQuery.useQuery([QUERY_KEYS.QUESTIONS, preview ? "preview/".concat(formId) : formId], function () {
603
- return neetoFormApi.getPublicQuestions(formId);
604
- }, _objectSpread$f({
608
+ _ref$preview = _ref.preview,
609
+ preview = _ref$preview === void 0 ? null : _ref$preview,
610
+ _ref$language = _ref.language,
611
+ language = _ref$language === void 0 ? "en" : _ref$language,
612
+ options = _objectWithoutProperties$1(_ref, _excluded$c);
613
+ return reactQuery.useQuery([QUERY_KEYS.QUESTIONS, preview ? "preview/".concat(formId) : formId, language], function () {
614
+ return neetoFormApi.getPublicQuestions(formId, language);
615
+ }, _objectSpread$g({
605
616
  keepPreviousData: true
606
617
  }, options));
607
618
  };
608
619
  var useCreateForm = function useCreateForm(options) {
620
+ var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "en";
609
621
  var queryClient = reactQuery.useQueryClient();
610
- return reactQuery.useMutation(neetoFormApi.createForm, _objectSpread$f(_objectSpread$f({}, options), {}, {
622
+ return reactQuery.useMutation(neetoFormApi.createForm, _objectSpread$g(_objectSpread$g({}, options), {}, {
611
623
  onSuccess: function onSuccess(form) {
612
624
  var _options$onSuccess;
613
625
  queryClient.setQueryData(QUERY_KEYS.QUESTIONS, function (forms) {
614
626
  return forms && [].concat(_toConsumableArray$1(forms), [form]);
615
627
  });
616
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, form.id], form);
617
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(form.id)], form);
628
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, form.id, language], form);
629
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(form.id), language], form);
618
630
  queryClient.invalidateQueries([QUERY_KEYS.FORMS]);
619
631
  options === null || options === void 0 || (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 || _options$onSuccess.call(options, form);
620
632
  }
621
633
  }));
622
634
  };
623
635
  var useUpdateForm = function useUpdateForm(options) {
636
+ var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "en";
624
637
  var queryClient = reactQuery.useQueryClient();
625
638
  return reactQuery.useMutation(function (_ref2) {
626
639
  var id = _ref2.id,
627
640
  values = _ref2.values;
628
641
  return neetoFormApi.updateForm(id, values);
629
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
642
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
630
643
  onSuccess: function onSuccess(data, _ref3) {
631
644
  var id = _ref3.id;
632
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, id], function (form) {
633
- return _objectSpread$f(_objectSpread$f({}, form), {}, {
645
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, id, language], function (form) {
646
+ return _objectSpread$g(_objectSpread$g({}, form), {}, {
634
647
  title: data.title
635
648
  });
636
649
  });
637
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id)], function (form) {
638
- return _objectSpread$f(_objectSpread$f({}, form), {}, {
650
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id), language], function (form) {
651
+ return _objectSpread$g(_objectSpread$g({}, form), {}, {
639
652
  title: data.title,
640
653
  questions: data.questions
641
654
  });
642
655
  });
643
656
  queryClient.invalidateQueries([QUERY_KEYS.FORMS]);
644
- queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, id]);
645
- queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, "preview/".concat(id)]);
657
+ queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, id, language]);
658
+ queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, "preview/".concat(id), language]);
646
659
  options.onSuccess && options.onSuccess(data);
647
660
  }
648
661
  }));
649
662
  };
650
- var useUpdateQuestions = function useUpdateQuestions(options) {
663
+ var useUpdateQuestions = function useUpdateQuestions(options, language) {
651
664
  var queryClient = reactQuery.useQueryClient();
652
665
  return reactQuery.useMutation(function (_ref4) {
653
666
  var id = _ref4.id,
654
667
  values = _ref4.values;
655
668
  return neetoFormApi.updateQuestions(id, values);
656
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
669
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
657
670
  onSuccess: function onSuccess() {
658
671
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
659
672
  args[_key] = arguments[_key];
660
673
  }
661
674
  var data = args[0],
662
675
  id = args[1].id;
663
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, id], function (form) {
664
- return _objectSpread$f(_objectSpread$f({}, form), {}, {
665
- questions: data.questions
666
- });
667
- });
668
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id)], function (form) {
669
- return _objectSpread$f(_objectSpread$f({}, form), {}, {
670
- questions: data.questions
671
- });
672
- });
676
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, id, language], ramda.assoc("questions", data.questions));
677
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id), language], ramda.assoc("questions", data.questions));
673
678
  options.onSuccess && options.onSuccess.apply(options, args);
674
679
  }
675
680
  }));
676
681
  };
677
682
  var useForms = function useForms(options) {
678
- return reactQuery.useQuery([QUERY_KEYS.FORMS], neetoFormApi.getForms, _objectSpread$f({
683
+ return reactQuery.useQuery([QUERY_KEYS.FORMS], neetoFormApi.getForms, _objectSpread$g({
679
684
  keepPreviousData: true
680
685
  }, options));
681
686
  };
682
687
  var useDeleteForm = function useDeleteForm(options) {
683
- var queryClient = reactQuery.useQueryClient();
684
- return reactQuery.useMutation(function (_ref5) {
688
+ return reactUtils.useMutationWithInvalidation(function (_ref5) {
685
689
  var id = _ref5.id;
686
690
  return neetoFormApi.destroyForm(id);
687
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
691
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
692
+ keysToInvalidate: function keysToInvalidate(_, _ref6) {
693
+ var id = _ref6.id;
694
+ return [QUERY_KEYS.FORMS, [QUERY_KEYS.QUESTIONS, id], [QUERY_KEYS.QUESTIONS, "preview/".concat(id)]];
695
+ },
688
696
  onSuccess: function onSuccess() {
689
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
690
- args[_key2] = arguments[_key2];
691
- }
692
- var id = args[1].id;
693
- queryClient.invalidateQueries([QUERY_KEYS.FORMS]);
694
- queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, id]);
695
- queryClient.invalidateQueries([QUERY_KEYS.QUESTIONS, "preview/".concat(id)]);
696
- options.onSuccess && options.onSuccess.apply(options, args);
697
+ options.onSuccess && options.onSuccess.apply(options, arguments);
697
698
  }
698
699
  }));
699
700
  };
700
- var useSubmission = function useSubmission(_ref7) {
701
- var formId = _ref7.formId,
702
- submissionId = _ref7.submissionId,
703
- options = _objectWithoutProperties$1(_ref7, _excluded3$1);
701
+ var useSubmission = function useSubmission(_ref8) {
702
+ var formId = _ref8.formId,
703
+ submissionId = _ref8.submissionId,
704
+ options = _objectWithoutProperties$1(_ref8, _excluded3$1);
704
705
  return reactQuery.useQuery([QUERY_KEYS.SUBMISSION, formId, submissionId], function () {
705
706
  return neetoFormApi.getPublicSubmission(formId, submissionId);
706
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
707
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
707
708
  keepPreviousData: true
708
709
  }));
709
710
  };
710
711
  var useCreateSubmission = function useCreateSubmission(options) {
711
712
  var queryClient = reactQuery.useQueryClient();
712
- return reactQuery.useMutation(function (_ref8) {
713
- var formId = _ref8.formId,
714
- values = _ref8.values;
713
+ return reactQuery.useMutation(function (_ref9) {
714
+ var formId = _ref9.formId,
715
+ values = _ref9.values;
715
716
  return neetoFormApi.submitPublicForm(formId, values);
716
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
717
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
717
718
  onSuccess: function onSuccess() {
718
719
  var _data$submission, _data$submission2;
719
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
720
- args[_key3] = arguments[_key3];
720
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
721
+ args[_key2] = arguments[_key2];
721
722
  }
722
723
  var data = args[0],
723
724
  formId = args[1].formId;
@@ -730,15 +731,15 @@ var useCreateSubmission = function useCreateSubmission(options) {
730
731
  };
731
732
  var useUpdateSubmission = function useUpdateSubmission(options) {
732
733
  var queryClient = reactQuery.useQueryClient();
733
- return reactQuery.useMutation(function (_ref9) {
734
- var formId = _ref9.formId,
735
- values = _ref9.values;
734
+ return reactQuery.useMutation(function (_ref10) {
735
+ var formId = _ref10.formId,
736
+ values = _ref10.values;
736
737
  return neetoFormApi.updatePublicSubmission(formId, values);
737
- }, _objectSpread$f(_objectSpread$f({}, options), {}, {
738
+ }, _objectSpread$g(_objectSpread$g({}, options), {}, {
738
739
  onSuccess: function onSuccess() {
739
740
  var _data$submission3;
740
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
741
- args[_key4] = arguments[_key4];
741
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
742
+ args[_key3] = arguments[_key3];
742
743
  }
743
744
  var data = args[0],
744
745
  formId = args[1].formId;
@@ -840,12 +841,12 @@ var useUpdateSubmission = function useUpdateSubmission(options) {
840
841
  nodeId: "37683bae-da1b-4890-ade9-0664006dc57d"
841
842
  }]
842
843
  });
843
- var THUMBS_UP = {
844
- icon: "👍",
845
- className: "w-20"
846
- };
847
844
  var QUESTIONS_WITHOUT_FIELD_CODE = ["paragraph", "termsandcondition", "condition", "file_upload"];
848
845
  var RESERVED_FIELD_CODES = ["month", "date", "time"];
846
+ var DEFAULT_AVAILABLE_LANGUAGES = [{
847
+ code: "en",
848
+ name: "English"
849
+ }];
849
850
 
850
851
  function _arrayWithHoles$3(arr) {
851
852
  if (Array.isArray(arr)) return arr;
@@ -928,7 +929,7 @@ function _defineProperty$5(obj, key, value) {
928
929
  return obj;
929
930
  }
930
931
 
931
- function ownKeys$f(e, r) {
932
+ function ownKeys$g(e, r) {
932
933
  var t = Object.keys(e);
933
934
  if (Object.getOwnPropertySymbols) {
934
935
  var o = Object.getOwnPropertySymbols(e);
@@ -941,9 +942,9 @@ function ownKeys$f(e, r) {
941
942
  function _objectSpread2(e) {
942
943
  for (var r = 1; r < arguments.length; r++) {
943
944
  var t = null != arguments[r] ? arguments[r] : {};
944
- r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) {
945
+ r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) {
945
946
  _defineProperty$5(e, r, t[r]);
946
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) {
947
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) {
947
948
  Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
948
949
  });
949
950
  }
@@ -1663,7 +1664,7 @@ reactIs_production_min.isValidElementType=function(a){return "string"===typeof a
1663
1664
 
1664
1665
  var reactIsExports = reactIs.exports;
1665
1666
 
1666
- const _excluded$a = ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"];
1667
+ const _excluded$b = ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"];
1667
1668
  function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {
1668
1669
  areStatesEqual,
1669
1670
  areOwnPropsEqual,
@@ -1733,7 +1734,7 @@ function finalPropsSelectorFactory(dispatch, _ref) {
1733
1734
  initMapDispatchToProps,
1734
1735
  initMergeProps
1735
1736
  } = _ref,
1736
- options = _objectWithoutPropertiesLoose$1(_ref, _excluded$a);
1737
+ options = _objectWithoutPropertiesLoose$1(_ref, _excluded$b);
1737
1738
 
1738
1739
  const mapStateToProps = initMapStateToProps(dispatch, options);
1739
1740
  const mapDispatchToProps = initMapDispatchToProps(dispatch, options);
@@ -2070,7 +2071,7 @@ function shallowEqual(objA, objB) {
2070
2071
  return true;
2071
2072
  }
2072
2073
 
2073
- const _excluded$9 = ["reactReduxForwardedRef"];
2074
+ const _excluded$a = ["reactReduxForwardedRef"];
2074
2075
  let useSyncExternalStore = notInitialized;
2075
2076
  const initializeConnect = fn => {
2076
2077
  useSyncExternalStore = fn;
@@ -2248,7 +2249,7 @@ function connect(mapStateToProps, mapDispatchToProps, mergeProps, {
2248
2249
  const {
2249
2250
  reactReduxForwardedRef
2250
2251
  } = props,
2251
- wrapperProps = _objectWithoutPropertiesLoose$1(props, _excluded$9);
2252
+ wrapperProps = _objectWithoutPropertiesLoose$1(props, _excluded$a);
2252
2253
 
2253
2254
  return [props.context, reactReduxForwardedRef, wrapperProps];
2254
2255
  }, [props]);
@@ -9814,8 +9815,8 @@ const ConnectedDroppable = connect(makeMapStateToProps, mapDispatchToProps, (sta
9814
9815
  })(Droppable$1);
9815
9816
  var ConnectedDroppable$1 = ConnectedDroppable;
9816
9817
 
9817
- 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; }
9818
- 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; }
9818
+ 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; }
9819
+ 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; }
9819
9820
  var defaultConfig = {
9820
9821
  strict: true,
9821
9822
  matchKey: "value"
@@ -9823,7 +9824,7 @@ var defaultConfig = {
9823
9824
  var findOptionByValue = function findOptionByValue(value) {
9824
9825
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
9825
9826
  var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
9826
- var configObject = _objectSpread$e(_objectSpread$e({}, defaultConfig), config);
9827
+ var configObject = _objectSpread$f(_objectSpread$f({}, defaultConfig), config);
9827
9828
  var matchKey = configObject.matchKey,
9828
9829
  strict = configObject.strict;
9829
9830
  return options.find(function (option) {
@@ -9837,7 +9838,7 @@ var filterOptionsByValues = function filterOptionsByValues() {
9837
9838
  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
9838
9839
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
9839
9840
  var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
9840
- var configObject = _objectSpread$e(_objectSpread$e({}, defaultConfig), config);
9841
+ var configObject = _objectSpread$f(_objectSpread$f({}, defaultConfig), config);
9841
9842
  var matchKey = configObject.matchKey,
9842
9843
  strict = configObject.strict;
9843
9844
  return options.filter(function (option) {
@@ -9855,7 +9856,7 @@ var destroyFromList = function destroyFromList(items, index) {
9855
9856
  var nextItems = _toConsumableArray$1(items);
9856
9857
  nextItems.splice(index, 1);
9857
9858
  if (itemToRemove.id) {
9858
- nextItems.push(_objectSpread$e(_objectSpread$e({}, itemToRemove), {}, {
9859
+ nextItems.push(_objectSpread$f(_objectSpread$f({}, itemToRemove), {}, {
9859
9860
  _destroy: true
9860
9861
  }));
9861
9862
  }
@@ -9902,6 +9903,84 @@ var useBuildFormState = function useBuildFormState() {
9902
9903
  return useBuildFormStore(ramda.prop("formState"));
9903
9904
  };
9904
9905
 
9906
+ var ChangeLanguageDropdown = function ChangeLanguageDropdown(_ref) {
9907
+ var dirty = _ref.dirty,
9908
+ initialLanguage = _ref.initialLanguage,
9909
+ languages = _ref.languages,
9910
+ onChange = _ref.onChange;
9911
+ var _useState = React$2.useState(false),
9912
+ _useState2 = _slicedToArray$3(_useState, 2),
9913
+ isUnsavedChangesAlertOpen = _useState2[0],
9914
+ setIsUnsavedChangesAlertOpen = _useState2[1];
9915
+ var _useState3 = React$2.useState(initialLanguage),
9916
+ _useState4 = _slicedToArray$3(_useState3, 2),
9917
+ selectedLanguage = _useState4[0],
9918
+ setSelectedLanguage = _useState4[1];
9919
+ var _useTranslation = reactI18next.useTranslation(),
9920
+ t = _useTranslation.t;
9921
+ var languageChangeHandler = function languageChangeHandler(code) {
9922
+ if (!dirty) {
9923
+ onChange(code);
9924
+ return;
9925
+ }
9926
+ setSelectedLanguage(code);
9927
+ setIsUnsavedChangesAlertOpen(true);
9928
+ };
9929
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
9930
+ content: t("neetoForm.questions.changeLanguage")
9931
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
9932
+ buttonStyle: "text",
9933
+ icon: neetoIcons.Globe,
9934
+ position: "top-start"
9935
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown.Menu, null, languages.map(function (_ref2) {
9936
+ var code = _ref2.code,
9937
+ name = _ref2.name;
9938
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown.MenuItem.Button, {
9939
+ isActive: initialLanguage === code,
9940
+ key: code,
9941
+ onClick: function onClick() {
9942
+ return languageChangeHandler(code);
9943
+ }
9944
+ }, name);
9945
+ }))))), /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
9946
+ isOpen: isUnsavedChangesAlertOpen,
9947
+ message: t("neetoForm.questions.unsavedChangesAlert.message"),
9948
+ submitButtonLabel: t("neetoForm.questions.unsavedChangesAlert.discard"),
9949
+ title: t("neetoForm.questions.unsavedChangesAlert.title"),
9950
+ onClose: function onClose() {
9951
+ return setIsUnsavedChangesAlertOpen(false);
9952
+ },
9953
+ onSubmit: function onSubmit() {
9954
+ onChange(selectedLanguage);
9955
+ setIsUnsavedChangesAlertOpen(false);
9956
+ }
9957
+ }));
9958
+ };
9959
+
9960
+ var Overview = function Overview(_ref) {
9961
+ var title = _ref.title,
9962
+ description = _ref.description,
9963
+ availableLanguages = _ref.availableLanguages,
9964
+ selectedLanguage = _ref.selectedLanguage,
9965
+ dirty = _ref.dirty,
9966
+ onLanguageChange = _ref.onLanguageChange;
9967
+ return /*#__PURE__*/React__default["default"].createElement("div", {
9968
+ className: "mb-4 flex-shrink-0"
9969
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
9970
+ className: "flex items-center justify-between"
9971
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9972
+ "data-cy": "neeto-form-engine-overview-title",
9973
+ lineHeight: "normal",
9974
+ style: "h4",
9975
+ weight: "semibold"
9976
+ }, title), availableLanguages.length > 1 && /*#__PURE__*/React__default["default"].createElement(ChangeLanguageDropdown, {
9977
+ dirty: dirty,
9978
+ initialLanguage: selectedLanguage,
9979
+ languages: availableLanguages,
9980
+ onChange: onLanguageChange
9981
+ })), description);
9982
+ };
9983
+
9905
9984
  var ListItem = function ListItem(_ref) {
9906
9985
  var _ref$icon = _ref.icon,
9907
9986
  Icon = _ref$icon === void 0 ? null : _ref$icon,
@@ -9916,14 +9995,14 @@ var ListItem = function ListItem(_ref) {
9916
9995
  }, label));
9917
9996
  };
9918
9997
 
9919
- var _excluded$8 = ["size", "color"],
9998
+ var _excluded$9 = ["size", "color"],
9920
9999
  _excluded2 = ["size", "color"],
9921
10000
  _excluded3 = ["size", "color"],
9922
10001
  _excluded4 = ["size", "color"];
9923
10002
  var BadSmiley = function BadSmiley(props) {
9924
10003
  var size = props.size,
9925
10004
  color = props.color,
9926
- other = _objectWithoutProperties$1(props, _excluded$8);
10005
+ other = _objectWithoutProperties$1(props, _excluded$9);
9927
10006
  return /*#__PURE__*/React__default["default"].createElement("svg", _extends$8({
9928
10007
  fill: "none",
9929
10008
  height: size,
@@ -10136,10 +10215,10 @@ var Accordion = function Accordion(_ref) {
10136
10215
  }));
10137
10216
  };
10138
10217
 
10139
- var _excluded$7 = ["maxLength"];
10218
+ var _excluded$8 = ["maxLength"];
10140
10219
  var InputWithMaxLength = function InputWithMaxLength(_ref) {
10141
10220
  var maxLength = _ref.maxLength,
10142
- props = _objectWithoutProperties$1(_ref, _excluded$7);
10221
+ props = _objectWithoutProperties$1(_ref, _excluded$8);
10143
10222
  var _useField = formik.useField(props),
10144
10223
  _useField2 = _slicedToArray$3(_useField, 3),
10145
10224
  value = _useField2[0].value,
@@ -10155,10 +10234,10 @@ var InputWithMaxLength = function InputWithMaxLength(_ref) {
10155
10234
  }));
10156
10235
  };
10157
10236
 
10158
- var _excluded$6 = ["maxLength"];
10237
+ var _excluded$7 = ["maxLength"];
10159
10238
  var TextAreaWithMaxLength = function TextAreaWithMaxLength(_ref) {
10160
10239
  var maxLength = _ref.maxLength,
10161
- props = _objectWithoutProperties$1(_ref, _excluded$6);
10240
+ props = _objectWithoutProperties$1(_ref, _excluded$7);
10162
10241
  var _useField = formik.useField(props),
10163
10242
  _useField2 = _slicedToArray$3(_useField, 3),
10164
10243
  value = _useField2[0].value,
@@ -10256,6 +10335,7 @@ var FILE_TYPES = {
10256
10335
  IMAGES: "images",
10257
10336
  AUDIO_VIDEO: "audio/video"
10258
10337
  };
10338
+ var MULTIPLE_CHOICE_FIELD_MIN_OPTIONS = 2;
10259
10339
  var SINGLE_CHOICE_FIELD_MIN_OPTIONS$1 = 2;
10260
10340
  var DROPDOWN_FIELD_MIN_OPTIONS$1 = 2;
10261
10341
  var STAR_RATING_ICONS_MAP = {
@@ -10277,6 +10357,8 @@ var FILE_GROUPS = [{
10277
10357
  label: i18next.t("neetoForm.fileTypes.audioVideo"),
10278
10358
  name: FILE_TYPES.AUDIO_VIDEO
10279
10359
  }];
10360
+ var STAR_RATING_MIN_COUNT = 0;
10361
+ var STAR_RATING_MAX_COUNT = 10;
10280
10362
 
10281
10363
  var Dropdown$1 = function Dropdown(_ref) {
10282
10364
  var item = _ref.item,
@@ -10578,7 +10660,10 @@ var MultipleChoice$1 = function MultipleChoice(_ref) {
10578
10660
  disabled: isLabelDisabled,
10579
10661
  label: t("neetoForm.questions.common.questionFields.field.question"),
10580
10662
  name: "".concat(name, ".label"),
10581
- rows: 1
10663
+ rows: 1,
10664
+ placeholder: t("neetoForm.questions.common.questionFields.field.labelExample", {
10665
+ what: t("neetoForm.common.hobbies")
10666
+ })
10582
10667
  })), /*#__PURE__*/React__default["default"].createElement("div", {
10583
10668
  className: "w-full"
10584
10669
  }, /*#__PURE__*/React__default["default"].createElement(formik.FieldArray, {
@@ -10597,14 +10682,17 @@ var MultipleChoice$1 = function MultipleChoice(_ref) {
10597
10682
  }, /*#__PURE__*/React__default["default"].createElement(InputWithMaxLength, {
10598
10683
  required: true,
10599
10684
  disabled: freezeOptions,
10600
- name: "".concat(name, ".optionsAttributes.").concat(index, ".label")
10685
+ name: "".concat(name, ".optionsAttributes.").concat(index, ".label"),
10686
+ placeholder: t("neetoForm.questions.common.questionFields.field.numberedOption", {
10687
+ number: index + 1
10688
+ })
10601
10689
  }), !freezeOptions && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
10602
- className: classnames__default["default"]({
10603
- invisible: index === 0
10604
- }),
10605
10690
  icon: neetoIcons.Delete,
10606
10691
  size: "small",
10607
10692
  style: "text",
10693
+ className: classnames__default["default"]({
10694
+ invisible: index < MULTIPLE_CHOICE_FIELD_MIN_OPTIONS
10695
+ }),
10608
10696
  tooltipProps: {
10609
10697
  position: "top",
10610
10698
  content: t("neetoForm.common.delete")
@@ -10821,7 +10909,10 @@ var SingleChoice$1 = function SingleChoice(_ref) {
10821
10909
  disabled: isLabelDisabled,
10822
10910
  label: t("neetoForm.questions.common.questionFields.field.question"),
10823
10911
  name: "".concat(name, ".label"),
10824
- rows: 1
10912
+ rows: 1,
10913
+ placeholder: t("neetoForm.questions.common.questionFields.field.labelExample", {
10914
+ what: t("neetoForm.common.country")
10915
+ })
10825
10916
  })), /*#__PURE__*/React__default["default"].createElement("div", {
10826
10917
  className: "w-full"
10827
10918
  }, /*#__PURE__*/React__default["default"].createElement(formik.FieldArray, {
@@ -10881,6 +10972,26 @@ var SingleChoice$1 = function SingleChoice(_ref) {
10881
10972
  }));
10882
10973
  };
10883
10974
 
10975
+ var validateStarRatingCount = function validateStarRatingCount(value) {
10976
+ try {
10977
+ var schema = yup__namespace.number().integer().transform(function (value) {
10978
+ return isNaN(value) ? null : value;
10979
+ }).min(STAR_RATING_MIN_COUNT, i18next.t("neetoForm.error.minCount", {
10980
+ field: i18next.t("neetoForm.common.count"),
10981
+ value: STAR_RATING_MIN_COUNT
10982
+ })).max(STAR_RATING_MAX_COUNT, i18next.t("neetoForm.error.maxCount", {
10983
+ field: i18next.t("neetoForm.common.count"),
10984
+ value: STAR_RATING_MAX_COUNT
10985
+ })).nullable().required(i18next.t("neetoForm.common.fieldReq", {
10986
+ field: i18next.t("neetoForm.common.count")
10987
+ }));
10988
+ schema.validateSync(value);
10989
+ return undefined;
10990
+ } catch (error) {
10991
+ return error.message;
10992
+ }
10993
+ };
10994
+
10884
10995
  var StarRating$3 = function StarRating(_ref) {
10885
10996
  var name = _ref.name,
10886
10997
  isRequired = _ref.isRequired,
@@ -10890,8 +11001,19 @@ var StarRating$3 = function StarRating(_ref) {
10890
11001
  t = _useTranslation.t;
10891
11002
  var _useField = formik.useField("".concat(name, ".shape")),
10892
11003
  _useField2 = _slicedToArray$3(_useField, 3),
10893
- value = _useField2[0].value,
10894
- setValue = _useField2[2].setValue;
11004
+ shape = _useField2[0].value;
11005
+ _useField2[1];
11006
+ var setShape = _useField2[2].setValue;
11007
+ var _useField3 = formik.useField({
11008
+ name: "".concat(name, ".count"),
11009
+ validate: validateStarRatingCount
11010
+ }),
11011
+ _useField4 = _slicedToArray$3(_useField3, 3),
11012
+ countField = _useField4[0],
11013
+ _useField4$ = _useField4[1],
11014
+ countTouched = _useField4$.touched,
11015
+ countError = _useField4$.error,
11016
+ setCount = _useField4[2].setValue;
10895
11017
  return /*#__PURE__*/React__default["default"].createElement("div", {
10896
11018
  className: "space-y-4"
10897
11019
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -10902,19 +11024,22 @@ var StarRating$3 = function StarRating(_ref) {
10902
11024
  label: t("neetoForm.questions.common.questionFields.field.question"),
10903
11025
  name: "".concat(name, ".label"),
10904
11026
  rows: 1
10905
- })), /*#__PURE__*/React__default["default"].createElement(InputWithMaxLength, {
11027
+ })), /*#__PURE__*/React__default["default"].createElement(InputWithMaxLength, _extends$8({
11028
+ required: true
11029
+ }, countField, {
11030
+ error: countTouched ? countError : "",
10906
11031
  label: t("neetoForm.common.count"),
10907
- max: 15,
10908
- min: 0,
10909
- name: "".concat(name, ".count"),
10910
- type: "number"
10911
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Label, null, t("neetoForm.common.icon")), /*#__PURE__*/React__default["default"].createElement("div", {
11032
+ max: STAR_RATING_MAX_COUNT,
11033
+ min: STAR_RATING_MIN_COUNT,
11034
+ type: "number",
11035
+ onChange: utils.withEventTargetValue(setCount)
11036
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.Label, null, t("neetoForm.common.icon")), /*#__PURE__*/React__default["default"].createElement("div", {
10912
11037
  className: "flex gap-2"
10913
11038
  }, Object.entries(STAR_RATING_ICONS_MAP).map(function (_ref2) {
10914
11039
  var _ref3 = _slicedToArray$3(_ref2, 2),
10915
11040
  name = _ref3[0],
10916
11041
  Shape = _ref3[1];
10917
- var isActive = name === value;
11042
+ var isActive = name === shape;
10918
11043
  return /*#__PURE__*/React__default["default"].createElement("div", {
10919
11044
  key: name,
10920
11045
  className: classnames__default["default"]("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", {
@@ -10922,7 +11047,7 @@ var StarRating$3 = function StarRating(_ref) {
10922
11047
  "neeto-ui-text-white neeto-ui-bg-gray-800": isActive
10923
11048
  }),
10924
11049
  onClick: function onClick() {
10925
- return setValue(name);
11050
+ return setShape(name);
10926
11051
  }
10927
11052
  }, /*#__PURE__*/React__default["default"].createElement(Shape, null));
10928
11053
  })), !isRequired && /*#__PURE__*/React__default["default"].createElement("div", {
@@ -11010,22 +11135,28 @@ var Editor = function Editor(_ref) {
11010
11135
  name: fieldName,
11011
11136
  validate: validateContent
11012
11137
  }),
11013
- _useField2 = _slicedToArray$3(_useField, 2),
11138
+ _useField2 = _slicedToArray$3(_useField, 3),
11014
11139
  value = _useField2[0].value,
11015
- error = _useField2[1].error;
11140
+ _useField2$ = _useField2[1],
11141
+ touched = _useField2$.touched,
11142
+ error = _useField2$.error,
11143
+ setTouched = _useField2[2].setTouched;
11016
11144
  return /*#__PURE__*/React__default["default"].createElement("div", {
11017
11145
  className: "w-full cursor-auto"
11018
11146
  }, /*#__PURE__*/React__default["default"].createElement(neetoEditor.Editor, {
11019
- error: error,
11020
11147
  className: "px-2 pb-2",
11021
11148
  contentClassName: "border-none",
11022
11149
  disabled: isLabelDisabled,
11150
+ error: touched ? error : "",
11023
11151
  errorWrapperClassName: "border-none",
11024
11152
  id: "editor",
11025
11153
  initialValue: value,
11026
11154
  menuClassName: "border-none",
11027
11155
  name: fieldName,
11028
11156
  ref: editorRef,
11157
+ onBlur: function onBlur() {
11158
+ setTouched(true);
11159
+ },
11029
11160
  onChange: function onChange(text) {
11030
11161
  var _editorRef$current$ed;
11031
11162
  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);
@@ -11153,9 +11284,9 @@ var QUESTION_KINDS = [{
11153
11284
  defaults: {
11154
11285
  label: "",
11155
11286
  isRequired: false,
11156
- optionsAttributes: [{
11287
+ optionsAttributes: new Array(MULTIPLE_CHOICE_FIELD_MIN_OPTIONS).fill({
11157
11288
  label: ""
11158
- }]
11289
+ })
11159
11290
  }
11160
11291
  }, {
11161
11292
  type: "radio",
@@ -11428,8 +11559,8 @@ var arrayHelpers = {
11428
11559
  moveItem: moveItem
11429
11560
  };
11430
11561
 
11431
- 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; }
11432
- 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; }
11562
+ 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; }
11563
+ 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; }
11433
11564
  var generateUniqueFieldCode = function generateUniqueFieldCode(type, questions) {
11434
11565
  var fieldCodes = ramda.pluck("fieldCode", neetoCist.filterBy({
11435
11566
  kind: type
@@ -11465,7 +11596,7 @@ var handleFieldDragEnd = function handleFieldDragEnd(_ref2) {
11465
11596
  var nextItems = _toConsumableArray$1(items);
11466
11597
  arrayHelpers.moveItem(nextItems, source.index, destination.index);
11467
11598
  var orderedItems = nextItems.map(function (item, index) {
11468
- return _objectSpread$d(_objectSpread$d({}, item), {}, {
11599
+ return _objectSpread$e(_objectSpread$e({}, item), {}, {
11469
11600
  displayOrder: index
11470
11601
  });
11471
11602
  });
@@ -11479,7 +11610,7 @@ var createFieldData = function createFieldData(_ref3) {
11479
11610
  _ref3$isRequired = _ref3.isRequired,
11480
11611
  isRequired = _ref3$isRequired === void 0 ? undefined : _ref3$isRequired,
11481
11612
  questions = _ref3.questions;
11482
- return _objectSpread$d(_objectSpread$d({}, defaults), {}, {
11613
+ return _objectSpread$e(_objectSpread$e({}, defaults), {}, {
11483
11614
  metadata: metadata,
11484
11615
  isRequired: isRequired,
11485
11616
  kind: type,
@@ -11500,7 +11631,7 @@ var duplicateFieldData = function duplicateFieldData(_ref4) {
11500
11631
  optionsAttributes = item.optionsAttributes;
11501
11632
  var defaultAttributeNames = ramda.keys(questionKind.defaults || {});
11502
11633
  var defaultAttributes = ramda.pick(defaultAttributeNames, item);
11503
- return _objectSpread$d(_objectSpread$d({}, defaultAttributes), {}, {
11634
+ return _objectSpread$e(_objectSpread$e({}, defaultAttributes), {}, {
11504
11635
  isRequired: isRequired,
11505
11636
  kind: kind,
11506
11637
  label: label,
@@ -11607,9 +11738,9 @@ var List = function List(_ref) {
11607
11738
  })))));
11608
11739
  };
11609
11740
 
11610
- var _excluded$5 = ["questionKinds", "showAddQuestionDivider", "onValueChange", "showActionBlock", "formId", "isDeletable", "isRequiredField", "submitButtonProps", "cancelButtonProps", "isKindAlreadyActive", "getActiveKindDetails", "kindUniqueOn", "isDisabledFieldLabel", "disabledAddButtonTooltipProps", "enableFieldCode"];
11611
- 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; }
11612
- 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; }
11741
+ var _excluded$6 = ["questionKinds", "showAddQuestionDivider", "onValueChange", "showActionBlock", "formId", "isDeletable", "isRequiredField", "submitButtonProps", "cancelButtonProps", "isKindAlreadyActive", "getActiveKindDetails", "kindUniqueOn", "isDisabledFieldLabel", "disabledAddButtonTooltipProps", "enableFieldCode", "formTitle", "formDescription", "selectedLanguage", "availableLanguages", "onLanguageChange"];
11742
+ 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; }
11743
+ 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; }
11613
11744
  var Form = function Form(_ref) {
11614
11745
  var _INDEPENDENT_LABELS_M, _questions$deleteQues, _questions$deleteQues2;
11615
11746
  var questionKinds = _ref.questionKinds,
@@ -11627,7 +11758,12 @@ var Form = function Form(_ref) {
11627
11758
  isDisabledFieldLabel = _ref.isDisabledFieldLabel,
11628
11759
  disabledAddButtonTooltipProps = _ref.disabledAddButtonTooltipProps,
11629
11760
  enableFieldCode = _ref.enableFieldCode,
11630
- formDomProps = _objectWithoutProperties$1(_ref, _excluded$5);
11761
+ formTitle = _ref.formTitle,
11762
+ formDescription = _ref.formDescription,
11763
+ selectedLanguage = _ref.selectedLanguage,
11764
+ availableLanguages = _ref.availableLanguages,
11765
+ onLanguageChange = _ref.onLanguageChange,
11766
+ formDomProps = _objectWithoutProperties$1(_ref, _excluded$6);
11631
11767
  var _useTranslation = reactI18next.useTranslation(),
11632
11768
  t = _useTranslation.t;
11633
11769
  var _useState = React$2.useState({}),
@@ -11697,7 +11833,7 @@ var Form = function Form(_ref) {
11697
11833
  questions: questions
11698
11834
  }), values.questions);
11699
11835
  setFieldValue("questions", newQuestions.map(function (question, index) {
11700
- return _objectSpread$c(_objectSpread$c({}, question), {}, {
11836
+ return _objectSpread$d(_objectSpread$d({}, question), {}, {
11701
11837
  displayOrder: index + 1
11702
11838
  });
11703
11839
  }));
@@ -11714,6 +11850,10 @@ var Form = function Form(_ref) {
11714
11850
  }
11715
11851
  };
11716
11852
  };
11853
+ var handleLanguageChange = function handleLanguageChange(code) {
11854
+ resetForm();
11855
+ onLanguageChange(code);
11856
+ };
11717
11857
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
11718
11858
  isOpen: deleteQuestionIndex !== null,
11719
11859
  submitButtonLabel: t("neetoForm.common.delete"),
@@ -11738,6 +11878,13 @@ var Form = function Form(_ref) {
11738
11878
  className: "flex h-full flex-col"
11739
11879
  }, formDomProps, {
11740
11880
  noValidate: true
11881
+ }), formTitle && /*#__PURE__*/React__default["default"].createElement(Overview, {
11882
+ availableLanguages: availableLanguages,
11883
+ dirty: dirty,
11884
+ selectedLanguage: selectedLanguage,
11885
+ description: formDescription,
11886
+ title: formTitle,
11887
+ onLanguageChange: handleLanguageChange
11741
11888
  }), /*#__PURE__*/React__default["default"].createElement("div", {
11742
11889
  className: "w-full flex-grow overflow-y-auto"
11743
11890
  }, hasActiveQuestions ? /*#__PURE__*/React__default["default"].createElement(formik.FieldArray, {
@@ -11797,10 +11944,10 @@ var Form = function Form(_ref) {
11797
11944
  className: "neeto-ui-border-gray-300 flex-shrink-0 border-t py-4"
11798
11945
  }, /*#__PURE__*/React__default["default"].createElement(formik$1.ActionBlock, {
11799
11946
  className: "space-x-2",
11800
- cancelButtonProps: _objectSpread$c({
11947
+ cancelButtonProps: _objectSpread$d({
11801
11948
  label: t("neetoForm.common.reset")
11802
11949
  }, cancelButtonProps),
11803
- submitButtonProps: _objectSpread$c({
11950
+ submitButtonProps: _objectSpread$d({
11804
11951
  disabled: isSubmitting || !dirty
11805
11952
  }, submitButtonProps)
11806
11953
  }))));
@@ -11860,8 +12007,8 @@ var formValidationSchema = yup.object().shape({
11860
12007
  })).required()
11861
12008
  });
11862
12009
 
11863
- 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; }
11864
- 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; }
12010
+ 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; }
12011
+ 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; }
11865
12012
  var BuildForm = function BuildForm(_ref) {
11866
12013
  var id = _ref.id,
11867
12014
  onUpdate = _ref.onUpdate,
@@ -11894,20 +12041,27 @@ var BuildForm = function BuildForm(_ref) {
11894
12041
  allowAdditionalGuests = _ref$allowAdditionalG === void 0 ? false : _ref$allowAdditionalG,
11895
12042
  disabledAddButtonTooltipProps = _ref.disabledAddButtonTooltipProps,
11896
12043
  _ref$enableFieldCode = _ref.enableFieldCode,
11897
- enableFieldCode = _ref$enableFieldCode === void 0 ? false : _ref$enableFieldCode;
12044
+ enableFieldCode = _ref$enableFieldCode === void 0 ? false : _ref$enableFieldCode,
12045
+ _ref$availableLanguag = _ref.availableLanguages,
12046
+ availableLanguages = _ref$availableLanguag === void 0 ? DEFAULT_AVAILABLE_LANGUAGES : _ref$availableLanguag,
12047
+ formDescription = _ref.formDescription,
12048
+ _ref$formTitle = _ref.formTitle,
12049
+ formTitle = _ref$formTitle === void 0 ? "" : _ref$formTitle,
12050
+ _ref$selectedLanguage = _ref.selectedLanguage,
12051
+ selectedLanguage = _ref$selectedLanguage === void 0 ? "en" : _ref$selectedLanguage,
12052
+ _ref$onLanguageChange = _ref.onLanguageChange,
12053
+ onLanguageChange = _ref$onLanguageChange === void 0 ? neetoCist.noop : _ref$onLanguageChange;
11898
12054
  var queryClient = reactQuery.useQueryClient();
11899
12055
  var _useUpdateQuestions = useUpdateQuestions({
11900
12056
  formId: id,
11901
- onError: function onError(error) {
11902
- return neetoui.Toastr.error(error);
11903
- },
11904
- onSuccess: function onSuccess() {
11905
- return neetoui.Toastr.success("", THUMBS_UP);
11906
- }
12057
+ language: selectedLanguage,
12058
+ onError: neetoui.Toastr.error,
12059
+ onSuccess: utils.showThumbsUpToastr
11907
12060
  }),
11908
12061
  updateQuestions = _useUpdateQuestions.mutateAsync;
11909
12062
  var _useForm = useForm({
11910
12063
  formId: id,
12064
+ language: selectedLanguage,
11911
12065
  onSuccess: function onSuccess(data) {
11912
12066
  return onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(data);
11913
12067
  },
@@ -11937,26 +12091,31 @@ var BuildForm = function BuildForm(_ref) {
11937
12091
  className: "flex h-full w-full items-center justify-center py-6"
11938
12092
  }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
11939
12093
  }
11940
- var handleSubmit = function handleSubmit(payload) {
11941
- return updateQuestions({
12094
+ var handleSubmit = function handleSubmit(payload, _ref2) {
12095
+ var resetForm = _ref2.resetForm;
12096
+ updateQuestions({
11942
12097
  id: id,
11943
- values: _objectSpread$b({
11944
- neetoFormQuestion: payload
12098
+ values: _objectSpread$c({
12099
+ neetoFormQuestion: _objectSpread$c(_objectSpread$c({}, payload), {}, {
12100
+ language: selectedLanguage
12101
+ })
11945
12102
  }, buildRequestArgs)
12103
+ }, {
12104
+ onSuccess: resetForm
11946
12105
  });
11947
12106
  };
11948
12107
  var onValueChange = function onValueChange(questions) {
11949
- var _queryClient$getQuery = queryClient.getQueryState([QUERY_KEYS.QUESTIONS, id]),
12108
+ var _queryClient$getQuery = queryClient.getQueryState([QUERY_KEYS.QUESTIONS, id, selectedLanguage]),
11950
12109
  dataUpdateCount = _queryClient$getQuery.dataUpdateCount;
11951
12110
  if (dataUpdateCount > 0) {
11952
- queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id)], ramda.assoc("questions", questions));
12111
+ queryClient.setQueryData([QUERY_KEYS.QUESTIONS, "preview/".concat(id), selectedLanguage], ramda.assoc("questions", questions));
11953
12112
  }
11954
12113
  };
11955
12114
  var isDeletable = isQuestionDeletable !== null && isQuestionDeletable !== void 0 ? isQuestionDeletable : function (question) {
11956
12115
  return !nonRemovableFields.includes(question.kind);
11957
12116
  };
11958
- var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref2) {
11959
- var kind = _ref2.kind;
12117
+ var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref3) {
12118
+ var kind = _ref3.kind;
11960
12119
  return requiredFields.includes(kind);
11961
12120
  };
11962
12121
  var isDisabledFieldLabel = isFieldLabelDisabled !== null && isFieldLabelDisabled !== void 0 ? isFieldLabelDisabled : function () {
@@ -11974,20 +12133,25 @@ var BuildForm = function BuildForm(_ref) {
11974
12133
  },
11975
12134
  validationSchema: formValidationSchema,
11976
12135
  onSubmit: handleSubmit
11977
- }, function (_ref3) {
11978
- var errors = _ref3.errors,
11979
- setFieldError = _ref3.setFieldError;
11980
- return /*#__PURE__*/React__default["default"].createElement(Form, _extends$8({}, _objectSpread$b(_objectSpread$b({}, formDomProps), {}, {
12136
+ }, function (_ref4) {
12137
+ var errors = _ref4.errors,
12138
+ setFieldError = _ref4.setFieldError;
12139
+ return /*#__PURE__*/React__default["default"].createElement(Form, _extends$8({}, _objectSpread$c(_objectSpread$c({}, formDomProps), {}, {
12140
+ availableLanguages: availableLanguages,
11981
12141
  cancelButtonProps: cancelButtonProps,
11982
12142
  disabledAddButtonTooltipProps: disabledAddButtonTooltipProps,
11983
12143
  enableFieldCode: enableFieldCode,
12144
+ formDescription: formDescription,
12145
+ formTitle: formTitle,
11984
12146
  getActiveKindDetails: getActiveKindDetails,
11985
12147
  isDeletable: isDeletable,
11986
12148
  isDisabledFieldLabel: isDisabledFieldLabel,
11987
12149
  isKindAlreadyActive: isKindAlreadyActive,
11988
12150
  isRequiredField: isRequiredField,
11989
12151
  kindUniqueOn: kindUniqueOn,
12152
+ onLanguageChange: onLanguageChange,
11990
12153
  onValueChange: onValueChange,
12154
+ selectedLanguage: selectedLanguage,
11991
12155
  showActionBlock: showActionBlock,
11992
12156
  showAddQuestionDivider: showAddQuestionDivider,
11993
12157
  submitButtonProps: submitButtonProps
@@ -12410,7 +12574,7 @@ var Spinner = function Spinner(_ref) {
12410
12574
  };
12411
12575
  var Spinner$1 = /*#__PURE__*/React__default["default"].memo(Spinner);
12412
12576
 
12413
- var _excluded$4 = ["label", "loading", "success", "className"];
12577
+ var _excluded$5 = ["label", "loading", "success", "className"];
12414
12578
  var Button = function Button(_ref) {
12415
12579
  var label = _ref.label,
12416
12580
  _ref$loading = _ref.loading,
@@ -12419,7 +12583,7 @@ var Button = function Button(_ref) {
12419
12583
  success = _ref$success === void 0 ? false : _ref$success,
12420
12584
  _ref$className = _ref.className,
12421
12585
  className = _ref$className === void 0 ? "" : _ref$className,
12422
- otherProps = _objectWithoutProperties$1(_ref, _excluded$4);
12586
+ otherProps = _objectWithoutProperties$1(_ref, _excluded$5);
12423
12587
  return /*#__PURE__*/React__default["default"].createElement("button", _extends$8({
12424
12588
  className: classnames__default["default"]("neeto-form-engine-button", className)
12425
12589
  }, otherProps), loading && /*#__PURE__*/React__default["default"].createElement(ButtonLoader, null), success && /*#__PURE__*/React__default["default"].createElement(Success$2, null), label);
@@ -14180,9 +14344,9 @@ function _unsupportedIterableToArray$6(o, minLen) { if (!o) return; if (typeof o
14180
14344
 
14181
14345
  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; }
14182
14346
 
14183
- 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; }
14347
+ 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; }
14184
14348
 
14185
- 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; }
14349
+ 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; }
14186
14350
 
14187
14351
  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; }
14188
14352
  var DEFAULT_OPTIONS = {
@@ -14209,7 +14373,7 @@ var DEFAULT_OPTIONS = {
14209
14373
  function formatNumber(input, format, options, metadata) {
14210
14374
  // Apply default options.
14211
14375
  if (options) {
14212
- options = _objectSpread$a(_objectSpread$a({}, DEFAULT_OPTIONS), options);
14376
+ options = _objectSpread$b(_objectSpread$b({}, DEFAULT_OPTIONS), options);
14213
14377
  } else {
14214
14378
  options = DEFAULT_OPTIONS;
14215
14379
  }
@@ -14354,9 +14518,9 @@ function formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry,
14354
14518
  }
14355
14519
  }
14356
14520
 
14357
- 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; }
14521
+ 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; }
14358
14522
 
14359
- 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; }
14523
+ 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; }
14360
14524
 
14361
14525
  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; }
14362
14526
 
@@ -14468,7 +14632,7 @@ var PhoneNumber = /*#__PURE__*/function () {
14468
14632
  }, {
14469
14633
  key: "format",
14470
14634
  value: function format(_format, options) {
14471
- return formatNumber(this, _format, options ? _objectSpread$9(_objectSpread$9({}, options), {}, {
14635
+ return formatNumber(this, _format, options ? _objectSpread$a(_objectSpread$a({}, options), {}, {
14472
14636
  v2: true
14473
14637
  }) : {
14474
14638
  v2: true
@@ -15511,20 +15675,20 @@ function parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCo
15511
15675
  };
15512
15676
  }
15513
15677
 
15514
- 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; }
15678
+ 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; }
15515
15679
 
15516
- 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; }
15680
+ 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; }
15517
15681
 
15518
15682
  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; }
15519
15683
  function parsePhoneNumberWithError$2(text, options, metadata) {
15520
- return parse$1(text, _objectSpread$8(_objectSpread$8({}, options), {}, {
15684
+ return parse$1(text, _objectSpread$9(_objectSpread$9({}, options), {}, {
15521
15685
  v2: true
15522
15686
  }), metadata);
15523
15687
  }
15524
15688
 
15525
- 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; }
15689
+ 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; }
15526
15690
 
15527
- 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; }
15691
+ 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; }
15528
15692
 
15529
15693
  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; }
15530
15694
 
@@ -15572,7 +15736,7 @@ function normalizeArguments(args) {
15572
15736
  }
15573
15737
 
15574
15738
  if (arg_2) {
15575
- options = _objectSpread$7({
15739
+ options = _objectSpread$8({
15576
15740
  defaultCountry: arg_2
15577
15741
  }, options);
15578
15742
  }
@@ -15631,7 +15795,10 @@ var getInvalidTypeError = function getInvalidTypeError(label, type) {
15631
15795
  });
15632
15796
  };
15633
15797
 
15798
+ var _excluded$4 = ["kind", "label", "isRequired", "customValidator"];
15634
15799
  var _fieldKindValidatorMa;
15800
+ 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; }
15801
+ 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; }
15635
15802
  yup__namespace.addMethod(yup__namespace.array, "unique", function () {
15636
15803
  var field, message;
15637
15804
  if (arguments.length > 1) {
@@ -15658,6 +15825,9 @@ yup__namespace.addMethod(yup__namespace.array, "unique", function () {
15658
15825
  });
15659
15826
  });
15660
15827
  });
15828
+ var isValidDate = function isValidDate(date) {
15829
+ return date && dayjs__default["default"](date).isValid();
15830
+ };
15661
15831
  var validateTextField = function validateTextField(_ref) {
15662
15832
  var kind = _ref.kind,
15663
15833
  label = _ref.label,
@@ -15711,9 +15881,11 @@ var validateConditionField = function validateConditionField(_ref7) {
15711
15881
  var validateDateField = function validateDateField(_ref8) {
15712
15882
  var label = _ref8.label,
15713
15883
  isRequired = _ref8.isRequired;
15714
- var schema = yup__namespace.date().typeError("").nullable();
15884
+ var schema = yup__namespace.string().test("is valid date", getInvalidTypeError(label, "date"), function (value) {
15885
+ return neetoCist.isNotPresent(value) || isValidDate(value);
15886
+ });
15715
15887
  if (isRequired) {
15716
- schema = yup__namespace.date().typeError(getInvalidTypeError(label, "date")).required(getRequiredFieldError(label));
15888
+ schema = schema.required(getRequiredFieldError(label));
15717
15889
  }
15718
15890
  return schema;
15719
15891
  };
@@ -15739,14 +15911,15 @@ var validateRichTextField = function validateRichTextField(_ref10) {
15739
15911
  return schema.trim();
15740
15912
  };
15741
15913
  var validateFileUploadField = function validateFileUploadField(_ref11) {
15742
- var isRequired = _ref11.isRequired;
15914
+ var isRequired = _ref11.isRequired,
15915
+ multipleFilesAllowed = _ref11.multipleFilesAllowed;
15743
15916
  var files_schema = yup__namespace.array();
15744
15917
  if (isRequired) {
15745
15918
  files_schema = files_schema.of(yup__namespace.object().shape({
15746
15919
  name: yup__namespace.string(),
15747
15920
  signedId: yup__namespace.string().required(i18next.t("neetoForm.fileUpload.validations.waitForUpload")),
15748
15921
  url: yup__namespace.string().required(i18next.t("neetoForm.fileUpload.validations.waitForUpload"))
15749
- })).unique("name", i18next.t("neetoForm.fileUpload.validations.removeDuplicates")).min(1, i18next.t("neetoForm.fileUpload.validations.atLeastOneFileRequired"));
15922
+ })).unique("name", i18next.t("neetoForm.fileUpload.validations.removeDuplicates")).min(1, multipleFilesAllowed ? i18next.t("neetoForm.fileUpload.validations.atLeastOneFileRequired") : i18next.t("neetoForm.fileUpload.validations.fileIsRequired"));
15750
15923
  }
15751
15924
  return yup__namespace.object().shape({
15752
15925
  files: files_schema
@@ -15757,15 +15930,16 @@ var validateFieldValue = function validateFieldValue(_ref12) {
15757
15930
  var kind = _ref12.kind,
15758
15931
  label = _ref12.label,
15759
15932
  isRequired = _ref12.isRequired,
15760
- customValidator = _ref12.customValidator;
15933
+ customValidator = _ref12.customValidator,
15934
+ otherProps = _objectWithoutProperties$1(_ref12, _excluded$4);
15761
15935
  return function (value) {
15762
15936
  if (!(kind in fieldKindValidatorMap)) return;
15763
15937
  var validator = fieldKindValidatorMap[kind];
15764
- var schema = customValidator || validator({
15938
+ var schema = customValidator || validator(_objectSpread$7({
15765
15939
  kind: kind,
15766
15940
  label: label,
15767
15941
  isRequired: isRequired
15768
- });
15942
+ }, otherProps));
15769
15943
 
15770
15944
  // eslint-disable-next-line consistent-return, no-async-promise-executor
15771
15945
  return new Promise( /*#__PURE__*/function () {
@@ -26244,7 +26418,8 @@ var FileUploadField = function FileUploadField(_ref) {
26244
26418
  kind: kind,
26245
26419
  label: label,
26246
26420
  isRequired: isRequired,
26247
- customValidator: customValidator
26421
+ customValidator: customValidator,
26422
+ multipleFilesAllowed: multipleFilesAllowed
26248
26423
  })
26249
26424
  }),
26250
26425
  _useField2 = _slicedToArray$3(_useField, 2);
@@ -26389,15 +26564,15 @@ var OptionsField = function OptionsField(_ref) {
26389
26564
  var onChange = field.onChange,
26390
26565
  value = field.value;
26391
26566
  return /*#__PURE__*/React__default["default"].createElement(Component, {
26392
- error: getError(meta),
26393
26567
  isRequired: isRequired,
26394
- label: getLabel$1(label, isRequired),
26395
26568
  name: name,
26569
+ error: getError(meta),
26570
+ label: getLabel$1(label, isRequired),
26396
26571
  options: transformedOptions,
26397
26572
  type: kind,
26398
26573
  value: kind === QUESTION_KIND.DROPDOWN.value ? neetoCist.findBy({
26399
26574
  value: value
26400
- }, transformedOptions) : value,
26575
+ }, transformedOptions) || null : value,
26401
26576
  onChange: kind === QUESTION_KIND.DROPDOWN.value ? handleSelect : onChange
26402
26577
  });
26403
26578
  });
@@ -26656,6 +26831,7 @@ var StarRatingField = function StarRatingField(_ref) {
26656
26831
  isRequired = question.isRequired,
26657
26832
  count = question.count,
26658
26833
  shape = question.shape;
26834
+ var sanitizedCount = ramda.clamp(0, 10, parseInt(count)) || 0;
26659
26835
  return /*#__PURE__*/React__default["default"].createElement(formik.Field, {
26660
26836
  name: name,
26661
26837
  validate: validateFieldValue({
@@ -26668,11 +26844,11 @@ var StarRatingField = function StarRatingField(_ref) {
26668
26844
  var meta = _ref2.meta,
26669
26845
  field = _ref2.field;
26670
26846
  return /*#__PURE__*/React__default["default"].createElement(StarRating$1, _extends$8({
26671
- count: count,
26672
- error: meta.touched ? meta.error : "",
26673
- label: getLabel$1(label, isRequired),
26674
26847
  name: name,
26675
- shape: shape
26848
+ shape: shape,
26849
+ count: sanitizedCount,
26850
+ error: meta.touched ? meta.error : "",
26851
+ label: getLabel$1(label, isRequired)
26676
26852
  }, field));
26677
26853
  });
26678
26854
  };
@@ -26889,7 +27065,9 @@ var ExternalForm = function ExternalForm(_ref) {
26889
27065
  _ref$autoCompleteKind = _ref.autoCompleteKinds,
26890
27066
  autoCompleteKinds = _ref$autoCompleteKind === void 0 ? [] : _ref$autoCompleteKind,
26891
27067
  _ref$enablePreFilling = _ref.enablePreFilling,
26892
- enablePreFilling = _ref$enablePreFilling === void 0 ? false : _ref$enablePreFilling;
27068
+ enablePreFilling = _ref$enablePreFilling === void 0 ? false : _ref$enablePreFilling,
27069
+ _ref$language = _ref.language,
27070
+ language = _ref$language === void 0 ? "en" : _ref$language;
26893
27071
  var _useState = React$2.useState(false),
26894
27072
  _useState2 = _slicedToArray$3(_useState, 2),
26895
27073
  isSubmitted = _useState2[0],
@@ -27100,6 +27278,7 @@ var ExternalForm = function ExternalForm(_ref) {
27100
27278
  var _useForm = useForm({
27101
27279
  formId: formId,
27102
27280
  preview: preview,
27281
+ language: language,
27103
27282
  onError: neetoui.Toastr.error,
27104
27283
  enabled: !preview,
27105
27284
  placeholderData: {
@@ -29871,6 +30050,12 @@ var Submission = function Submission(_ref3) {
29871
30050
  }));
29872
30051
  };
29873
30052
 
30053
+ var getPreFillableQuestions = function getPreFillableQuestions(questions) {
30054
+ var modifiedQuestions = ramda.map(ramda.assoc("isRequired", false), questions);
30055
+ return modifiedQuestions.filter(function (question) {
30056
+ return !QUESTIONS_WITHOUT_FIELD_CODE.includes(question.kind);
30057
+ });
30058
+ };
29874
30059
  var buildQueryParameters = function buildQueryParameters(responses, questions) {
29875
30060
  var filteredResponses = ramda.filter(neetoCist.isPresent, responses);
29876
30061
  var queryParameters = {};
@@ -30018,7 +30203,7 @@ var UrlBuilder = function UrlBuilder(_ref) {
30018
30203
  }
30019
30204
  var title = form.title,
30020
30205
  questions = form.questions;
30021
- var modifiedQuestions = ramda.map(ramda.assoc("isRequired", false), questions);
30206
+ var modifiedQuestions = getPreFillableQuestions(questions);
30022
30207
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, showTitle && /*#__PURE__*/React__default["default"].createElement("div", {
30023
30208
  className: "py-6 text-center"
30024
30209
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, _extends$8({