@bigbinary/neeto-form-frontend 1.2.47 → 1.2.49

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
@@ -5,7 +5,7 @@ import { noop as noop$4, findBy, slugify, filterBy, isNotEmpty, truncate, humani
5
5
  import { withEventTargetValue, showThumbsUpToastr, getQueryParams, dateFormat } from '@bigbinary/neeto-commons-frontend/utils';
6
6
  import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
7
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, mergeLeft, prop, isEmpty, path, values, compose as compose$1, trim, useWith, split, either, isNil, equals, difference, reject, pluck, keys, pick, omit, insert, isNotNil, not, pipe as pipe$1, toLower, map, includes, identity, times, clamp as clamp$2, filter as filter$1 } from 'ramda';
8
+ import { assoc, mergeLeft, prop, isEmpty, path, values, compose as compose$1, trim, useWith, split, either, isNil, equals, difference, reject, pluck, keys, pick, omit, isNotNil, insert, not, pipe as pipe$1, toLower, map, includes, identity, times, clamp as clamp$2, filter as filter$1 } from 'ramda';
9
9
  import { useQuery, useQueryClient, useMutation } from 'react-query';
10
10
  import i18next, { t as t$4 } from 'i18next';
11
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';
@@ -677,19 +677,22 @@ var useDeleteForm = function useDeleteForm(options) {
677
677
  var id = _ref6.id;
678
678
  return neetoFormApi.destroyForm(id);
679
679
  }, _objectSpread$j(_objectSpread$j({}, options), {}, {
680
- keysToInvalidate: function keysToInvalidate(_, _ref7) {
680
+ keysToInvalidate: [[QUERY_KEYS.FORMS], function (_, _ref7) {
681
681
  var id = _ref7.id;
682
- return [QUERY_KEYS.FORMS, [QUERY_KEYS.QUESTIONS, id], [QUERY_KEYS.QUESTIONS, "preview/".concat(id)]];
683
- },
682
+ return [QUERY_KEYS.QUESTIONS, id];
683
+ }, function (_, _ref8) {
684
+ var id = _ref8.id;
685
+ return [QUERY_KEYS.QUESTIONS, "preview/".concat(id)];
686
+ }],
684
687
  onSuccess: function onSuccess() {
685
688
  options.onSuccess && options.onSuccess.apply(options, arguments);
686
689
  }
687
690
  }));
688
691
  };
