@bigbinary/neeto-form-frontend 4.4.5 → 4.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +4 -1
  2. package/app/javascript/src/translations/en.json +10 -1
  3. package/package.json +11 -15
  4. package/types.d.ts +1 -0
  5. package/dist/BuildForm.js +0 -3035
  6. package/dist/BuildForm.js.map +0 -1
  7. package/dist/ExternalForm.js +0 -639
  8. package/dist/ExternalForm.js.map +0 -1
  9. package/dist/NeetoFormProvider.js +0 -11
  10. package/dist/NeetoFormProvider.js.map +0 -1
  11. package/dist/Submission.js +0 -2832
  12. package/dist/Submission.js.map +0 -1
  13. package/dist/UrlBuilder.js +0 -309
  14. package/dist/UrlBuilder.js.map +0 -1
  15. package/dist/buildForm-Bdc3ubm4.js +0 -38
  16. package/dist/buildForm-Bdc3ubm4.js.map +0 -1
  17. package/dist/buildForm-CkVmGF-A.js +0 -35
  18. package/dist/buildForm-CkVmGF-A.js.map +0 -1
  19. package/dist/cjs/BuildForm.js +0 -3056
  20. package/dist/cjs/BuildForm.js.map +0 -1
  21. package/dist/cjs/ExternalForm.js +0 -641
  22. package/dist/cjs/ExternalForm.js.map +0 -1
  23. package/dist/cjs/NeetoFormProvider.js +0 -13
  24. package/dist/cjs/NeetoFormProvider.js.map +0 -1
  25. package/dist/cjs/Submission.js +0 -2834
  26. package/dist/cjs/Submission.js.map +0 -1
  27. package/dist/cjs/UrlBuilder.js +0 -311
  28. package/dist/cjs/UrlBuilder.js.map +0 -1
  29. package/dist/cjs/hooks.js +0 -33
  30. package/dist/cjs/hooks.js.map +0 -1
  31. package/dist/cjs/index.js +0 -112
  32. package/dist/cjs/index.js.map +0 -1
  33. package/dist/constants-30230o5k.js +0 -496
  34. package/dist/constants-30230o5k.js.map +0 -1
  35. package/dist/constants-DNNZYQ9X.js +0 -515
  36. package/dist/constants-DNNZYQ9X.js.map +0 -1
  37. package/dist/hooks.js +0 -20
  38. package/dist/hooks.js.map +0 -1
  39. package/dist/index-BfavwyMH.js +0 -43
  40. package/dist/index-BfavwyMH.js.map +0 -1
  41. package/dist/index-Dz5Yvk3n.js +0 -51
  42. package/dist/index-Dz5Yvk3n.js.map +0 -1
  43. package/dist/index.js +0 -94
  44. package/dist/index.js.map +0 -1
  45. package/dist/main.css +0 -2
  46. package/dist/main.css.map +0 -1
  47. package/dist/useFormSubmission-CdKlP6De.js +0 -24
  48. package/dist/useFormSubmission-CdKlP6De.js.map +0 -1
  49. package/dist/useFormSubmission-zyh3tA0H.js +0 -22
  50. package/dist/useFormSubmission-zyh3tA0H.js.map +0 -1
  51. package/dist/utils-BRC5Gg_A.js +0 -2641
  52. package/dist/utils-BRC5Gg_A.js.map +0 -1
  53. package/dist/utils-DklENIyr.js +0 -2610
  54. package/dist/utils-DklENIyr.js.map +0 -1
  55. package/dist/yup-B3B89G9K.js +0 -1074
  56. package/dist/yup-B3B89G9K.js.map +0 -1
  57. package/dist/yup-DL9p9dFl.js +0 -994
  58. package/dist/yup-DL9p9dFl.js.map +0 -1
