@bigbinary/neeto-email-notifications-frontend 2.2.22 → 2.2.23

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.
@@ -1,71 +1,1600 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
- import { useRef } from 'react';
4
- import { isNotEmpty, isNotPresent, noop } from '@bigbinary/neeto-cist';
5
- import EmailForm from '@bigbinary/neeto-molecules/EmailForm';
6
- import Spinner from '@bigbinary/neetoui/Spinner';
7
- import { prop, isEmpty, pick, mergeLeft, mergeDeepLeft } from 'ramda';
8
- import { useTranslation } from 'react-i18next';
9
- import { useQuery } from '@tanstack/react-query';
10
- import { DEFAULT_STALE_TIME } from '@bigbinary/neeto-commons-frontend/constants';
11
- import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
12
- import axios from 'axios';
3
+ import { memo, useState, useRef, Fragment, useEffect, useLayoutEffect, useContext, createElement, createContext } from 'react';
4
+ import { isPresent, findBy, noop, hyphenate, isNotEmpty, notEqualsDeep, isNotPresent } from '@bigbinary/neeto-cist';
5
+ import classnames from 'classnames';
6
+ import withT from '@bigbinary/neeto-commons-frontend/react-utils/withT';
7
+ import EditorContent from '@bigbinary/neeto-editor/EditorContent';
8
+ import Typography from '@bigbinary/neetoui/Typography';
9
+ import Button from '@bigbinary/neetoui/Button';
10
+ import { S as SvgAvatarPlaceholder, P as PropTypes, a as Papa, u as useFetchEmailNotifications, b as useUpdateEmailNotification, c as useResetEmailNotificationToDefault } from './emailNotificationApi-rMt-NHkm.js';
11
+ import { jsxs, jsx, Fragment as Fragment$1 } from 'react/jsx-runtime';
12
+ import { useFormikContext, Field } from 'formik';
13
+ import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
14
+ import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
15
+ import Radio from '@bigbinary/neetoui/formik/Radio';
16
+ import { prop, isEmpty, mergeLeft, uniqBy, mergeRight, pluck, equals, pick, mergeDeepLeft } from 'ramda';
17
+ import { Trans, useTranslation } from 'react-i18next';
18
+ import { t as t$1 } from 'i18next';
19
+ import { isEditorEmpty } from '@bigbinary/neeto-editor/utils';
13
20
  import * as yup from 'yup';
14
21
  import { string } from 'yup';