689
- var useSubmission = function useSubmission(_ref9) {
690
- var formId = _ref9.formId,
691
- submissionId = _ref9.submissionId,
692
- options = _objectWithoutProperties$1(_ref9, _excluded4$1);
692
+ var useSubmission = function useSubmission(_ref10) {
693
+ var formId = _ref10.formId,
694
+ submissionId = _ref10.submissionId,
695
+ options = _objectWithoutProperties$1(_ref10, _excluded4$1);
693
696
  return useQuery([QUERY_KEYS.SUBMISSION, formId, submissionId], function () {
694
697
  return neetoFormApi.getPublicSubmission(formId, submissionId);
695
698
  }, _objectSpread$j(_objectSpread$j({}, options), {}, {
@@ -698,9 +701,9 @@ var useSubmission = function useSubmission(_ref9) {
698
701
  };
699
702
  var useCreateSubmission = function useCreateSubmission(options) {
700
703
  var queryClient = useQueryClient();
701
- return useMutation(function (_ref10) {
702
- var formId = _ref10.formId,
703
- values = _ref10.values;
704
+ return useMutation(function (_ref11) {
705
+ var formId = _ref11.formId,
706
+ values = _ref11.values;
704
707
  return neetoFormApi.submitPublicForm(formId, values);
705
708
  }, _objectSpread$j(_objectSpread$j({}, options), {}, {
706
709
  onSuccess: function onSuccess() {
@@ -719,9 +722,9 @@ var useCreateSubmission = function useCreateSubmission(options) {
719
722
  };
720
723
  var useUpdateSubmission = function useUpdateSubmission(options) {
721
724
  var queryClient = useQueryClient();
722
- return useMutation(function (_ref11) {
723
- var formId = _ref11.formId,
724
- values = _ref11.values;
725
+ return useMutation(function (_ref12) {
726
+ var formId = _ref12.formId,
727
+ values = _ref12.values;
725
728
  return neetoFormApi.updatePublicSubmission(formId, values);
726
729
  }, _objectSpread$j(_objectSpread$j({}, options), {}, {
727
730
  onSuccess: function onSuccess() {
@@ -744,6 +747,11 @@ var DEFAULT_AVAILABLE_LANGUAGES = [{
744
747
  name: "English"
745
748
  }];
746
749
  var QUESTIONS_WITHOUT_FIELD_CODE = ["paragraph", "termsandcondition", "condition", "file_upload"];
750
+ var QUESTIONS_INITIAL_VALUE = {
751
+ enabled: false,
752
+ questions: [],
753
+ title: ""
754
+ };
747
755
  var RESERVED_FIELD_CODES = ["month", "date", "time"];
748
756
 
749
757
  function _arrayWithHoles$3(arr) {
@@ -9792,7 +9800,9 @@ var useBuildFormStore = create$1(withImmutableActions(function (set) {
9792
9800
  submitForm: noop$4,
9793
9801
  resetForm: noop$4,
9794
9802
  selectedLanguage: i18next.resolvedLanguage,
9795
- formId: null
9803
+ formId: null,
9804
+ enabled: false,
9805
+ title: ""
9796
9806
  },
9797
9807
  setFormData: function setFormData(payload) {
9798
9808
  return set(assoc("formState", payload));
@@ -10028,6 +10038,7 @@ var Accordion = function Accordion(_ref) {
10028
10038
  "pr-4 md:pr-8": showAddQuestionDivider
10029
10039
  })
10030
10040
  }, /*#__PURE__*/React__default.createElement("div", {
10041
+ "data-cy": "neeto-form-engine-question-accordion-header",
10031
10042
  className: classnames({
10032
10043
  "neeto-form-engine-question-accordion__header flex h-10 cursor-pointer select-none items-center justify-between px-3 py-2": true,
10033
10044
  "neeto-ui-text-gray-700 border": !isExpanded,
@@ -10061,6 +10072,7 @@ var Accordion = function Accordion(_ref) {
10061
10072
  customTarget: function customTarget() {
10062
10073
  return /*#__PURE__*/React__default.createElement("button", {
10063
10074
  className: "flex items-center justify-center border-0 bg-transparent outline-none",
10075
+ "data-cy": "neeto-form-engine-question-accordion-more-dropdown",
10064
10076
  type: "button"
10065
10077
  }, /*#__PURE__*/React__default.createElement(MenuHorizontal, null));
10066
10078
  }
@@ -10321,6 +10333,7 @@ var Dropdown$1 = function Dropdown(_ref) {
10321
10333
  number: index + 1
10322
10334
  })
10323
10335
  }), !freezeOptions && /*#__PURE__*/React__default.createElement(Button$1, {
10336
+ "data-cy": "neeto-form-engine-delete-option-button",
10324
10337
  icon: Delete,
10325
10338
  size: "small",
10326
10339
  style: "text",
@@ -10594,6 +10607,7 @@ var MultipleChoice$1 = function MultipleChoice(_ref) {
10594
10607
  number: index + 1
10595
10608
  })
10596
10609
  }), !freezeOptions && /*#__PURE__*/React__default.createElement(Button$1, {
10610
+ "data-cy": "neeto-form-engine-delete-option-button",
10597
10611
  icon: Delete,
10598
10612
  size: "small",
10599
10613
  style: "text",
@@ -10842,6 +10856,7 @@ var SingleChoice$1 = function SingleChoice(_ref) {
10842
10856
  number: index + 1
10843
10857
  })
10844
10858
  }), !freezeOptions && /*#__PURE__*/React__default.createElement(Button$1, {
10859
+ "data-cy": "neeto-form-engine-delete-option-button",
10845
10860
  icon: Delete,
10846
10861
  size: "small",
10847
10862
  style: "text",
@@ -11649,7 +11664,7 @@ var List = function List(_ref) {
11649
11664
  })))));
11650
11665
  };
11651
11666
 
11652
- var _excluded$6 = ["questionKinds", "showAddQuestionDivider", "onValueChange", "showActionBlock", "formId", "isDeletable", "isRequiredField", "submitButtonProps", "cancelButtonProps", "isKindAlreadyActive", "getActiveKindDetails", "kindUniqueOn", "isDisabledFieldLabel", "disabledAddButtonTooltipProps", "enableFieldCode", "formTitle", "formDescription", "selectedLanguage", "availableLanguages", "onLanguageChange"];
11667
+ var _excluded$6 = ["questionKinds", "showAddQuestionDivider", "onValueChange", "showActionBlock", "formId", "isDeletable", "isRequiredField", "submitButtonProps", "cancelButtonProps", "isKindAlreadyActive", "getActiveKindDetails", "kindUniqueOn", "isDisabledFieldLabel", "disabledAddButtonTooltipProps", "enableFieldCode", "isFormEnabled", "savedTitle", "formTitle", "formDescription", "selectedLanguage", "availableLanguages", "onLanguageChange"];
11653
11668
  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; }
11654
11669
  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; }
11655
11670
  var Form = function Form(_ref) {
@@ -11668,6 +11683,8 @@ var Form = function Form(_ref) {
11668
11683
  isDisabledFieldLabel = _ref.isDisabledFieldLabel,
11669
11684
  disabledAddButtonTooltipProps = _ref.disabledAddButtonTooltipProps,
11670
11685
  enableFieldCode = _ref.enableFieldCode,
11686
+ isFormEnabled = _ref.isFormEnabled,
11687
+ savedTitle = _ref.savedTitle,
11671
11688
  formTitle = _ref.formTitle,
11672
11689
  formDescription = _ref.formDescription,
11673
11690
  selectedLanguage = _ref.selectedLanguage,
@@ -11697,6 +11714,8 @@ var Form = function Form(_ref) {
11697
11714
  useEffect(function () {
11698
11715
  setFormData({
11699
11716
  formId: formId,
11717
+ enabled: isFormEnabled,
11718
+ title: savedTitle,
11700
11719
  values: values,
11701
11720
  dirty: dirty,
11702
11721
  isSubmitting: isSubmitting,
@@ -11706,7 +11725,7 @@ var Form = function Form(_ref) {
11706
11725
  resetForm: resetForm,
11707
11726
  selectedLanguage: selectedLanguage
11708
11727
  });
11709
- }, [formId, setFormData, values, dirty, isSubmitting, isValid, errors, submitForm, resetForm, selectedLanguage]);
11728
+ }, [formId, isFormEnabled, savedTitle, setFormData, values, dirty, isSubmitting, isValid, errors, submitForm, resetForm, selectedLanguage]);
11710
11729
  var questions = values.questions;
11711
11730
  useEffect(function () {
11712
11731
  onValueChange === null || onValueChange === void 0 || onValueChange(questions);
@@ -11775,10 +11794,10 @@ var Form = function Form(_ref) {
11775
11794
  return humanize(questionKind);
11776
11795
  };
11777
11796
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Alert, {
11778
- isOpen: deleteQuestionIndex !== null,
11797
+ isOpen: isNotNil(deleteQuestionIndex),
11779
11798
  submitButtonLabel: t("neetoForm.common.delete"),
11780
11799
  title: t("neetoForm.questions.deleteAlert.title"),
11781
- message: deleteQuestionIndex && /*#__PURE__*/React__default.createElement(Trans, {
11800
+ message: isNotNil(deleteQuestionIndex) && /*#__PURE__*/React__default.createElement(Trans, {
11782
11801
  i18nKey: "neetoForm.questions.deleteAlert.message",
11783
11802
  values: {
11784
11803
  count: availableLanguages.length,
@@ -12004,12 +12023,11 @@ var BuildForm = function BuildForm(_ref) {
12004
12023
  }
12005
12024
  }),
12006
12025
  _useFetchQuestions$da = _useFetchQuestions.data,
12007
- _useFetchQuestions$da2 = _useFetchQuestions$da === void 0 ? {
12008
- title: "",
12009
- questions: []
12010
- } : _useFetchQuestions$da,
12011
- questions = _useFetchQuestions$da2.questions,
12026
+ _useFetchQuestions$da2 = _useFetchQuestions$da === void 0 ? QUESTIONS_INITIAL_VALUE : _useFetchQuestions$da,
12027
+ isFormEnabled = _useFetchQuestions$da2.enabled,
12028
+ savedTitle = _useFetchQuestions$da2.title,
12012
12029
  isQuestionsLoading = _useFetchQuestions$da2.isQuestionsLoading,
12030
+ questions = _useFetchQuestions$da2.questions,
12013
12031
  isLoading = _useFetchQuestions.isLoading,
12014
12032
  refetch = _useFetchQuestions.refetch;
12015
12033
  if (isLoading || showLoader && isQuestionsLoading) {
@@ -12074,11 +12092,13 @@ var BuildForm = function BuildForm(_ref) {
12074
12092
  getActiveKindDetails: getActiveKindDetails,
12075
12093
  isDeletable: isDeletable,
12076
12094
  isDisabledFieldLabel: isDisabledFieldLabel,
12095
+ isFormEnabled: isFormEnabled,
12077
12096
  isKindAlreadyActive: isKindAlreadyActive,
12078
12097
  isRequiredField: isRequiredField,
12079
12098
  kindUniqueOn: kindUniqueOn,
12080
12099
  onLanguageChange: onLanguageChange,
12081
12100
  onValueChange: onValueChange,
12101
+ savedTitle: savedTitle,
12082
12102
  selectedLanguage: selectedLanguage,
12083
12103
  showActionBlock: showActionBlock,
12084
12104
  showAddQuestionDivider: showAddQuestionDivider,
@@ -27231,7 +27251,8 @@ var ExternalForm = function ExternalForm(_ref) {
27231
27251
  }, /*#__PURE__*/React__default.createElement(PageLoader, null));
27232
27252
  }
27233
27253
  var title = form.title,
27234
- questions = form.questions;
27254
+ _form$questions = form.questions,
27255
+ questions = _form$questions === void 0 ? [] : _form$questions;
27235
27256
  var renderedQuestions = preview ? questions.filter(function (_ref4) {
27236
27257
  var _destroy = _ref4._destroy;
27237
27258
  return !_destroy;