@@ -1,641 +0,0 @@
1
- 'use strict';
2
-
3
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
5
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
7
- var React = require('react');
8
- var reactQuery = require('@tanstack/react-query');
9
- var classnames = require('classnames');
10
- var formik = require('formik');
11
- var i18next = require('i18next');
12
- var neetoCist = require('@bigbinary/neeto-cist');
13
- var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
14
- var useHotkeys = require('@bigbinary/neeto-hotkeys');
15
- var Warning = require('@bigbinary/neeto-icons/Warning');
16
- var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
17
- var Typography = require('@bigbinary/neetoui/Typography');
18
- var Button$1 = require('@bigbinary/neetoui/Button');
19
- var Spinner$2 = require('@bigbinary/neetoui/Spinner');
20
- var NeetoUICallout = require('@bigbinary/neetoui/Callout');
21
- var NoData = require('@bigbinary/neetoui/NoData');
22
- var ramda = require('ramda');
23
- var reactI18next = require('react-i18next');
24
- var constants = require('../constants-DNNZYQ9X.js');
25
- var Close = require('@bigbinary/neeto-icons/Close');
26
- var index$1 = require('../index-Dz5Yvk3n.js');
27
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
28
- var Check = require('@bigbinary/neeto-icons/Check');
29
- var jsxRuntime = require('react/jsx-runtime');
30
- var yup = require('../yup-B3B89G9K.js');
31
- var utils = require('../utils-BRC5Gg_A.js');
32
- var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
33
- require('@babel/runtime/helpers/toConsumableArray');
34
- require('@bigbinary/neeto-commons-frontend/constants');
35
- require('axios');
36
- require('@babel/runtime/helpers/typeof');
37
- require('@bigbinary/neeto-editor/utils');
38
- require('dompurify');
39
- require('@bigbinary/neeto-icons/Plus');
40
- require('yup');
41
- require('libphonenumber-js');
42
- require('@bigbinary/neeto-editor/EditorContent');
43
- require('@bigbinary/neetoui/MultiEmailInput');
44
- require('@bigbinary/neeto-molecules/PhoneNumber');
45
- require('@babel/runtime/helpers/toArray');
46
- require('@bigbinary/neetoui/Select');
47
- require('@bigbinary/neetoui/Input');
48
- require('@bigbinary/neeto-icons/Refresh');
49
- require('@bigbinary/neeto-commons-frontend/initializers');
50
- require('react-google-recaptcha');
51
- require('@bigbinary/neetoui/Checkbox');
52
- require('@bigbinary/neetoui/DatePicker');
53
- require('@bigbinary/neetoui/Toastr');
54
- require('@bigbinary/neeto-icons/CheckCircle');
55
- require('@bigbinary/neeto-molecules/FileUpload');
56
- require('@bigbinary/neetoui/Label');
57
- require('@bigbinary/neetoui/Radio');
58
- require('@bigbinary/neeto-icons/Image');
59
- require('@bigbinary/neeto-editor/Editor');
60
- require('@bigbinary/neetoui/Textarea');
61
-
62
- var Spinner = function Spinner(_ref) {
63
- var _ref$size = _ref.size,
64
- size = _ref$size === void 0 ? 24 : _ref$size;
65
- return /*#__PURE__*/jsxRuntime.jsx("div", {
66
- className: "neeto-form-engine-spinner",
67
- children: /*#__PURE__*/jsxRuntime.jsx("svg", {
68
- fill: "none",
69
- height: size,
70
- viewBox: "0 0 25 24",
71
- width: size,
72
- xmlns: "http://www.w3.org/2000/svg",
73
- children: /*#__PURE__*/jsxRuntime.jsx("path", {
74
- d: "M12.5 5.00098V8.75M17.4401 7.04867L14.9888 9.5M19.5008 11.9994H15.5M17.4401 16.9372L14.9888 14.4859M12.5023 18.9979V15M7.5516 16.9372L10.4888 14M5.50391 11.9994H9.5M7.5516 7.04867L10.0029 9.5",
75
- stroke: "#87929D",
76
- strokeLinecap: "round",
77
- strokeLinejoin: "round",
78
- strokeWidth: "1.5"
79
- })
80
- })
81
- });
82
- };
83
- var Spinner$1 = /*#__PURE__*/React.memo(Spinner);
84
-
85
- var _excluded = ["label", "loading", "success", "className"];
86
- function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
87
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
88
- var Button = function Button(_ref) {
89
- var label = _ref.label,
90
- _ref$loading = _ref.loading,
91
- loading = _ref$loading === void 0 ? false : _ref$loading,
92
- _ref$success = _ref.success,
93
- success = _ref$success === void 0 ? false : _ref$success,
94
- _ref$className = _ref.className,
95
- className = _ref$className === void 0 ? "" : _ref$className,
96
- otherProps = _objectWithoutProperties(_ref, _excluded);
97
- return /*#__PURE__*/jsxRuntime.jsxs("button", _objectSpread$2(_objectSpread$2({
98
- className: classnames("neeto-form-engine-button", className)
99
- }, otherProps), {}, {
100
- children: [loading && /*#__PURE__*/jsxRuntime.jsx(ButtonLoader, {}), success && /*#__PURE__*/jsxRuntime.jsx(Success$2, {}), label]
101
- }));
102
- };
103
- var ButtonLoader = function ButtonLoader() {
104
- return /*#__PURE__*/jsxRuntime.jsx("div", {
105
- className: "neeto-form-engine-button__loader",
106
- children: /*#__PURE__*/jsxRuntime.jsx(Spinner$1, {})
107
- });
108
- };
109
- var Success$2 = function Success() {
110
- return /*#__PURE__*/jsxRuntime.jsx("div", {
111
- className: "neeto-form-engine-button__success",
112
- children: /*#__PURE__*/jsxRuntime.jsx(Check, {})
113
- });
114
- };
115
-
116
- var Callout = function Callout(_ref) {
117
- var _ref$style = _ref.style,
118
- style = _ref$style === void 0 ? yup.CALLOUT_STYLES.ERROR : _ref$style,
119
- _ref$position = _ref.position,
120
- position = _ref$position === void 0 ? yup.CALLOUT_POSITIONS.ABSOLUTE : _ref$position,
121
- _ref$callout = _ref.callout,
122
- callout = _ref$callout === void 0 ? {} : _ref$callout,
123
- children = _ref.children,
124
- className = _ref.className,
125
- onClose = _ref.onClose;
126
- var isVisible = callout.isVisible,
127
- title = callout.title,
128
- message = callout.message,
129
- primaryButton = callout.primaryButton,
130
- secondaryButton = callout.secondaryButton;
131
- if (!isVisible) return null;
132
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
133
- className: classnames("neeto-form-engine-callout", _defineProperty({
134
- "neeto-form-engine-callout--error": style === yup.CALLOUT_STYLES.ERROR,
135
- "neeto-form-engine-callout--info": style === yup.CALLOUT_STYLES.INFO,
136
- "neeto-form-engine-callout--static": position === yup.CALLOUT_POSITIONS.STATIC,
137
- "neeto-form-engine-callout--absolute": position === yup.CALLOUT_POSITIONS.ABSOLUTE
138
- }, className, className)),
139
- children: [neetoCist.isPresent(onClose) && /*#__PURE__*/jsxRuntime.jsx("button", {
140
- className: "neeto-form-engine-callout__close",
141
- onClick: onClose,
142
- children: /*#__PURE__*/jsxRuntime.jsx(Close, {
143
- size: 16
144
- })
145
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
146
- className: "neeto-form-engine-callout__content",
147
- children: [ramda.not(index$1.isBlank(title)) && /*#__PURE__*/jsxRuntime.jsx("h5", {
148
- children: title
149
- }), /*#__PURE__*/jsxRuntime.jsx("p", {
150
- children: message
151
- })]
152
- }), primaryButton && /*#__PURE__*/jsxRuntime.jsx(Button, {
153
- label: primaryButton.label,
154
- size: "small",
155
- onClick: primaryButton.onClick
156
- }), secondaryButton && /*#__PURE__*/jsxRuntime.jsx(Button, {
157
- label: secondaryButton.label,
158
- size: "small",
159
- onClick: secondaryButton.onClick
160
- }), children]
161
- });
162
- };
163
-
164
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
165
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
166
- var withI18nInstance = function withI18nInstance(Component, i18n) {
167
- var I18nWrapper = function I18nWrapper(props) {
168
- return /*#__PURE__*/jsxRuntime.jsx(reactI18next.I18nextProvider, {
169
- i18n: i18n,
170
- children: /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$1({}, props))
171
- });
172
- };
173
- I18nWrapper.displayName = "I18nWrapper(".concat(index$1.getComponentDisplayName(Component), ")");
174
- return I18nWrapper;
175
- };
176
-
177
- var useIsMounted = function useIsMounted() {
178
- var isMounted = React.useRef(true);
179
- React.useEffect(function () {
180
- return function () {
181
- isMounted.current = false;
182
- };
183
- }, []);
184
- return function () {
185
- return isMounted.current;
186
- };
187
- };
188
-
189
- var Success = reactUtils.withT(function (_ref) {
190
- var t = _ref.t;
191
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
192
- className: "neeto-form-nano-external-form-thank-you flex h-full w-full flex-col items-center justify-center space-y-3 py-20",
193
- children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
194
- style: "h1",
195
- children: "\uD83C\uDF89"
196
- }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
197
- className: "text-center",
198
- style: "h2",
199
- children: t("neetoForm.successPage.title1")
200
- }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
201
- className: "text-center",
202
- style: "body2",
203
- children: t("neetoForm.successPage.title2")
204
- })]
205
- });
206
- });
207
- var Success$1 = /*#__PURE__*/React.memo(Success);
208
-
209
- function ownKeys(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; }
210
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
211
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
212
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
213
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
214
- var ExternalForm = function ExternalForm(_ref) {
215
- var _path, _formikInnerRef$curre;
216
- var _ref$size = _ref.size,
217
- size = _ref$size === void 0 ? "medium" : _ref$size,
218
- _ref$preview = _ref.preview,
219
- preview = _ref$preview === void 0 ? false : _ref$preview,
220
- formId = _ref.formId,
221
- submissionId = _ref.submissionId,
222
- customSubmitHandler = _ref.customSubmitHandler,
223
- onBeforeSubmit = _ref.onBeforeSubmit,
224
- onSubmitSuccess = _ref.onSubmitSuccess,
225
- _ref$showTitle = _ref.showTitle,
226
- showTitle = _ref$showTitle === void 0 ? true : _ref$showTitle,
227
- formTitle = _ref.formTitle,
228
- submitButtonProps = _ref.submitButtonProps,
229
- cancelButtonProps = _ref.cancelButtonProps,
230
- resetButtonProps = _ref.resetButtonProps,
231
- _ref$displayThankYou = _ref.displayThankYou,
232
- displayThankYou = _ref$displayThankYou === void 0 ? true : _ref$displayThankYou,
233
- _ref$showEmptyState = _ref.showEmptyState,
234
- showEmptyState = _ref$showEmptyState === void 0 ? true : _ref$showEmptyState,
235
- className = _ref.className,
236
- _ref$preserveValues = _ref.preserveValues,
237
- preserveValues = _ref$preserveValues === void 0 ? false : _ref$preserveValues,
238
- _ref$clearValuesOnRes = _ref.clearValuesOnReset,
239
- clearValuesOnReset = _ref$clearValuesOnRes === void 0 ? false : _ref$clearValuesOnRes,
240
- _ref$clearValuesOnSub = _ref.clearValuesOnSubmit,
241
- clearValuesOnSubmit = _ref$clearValuesOnSub === void 0 ? false : _ref$clearValuesOnSub,
242
- _ref$initialValues = _ref.initialValues,
243
- initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues,
244
- onChange = _ref.onChange,
245
- formDomProps = _ref.formDomProps,
246
- _ref$editorProps = _ref.editorProps,
247
- editorProps = _ref$editorProps === void 0 ? {} : _ref$editorProps,
248
- customValidator = _ref.customValidator,
249
- _ref$autoCompleteKind = _ref.autoCompleteKinds,
250
- autoCompleteKinds = _ref$autoCompleteKind === void 0 ? [] : _ref$autoCompleteKind,
251
- _ref$enablePreFilling = _ref.enablePreFilling,
252
- enablePreFilling = _ref$enablePreFilling === void 0 ? false : _ref$enablePreFilling,
253
- _ref$language = _ref.language,
254
- language = _ref$language === void 0 ? i18next.resolvedLanguage : _ref$language;
255
- var _useState = React.useState(false),
256
- _useState2 = _slicedToArray(_useState, 2),
257
- isSubmitted = _useState2[0],
258
- setIsSubmitted = _useState2[1];
259
- var _useState3 = React.useState(false),
260
- _useState4 = _slicedToArray(_useState3, 2),
261
- showSuccess = _useState4[0],
262
- setShowSuccess = _useState4[1];
263
- var _useState5 = React.useState(utils.getWithExpiry("".concat(formId, "/values"))),
264
- _useState6 = _slicedToArray(_useState5, 2),
265
- localValues = _useState6[0],
266
- setLocalValues = _useState6[1];
267
- var isMounted = useIsMounted();
268
- var _useState7 = React.useState(null),
269
- _useState8 = _slicedToArray(_useState7, 2),
270
- error = _useState8[0],
271
- setError = _useState8[1];
272
- var formRef = React.useRef();
273
- var formikInnerRef = React.useRef();
274
- var editorRef = React.useRef();
275
- var captchaRef = React.useRef(null);
276
- var queryClient = reactQuery.useQueryClient();
277
- var _usePublicForm = constants.usePublicForm({
278
- formId: formId,
279
- language: language,
280
- preview: preview,
281
- enabled: !preview
282
- }),
283
- _usePublicForm$data = _usePublicForm.data,
284
- form = _usePublicForm$data === void 0 ? {
285
- title: "",
286
- questions: [],
287
- isQuestionsLoading: true
288
- } : _usePublicForm$data,
289
- isLoading = _usePublicForm.isLoading;
290
- var title = form.title,
291
- _form$questions = form.questions,
292
- questions = _form$questions === void 0 ? [] : _form$questions;
293
- var formUuid = (_path = ramda.path([0, "formId"], questions)) !== null && _path !== void 0 ? _path : formId;
294
- React.useEffect(function () {
295
- if (ramda.equals(language, utils.clientI18nInstance.resolvedLanguage)) return;
296
- utils.clientI18nInstance.changeLanguage(language);
297
- }, [language]);
298
- React.useEffect(function () {
299
- if (!preserveValues) utils.clearEmailVerificationDetails(formUuid);
300
- }, []);
301
- var _useTranslation = reactI18next.useTranslation(),
302
- t = _useTranslation.t;
303
- React.useEffect(function () {
304
- setLocalValues(utils.getWithExpiry("".concat(formId, "/values")));
305
- }, [formId]);
306
- var _useCreateSubmission = constants.useCreateSubmission({
307
- enabled: !submissionId
308
- }),
309
- createSubmission = _useCreateSubmission.mutateAsync;
310
- var _useUpdateSubmission = constants.useUpdateSubmission({
311
- enabled: !!submissionId
312
- }),
313
- updateSubmission = _useUpdateSubmission.mutateAsync;
314
- var _useSubmission = constants.useSubmission({
315
- formId: formId,
316
- submissionId: submissionId,
317
- placeholderData: submissionId ? {
318
- responses: [],
319
- isLoading: true
320
- } : {},
321
- enabled: !!submissionId
322
- }),
323
- submission = _useSubmission.data;
324
- var clearLocalFormValues = function clearLocalFormValues() {
325
- return utils.clearLocalStorageValues("".concat(formId, "/values"));
326
- };
327
- var onSubmit = /*#__PURE__*/function () {
328
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values, _ref2) {
329
- var setSubmitting, responses, newResponses, data;
330
- return _regeneratorRuntime.wrap(function _callee$(_context) {
331
- while (1) switch (_context.prev = _context.next) {
332
- case 0:
333
- setSubmitting = _ref2.setSubmitting;
334
- setError(null);
335
- responses = utils.generateFormResponse(values, questions);
336
- _context.prev = 3;
337
- if (!preview) {
338
- _context.next = 9;
339
- break;
340
- }
341
- _context.next = 7;
342
- return new Promise(function (resolve) {
343
- return setTimeout(function () {
344
- resolve();
345
- setIsSubmitted(true);
346
- setTimeout(function () {
347
- return setShowSuccess(true);
348
- }, 1000);
349
- }, 1500);
350
- });
351
- case 7:
352
- _context.next = 34;
353
- break;
354
- case 9:
355
- if (!onBeforeSubmit) {
356
- _context.next = 14;
357
- break;
358
- }
359
- _context.next = 12;
360
- return onBeforeSubmit(responses, values);
361
- case 12:
362
- newResponses = _context.sent;
363
- if (newResponses) {
364
- responses = newResponses;
365
- }
366
- case 14:
367
- if (!customSubmitHandler) {
368
- _context.next = 21;
369
- break;
370
- }
371
- _context.next = 17;
372
- return customSubmitHandler({
373
- responses: responses,
374
- values: values
375
- }, clearLocalFormValues);
376
- case 17:
377
- data = _context.sent;
378
- queryClient.invalidateQueries({
379
- queryKey: [constants.QUERY_KEYS.SUBMISSION, formId, submissionId]
380
- });
381
- _context.next = 30;
382
- break;
383
- case 21:
384
- if (!submissionId) {
385
- _context.next = 27;
386
- break;
387
- }
388
- _context.next = 24;
389
- return updateSubmission({
390
- formId: formId,
391
- values: {
392
- neetoFormResponse: {
393
- submissionId: submissionId,
394
- responses: responses
395
- }
396
- }
397
- });
398
- case 24:
399
- data = _context.sent;
400
- _context.next = 30;
401
- break;
402
- case 27:
403
- _context.next = 29;
404
- return createSubmission({
405
- formId: formId,
406
- values: {
407
- neetoFormResponse: {
408
- responses: responses
409
- }
410
- }
411
- });
412
- case 29:
413
- data = _context.sent;
414
- case 30:
415
- clearValuesOnSubmit && clearLocalFormValues();
416
- setTimeout(function () {
417
- return utils.clearEmailVerificationDetails(formUuid);
418
- }, 1000);
419
- onSubmitSuccess === null || onSubmitSuccess === void 0 || onSubmitSuccess({
420
- values: values,
421
- responses: responses,
422
- data: data
423
- }, clearLocalFormValues);
424
- if (isMounted()) {
425
- setIsSubmitted(true);
426
- setTimeout(function () {
427
- return setShowSuccess(true);
428
- }, 1000);
429
- }
430
- case 34:
431
- _context.next = 39;
432
- break;
433
- case 36:
434
- _context.prev = 36;
435
- _context.t0 = _context["catch"](3);
436
- setError(index$1.parseServerError(_context.t0));
437
- case 39:
438
- _context.prev = 39;
439
- if (isMounted()) {
440
- setSubmitting(false);
441
- }
442
- return _context.finish(39);
443
- case 42:
444
- case "end":
445
- return _context.stop();
446
- }
447
- }, _callee, null, [[3, 36, 39, 42]]);
448
- }));
449
- return function onSubmit(_x, _x2) {
450
- return _ref3.apply(this, arguments);
451
- };
452
- }();
453
- var _onReset = function onReset(e, handleReset) {
454
- var _editorRef$current, _captchaRef$current, _formDomProps$onReset;
455
- if (clearValuesOnReset) {
456
- utils.clearLocalStorageValues("".concat(formId, "/values"));
457
- setLocalValues(utils.generateInitValues({
458
- questions: questions
459
- }));
460
- submissionId && queryClient.setQueryData([constants.QUERY_KEYS.SUBMISSION, formId, submissionId], {
461
- responses: []
462
- });
463
- }
464
- editorRef === null || editorRef === void 0 || (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.editor) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.commands) === null || _editorRef$current === void 0 || _editorRef$current.setContent("");
465
- (_captchaRef$current = captchaRef.current) === null || _captchaRef$current === void 0 || _captchaRef$current.reset();
466
- handleReset(e);
467
- formDomProps === null || formDomProps === void 0 || (_formDomProps$onReset = formDomProps.onReset) === null || _formDomProps$onReset === void 0 || _formDomProps$onReset.call(formDomProps, e);
468
- utils.clearEmailVerificationDetails(formUuid);
469
- };
470
- var handleScrollToError = function handleScrollToError(errors) {
471
- if (!formRef.current) return;
472
- var errorKeys = Object.keys(errors);
473
- if (ramda.isEmpty(errorKeys)) return;
474
- var _iterator = _createForOfIteratorHelper(formRef.current),
475
- _step;
476
- try {
477
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
478
- var formElement = _step.value;
479
- if (errorKeys.includes(formElement.name)) {
480
- formElement.scrollIntoView({
481
- behavior: "smooth",
482
- block: "center"
483
- });
484
- break;
485
- }
486
- }
487
- } catch (err) {
488
- _iterator.e(err);
489
- } finally {
490
- _iterator.f();
491
- }
492
- };
493
- var _queryClient$getQuery = queryClient.getQueryState([constants.QUERY_KEYS.QUESTIONS, formId, language]),
494
- dataUpdateCount = _queryClient$getQuery.dataUpdateCount;
495
- var keyPressRef = useHotkeys("command+enter", ((_formikInnerRef$curre = formikInnerRef.current) === null || _formikInnerRef$curre === void 0 ? void 0 : _formikInnerRef$curre.handleSubmit) || neetoCist.noop, {
496
- mode: "scoped"
497
- });
498
- if (isLoading || form.isQuestionsLoading || !!submissionId && submission !== null && submission !== void 0 && submission.isLoading) {
499
- return /*#__PURE__*/jsxRuntime.jsx("div", {
500
- className: "loader flex h-full w-full items-center justify-center",
501
- children: /*#__PURE__*/jsxRuntime.jsx(PageLoader, {})
502
- });
503
- }
504
- var displayTitle = formTitle || title;
505
- var renderedQuestions = preview ? questions : neetoCist.removeBy({
506
- isHidden: true
507
- }, questions);
508
- if (displayThankYou && showSuccess) {
509
- return /*#__PURE__*/jsxRuntime.jsx(Success$1, {});
510
- }
511
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
512
- className: classnames("neeto-form-nano-external-form", {
513
- "neeto-form-nano-external-form--size-large": size === "large",
514
- "neeto-form-nano-external-form--size-medium": size === "medium"
515
- }),
516
- children: [showTitle && displayTitle && /*#__PURE__*/jsxRuntime.jsx("div", {
517
- className: "neeto-form-nano-external-form-header py-6",
518
- children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
519
- className: "neeto-ui-text-gray-800 neeto-form-nano-external-form-title",
520
- style: "h4",
521
- weight: "semibold",
522
- children: displayTitle
523
- })
524
- }), /*#__PURE__*/jsxRuntime.jsx(formik.Formik, {
525
- onSubmit: onSubmit,
526
- enableReinitialize: true,
527
- innerRef: formikInnerRef,
528
- initialValues: utils.generateInitValues({
529
- questions: questions,
530
- initialValues: submission === null || submission === void 0 ? void 0 : submission.responses,
531
- localValues: preserveValues ? localValues : initialValues,
532
- fieldCodes: enablePreFilling ? utils$1.getQueryParams({
533
- toCamelCase: false
534
- }) : {}
535
- }),
536
- children: function children(_ref4) {
537
- var isSubmitting = _ref4.isSubmitting,
538
- errors = _ref4.errors,
539
- setFieldError = _ref4.setFieldError,
540
- handleReset = _ref4.handleReset;
541
- return /*#__PURE__*/jsxRuntime.jsxs(utils.FormikWrap, {
542
- dataUpdateCount: dataUpdateCount,
543
- formId: formId,
544
- preserveValues: preserveValues,
545
- onError: handleScrollToError,
546
- onValuesChange: onChange,
547
- children: [/*#__PURE__*/jsxRuntime.jsxs(formik.Form, _objectSpread(_objectSpread({
548
- noValidate: true,
549
- ref: utils.mergeRefs(formRef, keyPressRef),
550
- className: classnames("neeto-form-engine-form relative", _defineProperty({
551
- "space-y-6": size === "large",
552
- "space-y-4": size === "medium"
553
- }, className, className)),
554
- onChange: function onChange(event) {
555
- if (ramda.isEmpty(errors)) return;
556
- setFieldError(event.target.name, "");
557
- }
558
- }, formDomProps), {}, {
559
- onReset: function onReset(e) {
560
- return _onReset(e, handleReset);
561
- },
562
- children: [(submission === null || submission === void 0 ? void 0 : submission.isLoading) && /*#__PURE__*/jsxRuntime.jsx("div", {
563
- className: "neeto-ui-bg-gray-100 absolute bottom-0 start-0 end-0 top-0 flex items-center justify-center opacity-75",
564
- children: /*#__PURE__*/jsxRuntime.jsx(Spinner$2, {})
565
- }), renderedQuestions.map(function (question, index) {
566
- var _question$id;
567
- var FieldComponent = utils.getFieldComponent(question);
568
- var isLastFewElements = index >= renderedQuestions.length - yup.LAST_ELEMENTS_THRESHOLD;
569
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
570
- className: "w-full flex flex-col gap-2",
571
- children: [/*#__PURE__*/jsxRuntime.jsx(FieldComponent, {
572
- captchaRef: captchaRef,
573
- editorProps: editorProps,
574
- editorRef: editorRef,
575
- isLastFewElements: isLastFewElements,
576
- preview: preview,
577
- question: question,
578
- customValidator: customValidator === null || customValidator === void 0 ? void 0 : customValidator(question),
579
- autoComplete: utils.buildAutoCompleteAttribute(question.kind, autoCompleteKinds, formDomProps)
580
- }), question.isHidden && /*#__PURE__*/jsxRuntime.jsx(NeetoUICallout, {
581
- "data-testid": "hidden-question-callout",
582
- icon: Warning,
583
- style: "warning",
584
- children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
585
- style: "body2",
586
- children: t("neetoForm.callouts.hiddenQuestion")
587
- })
588
- }), preview && question.isResponseVisibleOnlyToHost && /*#__PURE__*/jsxRuntime.jsx(NeetoUICallout, {
589
- "data-testid": "response-visible-only-to-host-callout",
590
- icon: Warning,
591
- style: "warning",
592
- children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
593
- style: "body2",
594
- children: t("neetoForm.callouts.responseVisibleOnlyToHost")
595
- })
596
- })]
597
- }, (_question$id = question.id) !== null && _question$id !== void 0 ? _question$id : question.nodeId);
598
- }), showEmptyState && ramda.isEmpty(renderedQuestions) && /*#__PURE__*/jsxRuntime.jsx("div", {
599
- className: "flex w-full grow items-center justify-center py-8",
600
- children: /*#__PURE__*/jsxRuntime.jsx(NoData, {
601
- className: "min-h-80",
602
- title: t("neetoForm.questions.common.noData")
603
- })
604
- }), !ramda.isEmpty(renderedQuestions) && /*#__PURE__*/jsxRuntime.jsxs("div", {
605
- className: "neeto-form-nano-form-footer mt-8 flex items-center justify-between",
606
- children: [cancelButtonProps && /*#__PURE__*/jsxRuntime.jsx(Button$1, _objectSpread({
607
- label: t("neetoForm.common.cancel"),
608
- style: "secondary"
609
- }, cancelButtonProps)), /*#__PURE__*/jsxRuntime.jsx("div", {
610
- className: "flex gap-x-2",
611
- children: utils.renderButtonsInOrder([/*#__PURE__*/jsxRuntime.jsx(Button$1, _objectSpread({
612
- disabled: isSubmitting || isSubmitted,
613
- label: t("neetoForm.common.submit"),
614
- loading: isSubmitting,
615
- type: "submit"
616
- }, submitButtonProps), "submit"), /*#__PURE__*/jsxRuntime.jsx(Button$1, _objectSpread({
617
- label: t("neetoForm.common.reset"),
618
- style: "secondary",
619
- type: "reset"
620
- }, resetButtonProps), "reset")], neetoCist.isPresent(cancelButtonProps))
621
- })]
622
- })]
623
- })), !customSubmitHandler && /*#__PURE__*/jsxRuntime.jsx(Callout, {
624
- callout: {
625
- isVisible: neetoCist.isPresent(error),
626
- title: t("neetoForm.callouts.submitError"),
627
- message: error
628
- },
629
- onClose: function onClose() {
630
- return setError(null);
631
- }
632
- })]
633
- });
634
- }
635
- })]
636
- });
637
- };
638
- var index = withI18nInstance(ExternalForm, utils.clientI18nInstance);
639
-
640
- module.exports = index;
641
- //# sourceMappingURL=ExternalForm.js.map