15
- import { jsx } from 'react/jsx-runtime';
22
+ import Select from '@bigbinary/neetoui/formik/Select';
23
+ import Input$1 from '@bigbinary/neetoui/formik/Input';
24
+ import _typeof from '@babel/runtime/helpers/typeof';
25
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
26
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
27
+ import Upload from '@bigbinary/neeto-icons/Upload';
28
+ import Toastr from '@bigbinary/neetoui/Toastr';
29
+ import MultiEmailInput from '@bigbinary/neetoui/formik/MultiEmailInput';
30
+ import Pane from '@bigbinary/neetoui/Pane';
31
+ import { useDropzone } from 'react-dropzone';
32
+ import Download from '@bigbinary/neeto-icons/Download';
33
+ import Callout from '@bigbinary/neetoui/Callout';
34
+ import 'stream';
35
+ import { joinHyphenCase, hyphenize, buildUrl, withEventTargetValue } from '@bigbinary/neeto-commons-frontend/utils/general';
36
+ import Input from '@bigbinary/neetoui/Input';
37
+ import Braces from '@bigbinary/neeto-icons/Braces';
38
+ import Dropdown from '@bigbinary/neetoui/Dropdown';
39
+ import Tooltip from '@bigbinary/neetoui/Tooltip';
40
+ import BlockNavigation from '@bigbinary/neetoui/formik/BlockNavigation';
41
+ import Switch from '@bigbinary/neetoui/formik/Switch';
42
+ import { withT as withT$1 } from '@bigbinary/neeto-commons-frontend/react-utils';
43
+ import { Link, useHistory } from 'react-router-dom';
44
+ import Help from '@bigbinary/neeto-icons/Help';
45
+ import Popover from '@bigbinary/neetoui/Popover';
46
+ import MenuHorizontal from '@bigbinary/neeto-icons/MenuHorizontal';
47
+ import MenuVertical from '@bigbinary/neeto-icons/MenuVertical';
48
+ import useFuncDebounce from '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
49
+ import useQueryParams from '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
50
+ import useUpdateEffect from '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
51
+ import Search$1 from '@bigbinary/neeto-icons/Search';
52
+ import { getQueryParams } from '@bigbinary/neeto-commons-frontend/utils';
53
+ import Form from '@bigbinary/neetoui/formik/Form';
54
+ import Spinner from '@bigbinary/neetoui/Spinner';
55
+ import '@tanstack/react-query';
56
+ import '@bigbinary/neeto-commons-frontend/constants';
57
+ import 'axios';
58
+
59
+ var MemoizedEditorContent = /*#__PURE__*/memo(EditorContent);
60
+ var EmailPreview = withT(function (_ref) {
61
+ var t = _ref.t,
62
+ _ref$to = _ref.to,
63
+ to = _ref$to === void 0 ? [] : _ref$to,
64
+ from = _ref.from,
65
+ subject = _ref.subject,
66
+ body = _ref.body,
67
+ actionButtonText = _ref.actionButtonText,
68
+ logo = _ref.logo,
69
+ _ref$className = _ref.className,
70
+ className = _ref$className === void 0 ? "" : _ref$className,
71
+ customContent = _ref.customContent;
72
+ return /*#__PURE__*/jsxs("div", {
73
+ "data-testid": "email-preview-card",
74
+ className: classnames("neeto-ui-bg-white neeto-ui-rounded-lg neeto-ui-theme--light neeto-notification-email-wrapper__preview relative flex flex-1 flex-col px-6 py-8", className),
75
+ children: [/*#__PURE__*/jsx("div", {
76
+ className: "neeto-molecules-email-preview-ribbon",
77
+ children: t("neetoMolecules.emailPreview.previewMessage")
78
+ }), /*#__PURE__*/jsxs("div", {
79
+ className: "w-full pb-4",
80
+ children: [/*#__PURE__*/jsx(Typography, {
81
+ className: "neeto-ui-text-gray-800 min-w-0 grow space-x-2 break-words",
82
+ "data-testid": "email-subject-preview",
83
+ lineHeight: "normal",
84
+ style: "h4",
85
+ children: /*#__PURE__*/jsx("span", {
86
+ children: subject || /*#__PURE__*/jsx("span", {
87
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40"
88
+ })
89
+ })
90
+ }), /*#__PURE__*/jsxs("div", {
91
+ className: "mt-4 flex items-center gap-2",
92
+ children: [/*#__PURE__*/jsx("div", {
93
+ className: "shrink-0",
94
+ children: /*#__PURE__*/jsx(SvgAvatarPlaceholder, {})
95
+ }), /*#__PURE__*/jsxs("div", {
96
+ className: "neeto-ui-flex-col flex gap-1",
97
+ children: [isPresent(from) ? /*#__PURE__*/jsx(Typography, {
98
+ style: "h6",
99
+ weight: "medium",
100
+ children: from
101
+ }) : /*#__PURE__*/jsxs("div", {
102
+ className: "flex gap-2",
103
+ children: [/*#__PURE__*/jsx("span", {
104
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded-full h-2 w-24"
105
+ }), /*#__PURE__*/jsx("span", {
106
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded-full h-2 w-24"
107
+ })]
108
+ }), isPresent(to) ? /*#__PURE__*/jsx(Typography, {
109
+ className: "neeto-ui-text-gray-500 line-clamp-1",
110
+ "data-testid": "email-to-block",
111
+ style: "nano",
112
+ children: to.join(", ")
113
+ }) : /*#__PURE__*/jsx("span", {
114
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded-full h-2 w-16",
115
+ "data-testid": "email-to-block"
116
+ })]
117
+ })]
118
+ })]
119
+ }), /*#__PURE__*/jsx("div", {
120
+ className: "neeto-ui-rounded neeto-ui-bg-gray-100 flex flex-1 flex-col justify-between gap-y-6 px-6 py-4 text-base leading-relaxed",
121
+ "data-testid": "email-body-preview-container",
122
+ children: /*#__PURE__*/jsxs("div", {
123
+ className: "neeto-ui-bg-white w-full p-6 md:p-8 2xl:mx-auto 2xl:max-w-lg",
124
+ children: [body ? /*#__PURE__*/jsx(MemoizedEditorContent, {
125
+ className: "whitespace-normal",
126
+ content: body
127
+ }) : /*#__PURE__*/jsxs("div", {
128
+ className: "flex flex-col gap-y-4",
129
+ children: [/*#__PURE__*/jsx("div", {
130
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-48 max-w-full md:w-80"
131
+ }), /*#__PURE__*/jsx("div", {
132
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40 max-w-full md:w-72"
133
+ }), /*#__PURE__*/jsx("div", {
134
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-48 max-w-full md:w-80"
135
+ })]
136
+ }), customContent && customContent, actionButtonText && /*#__PURE__*/jsx("div", {
137
+ className: "mt-6 flex w-full items-center justify-center",
138
+ children: /*#__PURE__*/jsx(Button, {
139
+ className: "pointer-events-none",
140
+ label: actionButtonText
141
+ })
142
+ }), logo && /*#__PURE__*/jsx("img", {
143
+ alt: t("neetoMolecules.emailPreview.logoAltText"),
144
+ className: "h-20 w-36 object-cover",
145
+ "data-testid": "company-logo-preview",
146
+ src: logo
147
+ })]
148
+ })
149
+ })]
150
+ });
151
+ });
152
+ EmailPreview.propTypes = {
153
+ /**
154
+ * The value of the send-to field.
155
+ */
156
+ to: PropTypes.arrayOf(PropTypes.string),
157
+ /**
158
+ * The value of the send-from field.
159
+ */
160
+ from: PropTypes.string,
161
+ /**
162
+ * The subject of the email.
163
+ */
164
+ subject: PropTypes.string,
165
+ /**
166
+ * The body of the email.
167
+ */
168
+ body: PropTypes.string,
169
+ /**
170
+ * The text to be shown in the action button.
171
+ */
172
+ actionButtonText: PropTypes.string,
173
+ /**
174
+ * Source link for the company logo.
175
+ */
176
+ logo: PropTypes.string,
177
+ /**
178
+ * To pass custom content that will be rendered above the action button.
179
+ */
180
+ customContent: PropTypes.string
181
+ };
182
+
183
+ var CSV_FILE_SIZE_IN_KB = 32;
184
+ var ONE_KILOBYTE_IN_BYTES = 1024;
185
+ var DOWNLOAD_SAMPLE_EMAIL_CSV_FILE = "https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv";
186
+
187
+ var Requirements = withT(function (_ref) {
188
+ var t = _ref.t,
189
+ fileSize = _ref.fileSize;
190
+ return /*#__PURE__*/jsxs(Callout, {
191
+ className: "flex flex-col items-center py-6",
192
+ style: "info",
193
+ children: [/*#__PURE__*/jsxs("ul", {
194
+ className: "flex list-outside list-disc flex-col gap-y-1 font-normal leading-normal",
195
+ children: [fileSize && /*#__PURE__*/jsx("li", {
196
+ children: t("neetoMolecules.shareViaLink.requirements.fileTypeAndSize", {
197
+ limit: fileSize
198
+ })
199
+ }), /*#__PURE__*/jsx("li", {
200
+ children: /*#__PURE__*/jsx(Trans, {
201
+ components: {
202
+ strong: /*#__PURE__*/jsx("strong", {
203
+ className: "font-semibold"
204
+ })
205
+ },
206
+ i18nKey: "neetoMolecules.shareViaLink.requirements.shouldContainColumns"
207
+ })
208
+ })]
209
+ }), /*#__PURE__*/jsx(Button, {
210
+ href: DOWNLOAD_SAMPLE_EMAIL_CSV_FILE,
211
+ icon: Download,
212
+ iconPosition: "left",
213
+ label: t("neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV"),
214
+ style: "link"
215
+ })]
216
+ });
217
+ });
218
+ var Requirements$1 = /*#__PURE__*/memo(Requirements);
219
+
220
+ function ownKeys$1$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
221
+ function _objectSpread$1$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
222
+ var BulkUploadPane = function BulkUploadPane(_ref) {
223
+ var _fileRejections$;
224
+ var isOpen = _ref.isOpen,
225
+ fileSize = _ref.fileSize,
226
+ onClose = _ref.onClose,
227
+ handleFileSubmit = _ref.handleFileSubmit;
228
+ var _useDropzone = useDropzone({
229
+ accept: {
230
+ "text/csv": []
231
+ },
232
+ maxFiles: 1,
233
+ maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,
234
+ onDrop: function onDrop(files) {
235
+ return files[0] && handleFileSubmit(files[0]);
236
+ }
237
+ }),
238
+ getRootProps = _useDropzone.getRootProps,
239
+ getInputProps = _useDropzone.getInputProps,
240
+ isDragActive = _useDropzone.isDragActive,
241
+ fileRejections = _useDropzone.fileRejections;
242
+ var errors = (_fileRejections$ = fileRejections[0]) === null || _fileRejections$ === void 0 ? void 0 : _fileRejections$.errors.map(function (_ref2) {
243
+ var message = _ref2.message,
244
+ code = _ref2.code;
245
+ return /*#__PURE__*/jsx(Typography, {
246
+ className: "neeto-ui-text-error-500 items",
247
+ "data-testid": "file-input-error-message",
248
+ style: "body3",
249
+ children: message
250
+ }, code);
251
+ });
252
+ var _useTranslation = useTranslation(),
253
+ t = _useTranslation.t;
254
+ return /*#__PURE__*/jsx(Pane, {
255
+ isOpen: isOpen,
256
+ onClose: onClose,
257
+ "data-testid": "bulk-upload-pane",
258
+ children: /*#__PURE__*/jsxs("div", {
259
+ tabIndex: 0,
260
+ children: [/*#__PURE__*/jsx(Pane.Header, {
261
+ children: /*#__PURE__*/jsx(Typography, {
262
+ "data-testid": "bulk-upload-header",
263
+ style: "h2",
264
+ weight: "semibold",
265
+ children: t("neetoMolecules.shareViaLink.bulkUpload")
266
+ })
267
+ }), /*#__PURE__*/jsx(Pane.Body, {
268
+ children: /*#__PURE__*/jsxs("div", {
269
+ className: "flex w-full flex-col gap-y-4",
270
+ children: [/*#__PURE__*/jsx(Requirements$1, {
271
+ fileSize: fileSize
272
+ }), /*#__PURE__*/jsxs("div", _objectSpread$1$3(_objectSpread$1$3({}, getRootProps({
273
+ className: classnames("flex flex-col p-2 border neeto-ui-border-primary-500 border-dashed neeto-ui-rounded-md transition duration-500 ease-in-out hover:neeto-ui-bg-gray-100 cursor-pointer items-center", {
274
+ "neeto-ui-border-gray-100": isDragActive,
275
+ "neeto-ui-border-error neeto-ui-bg-pastel-red hover:neeto-ui-bg-pastel-red": fileRejections.length
276
+ })
277
+ })), {}, {
278
+ children: [/*#__PURE__*/jsxs("div", {
279
+ className: "flex flex-col items-center gap-y-3 p-4",
280
+ children: [/*#__PURE__*/jsx(Upload, {
281
+ className: "neeto-ui-text-primary-500",
282
+ size: 32
283
+ }), /*#__PURE__*/jsx("input", _objectSpread$1$3(_objectSpread$1$3({}, getInputProps()), {}, {
284
+ "data-testid": "csv-upload-input"
285
+ })), isDragActive ? /*#__PURE__*/jsx(Typography, {
286
+ style: "body2",
287
+ children: t("neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere")
288
+ }) : /*#__PURE__*/jsxs("div", {
289
+ className: "flex flex-col items-center gap-y-1",
290
+ children: [/*#__PURE__*/jsx("div", {
291
+ className: "flex w-full items-center justify-center gap-x-1",
292
+ children: /*#__PURE__*/jsx(Trans, {
293
+ i18nKey: "neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop",
294
+ components: {
295
+ Button: /*#__PURE__*/jsx(Button, {
296
+ style: "link"
297
+ })
298
+ }
299
+ })
300
+ }), /*#__PURE__*/jsxs(Typography, {
301
+ className: "neeto-ui-text-gray-700",
302
+ style: "body3",
303
+ children: [/*#__PURE__*/jsx(Trans, {
304
+ i18nKey: "neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat",
305
+ values: {
306
+ fileType: "csv"
307
+ },
308
+ components: {
309
+ code: /*#__PURE__*/jsx("code", {
310
+ className: "neeto-ui-typography neeto-ui-text-body3 neeto-ui-bg-white m-0 border-s-0 p-0"
311
+ })
312
+ }
313
+ }), " ", fileSize && t("neetoMolecules.shareViaLink.bulkUploadPane.supportedSize", {
314
+ fileSize: fileSize
315
+ })]
316
+ })]
317
+ })]
318
+ }), errors]
319
+ }))]
320
+ })
321
+ }), /*#__PURE__*/jsx(Pane.Footer, {
322
+ className: "flex items-center gap-x-2",
323
+ children: /*#__PURE__*/jsx(Button, {
324
+ "data-testid": "bulk-upload-cancel-button",
325
+ label: t("neetoMolecules.common.actions.cancel"),
326
+ style: "text",
327
+ type: "reset",
328
+ onClick: onClose
329
+ })
330
+ })]
331
+ })
332
+ });
333
+ };
334
+
335
+ var isValidEmail$1 = function isValidEmail(email) {
336
+ return string().email().isValidSync(email);
337
+ };
338
+ var createEmailOptions$1 = function createEmailOptions() {
339
+ var emails = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
340
+ return emails.map(function (email) {
341
+ return {
342
+ label: email,
343
+ value: email,
344
+ valid: isValidEmail$1(email)
345
+ };
346
+ });
347
+ };
348
+ var parseCsvEmails = function parseCsvEmails(file, onSuccess) {
349
+ Papa.parse(file, {
350
+ header: true,
351
+ skipEmptyLines: true,
352
+ transformHeader: function transformHeader(h) {
353
+ return h.toLowerCase().replace(/\W/g, "");
354
+ },
355
+ complete: function complete(results) {
356
+ var _results$meta$fields;
357
+ var isEmailFieldPresent = (_results$meta$fields = results.meta.fields) === null || _results$meta$fields === void 0 ? void 0 : _results$meta$fields.includes("email");
358
+ if (isEmailFieldPresent) {
359
+ var emails = results.data.filter(prop("email")).map(function (item) {
360
+ return item.email.trim();
361
+ });
362
+ onSuccess(createEmailOptions$1(emails));
363
+ } else {
364
+ Toastr.error(t$1("neetoMolecules.sendToFields.errors.invalidCsv"));
365
+ }
366
+ }
367
+ });
368
+ };
369
+
370
+ function ownKeys$a(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
371
+ function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
372
+ var SendToFields = function SendToFields(_ref) {
373
+ var emailInputProps = _ref.emailInputProps,
374
+ ccInputProps = _ref.ccInputProps,
375
+ bccInputProps = _ref.bccInputProps,
376
+ _ref$showUploadCsvBut = _ref.showUploadCsvButton,
377
+ showUploadCsvButton = _ref$showUploadCsvBut === void 0 ? false : _ref$showUploadCsvBut,
378
+ _ref$showCcBccButton = _ref.showCcBccButton,
379
+ showCcBccButton = _ref$showCcBccButton === void 0 ? false : _ref$showCcBccButton,
380
+ _ref$showCcField = _ref.showCcField,
381
+ showCcField = _ref$showCcField === void 0 ? false : _ref$showCcField,
382
+ _ref$showBccField = _ref.showBccField,
383
+ showBccField = _ref$showBccField === void 0 ? false : _ref$showBccField,
384
+ _ref$showSendToField = _ref.showSendToField,
385
+ showSendToField = _ref$showSendToField === void 0 ? true : _ref$showSendToField;
386
+ var _useState = useState(false),
387
+ _useState2 = _slicedToArray(_useState, 2),
388
+ isBulkUploadPaneOpen = _useState2[0],
389
+ setIsBulkUploadPaneOpen = _useState2[1];
390
+ var sendToFieldRef = useRef();
391
+ var _useFormikContext = useFormikContext(),
392
+ _useFormikContext$val = _useFormikContext.values,
393
+ showCopyEmails = _useFormikContext$val.showCopyEmails,
394
+ existingSendToEmails = _useFormikContext$val[emailInputProps.name || "sendTo"],
395
+ setFieldValue = _useFormikContext.setFieldValue;
396
+ var _useTranslation = useTranslation(),
397
+ t = _useTranslation.t;
398
+ var handleCSVFile = function handleCSVFile(file) {
399
+ try {
400
+ var _sendToFieldRef$curre;
401
+ var onSuccess = function onSuccess(values) {
402
+ return setFieldValue(emailInputProps.name || "sendTo", [].concat(_toConsumableArray(existingSendToEmails), _toConsumableArray(values)));
403
+ };
404
+ parseCsvEmails(file, onSuccess);
405
+ setIsBulkUploadPaneOpen(false);
406
+ (_sendToFieldRef$curre = sendToFieldRef.current) === null || _sendToFieldRef$curre === void 0 || _sendToFieldRef$curre.focus();
407
+ } catch (error) {
408
+ Toastr.error(error);
409
+ }
410
+ };
411
+ var handelCcBccButtonClick = function handelCcBccButtonClick(e) {
412
+ e.stopPropagation();
413
+ setFieldValue("showCopyEmails", !showCopyEmails);
414
+ };
415
+ return /*#__PURE__*/jsxs("div", {
416
+ className: "relative w-full flex-col gap-2",
417
+ "data-testid": "send-to-text-field",
418
+ children: [showUploadCsvButton && /*#__PURE__*/jsx(Button, {
419
+ className: "absolute end-1 top-0",
420
+ "data-testid": "bulk-upload-button",
421
+ icon: Upload,
422
+ label: t("neetoMolecules.shareViaLink.bulkUpload"),
423
+ size: "small",
424
+ style: "link",
425
+ onClick: function onClick() {
426
+ return setIsBulkUploadPaneOpen(true);
427
+ }
428
+ }), showSendToField && /*#__PURE__*/jsx("div", {
429
+ className: "neeto-ui-border-gray-200 w-full border-b pb-1",
430
+ children: /*#__PURE__*/jsx(MultiEmailInput, _objectSpread$a(_objectSpread$a({
431
+ name: "sendTo",
432
+ ref: sendToFieldRef
433
+ }, emailInputProps), {}, {
434
+ suffix: showCcBccButton && /*#__PURE__*/jsx(Button, {
435
+ "data-testid": "cc-bcc-button",
436
+ label: t("neetoMolecules.emailForm.labels.ccBcc"),
437
+ size: "small",
438
+ style: "link",
439
+ onClick: handelCcBccButtonClick,
440
+ onKeyDown: function onKeyDown(event) {
441
+ return event.stopPropagation();
442
+ }
443
+ })
444
+ }))
445
+ }), (showCopyEmails || showCcField || showBccField) && /*#__PURE__*/jsxs("div", {
446
+ className: "mt-5 flex w-full flex-col gap-5",
447
+ children: [(showCopyEmails || showCcField) && /*#__PURE__*/jsx("div", {
448
+ className: "neeto-ui-border-gray-200 w-full border-b pb-1",
449
+ children: /*#__PURE__*/jsx(MultiEmailInput, _objectSpread$a({
450
+ name: "sendToBcc"
451
+ }, ccInputProps))
452
+ }), (showCopyEmails || showBccField) && /*#__PURE__*/jsx("div", {
453
+ className: "neeto-ui-border-gray-200 w-full border-b pb-1",
454
+ children: /*#__PURE__*/jsx(MultiEmailInput, _objectSpread$a({
455
+ name: "sendToCc"
456
+ }, bccInputProps))
457
+ })]
458
+ }), /*#__PURE__*/jsx(BulkUploadPane, {
459
+ fileSize: CSV_FILE_SIZE_IN_KB,
460
+ handleFileSubmit: handleCSVFile,
461
+ isOpen: isBulkUploadPaneOpen,
462
+ onClose: function onClose() {
463
+ return setIsBulkUploadPaneOpen(false);
464
+ }
465
+ })]
466
+ });
467
+ };
468
+
469
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=true===r.prepend?"prepend":"append",d=true===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
470
+
471
+ var css$5 = ".neeto-molecules-dynamic-variables{display:flex;flex-direction:column;gap:.375rem;max-width:22.5rem;min-width:11.5rem;padding:.5rem}.neeto-molecules-dynamic-variables__list{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.neeto-molecules-dynamic-variables__list button{border:1px solid rgb(var(--neeto-ui-gray-300));border-radius:var(--neeto-ui-rounded-md);color:rgb(var(--neeto-ui-black));padding:.375rem;text-align:start;transition:var(--neeto-ui-transition);-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (prefers-reduced-motion:reduce){.neeto-molecules-dynamic-variables__list button{transition:none}}.neeto-molecules-dynamic-variables__list button:focus,.neeto-molecules-dynamic-variables__list button:focus-visible,.neeto-molecules-dynamic-variables__list button:hover{border-color:rgb(var(--neeto-ui-primary-800));box-shadow:none;color:rgb(var(--neeto-ui-primary-800));outline:none}";
472
+ n(css$5,{});
473
+
474
+ var parseVariables = function parseVariables() {
475
+ var variableArr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
476
+ var uncategorized = [];
477
+ var groupedVariables = [];
478
+ var categorySet = new Set();
479
+ variableArr.forEach(function (variable) {
480
+ var category = variable.category,
481
+ label = variable.label,
482
+ variables = variable.variables;
483
+ if (category && variables) {
484
+ var parsedVariables = variables.map(mergeLeft({
485
+ category: category,
486
+ categoryLabel: label
487
+ }));
488
+ if (!categorySet.has(category)) {
489
+ categorySet.add(category);
490
+ groupedVariables.push({
491
+ label: label,
492
+ variables: parsedVariables
493
+ });
494
+ } else {
495
+ var existingGroup = findBy({
496
+ label: label
497
+ }, groupedVariables);
498
+ existingGroup.variables = uniqBy(prop("key"), existingGroup.variables.concat(parsedVariables));
499
+ }
500
+ } else {
501
+ uncategorized.push(variable);
502
+ }
503
+ });
504
+ if (!isEmpty(uncategorized)) {
505
+ groupedVariables.push({
506
+ label: !isEmpty(groupedVariables) ? "Others" : null,
507
+ variables: uncategorized
508
+ });
509
+ }
510
+ return groupedVariables;
511
+ };
512
+
513
+ var _excluded$6 = ["onVariableClick", "variables", "buttonProps"];
514
+ function ownKeys$9(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
515
+ function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
516
+ var Menu$2 = Dropdown.Menu;
517
+ var DynamicVariables = function DynamicVariables(_ref) {
518
+ var _ref$onVariableClick = _ref.onVariableClick,
519
+ onVariableClick = _ref$onVariableClick === void 0 ? noop : _ref$onVariableClick,
520
+ _ref$variables = _ref.variables,
521
+ variables = _ref$variables === void 0 ? [] : _ref$variables,
522
+ buttonProps = _ref.buttonProps,
523
+ dropdownProps = _objectWithoutProperties(_ref, _excluded$6);
524
+ if (isEmpty(variables)) {
525
+ return null;
526
+ }
527
+ var parsedVariables = parseVariables(variables);
528
+ return /*#__PURE__*/jsx(Dropdown, _objectSpread$9(_objectSpread$9({
529
+ appendTo: function appendTo() {
530
+ return document.body;
531
+ },
532
+ buttonStyle: "secondary",
533
+ icon: Braces,
534
+ strategy: "fixed",
535
+ zIndex: 99999,
536
+ buttonProps: _objectSpread$9({
537
+ "data-testid": "dynamic-variables-button"
538
+ }, buttonProps)
539
+ }, dropdownProps), {}, {
540
+ children: /*#__PURE__*/jsx(Menu$2, {
541
+ children: /*#__PURE__*/jsx("div", {
542
+ className: "neeto-molecules-dynamic-variables",
543
+ "data-testid": "dynamic-variables-list",
544
+ children: parsedVariables.map(function (_ref2) {
545
+ var label = _ref2.label,
546
+ variables = _ref2.variables;
547
+ return /*#__PURE__*/jsxs(Fragment, {
548
+ children: [label && /*#__PURE__*/jsxs("div", {
549
+ className: "flex flex-row items-center gap-x-2",
550
+ children: [/*#__PURE__*/jsx(Typography, {
551
+ style: "h6",
552
+ children: label
553
+ }), /*#__PURE__*/jsx("hr", {
554
+ className: "neeto-ui-border-gray-200 flex flex-grow"
555
+ })]
556
+ }), /*#__PURE__*/jsx("div", {
557
+ className: "neeto-molecules-dynamic-variables__list",
558
+ "data-testid": joinHyphenCase("dynamic-variables-list", label),
559
+ children: variables.map(function (item) {
560
+ return /*#__PURE__*/jsx("button", {
561
+ "data-testid": joinHyphenCase("dynamic-variables-list-item", item.label),
562
+ onClick: function onClick() {
563
+ return onVariableClick(item);
564
+ },
565
+ children: item.label
566
+ }, item.label);
567
+ })
568
+ })]
569
+ }, label);
570
+ })
571
+ })
572
+ })
573
+ }));
574
+ };
575
+
576
+ var css$4 = ".neeto-molecules-breadcrumb{align-items:center;display:flex;flex-direction:row;justify-content:flex-start;line-height:1}.neeto-molecules-breadcrumb a{text-decoration:none;transition:all .3s ease-in-out}@media (prefers-reduced-motion:reduce){.neeto-molecules-breadcrumb a{transition:none}}.neeto-molecules-breadcrumb a:focus-visible{border-radius:var(--neeto-ui-rounded-sm);outline:3px solid rgba(var(--neeto-ui-primary-500),50%)}.neeto-molecules-breadcrumb-separator{font-size:.75rem;line-height:1rem;margin-inline:.75rem}.neeto-molecules-breadcrumbs-wrap{display:flex;flex-wrap:wrap;gap:.375rem 0;margin-block-end:2.5rem}@media screen and (max-width:768px){.neeto-molecules-breadcrumbs-wrap{margin-block-end:1rem}}.neeto-molecules-breadcrumbs-list{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}";
577
+ n(css$4,{});
578
+
579
+ var Breadcrumbs = withT$1(function (_ref) {
580
+ var t = _ref.t,
581
+ breadcrumbs = _ref.breadcrumbs,
582
+ _ref$hasTrailingSepar = _ref.hasTrailingSeparator,
583
+ hasTrailingSeparator = _ref$hasTrailingSepar === void 0 ? false : _ref$hasTrailingSepar,
584
+ className = _ref.className;
585
+ return /*#__PURE__*/jsx("nav", {
586
+ "aria-label": t("neetoMolecules.breadcrumbs.breadcrumbAriaLabel"),
587
+ className: classnames("neeto-molecules-breadcrumbs-wrap", className),
588
+ children: /*#__PURE__*/jsx("ol", {
589
+ className: "neeto-molecules-breadcrumbs-list",
590
+ children: breadcrumbs.map(function (_ref2, index) {
591
+ var text = _ref2.text,
592
+ _ref2$link = _ref2.link,
593
+ link = _ref2$link === void 0 ? "#" : _ref2$link;
594
+ var isLast = index + 1 === breadcrumbs.length;
595
+ var isCurrentPage = isLast && !hasTrailingSeparator;
596
+ return /*#__PURE__*/jsxs("li", {
597
+ className: "neeto-molecules-breadcrumb",
598
+ "data-testid": "header-breadcrumb",
599
+ children: [isCurrentPage ? /*#__PURE__*/jsx(Typography, {
600
+ "aria-current": "page",
601
+ className: "neeto-ui-text-gray-700 neeto-molecules-breadcrumb-link",
602
+ component: "span",
603
+ "data-testid": "".concat(hyphenize(text), "-breadcrumb"),
604
+ style: "body2",
605
+ weight: "normal",
606
+ children: text
607
+ }) : /*#__PURE__*/jsx(Link, {
608
+ to: link,
609
+ children: /*#__PURE__*/jsx(Typography, {
610
+ className: "neeto-ui-text-gray-700 hover:neeto-ui-text-gray-800 neeto-molecules-breadcrumb-link",
611
+ component: "span",
612
+ "data-testid": "".concat(hyphenize(text), "-breadcrumb"),
613
+ style: "body2",
614
+ weight: "normal",
615
+ children: text
616
+ })
617
+ }), !isCurrentPage && /*#__PURE__*/jsx("span", {
618
+ "aria-hidden": "true",
619
+ className: "neeto-molecules-breadcrumb-separator neeto-ui-text-black",
620
+ children: "/"
621
+ })]
622
+ }, index);
623
+ })
624
+ })
625
+ });
626
+ });
627
+
628
+ var SIZE = {
629
+ "default": 16,
630
+ large: 20
631
+ };
632
+
633
+ var _excluded$5 = ["title", "size", "description", "helpLinkProps", "popoverProps", "className", "iconColor", "icon"];
634
+ function ownKeys$8(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
635
+ function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
636
+ var HelpPopover = function HelpPopover(_ref) {
637
+ var title = _ref.title,
638
+ _ref$size = _ref.size,
639
+ size = _ref$size === void 0 ? "large" : _ref$size,
640
+ description = _ref.description,
641
+ helpLinkProps = _ref.helpLinkProps,
642
+ popoverProps = _ref.popoverProps,
643
+ className = _ref.className,
644
+ _ref$iconColor = _ref.iconColor,
645
+ iconColor = _ref$iconColor === void 0 ? "currentColor" : _ref$iconColor,
646
+ _ref$icon = _ref.icon,
647
+ IconComponent = _ref$icon === void 0 ? Help : _ref$icon,
648
+ otherProps = _objectWithoutProperties(_ref, _excluded$5);
649
+ var _useTranslation = useTranslation(),
650
+ t = _useTranslation.t;
651
+ var popoverRef = useRef();
652
+ return /*#__PURE__*/jsxs(Fragment$1, {
653
+ children: [/*#__PURE__*/jsx(Button, _objectSpread$8(_objectSpread$8({}, otherProps), {}, {
654
+ "data-testid": "help-popover-button",
655
+ icon: function icon() {
656
+ return /*#__PURE__*/jsx(IconComponent, {
657
+ color: iconColor,
658
+ size: SIZE[size]
659
+ });
660
+ },
661
+ ref: popoverRef,
662
+ style: "text",
663
+ className: classnames("neeto-molecule-help-popover-trigger neeto-ui-rounded-full bg-transparent p-0", className)
664
+ })), /*#__PURE__*/jsx(Popover, _objectSpread$8(_objectSpread$8({
665
+ appendTo: function appendTo() {
666
+ return document.body;
667
+ },
668
+ reference: popoverRef
669
+ }, popoverProps), {}, {
670
+ children: /*#__PURE__*/jsxs("div", {
671
+ className: "flex flex-col",
672
+ onClick: function onClick(event) {
673
+ return event.stopPropagation();
674
+ },
675
+ children: [title && /*#__PURE__*/jsx(Popover.Title, {
676
+ "data-testid": "help-popover-title",
677
+ children: title
678
+ }), typeof description === "string" ? /*#__PURE__*/jsx(Typography, {
679
+ "data-testid": "help-popover-description",
680
+ lineHeight: "normal",
681
+ style: "body2",
682
+ children: description
683
+ }) : description, helpLinkProps && /*#__PURE__*/jsx(Button, _objectSpread$8(_objectSpread$8({
684
+ className: "neeto-ui-mt-3",
685
+ "data-testid": "help-popover-link-button",
686
+ label: t("neetoMolecules.common.viewHelpArticle"),
687
+ size: "small"
688
+ }, helpLinkProps), {}, {
689
+ style: "link",
690
+ target: "_blank"
691
+ }))]
692
+ })
693
+ }))]
694
+ });
695
+ };
696
+
697
+ var MENU_ITEM_TYPES = {
698
+ menuItem: "menuItem",
699
+ divider: "divider"
700
+ };
701
+ var DEFAULT_TOOLTIP_PROPS = {
702
+ disabled: true,
703
+ position: "bottom",
704
+ touch: ["hold", 500]
705
+ };
706
+
707
+ var _excluded$2$1 = ["t", "label", "key"],
708
+ _excluded2$1 = ["isVisible", "key"];
709
+ function ownKeys$2$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; }
710
+ function _objectSpread$2$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
711
+ var MenuItem$1 = Dropdown.MenuItem,
712
+ Menu$1 = Dropdown.Menu;
713
+ var Submenu = withT$1(function (_ref) {
714
+ var t = _ref.t,
715
+ label = _ref.label,
716
+ key = _ref.key,
717
+ menuItemProps = _objectWithoutProperties(_ref, _excluded$2$1);
718
+ return /*#__PURE__*/jsx(Dropdown, _objectSpread$2$1(_objectSpread$2$1({
719
+ appendTo: "parent",
720
+ position: "left",
721
+ trigger: "hover",
722
+ customTarget: /*#__PURE__*/jsx(MenuItem$1.Button, {
723
+ "aria-haspopup": "menu",
724
+ role: "menuitem",
725
+ children: label
726
+ })
727
+ }, menuItemProps.dropdownProps), {}, {
728
+ children: /*#__PURE__*/jsx(Menu$1, {
729
+ "aria-label": t("neetoMolecules.moreDropdown.submenuAriaLabel", {
730
+ label: label
731
+ }),
732
+ role: "menu",
733
+ children: menuItemProps.menuItems.map(function (_ref2) {
734
+ var _ref2$isVisible = _ref2.isVisible,
735
+ isVisible = _ref2$isVisible === void 0 ? true : _ref2$isVisible,
736
+ key = _ref2.key,
737
+ menuItemProps = _objectWithoutProperties(_ref2, _excluded2$1);
738
+ if (!isVisible) return null;
739
+ return /*#__PURE__*/jsx(MoreDropdownMenuItem, _objectSpread$2$1({}, menuItemProps), key);
740
+ })
741
+ })
742
+ }), key);
743
+ });
744
+
745
+ var _excluded$1$1 = ["onClick", "label", "type", "hasSubItems"];
746
+ function ownKeys$1$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; }
747
+ function _objectSpread$1$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
748
+ var MenuItem = Dropdown.MenuItem,
749
+ Divider = Dropdown.Divider;
750
+ var MoreDropdownMenuItem = function MoreDropdownMenuItem(_ref) {
751
+ var onClick = _ref.onClick,
752
+ label = _ref.label,
753
+ _ref$type = _ref.type,
754
+ type = _ref$type === void 0 ? MENU_ITEM_TYPES.menuItem : _ref$type,
755
+ _ref$hasSubItems = _ref.hasSubItems,
756
+ hasSubItems = _ref$hasSubItems === void 0 ? false : _ref$hasSubItems,
757
+ menuItemProps = _objectWithoutProperties(_ref, _excluded$1$1);
758
+ if (type === MENU_ITEM_TYPES.divider) {
759
+ return /*#__PURE__*/jsx(Divider, {
760
+ role: "separator"
761
+ });
762
+ }
763
+ if (hasSubItems) {
764
+ return /*#__PURE__*/jsx(Submenu, _objectSpread$1$2({}, _objectSpread$1$2({
765
+ label: label
766
+ }, menuItemProps)));
767
+ }
768
+ return /*#__PURE__*/jsx(MenuItem.Button, _objectSpread$1$2(_objectSpread$1$2({}, _objectSpread$1$2({
769
+ onClick: onClick
770
+ }, menuItemProps)), {}, {
771
+ role: "menuitem",
772
+ children: label
773
+ }));
774
+ };
775
+
776
+ var css$3 = ".neeto-ui-btn.neeto-ui-btn--icon-only[data-dropdown-button-style=more-dropdown],.neeto-ui-btn.neeto-ui-btn--icon-only[data-testid=column-menu-button]{--neeto-ui-btn-icon-size:1.25rem;--neeto-ui-btn-padding-x:0;--neeto-ui-btn-padding-y:0;height:1.75rem;justify-content:center;width:1.75rem}.neeto-ui-btn.neeto-ui-btn--icon-only.neeto-ui-btn--size-medium[data-dropdown-button-style=more-dropdown],.neeto-ui-btn.neeto-ui-btn--icon-only.neeto-ui-btn--size-medium[data-testid=column-menu-button]{--neeto-ui-btn-icon-size:1.5rem;--neeto-ui-btn-padding-x:0;--neeto-ui-btn-padding-y:0;height:2rem;justify-content:center;width:2rem}.neeto-ui-btn.neeto-ui-btn--icon-only.neeto-ui-btn--size-large[data-dropdown-button-style=more-dropdown],.neeto-ui-btn.neeto-ui-btn--icon-only.neeto-ui-btn--size-large[data-testid=column-menu-button]{--neeto-ui-btn-icon-size:1.875rem;--neeto-ui-btn-padding-x:0;--neeto-ui-btn-padding-y:0;height:2.5rem;justify-content:center;width:2.5rem}.neeto-ui-btn.neeto-molecule-moredropdown--rounded[data-dropdown-button-style=more-dropdown]{border-radius:100%}";
777
+ n(css$3,{});
778
+
779
+ var _excluded$4 = ["isRounded"],
780
+ _excluded2$2 = ["isVisible", "key"];
781
+ 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; }
782
+ 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), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
783
+ var Menu = Dropdown.Menu;
784
+ var MoreDropdown = function MoreDropdown(_ref) {
785
+ var _ref$dropdownButtonPr = _ref.dropdownButtonProps,
786
+ dropdownButtonProps = _ref$dropdownButtonPr === void 0 ? {} : _ref$dropdownButtonPr,
787
+ _ref$isVertical = _ref.isVertical,
788
+ isVertical = _ref$isVertical === void 0 ? false : _ref$isVertical,
789
+ _ref$isDisabled = _ref.isDisabled,
790
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
791
+ _ref$dropdownProps = _ref.dropdownProps,
792
+ dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
793
+ menuTopChildren = _ref.menuTopChildren,
794
+ menuBottomChildren = _ref.menuBottomChildren,
795
+ _ref$menuItems = _ref.menuItems,
796
+ menuItems = _ref$menuItems === void 0 ? [] : _ref$menuItems;
797
+ var _useTranslation = useTranslation(),
798
+ t = _useTranslation.t;
799
+ var isRoundedButton = dropdownButtonProps.isRounded,
800
+ buttonProps = _objectWithoutProperties(dropdownButtonProps, _excluded$4);
801
+ var tooltipProps = mergeRight(DEFAULT_TOOLTIP_PROPS, dropdownButtonProps.tooltipProps);
802
+ var targetIcon = isVertical ? MenuVertical : MenuHorizontal;
803
+ var isDropdownDisabled = isDisabled || dropdownProps.disabled;
804
+ if (isDropdownDisabled && !tooltipProps.disabled) {
805
+ return /*#__PURE__*/jsx(Tooltip, _objectSpread$7(_objectSpread$7({}, tooltipProps), {}, {
806
+ children: /*#__PURE__*/jsx("span", {
807
+ children: /*#__PURE__*/jsx(Button, _objectSpread$7({
808
+ disabled: true,
809
+ "data-dropdown-button-style": "more-dropdown",
810
+ "data-testid": "more-dropdown-button",
811
+ icon: targetIcon,
812
+ iconPosition: "right",
813
+ size: "medium",
814
+ style: "text",
815
+ className: classnames({
816
+ "neeto-molecule-moredropdown--rounded": isRoundedButton
817
+ })
818
+ }, buttonProps))
819
+ })
820
+ }));
821
+ }
822
+ return /*#__PURE__*/jsx(Dropdown, _objectSpread$7(_objectSpread$7({
823
+ className: "flex",
824
+ disabled: isDisabled,
825
+ icon: targetIcon,
826
+ zIndex: 99999,
827
+ buttonProps: _objectSpread$7({
828
+ "data-dropdown-button-style": "more-dropdown",
829
+ className: classnames("min-h-0 flex-shrink-0 neeto-molecule-moredropdown-btn", {
830
+ "neeto-molecule-moredropdown--rounded": isRoundedButton
831
+ }),
832
+ style: "text",
833
+ tooltipProps: {
834
+ content: t("neetoMolecules.moreDropdown.tooltip"),
835
+ position: "top",
836
+ touch: ["hold", 500]
837
+ },
838
+ "aria-haspopup": "menu",
839
+ "aria-label": t("neetoMolecules.moreDropdown.buttonAriaLabel")
840
+ }, buttonProps)
841
+ }, dropdownProps), {}, {
842
+ children: /*#__PURE__*/jsxs(Menu, {
843
+ "aria-label": t("neetoMolecules.moreDropdown.menuAriaLabel"),
844
+ role: "menu",
845
+ children: [menuTopChildren, menuItems.map(function (_ref2) {
846
+ var _ref2$isVisible = _ref2.isVisible,
847
+ isVisible = _ref2$isVisible === void 0 ? true : _ref2$isVisible,
848
+ key = _ref2.key,
849
+ menuItemProps = _objectWithoutProperties(_ref2, _excluded2$2);
850
+ if (!isVisible) return null;
851
+ return /*#__PURE__*/jsx(MoreDropdownMenuItem, _objectSpread$7({}, menuItemProps), key !== null && key !== void 0 ? key : hyphenate(menuItemProps.label));
852
+ }), menuBottomChildren]
853
+ })
854
+ }));
855
+ };
16
856
 
17
- var EMAIL_NOTIFICATIONS_BASE_URL = "neeto_email_notifications/email_notification";
18
- var RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL = "".concat(EMAIL_NOTIFICATIONS_BASE_URL, "/reset_to_default");
857
+ var css$2 = ".neeto-molecules-search__wrapper input[type=search]::-webkit-search-cancel-button:hover,.neeto-molecules-search__wrapper input[type=search]::-webkit-search-decoration:hover{cursor:pointer}";
858
+ n(css$2,{});
19
859
 
20
- var fetch = function fetch(params) {
21
- return axios.get(EMAIL_NOTIFICATIONS_BASE_URL, {
22
- params: params
860
+ var getInitialSearchValue = function getInitialSearchValue(_ref) {
861
+ var _ref$initialValue = _ref.initialValue,
862
+ initialValue = _ref$initialValue === void 0 ? "" : _ref$initialValue,
863
+ enableUrlSync = _ref.enableUrlSync,
864
+ searchParamName = _ref.searchParamName;
865
+ if (enableUrlSync) {
866
+ var _queryParams$searchPa;
867
+ var queryParams = getQueryParams({
868
+ toCamelCase: false
869
+ });
870
+ return (_queryParams$searchPa = queryParams[searchParamName]) !== null && _queryParams$searchPa !== void 0 ? _queryParams$searchPa : "";
871
+ }
872
+ return initialValue;
873
+ };
874
+
875
+ var _excluded$3 = ["value", "debounceTime", "onSearch", "onChange", "enableUrlSync", "searchParamName"];
876
+ function ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
877
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
878
+ var Search = function Search(_ref) {
879
+ var value = _ref.value,
880
+ _ref$debounceTime = _ref.debounceTime,
881
+ debounceTime = _ref$debounceTime === void 0 ? 300 : _ref$debounceTime,
882
+ onSearch = _ref.onSearch,
883
+ onChange = _ref.onChange,
884
+ _ref$enableUrlSync = _ref.enableUrlSync,
885
+ enableUrlSync = _ref$enableUrlSync === void 0 ? false : _ref$enableUrlSync,
886
+ _ref$searchParamName = _ref.searchParamName,
887
+ searchParamName = _ref$searchParamName === void 0 ? "search_term" : _ref$searchParamName,
888
+ inputProps = _objectWithoutProperties(_ref, _excluded$3);
889
+ var _useTranslation = useTranslation(),
890
+ t = _useTranslation.t;
891
+ var queryParams = useQueryParams({
892
+ toCamelCase: false
23
893
  });
894
+ var history = useHistory();
895
+ var _useState = useState(getInitialSearchValue({
896
+ initialValue: value,
897
+ enableUrlSync: enableUrlSync,
898
+ searchParamName: searchParamName
899
+ })),
900
+ _useState2 = _slicedToArray(_useState, 2),
901
+ internalValue = _useState2[0],
902
+ setInternalValue = _useState2[1];
903
+ var trimmedValue = value === null || value === void 0 ? void 0 : value.trim();
904
+ useUpdateEffect(function () {
905
+ if (!enableUrlSync || isPresent(queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) return;
906
+ setInternalValue("");
907
+ }, [queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName]]);
908
+ var handleSearchQueryParams = function handleSearchQueryParams(trimmedValue) {
909
+ if (!trimmedValue && !(queryParams !== null && queryParams !== void 0 && queryParams[searchParamName])) return;
910
+ if (trimmedValue === (queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) return;
911
+ var searchParams = {};
912
+ var pathname = window.location.pathname;
913
+ if (trimmedValue) searchParams = _defineProperty({}, searchParamName, trimmedValue);else queryParams === null || queryParams === void 0 || delete queryParams[searchParamName];
914
+ history.push(buildUrl(pathname, mergeLeft(searchParams, queryParams)));
915
+ };
916
+ var handleDebouncedSearchTermChange = useFuncDebounce(function (trimmedValue) {
917
+ if (onSearch) onSearch(trimmedValue);else if (enableUrlSync) handleSearchQueryParams(trimmedValue);
918
+ }, debounceTime);
919
+ useUpdateEffect(function () {
920
+ handleDebouncedSearchTermChange(trimmedValue);
921
+ }, [trimmedValue]);
922
+ if (value !== undefined && internalValue !== value) {
923
+ setInternalValue(value);
924
+ }
925
+ var handleOnChange = function handleOnChange(e) {
926
+ var _e$target$value;
927
+ var trimmedValue = (_e$target$value = e.target.value) === null || _e$target$value === void 0 ? void 0 : _e$target$value.trim();
928
+ onChange === null || onChange === void 0 || onChange(e);
929
+ setInternalValue(e.target.value);
930
+ if ((internalValue === null || internalValue === void 0 ? void 0 : internalValue.trim()) !== trimmedValue) {
931
+ handleDebouncedSearchTermChange(trimmedValue);
932
+ }
933
+ };
934
+ useEffect(function () {
935
+ return handleDebouncedSearchTermChange.cancel;
936
+ }, []);
937
+ return /*#__PURE__*/jsx(Input, _objectSpread$6({
938
+ className: "neeto-molecules-search__wrapper",
939
+ placeholder: t("neetoMolecules.common.actions.search"),
940
+ prefix: /*#__PURE__*/jsx(Search$1, {}),
941
+ type: "search",
942
+ value: internalValue,
943
+ onChange: handleOnChange
944
+ }, inputProps));
24
945
  };
25
- var update = function update(payload) {
26
- return axios.put(EMAIL_NOTIFICATIONS_BASE_URL, payload);
946
+
947
+ var SIZES = {
948
+ nano: "nano",
949
+ small: "small"
27
950
  };
28
- var resetToDefault = function resetToDefault(params) {
29
- return axios.post(RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL, params);
951
+ var DROPDOWN_BUTTON_SIZES = {
952
+ nano: "small",
953
+ small: "medium"
30
954
  };
31
- var emailNotificationsApi = {
32
- fetch: fetch,
33
- update: update,
34
- resetToDefault: resetToDefault
955
+
956
+ var css$1 = ":root{--neeto-molecules-main-header-height:6.25rem;--neeto-molecules-main-header-with-breadcrumbs-height:8.25rem;--neeto-molecules-effective-header-height:0px}.neeto-molecules-header{align-items:flex-start;background:rgb(var(--neeto-ui-white));display:flex;flex-direction:row;flex-shrink:0;gap:1rem;justify-content:space-between;padding:2.5rem 0 1.5rem;width:100%}@media screen and (max-width:1024px){.neeto-molecules-header{flex-wrap:wrap}}.neeto-molecules-header .neeto-molecules-header__toggle-menubar-btn{margin-inline-end:.5rem}.neeto-molecules-header .neeto-molecules-header__left{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.neeto-molecules-header .neeto-molecules-header__left-data-wrap{display:flex;flex-wrap:wrap}.neeto-molecules-header .neeto-molecules-header__page-title{align-items:center;display:flex;flex-direction:row;gap:.75rem;margin-top:-.25rem;width:100%}.neeto-molecules-header .neeto-molecules-header__page-title .neeto-molecule-help-popover-trigger,.neeto-molecules-header .neeto-molecules-header__page-title .neeto-molecule-moredropdown-btn{margin-inline-start:.5rem;vertical-align:middle}@media screen and (max-width:1024px){.neeto-molecules-header .neeto-molecules-header__page-title{margin-top:-.625rem}}@media screen and (max-width:768px){.neeto-molecules-header .neeto-molecules-header__page-title{margin-top:-.5rem}}@media screen and (max-width:576px){.neeto-molecules-header .neeto-molecules-header__page-title{margin-top:-.25rem}}.neeto-molecules-header .neeto-molecules-header__page-title h1{line-height:var(--neeto-ui-leading-tight)}.neeto-molecules-header .neeto-molecules-header__right{align-items:center;display:flex;gap:.75rem;justify-content:flex-end}.neeto-molecules-header .neeto-molecules-header__right:empty{display:none;visibility:hidden}@media screen and (max-width:768px){.neeto-molecules-header .neeto-molecules-header__right{flex-wrap:wrap;justify-content:flex-start}}.neeto-molecules-header .neeto-molecules-header__right .neeto-ui-btn{flex-shrink:0}.neeto-molecules-header .neeto-molecules-header__right .neeto-molecules-header__search-input{flex-grow:0;min-width:12.6rem}.neeto-molecules-header .neeto-molecules-header__right .neeto-molecules-header__action-block{align-items:center;display:flex;flex-shrink:0;gap:.75rem;justify-content:flex-end}@media screen and (max-width:360px){.neeto-molecules-header .neeto-molecules-header__right .neeto-molecules-header__action-block{flex-shrink:1;flex-wrap:wrap;justify-content:flex-start}}.neeto-molecules-header--has-breadcrumbs .neeto-molecules-breadcrumbs-wrap{margin:0 0 1rem}.neeto-molecules-header--has-breadcrumbs .neeto-molecules-header__page-title{margin-top:0}.neeto-molecules-header--nano,.neeto-molecules-header--small{flex-shrink:0;min-height:0}.neeto-molecules-header--nano .neeto-molecules-header__page-title{margin-top:0}";
957
+ n(css$1,{});
958
+
959
+ var _excluded$2 = ["dropdownButtonProps"];
960
+ function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
961
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
962
+ var Header = function Header(_ref) {
963
+ var title = _ref.title,
964
+ _ref$titleHelpPopover = _ref.titleHelpPopoverProps,
965
+ titleHelpPopoverProps = _ref$titleHelpPopover === void 0 ? {} : _ref$titleHelpPopover,
966
+ searchProps = _ref.searchProps,
967
+ _ref$className = _ref.className,
968
+ className = _ref$className === void 0 ? "" : _ref$className,
969
+ actionBlock = _ref.actionBlock,
970
+ _ref$breadcrumbs = _ref.breadcrumbs,
971
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
972
+ _ref$renderDropdown = _ref.renderDropdown,
973
+ renderDropdown = _ref$renderDropdown === void 0 ? noop : _ref$renderDropdown,
974
+ _ref$size = _ref.size,
975
+ size = _ref$size === void 0 ? "small" : _ref$size,
976
+ _ref$dataTestid = _ref["data-testid"],
977
+ dataTestId = _ref$dataTestid === void 0 ? "neeto-molecules-header" : _ref$dataTestid;
978
+ var headerRef = useRef(null);
979
+ useLayoutEffect(function () {
980
+ var updateHeaderHeight = function updateHeaderHeight() {
981
+ if (!headerRef.current) return;
982
+ var height = headerRef.current.offsetHeight;
983
+ document.body.style.setProperty("--neeto-molecules-effective-header-height", "".concat(height, "px"));
984
+ };
985
+ updateHeaderHeight();
986
+ window.addEventListener("resize", updateHeaderHeight);
987
+ return function () {
988
+ return window.removeEventListener("resize", updateHeaderHeight);
989
+ };
990
+ }, []);
991
+ return /*#__PURE__*/jsxs("div", {
992
+ "data-testid": dataTestId,
993
+ ref: headerRef,
994
+ className: classnames(["neeto-molecules-header", {
995
+ "neeto-molecules-header--has-breadcrumbs": isNotEmpty(breadcrumbs),
996
+ "neeto-molecules-header--small": size === SIZES.small,
997
+ "neeto-molecules-header--nano": size === SIZES.nano
998
+ }, className]),
999
+ children: [/*#__PURE__*/jsx("div", {
1000
+ className: "neeto-molecules-header__left",
1001
+ children: /*#__PURE__*/jsxs("div", {
1002
+ className: "neeto-molecules-header__left-data-wrap",
1003
+ children: [isNotEmpty(breadcrumbs) && /*#__PURE__*/jsx(Breadcrumbs, {
1004
+ breadcrumbs: breadcrumbs
1005
+ }), /*#__PURE__*/jsx("div", {
1006
+ className: "neeto-molecules-header__page-title",
1007
+ children: /*#__PURE__*/jsxs(Typography, {
1008
+ "data-testid": "main-header",
1009
+ lineHeight: "tight",
1010
+ style: size === SIZES.nano ? "h3" : "h1",
1011
+ weight: "semibold",
1012
+ children: [title, isPresent(titleHelpPopoverProps) && /*#__PURE__*/jsx(HelpPopover, _objectSpread$5({}, titleHelpPopoverProps)), renderDropdown(function (_ref2) {
1013
+ var _ref2$dropdownButtonP = _ref2.dropdownButtonProps,
1014
+ dropdownButtonProps = _ref2$dropdownButtonP === void 0 ? {} : _ref2$dropdownButtonP,
1015
+ dropdownProps = _objectWithoutProperties(_ref2, _excluded$2);
1016
+ return /*#__PURE__*/jsx(MoreDropdown, _objectSpread$5({
1017
+ dropdownButtonProps: _objectSpread$5({
1018
+ size: DROPDOWN_BUTTON_SIZES[size]
1019
+ }, dropdownButtonProps)
1020
+ }, dropdownProps));
1021
+ })]
1022
+ })
1023
+ })]
1024
+ })
1025
+ }), /*#__PURE__*/jsxs("div", {
1026
+ className: "neeto-molecules-header__right",
1027
+ children: [searchProps && /*#__PURE__*/jsx(Search, _objectSpread$5({
1028
+ enableUrlSync: true,
1029
+ className: classnames(["neeto-molecules-header__search-input", searchProps.className])
1030
+ }, searchProps)), actionBlock && /*#__PURE__*/jsx("div", {
1031
+ className: "neeto-molecules-header__action-block",
1032
+ children: actionBlock
1033
+ })]
1034
+ })]
1035
+ });
35
1036
  };
36
1037
 
37
- var QUERY_KEYS = {
38
- NEETO_EMAIL_NOTIFICATIONS: "neeto-email-notifications"
1038
+ var MobilePreviewHeader = function MobilePreviewHeader(_ref) {
1039
+ var _ref$className = _ref.className,
1040
+ className = _ref$className === void 0 ? "" : _ref$className,
1041
+ _ref$message = _ref.message,
1042
+ message = _ref$message === void 0 ? "" : _ref$message;
1043
+ var _useTranslation = useTranslation(),
1044
+ t = _useTranslation.t;
1045
+ return /*#__PURE__*/jsx("div", {
1046
+ className: classnames(["neeto-ui-bg-gray-200 px-6 py-5", className]),
1047
+ "data-testid": "mobile-preview-header",
1048
+ children: /*#__PURE__*/jsx(Typography, {
1049
+ lineHeight: "normal",
1050
+ style: "body2",
1051
+ children: message || t("neetoMolecules.mobilePreview.message")
1052
+ })
1053
+ });
39
1054
  };
40
1055
 
41
- var useFetchEmailNotifications = function useFetchEmailNotifications(params) {
42
- return useQuery({
43
- queryKey: [QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS, params["notificationHolderId"], params["customFields"]],
44
- queryFn: function queryFn() {
45
- return emailNotificationsApi.fetch(params);
1056
+ var INITIAL_FORM_VALUES = {
1057
+ sendTo: [],
1058
+ sendToId: "",
1059
+ sendToCc: [],
1060
+ sendToBcc: [],
1061
+ replyTo: "",
1062
+ showCopyEmails: false,
1063
+ subject: "",
1064
+ message: "",
1065
+ isEnabled: false
1066
+ };
1067
+ var EMAIL_FORM_VALIDATION_SCHEMA = yup.object({
1068
+ subject: yup.string().required(t$1("neetoMolecules.emailForm.errors.subjectRequired")),
1069
+ message: yup.string().test("message", t$1("neetoMolecules.emailForm.errors.messageRequired"), function (value) {
1070
+ return !isEditorEmpty(value);
1071
+ })
1072
+ });
1073
+ var sendToFieldValidation = function sendToFieldValidation(maxEmails) {
1074
+ var validation = yup.array().test("all-emails-valid", t$1("neetoMolecules.emailForm.errors.invalidEmailAddress"), function (emails) {
1075
+ return emails === null || emails === void 0 ? void 0 : emails.every(prop("valid"));
1076
+ }).test("max-email-count", t$1("neetoMolecules.emailForm.errors.maxEmails", {
1077
+ count: maxEmails
1078
+ }), function (emails) {
1079
+ return (emails === null || emails === void 0 ? void 0 : emails.length) <= maxEmails;
1080
+ });
1081
+ return yup.object({
1082
+ sendTo: validation.min(1, t$1("neetoMolecules.emailForm.errors.required", {
1083
+ entity: t$1("neetoMolecules.emailForm.fields.sendToEmailAddress")
1084
+ })).nullable(),
1085
+ sendToCc: validation,
1086
+ sendToBcc: validation
1087
+ });
1088
+ };
1089
+ var SEND_TO_ID_FIELD_VALIDATION = yup.object({
1090
+ sendToId: yup.string().required(t$1("neetoMolecules.emailForm.errors.required", {
1091
+ entity: t$1("neetoMolecules.emailForm.labels.sendTo")
1092
+ }))
1093
+ });
1094
+ var REPLY_TO_FIELD_VALIDATION = yup.object({
1095
+ replyTo: yup.string().nullable().email(t$1("neetoMolecules.emailForm.errors.invalidEmailAddress")).required(t$1("neetoMolecules.emailForm.errors.required", {
1096
+ entity: t$1("neetoMolecules.emailForm.fields.replyToEmailAddress")
1097
+ }))
1098
+ });
1099
+ var EDITOR_ADDONS = ["highlight", "emoji", "code-block", "block-quote", "image-upload", "divider", "video-embed"];
1100
+
1101
+ /* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */
1102
+ var EmailFormContext = /*#__PURE__*/createContext({
1103
+ showSendToField: false,
1104
+ showSendToAsRadio: false,
1105
+ showReplyToField: false,
1106
+ showCcField: false,
1107
+ showBccField: false
1108
+ });
1109
+
1110
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1111
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1112
+ var getValidationSchema = function getValidationSchema(_ref) {
1113
+ var showSendToField = _ref.showSendToField,
1114
+ showReplyToField = _ref.showReplyToField,
1115
+ showSendToAsRadio = _ref.showSendToAsRadio,
1116
+ customValidations = _ref.customValidations,
1117
+ maxEmails = _ref.maxEmails;
1118
+ var schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();
1119
+ if (showSendToField) {
1120
+ schema = schema.concat(showSendToAsRadio ? SEND_TO_ID_FIELD_VALIDATION : sendToFieldValidation(maxEmails));
1121
+ }
1122
+ if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);
1123
+ var isYupObject = customValidations.type === "object";
1124
+ if (isYupObject) {
1125
+ var customFields = customValidations.fields || {};
1126
+ schema = schema.shape(customFields);
1127
+ } else if (_typeof(customValidations) === "object") {
1128
+ schema = schema.shape(customValidations);
1129
+ }
1130
+ return schema;
1131
+ };
1132
+ var getReplyToFieldLabelProps = function getReplyToFieldLabelProps(_ref2) {
1133
+ var popoverProps = _ref2.popoverProps;
1134
+ return {
1135
+ helpIconProps: _defineProperty(_defineProperty(_defineProperty({}, "data-testid", "reply-to-tooltip"), "tooltipProps", !isPresent(popoverProps) && {
1136
+ content: t$1("neetoMolecules.emailForm.tooltips.replyTo"),
1137
+ touch: ["hold", 500]
1138
+ }), "popoverProps", isPresent(popoverProps) && _objectSpread$3(_objectSpread$3({}, popoverProps), {}, {
1139
+ appendTo: "parent",
1140
+ description: popoverProps.description || t$1("neetoMolecules.emailForm.tooltips.replyTo")
1141
+ }))
1142
+ };
1143
+ };
1144
+ var resolveContent = function resolveContent(content, func, variable) {
1145
+ if (typeof func === "function") {
1146
+ return func(content, variable);
1147
+ }
1148
+ return content;
1149
+ };
1150
+ var normalizeHtmlString = function normalizeHtmlString(str) {
1151
+ if (typeof str !== "string") return str;
1152
+ return str.replace(/\uFEFF/g, "").replace(/\r\n|\r/g, "\n").replace(/&nbsp;/g, " ").replace(/[\t ]+/g, " ").replace(/\s*\n\s*/g, "\n").replace(/\n+/g, "\n").replace(/>\s+</g, "><").trim();
1153
+ };
1154
+
1155
+ var ReplyToField = function ReplyToField(_ref) {
1156
+ var _ref$options = _ref.options,
1157
+ options = _ref$options === void 0 ? [] : _ref$options,
1158
+ _ref$popoverProps = _ref.popoverProps,
1159
+ popoverProps = _ref$popoverProps === void 0 ? {} : _ref$popoverProps;
1160
+ var _useTranslation = useTranslation(),
1161
+ t = _useTranslation.t;
1162
+ var _useFormikContext = useFormikContext(),
1163
+ setFieldValue = _useFormikContext.setFieldValue;
1164
+ var isDropdownField = isNotEmpty(options);
1165
+ var labelProps = getReplyToFieldLabelProps({
1166
+ popoverProps: popoverProps
1167
+ });
1168
+ if (isDropdownField) {
1169
+ return /*#__PURE__*/jsx(Select, {
1170
+ labelProps: labelProps,
1171
+ options: options,
1172
+ isClearable: true,
1173
+ className: "w-full",
1174
+ "data-testid": "reply-to-select-field",
1175
+ label: t("neetoMolecules.emailForm.labels.replyTo"),
1176
+ name: "replyTo",
1177
+ onChange: function onChange(data) {
1178
+ var _data$value;
1179
+ return setFieldValue("replyTo", (_data$value = data === null || data === void 0 ? void 0 : data.value) !== null && _data$value !== void 0 ? _data$value : "");
1180
+ }
1181
+ });
1182
+ }
1183
+ return /*#__PURE__*/jsx(Input$1, {
1184
+ labelProps: labelProps,
1185
+ autoFocus: true,
1186
+ nakedInput: true,
1187
+ required: true,
1188
+ className: "w-full",
1189
+ "data-testid": "reply-to-input-field",
1190
+ label: t("neetoMolecules.emailForm.labels.replyTo"),
1191
+ name: "replyTo",
1192
+ placeholder: t("neetoMolecules.emailForm.placeholders.emailPlaceholder"),
1193
+ size: "large",
1194
+ onChange: function onChange(event) {
1195
+ var _event$target$value;
1196
+ return setFieldValue("replyTo", (_event$target$value = event.target.value) === null || _event$target$value === void 0 ? void 0 : _event$target$value.toLowerCase());
1197
+ }
1198
+ });
1199
+ };
1200
+
1201
+ var SendToField = function SendToField(_ref) {
1202
+ var showBccField = _ref.showBccField,
1203
+ showCcField = _ref.showCcField,
1204
+ showSendToTextField = _ref.showSendToTextField;
1205
+ var _useTranslation = useTranslation(),
1206
+ t = _useTranslation.t;
1207
+ if (!showSendToTextField && !showBccField && !showCcField) return null;
1208
+ return /*#__PURE__*/jsx(SendToFields, {
1209
+ showCcBccButton: true,
1210
+ showBccField: showSendToTextField ? false : showBccField,
1211
+ showCcField: showSendToTextField ? false : showCcField,
1212
+ showSendToField: showSendToTextField,
1213
+ bccInputProps: {
1214
+ label: t("neetoMolecules.emailForm.labels.bCc"),
1215
+ name: "sendToBcc",
1216
+ placeholder: t("neetoMolecules.emailForm.placeholders.commaSeparatedEmails")
46
1217
  },
47
- staleTime: DEFAULT_STALE_TIME,
48
- select: prop("emailNotification"),
49
- enabled: isNotEmpty(params)
1218
+ ccInputProps: {
1219
+ label: t("neetoMolecules.emailForm.labels.cc"),
1220
+ name: "sendToCc",
1221
+ placeholder: t("neetoMolecules.emailForm.placeholders.commaSeparatedEmails")
1222
+ },
1223
+ emailInputProps: {
1224
+ id: "sendTo",
1225
+ name: "sendTo",
1226
+ label: t("neetoMolecules.emailForm.labels.sendTo"),
1227
+ placeholder: t("neetoMolecules.emailForm.placeholders.commaSeparatedEmails"),
1228
+ required: true
1229
+ }
1230
+ });
1231
+ };
1232
+
1233
+ var SubjectField = function SubjectField(_ref) {
1234
+ var name = _ref.name,
1235
+ text = _ref.text,
1236
+ updateText = _ref.updateText,
1237
+ _ref$subjectVariables = _ref.subjectVariables,
1238
+ subjectVariables = _ref$subjectVariables === void 0 ? [] : _ref$subjectVariables,
1239
+ error = _ref.error,
1240
+ _ref$required = _ref.required,
1241
+ required = _ref$required === void 0 ? false : _ref$required,
1242
+ onBlur = _ref.onBlur;
1243
+ var _useState = useState(false),
1244
+ _useState2 = _slicedToArray(_useState, 2),
1245
+ isFieldFocusedOnce = _useState2[0],
1246
+ setIsFieldFocusedOnce = _useState2[1];
1247
+ var _useTranslation = useTranslation(),
1248
+ t = _useTranslation.t;
1249
+ var tagClickHandler = function tagClickHandler(_ref2) {
1250
+ var slug = _ref2.key,
1251
+ category = _ref2.category;
1252
+ var textAreaElement = document.querySelector("textarea[name=".concat(name, "]"));
1253
+ var splitIndex = isFieldFocusedOnce && textAreaElement ? textAreaElement.selectionEnd : text.length;
1254
+ var variable = category ? "".concat(category, ".").concat(slug) : slug;
1255
+ var updatedSubject = [text.slice(0, splitIndex), " {{".concat(variable, "}}"), text.slice(splitIndex)].join("");
1256
+ updateText(updatedSubject);
1257
+ };
1258
+ return /*#__PURE__*/jsx(Input, {
1259
+ error: error,
1260
+ name: name,
1261
+ onBlur: onBlur,
1262
+ required: required,
1263
+ nakedInput: true,
1264
+ label: t("neetoMolecules.emailForm.labels.subject"),
1265
+ placeholder: t("neetoMolecules.emailForm.placeholders.subject"),
1266
+ value: text,
1267
+ suffix: /*#__PURE__*/jsx(DynamicVariables, {
1268
+ buttonProps: {
1269
+ className: "m-1"
1270
+ },
1271
+ variables: subjectVariables,
1272
+ dropdownProps: {
1273
+ className: "neeto-ui-dropdown__popup overflow-y-auto",
1274
+ buttonSize: "small"
1275
+ },
1276
+ onVariableClick: tagClickHandler
1277
+ }),
1278
+ onChange: withEventTargetValue(updateText),
1279
+ onFocus: function onFocus() {
1280
+ return setIsFieldFocusedOnce(true);
1281
+ }
1282
+ });
1283
+ };
1284
+
1285
+ 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; }
1286
+ 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), true).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; }
1287
+ var EmailForm = function EmailForm(_ref) {
1288
+ var _ref$messageVariables = _ref.messageVariables,
1289
+ messageVariables = _ref$messageVariables === void 0 ? [] : _ref$messageVariables,
1290
+ _ref$subjectVariables = _ref.subjectVariables,
1291
+ subjectVariables = _ref$subjectVariables === void 0 ? [] : _ref$subjectVariables,
1292
+ handleCancel = _ref.handleCancel,
1293
+ handleResetToDefault = _ref.handleResetToDefault,
1294
+ isLoading = _ref.isLoading,
1295
+ replyToFieldProps = _ref.replyToFieldProps,
1296
+ sendToFieldProps = _ref.sendToFieldProps,
1297
+ replyToOptions = _ref.replyToOptions,
1298
+ _ref$sendToOptions = _ref.sendToOptions,
1299
+ sendToOptions = _ref$sendToOptions === void 0 ? [] : _ref$sendToOptions,
1300
+ _ref$isUpdating = _ref.isUpdating,
1301
+ isUpdating = _ref$isUpdating === void 0 ? false : _ref$isUpdating,
1302
+ _ref$isResetting = _ref.isResetting,
1303
+ isResetting = _ref$isResetting === void 0 ? false : _ref$isResetting,
1304
+ _ref$showFields = _ref.showFields,
1305
+ showFields = _ref$showFields === void 0 ? true : _ref$showFields,
1306
+ _ref$className = _ref.className,
1307
+ className = _ref$className === void 0 ? "" : _ref$className,
1308
+ _ref$editorAddons = _ref.editorAddons,
1309
+ editorAddons = _ref$editorAddons === void 0 ? EDITOR_ADDONS : _ref$editorAddons,
1310
+ showResetToDefaultButton = _ref.showResetToDefaultButton,
1311
+ _ref$editorRef = _ref.editorRef,
1312
+ editorRef = _ref$editorRef === void 0 ? null : _ref$editorRef,
1313
+ _ref$defaultValues = _ref.defaultValues,
1314
+ defaultValues = _ref$defaultValues === void 0 ? {} : _ref$defaultValues;
1315
+ var _useTranslation = useTranslation(),
1316
+ t = _useTranslation.t;
1317
+ var _useContext = useContext(EmailFormContext),
1318
+ showSendToField = _useContext.showSendToField,
1319
+ showSendToAsRadio = _useContext.showSendToAsRadio,
1320
+ showReplyToField = _useContext.showReplyToField,
1321
+ showCcField = _useContext.showCcField,
1322
+ showBccField = _useContext.showBccField;
1323
+ var _useFormikContext = useFormikContext(),
1324
+ setFieldValue = _useFormikContext.setFieldValue,
1325
+ values = _useFormikContext.values,
1326
+ resetForm = _useFormikContext.resetForm;
1327
+ var normalizedValues = _objectSpread$2(_objectSpread$2({}, values), {}, {
1328
+ message: normalizeHtmlString(values.message)
1329
+ });
1330
+ var normalizedDefaultValues = _objectSpread$2(_objectSpread$2({}, defaultValues), {}, {
1331
+ message: normalizeHtmlString(defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.message)
1332
+ });
1333
+ normalizedDefaultValues.replyTo || (normalizedDefaultValues.replyTo = globalProps.user.email);
1334
+ var disabled = equals(normalizedValues, normalizedDefaultValues);
1335
+ var sendToFieldOptions = (sendToFieldProps === null || sendToFieldProps === void 0 ? void 0 : sendToFieldProps.options) || sendToOptions;
1336
+ var showSendToRadioField = showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);
1337
+ var showSendToTextField = showSendToField && !showSendToRadioField;
1338
+ return /*#__PURE__*/jsxs("div", {
1339
+ "data-testid": "email-form",
1340
+ className: classnames("neeto-notification-email-wrapper__form-container flex flex-1 flex-col items-start gap-2 !pb-0", _defineProperty({}, className, className)),
1341
+ children: [/*#__PURE__*/jsx("div", {
1342
+ className: "w-full grow",
1343
+ children: showFields && /*#__PURE__*/jsxs("div", {
1344
+ className: "flex w-full flex-col items-start justify-start gap-5",
1345
+ children: [showSendToRadioField && /*#__PURE__*/jsx(Radio, {
1346
+ className: "pb-2",
1347
+ "data-testid": "send-to-id",
1348
+ label: t("neetoMolecules.emailForm.labels.sendTo"),
1349
+ labelProps: {
1350
+ required: true
1351
+ },
1352
+ name: "sendToId",
1353
+ children: sendToFieldOptions.map(function (_ref2) {
1354
+ var label = _ref2.label,
1355
+ value = _ref2.value;
1356
+ return /*#__PURE__*/createElement(Radio.Item, {
1357
+ label: label,
1358
+ value: value,
1359
+ key: value
1360
+ });
1361
+ })
1362
+ }), /*#__PURE__*/jsx(SendToField, {
1363
+ showBccField: showBccField,
1364
+ showCcField: showCcField,
1365
+ showSendToTextField: showSendToTextField
1366
+ }), showReplyToField && /*#__PURE__*/jsx("div", {
1367
+ className: "neeto-ui-border-gray-200 w-full border-b pb-1",
1368
+ children: /*#__PURE__*/jsx(ReplyToField, _objectSpread$2({
1369
+ options: replyToOptions
1370
+ }, replyToFieldProps))
1371
+ }), /*#__PURE__*/jsx(Field, {
1372
+ name: "subject",
1373
+ children: function children(_ref3) {
1374
+ var _ref3$field = _ref3.field,
1375
+ value = _ref3$field.value,
1376
+ onBlur = _ref3$field.onBlur,
1377
+ _ref3$meta = _ref3.meta,
1378
+ error = _ref3$meta.error,
1379
+ touched = _ref3$meta.touched;
1380
+ return /*#__PURE__*/jsx("div", {
1381
+ className: "neeto-notification-email-subject-block neeto-ui-border-gray-200 w-full border-b pb-1",
1382
+ children: /*#__PURE__*/jsx(SubjectField, {
1383
+ onBlur: onBlur,
1384
+ subjectVariables: subjectVariables,
1385
+ required: true,
1386
+ error: touched && error ? t(error) : undefined,
1387
+ name: "subject",
1388
+ text: value,
1389
+ updateText: function updateText(text) {
1390
+ return setFieldValue("subject", text);
1391
+ }
1392
+ })
1393
+ });
1394
+ }
1395
+ }), /*#__PURE__*/jsx("div", {
1396
+ className: "neeto-notification-email-message-block w-full",
1397
+ "data-testid": "message-input-container",
1398
+ children: /*#__PURE__*/jsx(FormikEditor, {
1399
+ required: true,
1400
+ addons: editorAddons,
1401
+ "data-testid": "message-input-field",
1402
+ hideSlashCommands: false,
1403
+ id: "form_message",
1404
+ menuType: "fixed",
1405
+ name: "message",
1406
+ placeholder: t("neetoMolecules.emailForm.placeholders.message"),
1407
+ ref: editorRef,
1408
+ variables: messageVariables,
1409
+ shouldUpdate: function shouldUpdate(nextProps, prevProps) {
1410
+ return notEqualsDeep(nextProps.variables, prevProps.variables);
1411
+ }
1412
+ })
1413
+ })]
1414
+ })
1415
+ }), /*#__PURE__*/jsxs("div", {
1416
+ className: "neeto-ui-bg-white neeto-notification-email-wrapper__action-block z-10 flex w-full justify-between py-6 lg:sticky lg:bottom-0",
1417
+ children: [/*#__PURE__*/jsx(ActionBlock, {
1418
+ cancelButtonProps: {
1419
+ onClick: handleCancel
1420
+ },
1421
+ isSubmitting: isLoading || isUpdating
1422
+ }), showResetToDefaultButton && /*#__PURE__*/jsx("div", {
1423
+ className: "neeto-ui-action-block__wrapper",
1424
+ children: /*#__PURE__*/jsx(Button, {
1425
+ disabled: disabled,
1426
+ "data-testid": "reset-to-default-button",
1427
+ label: t("neetoMolecules.emailForm.labels.resetToDefault"),
1428
+ loading: isResetting,
1429
+ style: "tertiary",
1430
+ onClick: function onClick() {
1431
+ resetForm();
1432
+ handleResetToDefault();
1433
+ }
1434
+ })
1435
+ })]
1436
+ })]
50
1437
  });
51
1438
  };
52
- var useUpdateEmailNotification = function useUpdateEmailNotification() {
53
- return useMutationWithInvalidation(function (params) {
54
- return emailNotificationsApi.update(params);
55
- }, {
56
- keysToInvalidate: [function (_, _ref) {
57
- var notificationHolderId = _ref.notificationHolderId;
58
- return [QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS, notificationHolderId];
59
- }]
1439
+
1440
+ var css = ".neeto-notification-email-wrapper{height:calc(100vh - 64px);height:calc(100dvh - 64px)}.neeto-notification-email-outer-wrapper .neeto-ui-react-select__container .neeto-ui-react-select__control{border:none}.neeto-notification-email-outer-wrapper .neeto-ui-react-select__container .neeto-ui-react-select__control--is-focused{box-shadow:none!important}.neeto-notification-email-outer-wrapper .neeto-ui-react-select__container .neeto-ui-react-select__value-container{padding-left:0}.neeto-notification-email-message-block p.is-editor-empty{font-size:14px}.neeto-notification-email-subject-block .neeto-ui-input__suffix{padding:0}.neeto-molecules-email-preview-ribbon{background:#ffee6a;border-bottom-left-radius:6px;border-top-left-radius:6px;border-top-right-radius:6px;box-shadow:0 3px 4px 0 rgba(0,0,0,.149);color:#49545c;font-size:14px;font-weight:500;min-width:-moz-max-content;min-width:max-content;padding:6px 12px;position:absolute;right:-6px;text-align:center;top:-6px;z-index:10}.neeto-molecules-email-preview-ribbon:after{border-color:transparent #ddd06b;border-style:solid;border-width:0 0 12px 6px;content:\"\";left:auto;position:absolute;right:0;top:100%;z-index:-20}";
1441
+ n(css,{});
1442
+
1443
+ function ownKeys$1$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; }
1444
+ function _objectSpread$1$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1445
+ var EmailFormComponent = function EmailFormComponent(_ref) {
1446
+ var _ref$onSubmit = _ref.onSubmit,
1447
+ onSubmit = _ref$onSubmit === void 0 ? noop : _ref$onSubmit,
1448
+ _ref$initialValues = _ref.initialValues,
1449
+ initialValues = _ref$initialValues === void 0 ? INITIAL_FORM_VALUES : _ref$initialValues,
1450
+ _children = _ref.children,
1451
+ formikProps = _ref.formikProps,
1452
+ validationSchema = _ref.validationSchema,
1453
+ _ref$showSendToField = _ref.showSendToField,
1454
+ showSendToField = _ref$showSendToField === void 0 ? false : _ref$showSendToField,
1455
+ _ref$showReplyToField = _ref.showReplyToField,
1456
+ showReplyToField = _ref$showReplyToField === void 0 ? false : _ref$showReplyToField,
1457
+ _ref$showSendToAsRadi = _ref.showSendToAsRadio,
1458
+ showSendToAsRadio = _ref$showSendToAsRadi === void 0 ? false : _ref$showSendToAsRadi,
1459
+ _ref$blockNavigation = _ref.blockNavigation,
1460
+ blockNavigation = _ref$blockNavigation === void 0 ? true : _ref$blockNavigation,
1461
+ _ref$showCcField = _ref.showCcField,
1462
+ showCcField = _ref$showCcField === void 0 ? false : _ref$showCcField,
1463
+ _ref$showBccField = _ref.showBccField,
1464
+ showBccField = _ref$showBccField === void 0 ? false : _ref$showBccField,
1465
+ _ref$isLoading = _ref.isLoading,
1466
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
1467
+ _ref$maxEmails = _ref.maxEmails,
1468
+ maxEmails = _ref$maxEmails === void 0 ? 10 : _ref$maxEmails,
1469
+ _ref$emailFormProps = _ref.emailFormProps,
1470
+ emailFormProps = _ref$emailFormProps === void 0 ? {} : _ref$emailFormProps,
1471
+ _ref$emailPreviewProp = _ref.emailPreviewProps,
1472
+ emailPreviewProps = _ref$emailPreviewProp === void 0 ? {} : _ref$emailPreviewProp,
1473
+ _ref$headerProps = _ref.headerProps,
1474
+ headerProps = _ref$headerProps === void 0 ? {} : _ref$headerProps,
1475
+ _ref$tooltipProps = _ref.tooltipProps,
1476
+ tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
1477
+ _ref$switchProps = _ref.switchProps,
1478
+ switchProps = _ref$switchProps === void 0 ? {} : _ref$switchProps,
1479
+ _ref$mobilePreviewPro = _ref.mobilePreviewProps,
1480
+ mobilePreviewProps = _ref$mobilePreviewPro === void 0 ? {} : _ref$mobilePreviewPro;
1481
+ var formatBody = emailPreviewProps.formatBody,
1482
+ formatSubject = emailPreviewProps.formatSubject,
1483
+ bodyVariables = emailPreviewProps.bodyVariables,
1484
+ subjectVariables = emailPreviewProps.subjectVariables;
1485
+ var shouldShowFields = function shouldShowFields(values) {
1486
+ return isEmpty(switchProps) || values.isEnabled;
1487
+ };
1488
+ return /*#__PURE__*/jsx(EmailFormProvider, {
1489
+ formikProps: formikProps,
1490
+ initialValues: initialValues,
1491
+ maxEmails: maxEmails,
1492
+ onSubmit: onSubmit,
1493
+ showBccField: showBccField,
1494
+ showCcField: showCcField,
1495
+ showReplyToField: showReplyToField,
1496
+ showSendToAsRadio: showSendToAsRadio,
1497
+ showSendToField: showSendToField,
1498
+ validationSchema: validationSchema,
1499
+ children: function children(_ref2) {
1500
+ var _values$sendTo;
1501
+ var values = _ref2.values,
1502
+ isSubmitting = _ref2.isSubmitting;
1503
+ return /*#__PURE__*/jsxs("div", {
1504
+ className: "neeto-notification-email-wrapper flex flex-grow flex-col overflow-y-auto lg:flex-row",
1505
+ children: [/*#__PURE__*/jsxs("div", {
1506
+ className: "neeto-notification-email-wrapper__form-wrapper flex w-full flex-col px-5 md:px-10 lg:h-full lg:w-1/2 lg:overflow-y-auto",
1507
+ children: [blockNavigation && /*#__PURE__*/jsx(BlockNavigation, {}), isNotEmpty(headerProps) && /*#__PURE__*/jsx(Header, _objectSpread$1$1({
1508
+ className: "px-0",
1509
+ size: "small"
1510
+ }, headerProps)), isNotEmpty(switchProps) && /*#__PURE__*/jsx("div", {
1511
+ className: "flex items-center justify-between gap-y-0.5 pb-6",
1512
+ children: /*#__PURE__*/jsx(Tooltip, _objectSpread$1$1(_objectSpread$1$1({
1513
+ disabled: !(switchProps !== null && switchProps !== void 0 && switchProps.disabled),
1514
+ position: "top"
1515
+ }, tooltipProps), {}, {
1516
+ children: /*#__PURE__*/jsx("div", {
1517
+ className: "flex items-center gap-2",
1518
+ children: /*#__PURE__*/jsx(Switch, _objectSpread$1$1({
1519
+ "data-testid": "switch",
1520
+ name: "isEnabled"
1521
+ }, switchProps))
1522
+ })
1523
+ }))
1524
+ }), shouldShowFields(values) && _children, /*#__PURE__*/jsx(EmailForm, _objectSpread$1$1({
1525
+ isLoading: isSubmitting || isLoading,
1526
+ isUpdating: isSubmitting || isLoading,
1527
+ showFields: shouldShowFields(values)
1528
+ }, emailFormProps))]
1529
+ }), shouldShowFields(values) && /*#__PURE__*/jsx(MobilePreviewHeader, _objectSpread$1$1({
1530
+ className: "lg:hidden"
1531
+ }, mobilePreviewProps)), shouldShowFields(values) && /*#__PURE__*/jsx("div", {
1532
+ className: "neeto-notification-email-wrapper__preview-wrapper neeto-ui-bg-gray-100 w-full px-6 py-10 lg:w-1/2 lg:overflow-y-auto",
1533
+ children: /*#__PURE__*/jsx(EmailPreview, _objectSpread$1$1({
1534
+ body: resolveContent(values.message, formatBody, bodyVariables),
1535
+ from: values.sendFrom,
1536
+ to: pluck("value", (_values$sendTo = values === null || values === void 0 ? void 0 : values.sendTo) !== null && _values$sendTo !== void 0 ? _values$sendTo : []),
1537
+ subject: resolveContent(values.subject, formatSubject, subjectVariables)
1538
+ }, emailPreviewProps))
1539
+ })]
1540
+ });
1541
+ }
60
1542
  });
61
1543
  };
62
- var useResetEmailNotificationToDefault = function useResetEmailNotificationToDefault() {
63
- return useMutationWithInvalidation(emailNotificationsApi.resetToDefault, {
64
- keysToInvalidate: [function (_, _ref2) {
65
- var notificationHolderId = _ref2.notificationHolderId,
66
- customFields = _ref2.customFields;
67
- return [QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS, notificationHolderId, customFields];
68
- }]
1544
+
1545
+ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1546
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1547
+ var EmailFormProvider = function EmailFormProvider(_ref) {
1548
+ var _ref$onSubmit = _ref.onSubmit,
1549
+ onSubmit = _ref$onSubmit === void 0 ? noop : _ref$onSubmit,
1550
+ _ref$initialValues = _ref.initialValues,
1551
+ initialValues = _ref$initialValues === void 0 ? INITIAL_FORM_VALUES : _ref$initialValues,
1552
+ children = _ref.children,
1553
+ formikProps = _ref.formikProps,
1554
+ _ref$validationSchema = _ref.validationSchema,
1555
+ customValidations = _ref$validationSchema === void 0 ? {} : _ref$validationSchema,
1556
+ _ref$showSendToField = _ref.showSendToField,
1557
+ showSendToField = _ref$showSendToField === void 0 ? false : _ref$showSendToField,
1558
+ _ref$showReplyToField = _ref.showReplyToField,
1559
+ showReplyToField = _ref$showReplyToField === void 0 ? false : _ref$showReplyToField,
1560
+ _ref$showSendToAsRadi = _ref.showSendToAsRadio,
1561
+ showSendToAsRadio = _ref$showSendToAsRadi === void 0 ? false : _ref$showSendToAsRadi,
1562
+ _ref$showCcField = _ref.showCcField,
1563
+ showCcField = _ref$showCcField === void 0 ? false : _ref$showCcField,
1564
+ _ref$showBccField = _ref.showBccField,
1565
+ showBccField = _ref$showBccField === void 0 ? false : _ref$showBccField,
1566
+ _ref$maxEmails = _ref.maxEmails,
1567
+ maxEmails = _ref$maxEmails === void 0 ? 10 : _ref$maxEmails;
1568
+ return /*#__PURE__*/jsx("div", {
1569
+ className: "neeto-notification-email-outer-wrapper",
1570
+ "data-testid": "email-form-provider",
1571
+ children: /*#__PURE__*/jsx(EmailFormContext.Provider, {
1572
+ value: {
1573
+ showSendToField: showSendToField,
1574
+ showSendToAsRadio: showSendToAsRadio,
1575
+ showReplyToField: showReplyToField,
1576
+ showCcField: showCcField,
1577
+ showBccField: showBccField
1578
+ },
1579
+ children: /*#__PURE__*/jsx(Form, {
1580
+ className: "neeto-notification-email-inner-wrapper",
1581
+ formikProps: _objectSpread$4({
1582
+ enableReinitialize: true,
1583
+ validationSchema: getValidationSchema({
1584
+ showSendToField: showSendToField,
1585
+ showReplyToField: showReplyToField,
1586
+ showSendToAsRadio: showSendToAsRadio,
1587
+ customValidations: customValidations,
1588
+ maxEmails: maxEmails
1589
+ }),
1590
+ initialValues: _objectSpread$4(_objectSpread$4({}, initialValues), {}, {
1591
+ replyTo: initialValues.replyTo || globalProps.user.email
1592
+ }),
1593
+ onSubmit: onSubmit
1594
+ }, formikProps),
1595
+ children: children
1596
+ })
1597
+ })
69
1598
  });
70
1599
  };
71
1600
 
@@ -83,7 +1612,7 @@ var DEFAULT_FIELDS_VISIBILITY = {
83
1612
  var _excluded$1 = ["notifyEmails", "notifyCcEmails", "notifyBccEmails", "replyToId", "customFields"],
84
1613
  _excluded2 = ["id", "isEnabled", "sendTo", "sendToCc", "sendToBcc", "showCopyEmails", "replyTo", "message", "subject", "sendFrom", "sendToId"];
85
1614
  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; }
86
- 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; }
1615
+ 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), true).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; }
87
1616
  var isValidEmail = function isValidEmail(email) {
88
1617
  return string().email().isValidSync(email);
89
1618
  };
@@ -180,7 +1709,7 @@ var generateDefaultValues = function generateDefaultValues(data) {
180
1709
 
181
1710
  var _excluded = ["validationSchema"];
182
1711
  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; }
183
- 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; }
1712
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).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; }
184
1713
  var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
185
1714
  var _emailFormProps$sendT, _emailFormProps$sendT2;
186
1715
  var _ref$emailNotificatio = _ref.emailNotificationParams,
@@ -256,7 +1785,7 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
256
1785
  };
257
1786
  return /*#__PURE__*/jsx("div", {
258
1787
  className: "min-w-0 grow overflow-y-auto",
259
- children: /*#__PURE__*/jsx(EmailForm, _objectSpread(_objectSpread({}, _objectSpread({
1788
+ children: /*#__PURE__*/jsx(EmailFormComponent, _objectSpread(_objectSpread({}, _objectSpread({
260
1789
  blockNavigation: blockNavigation,
261
1790
  emailPreviewProps: emailPreviewProps,
262
1791
  formikProps: formikProps,