@bigbinary/neeto-email-notifications-frontend 2.2.13 → 2.2.15

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.
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Willkommen bei neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Bitte geben Sie eine gültige E-Mail-Adresse ein",
6
+ "sendFromRequired": "'Send von'-E-Mail-Adresse ist erforderlich",
7
+ "sendToRequired": "'Send an'-E-Mail-Adresse ist erforderlich",
8
+ "subjectRequired": "Betreff ist erforderlich",
9
+ "messageRequired": "Nachricht ist erforderlich"
10
+ },
11
+ "emailNotification": {
12
+ "title": "E-Mail-Benachrichtigung",
13
+ "notificationToggleLabel": "Eine E-Mail-Benachrichtigung senden, wenn ein neues Ereignis aufgetreten ist"
14
+ },
15
+ "preview": "Vorschau"
16
+ }
17
+ }
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "Email notification",
13
- "subTitle": "Send an email notification when a new event occurred"
13
+ "notificationToggleLabel": "Send an email notification when a new event occurred"
14
14
  },
15
15
  "preview": "Preview"
16
16
  }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Bienvenido a neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Por favor, introduce una dirección de correo electrónico válida",
6
+ "sendFromRequired": "Se requiere una dirección de correo electrónico 'De'",
7
+ "sendToRequired": "Se requiere una dirección de correo electrónico 'Para'",
8
+ "subjectRequired": "Se requiere el asunto",
9
+ "messageRequired": "Se requiere un mensaje"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notificación por correo electrónico",
13
+ "notificationToggleLabel": "Enviar una notificación por correo electrónico cuando ocurra un nuevo evento"
14
+ },
15
+ "preview": "Vista previa"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Bienvenue sur neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Veuillez entrer une adresse e-mail valide",
6
+ "sendFromRequired": "L'adresse e-mail 'Send from' est requise",
7
+ "sendToRequired": "L'adresse e-mail 'Send to' est requise",
8
+ "subjectRequired": "Le sujet est requis",
9
+ "messageRequired": "Le message est requis"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notification par e-mail",
13
+ "notificationToggleLabel": "Envoyer une notification par e-mail lorsqu'un nouvel événement se produit"
14
+ },
15
+ "preview": "Aperçu"
16
+ }
17
+ }
@@ -1,16 +1,10 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import classNames from 'classnames';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { useRef } from 'react';
3
4
  import { isNotEmpty, isNotPresent, noop } from '@bigbinary/neeto-cist';
4
- import Breadcrumbs from '@bigbinary/neeto-molecules/Breadcrumbs';
5
- import { EmailFormProvider, EmailForm, EmailPreview } from '@bigbinary/neeto-molecules/EmailForm';
6
- import HelpPopover from '@bigbinary/neeto-molecules/HelpPopover';
7
- import MobilePreviewHeader from '@bigbinary/neeto-molecules/MobilePreviewHeader';
5
+ import EmailForm from '@bigbinary/neeto-molecules/EmailForm';
8
6
  import Spinner from '@bigbinary/neetoui/Spinner';
9
- import Tooltip from '@bigbinary/neetoui/Tooltip';
10
- import Typography from '@bigbinary/neetoui/Typography';
11
- import BlockNavigation from '@bigbinary/neetoui/formik/BlockNavigation';
12
- import Switch from '@bigbinary/neetoui/formik/Switch';
13
- import { prop, mergeLeft, isEmpty, mergeDeepLeft, pluck } from 'ramda';
7
+ import { prop, isEmpty, mergeLeft, mergeDeepLeft } from 'ramda';
14
8
  import { useTranslation } from 'react-i18next';
15
9
  import { useQuery } from '@tanstack/react-query';
16
10
  import { DEFAULT_STALE_TIME } from '@bigbinary/neeto-commons-frontend/constants';
@@ -18,22 +12,26 @@ import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/r
18
12
  import axios from 'axios';
19
13
  import * as yup from 'yup';
20
14
  import { string } from 'yup';
21
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
22
- import { jsx, jsxs } from 'react/jsx-runtime';
15
+ import { jsx } from 'react/jsx-runtime';
23
16
 
24
- var EMAIL_NOTIFICATIONS_URL = "neeto_email_notifications/email_notification";
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");
25
19
 
26
20
  var fetch = function fetch(params) {
27
- return axios.get(EMAIL_NOTIFICATIONS_URL, {
21
+ return axios.get(EMAIL_NOTIFICATIONS_BASE_URL, {
28
22
  params: params
29
23
  });
30
24
  };
31
25
  var update = function update(payload) {
32
- return axios.put(EMAIL_NOTIFICATIONS_URL, payload);
26
+ return axios.put(EMAIL_NOTIFICATIONS_BASE_URL, payload);
27
+ };
28
+ var resetToDefault = function resetToDefault(params) {
29
+ return axios.post(RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL, params);
33
30
  };
34
31
  var emailNotificationsApi = {
35
32
  fetch: fetch,
36
- update: update
33
+ update: update,
34
+ resetToDefault: resetToDefault
37
35
  };
38
36
 
39
37
  var QUERY_KEYS = {
@@ -61,13 +59,29 @@ var useUpdateEmailNotification = function useUpdateEmailNotification() {
61
59
  }]
62
60
  });
63
61
  };
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
+ }]
69
+ });
70
+ };
64
71
 
65
72
  var FORM_VALIDATION_SCHEMA = {
66
73
  isEnabled: yup["boolean"]()
67
74
  };
75
+ var DEFAULT_FIELDS_VISIBILITY = {
76
+ showSendToField: true,
77
+ showReplyToField: false,
78
+ showSendToAsRadio: false,
79
+ showBccField: false,
80
+ showCcField: false
81
+ };
68
82
 
69
- var _excluded = ["notifyEmails", "notifyCcEmails", "notifyBccEmails", "replyToId", "customFields"],
70
- _excluded2 = ["id", "isEnabled", "sendTo", "sendToCc", "sendToBcc", "showCopyEmails", "replyTo", "message", "subject", "sendFrom", "disabledByUser", "sendToId"];
83
+ var _excluded$1 = ["notifyEmails", "notifyCcEmails", "notifyBccEmails", "replyToId", "customFields"],
84
+ _excluded2 = ["id", "isEnabled", "sendTo", "sendToCc", "sendToBcc", "showCopyEmails", "replyTo", "message", "subject", "sendFrom", "sendToId"];
71
85
  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; }
72
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; }
73
87
  var isValidEmail = function isValidEmail(email) {
@@ -94,7 +108,7 @@ var parseEmailNotificationData = function parseEmailNotificationData(data, sendT
94
108
  notifyBccEmails = data.notifyBccEmails,
95
109
  replyToId = data.replyToId,
96
110
  customFields = data.customFields,
97
- rest = _objectWithoutProperties(data, _excluded);
111
+ rest = _objectWithoutProperties(data, _excluded$1);
98
112
  var parsed = _objectSpread$1(_objectSpread$1({}, customFields), rest);
99
113
  parsed.sendTo = notifyEmails ? createEmailOptions(notifyEmails) : [];
100
114
  parsed.sendToCc = notifyCcEmails ? createEmailOptions(notifyCcEmails) : [];
@@ -104,7 +118,7 @@ var parseEmailNotificationData = function parseEmailNotificationData(data, sendT
104
118
  parsed.showCopyEmails = !!(notifyCcEmails !== null && notifyCcEmails !== void 0 && notifyCcEmails.length || notifyBccEmails !== null && notifyBccEmails !== void 0 && notifyBccEmails.length);
105
119
  return parsed;
106
120
  };
107
- var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField) {
121
+ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField, isDisabledByUser) {
108
122
  values.id;
109
123
  var isEnabled = values.isEnabled,
110
124
  sendTo = values.sendTo,
@@ -115,7 +129,6 @@ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField)
115
129
  message = values.message,
116
130
  subject = values.subject,
117
131
  sendFrom = values.sendFrom,
118
- disabledByUser = values.disabledByUser,
119
132
  sendToId = values.sendToId,
120
133
  rest = _objectWithoutProperties(values, _excluded2);
121
134
  var payload = {
@@ -144,7 +157,7 @@ var packEmailPayload = function packEmailPayload(values, isReplyToDropdownField)
144
157
  payload.sendFrom = sendFrom;
145
158
  } else {
146
159
  payload.customFields = {
147
- disabledByUser: disabledByUser
160
+ disabledByUser: isDisabledByUser
148
161
  };
149
162
  }
150
163
  return payload;
@@ -153,6 +166,7 @@ var renderText = function renderText(text, fallbackTranslation) {
153
166
  return isEmpty(text) ? fallbackTranslation : text;
154
167
  };
155
168
 
169
+ var _excluded = ["validationSchema"];
156
170
  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; }
157
171
  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; }
158
172
  var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
@@ -167,21 +181,24 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
167
181
  emailFormikProps = _ref$emailFormikProps === void 0 ? {} : _ref$emailFormikProps,
168
182
  _ref$title = _ref.title,
169
183
  title = _ref$title === void 0 ? "" : _ref$title,
170
- _ref$subTitle = _ref.subTitle,
171
- subTitle = _ref$subTitle === void 0 ? "" : _ref$subTitle,
172
- _ref$disabled = _ref.disabled,
173
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
184
+ _ref$notificationTogg = _ref.notificationToggleLabel,
185
+ notificationToggleLabel = _ref$notificationTogg === void 0 ? "" : _ref$notificationTogg,
186
+ _ref$breadcrumbs = _ref.breadcrumbs,
187
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
188
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
189
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
174
190
  _ref$tooltipProps = _ref.tooltipProps,
175
191
  tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
176
- _ref$onSuccess = _ref.onSuccess,
177
- onSuccess = _ref$onSuccess === void 0 ? noop : _ref$onSuccess,
192
+ _ref$disabled = _ref.disabled,
193
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
194
+ _ref$fieldsVisibility = _ref.fieldsVisibility,
195
+ fieldsVisibility = _ref$fieldsVisibility === void 0 ? {} : _ref$fieldsVisibility,
178
196
  _ref$blockNavigation = _ref.blockNavigation,
179
197
  blockNavigation = _ref$blockNavigation === void 0 ? false : _ref$blockNavigation,
180
- _ref$breadcrumbs = _ref.breadcrumbs,
181
- breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
182
- _children = _ref.children,
183
- _ref$helpPopoverProps = _ref.helpPopoverProps,
184
- helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps;
198
+ _ref$onSuccess = _ref.onSuccess,
199
+ onSuccess = _ref$onSuccess === void 0 ? noop : _ref$onSuccess,
200
+ children = _ref.children;
201
+ var editorRef = useRef();
185
202
  var _useTranslation = useTranslation(),
186
203
  t = _useTranslation.t;
187
204
  var _useFetchEmailNotific = useFetchEmailNotifications(emailNotificationParams),
@@ -191,113 +208,64 @@ var NeetoEmailNotificationForm = function NeetoEmailNotificationForm(_ref) {
191
208
  var _useUpdateEmailNotifi = useUpdateEmailNotification(),
192
209
  updateEmailNotification = _useUpdateEmailNotifi.mutate,
193
210
  isSubmitting = _useUpdateEmailNotifi.isPending;
211
+ var _useResetEmailNotific = useResetEmailNotificationToDefault(),
212
+ resetToDefault = _useResetEmailNotific.mutate,
213
+ isResetting = _useResetEmailNotific.isPending;
194
214
  var handleSubmit = function handleSubmit(values) {
195
215
  var _emailFormProps$reply;
216
+ var isDisabledByUser = data.isEnabled && !values.isEnabled;
196
217
  var isReplyToDropdownField = (emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$reply = emailFormProps.replyToFieldProps) === null || _emailFormProps$reply === void 0 ? void 0 : _emailFormProps$reply.options) !== undefined;
197
- var body = mergeDeepLeft(packEmailPayload(values, isReplyToDropdownField), emailNotificationParams);
218
+ var body = mergeDeepLeft(packEmailPayload(values, isReplyToDropdownField, isDisabledByUser), emailNotificationParams);
198
219
  updateEmailNotification(body, {
199
220
  onSuccess: onSuccess
200
221
  });
201
222
  };
202
- var handleSwitchChange = function handleSwitchChange(_ref2) {
203
- var _event$target, _event$target2;
204
- var event = _ref2.event,
205
- values = _ref2.values,
206
- setFieldValue = _ref2.setFieldValue;
207
- if ((event === null || event === void 0 || (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.checked) === true) {
208
- setFieldValue("isEnabled", true);
209
- } else if ((event === null || event === void 0 || (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.checked) === false) {
210
- if ((values === null || values === void 0 ? void 0 : values.isEnabled) === true) setFieldValue("disabledByUser", true);
211
- setFieldValue("isEnabled", false);
212
- }
213
- };
214
223
  if (isLoading || isNotPresent(data)) {
215
224
  return /*#__PURE__*/jsx("div", {
216
225
  className: "flex h-full w-full items-center justify-center",
217
226
  children: /*#__PURE__*/jsx(Spinner, {})
218
227
  });
219
228
  }
229
+ var formattedTitle = renderText(title, t("neetoEmailNotifications.emailNotification.title"));
230
+ var formattedNotificationToggleLabel = renderText(notificationToggleLabel, t("neetoEmailNotifications.emailNotification.notificationToggleLabel"));
231
+ var customValidationSchema = emailFormikProps.validationSchema,
232
+ formikProps = _objectWithoutProperties(emailFormikProps, _excluded);
233
+ var handleResetToDefault = function handleResetToDefault() {
234
+ resetToDefault(emailNotificationParams, {
235
+ onSuccess: function onSuccess(_ref2) {
236
+ var _editorRef$current;
237
+ var emailNotification = _ref2.emailNotification;
238
+ return 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 ? void 0 : _editorRef$current.setContent(emailNotification.message);
239
+ }
240
+ });
241
+ };
220
242
  return /*#__PURE__*/jsx("div", {
221
243
  className: "min-w-0 flex-grow overflow-y-auto",
222
- children: /*#__PURE__*/jsx(EmailFormProvider, _objectSpread(_objectSpread({
223
- showSendToField: true,
224
- formikProps: {
225
- validateOnBlur: true,
226
- validateOnChange: true
244
+ children: /*#__PURE__*/jsx(EmailForm, _objectSpread(_objectSpread({}, _objectSpread({
245
+ blockNavigation: blockNavigation,
246
+ emailPreviewProps: emailPreviewProps,
247
+ formikProps: formikProps,
248
+ tooltipProps: tooltipProps
249
+ }, mergeLeft(fieldsVisibility, DEFAULT_FIELDS_VISIBILITY))), {}, {
250
+ isLoading: isSubmitting || isResetting,
251
+ validationSchema: customValidationSchema || FORM_VALIDATION_SCHEMA,
252
+ emailFormProps: _objectSpread({
253
+ editorRef: editorRef,
254
+ handleResetToDefault: handleResetToDefault
255
+ }, emailFormProps),
256
+ headerProps: {
257
+ title: formattedTitle,
258
+ titleHelpPopoverProps: helpPopoverProps,
259
+ breadcrumbs: breadcrumbs
227
260
  },
228
- validationSchema: FORM_VALIDATION_SCHEMA,
229
- initialValues: parseEmailNotificationData(data, (emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$sendT = emailFormProps.sendToFieldProps) === null || _emailFormProps$sendT === void 0 ? void 0 : _emailFormProps$sendT.options) || (emailFormProps === null || emailFormProps === void 0 ? void 0 : emailFormProps.sendToOptions)),
230
- onSubmit: handleSubmit
231
- }, emailFormikProps), {}, {
232
- children: function children(_ref3) {
233
- var values = _ref3.values,
234
- setFieldValue = _ref3.setFieldValue;
235
- return /*#__PURE__*/jsxs("div", {
236
- className: "nf-email-notification-wrapper flex h-full flex-grow flex-col lg:flex-row",
237
- children: [/*#__PURE__*/jsxs("div", {
238
- className: "flex w-full flex-col px-5 md:px-10 lg:h-full lg:w-1/2 lg:overflow-y-auto",
239
- children: [isNotEmpty(breadcrumbs) && /*#__PURE__*/jsx(Breadcrumbs, {
240
- breadcrumbs: breadcrumbs,
241
- className: "mb-6 pt-10"
242
- }), blockNavigation && /*#__PURE__*/jsx(BlockNavigation, {}), /*#__PURE__*/jsx("div", {
243
- className: "flex items-center justify-between gap-6",
244
- children: /*#__PURE__*/jsxs("div", {
245
- className: "space-y-0.5",
246
- children: [/*#__PURE__*/jsx(Tooltip, _objectSpread(_objectSpread({
247
- disabled: !disabled,
248
- position: "top"
249
- }, tooltipProps), {}, {
250
- children: /*#__PURE__*/jsxs("div", {
251
- className: "flex items-center gap-2",
252
- children: [/*#__PURE__*/jsx(Switch, {
253
- disabled: disabled,
254
- "data-cy": "receive-email-notification-switch",
255
- name: "isEnabled",
256
- onChange: function onChange(event) {
257
- return handleSwitchChange({
258
- event: event,
259
- setFieldValue: setFieldValue,
260
- values: values
261
- });
262
- }
263
- }), /*#__PURE__*/jsx(Typography, {
264
- component: "span",
265
- "data-cy": "receive-email-notification-label",
266
- lineHeight: "normal",
267
- style: "h3",
268
- weight: "semibold",
269
- children: renderText(title, t("neetoEmailNotifications.emailNotification.title"))
270
- }), /*#__PURE__*/jsx(HelpPopover, _objectSpread({}, helpPopoverProps))]
271
- })
272
- })), /*#__PURE__*/jsx(Typography, {
273
- lineHeight: "normal",
274
- style: "body2",
275
- children: renderText(subTitle, t("neetoEmailNotifications.emailNotification.subTitle"))
276
- })]
277
- })
278
- }), values.isEnabled && _children, /*#__PURE__*/jsx(EmailForm, _objectSpread({
279
- showSendToField: true,
280
- className: classNames({
281
- "pt-3 ": values.isEnabled
282
- }),
283
- isLoading: isSubmitting,
284
- showFields: values.isEnabled
285
- }, emailFormProps))]
286
- }), /*#__PURE__*/jsx(MobilePreviewHeader, {
287
- className: "lg:hidden"
288
- }), values.isEnabled && /*#__PURE__*/jsx("div", {
289
- className: "neeto-ui-bg-gray-100 w-full px-5 py-10 lg:w-1/2 lg:overflow-y-auto lg:px-10",
290
- children: /*#__PURE__*/jsx(EmailPreview, _objectSpread(_objectSpread({
291
- body: values.message,
292
- from: values.sendFrom,
293
- subject: values.subject,
294
- to: pluck("value", values.sendTo)
295
- }, emailPreviewProps), {}, {
296
- className: "neeto-ui-theme--light"
297
- }))
298
- })]
299
- });
300
- }
261
+ initialValues: parseEmailNotificationData(data, emailFormProps === null || emailFormProps === void 0 || (_emailFormProps$sendT = emailFormProps.sendToFieldProps) === null || _emailFormProps$sendT === void 0 ? void 0 : _emailFormProps$sendT.options),
262
+ switchProps: {
263
+ label: formattedNotificationToggleLabel,
264
+ disabled: disabled,
265
+ "data-cy": "receive-email-notification-switch"
266
+ },
267
+ onSubmit: handleSubmit,
268
+ children: children
301
269
  }))
302
270
  });
303
271
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NeetoEmailNotificationForm.js","sources":["../app/javascript/src/constants/index.js","../app/javascript/src/apis/email_notifications.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/emailNotificationApi.js","../app/javascript/src/components/EmailNotificationForm/constants.js","../app/javascript/src/components/EmailNotificationForm/utils.js","../app/javascript/src/components/EmailNotificationForm/index.jsx"],"sourcesContent":["export const EMAIL_NOTIFICATIONS_URL =\n \"neeto_email_notifications/email_notification\";\n","import axios from \"axios\";\n\nimport { EMAIL_NOTIFICATIONS_URL } from \"src/constants\";\n\nconst fetch = params => axios.get(EMAIL_NOTIFICATIONS_URL, { params });\n\nconst update = payload => axios.put(EMAIL_NOTIFICATIONS_URL, payload);\n\nconst emailNotificationsApi = { fetch, update };\n\nexport default emailNotificationsApi;\n","export const QUERY_KEYS = {\n NEETO_EMAIL_NOTIFICATIONS: \"neeto-email-notifications\",\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { isNotEmpty } from \"neetocist\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport emailNotificationsApi from \"src/apis/email_notifications\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useFetchEmailNotifications = params =>\n useQuery({\n queryKey: [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n params[\"notificationHolderId\"],\n params[\"customFields\"],\n ],\n queryFn: () => emailNotificationsApi.fetch(params),\n staleTime: DEFAULT_STALE_TIME,\n select: prop(\"emailNotification\"),\n enabled: isNotEmpty(params),\n });\n\nexport const useUpdateEmailNotification = () =>\n useMutationWithInvalidation(params => emailNotificationsApi.update(params), {\n keysToInvalidate: [\n (_, { notificationHolderId }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n ],\n ],\n });\n","import * as yup from \"yup\";\n\nexport const FORM_VALIDATION_SCHEMA = { isEnabled: yup.boolean() };\n","import { isNotEmpty } from \"neetocist\";\nimport { isEmpty, mergeLeft, prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nconst createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseEmailsOptions = (emailOptions = []) =>\n emailOptions.map(prop(\"label\"));\n\nexport const parseEmailNotificationData = (data, sendToOptions) => {\n const {\n notifyEmails,\n notifyCcEmails,\n notifyBccEmails,\n replyToId,\n customFields,\n ...rest\n } = data;\n\n const parsed = { ...customFields, ...rest };\n parsed.sendTo = notifyEmails ? createEmailOptions(notifyEmails) : [];\n parsed.sendToCc = notifyCcEmails ? createEmailOptions(notifyCcEmails) : [];\n parsed.sendToBcc = notifyCcEmails ? createEmailOptions(notifyBccEmails) : [];\n parsed.replyTo = replyToId || customFields[\"replyTo\"];\n parsed.sendToId = customFields[\"sendToId\"] || sendToOptions?.[0]?.value || \"\";\n parsed.showCopyEmails = !!(notifyCcEmails?.length || notifyBccEmails?.length);\n\n return parsed;\n};\n\nexport const packEmailPayload = (values, isReplyToDropdownField) => {\n const {\n // eslint-disable-next-line no-unused-vars\n id: _,\n isEnabled,\n sendTo,\n sendToCc,\n sendToBcc,\n showCopyEmails,\n replyTo,\n message,\n subject,\n sendFrom,\n disabledByUser,\n sendToId,\n ...rest\n } = values;\n let payload = { isEnabled };\n\n if (isEnabled) {\n payload = { ...payload };\n payload.notifyEmails = parseEmailsOptions(sendTo);\n payload.notifyBccEmails = showCopyEmails\n ? parseEmailsOptions(sendToBcc)\n : [];\n\n payload.notifyCcEmails = showCopyEmails ? parseEmailsOptions(sendToCc) : [];\n if (isReplyToDropdownField) {\n payload.replyToId = replyTo;\n } else {\n rest.replyTo = replyTo;\n }\n payload.message = message;\n payload.subject = subject;\n payload.customFields = { ...rest, disabledByUser: false };\n\n if (isNotEmpty(sendToId)) {\n payload.customFields = mergeLeft(payload.customFields, { sendToId });\n }\n payload.sendFrom = sendFrom;\n } else {\n payload.customFields = { disabledByUser };\n }\n\n return payload;\n};\n\nexport const renderText = (text, fallbackTranslation) =>\n isEmpty(text) ? fallbackTranslation : text;\n","import classNames from \"classnames\";\nimport { isNotPresent, noop, isNotEmpty } from \"neetocist\";\nimport Breadcrumbs from \"neetomolecules/Breadcrumbs\";\nimport {\n EmailFormProvider,\n EmailForm,\n EmailPreview,\n} from \"neetomolecules/EmailForm\";\nimport HelpPopover from \"neetomolecules/HelpPopover\";\nimport MobilePreviewHeader from \"neetomolecules/MobilePreviewHeader\";\nimport { Spinner, Tooltip, Typography } from \"neetoui\";\nimport { BlockNavigation, Switch } from \"neetoui/formik\";\nimport { mergeDeepLeft, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchEmailNotifications,\n useUpdateEmailNotification,\n} from \"src/hooks/reactQuery/emailNotificationApi\";\n\nimport { FORM_VALIDATION_SCHEMA } from \"./constants\";\nimport {\n packEmailPayload,\n parseEmailNotificationData,\n renderText,\n} from \"./utils\";\n\nconst NeetoEmailNotificationForm = ({\n emailNotificationParams = {},\n emailPreviewProps = {},\n emailFormProps = {},\n emailFormikProps = {},\n title = \"\",\n subTitle = \"\",\n disabled = false,\n tooltipProps = {},\n onSuccess = noop,\n blockNavigation = false,\n breadcrumbs = [],\n children,\n helpPopoverProps = {},\n}) => {\n const { t } = useTranslation();\n\n const { data = {}, isLoading } = useFetchEmailNotifications(\n emailNotificationParams\n );\n\n const { mutate: updateEmailNotification, isPending: isSubmitting } =\n useUpdateEmailNotification();\n\n const handleSubmit = values => {\n const isReplyToDropdownField =\n emailFormProps?.replyToFieldProps?.options !== undefined;\n\n const body = mergeDeepLeft(\n packEmailPayload(values, isReplyToDropdownField),\n emailNotificationParams\n );\n updateEmailNotification(body, { onSuccess });\n };\n\n const handleSwitchChange = ({ event, values, setFieldValue }) => {\n if (event?.target?.checked === true) {\n setFieldValue(\"isEnabled\", true);\n } else if (event?.target?.checked === false) {\n if (values?.isEnabled === true) setFieldValue(\"disabledByUser\", true);\n setFieldValue(\"isEnabled\", false);\n }\n };\n\n if (isLoading || isNotPresent(data)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"min-w-0 flex-grow overflow-y-auto\">\n <EmailFormProvider\n showSendToField\n formikProps={{ validateOnBlur: true, validateOnChange: true }}\n validationSchema={FORM_VALIDATION_SCHEMA}\n initialValues={parseEmailNotificationData(\n data,\n emailFormProps?.sendToFieldProps?.options ||\n emailFormProps?.sendToOptions\n )}\n onSubmit={handleSubmit}\n {...emailFormikProps}\n >\n {({ values, setFieldValue }) => (\n <div className=\"nf-email-notification-wrapper flex h-full flex-grow flex-col lg:flex-row\">\n <div className=\"flex w-full flex-col px-5 md:px-10 lg:h-full lg:w-1/2 lg:overflow-y-auto\">\n {isNotEmpty(breadcrumbs) && (\n <Breadcrumbs {...{ breadcrumbs }} className=\"mb-6 pt-10\" />\n )}\n {blockNavigation && <BlockNavigation />}\n <div className=\"flex items-center justify-between gap-6\">\n <div className=\"space-y-0.5\">\n <Tooltip\n disabled={!disabled}\n position=\"top\"\n {...tooltipProps}\n >\n <div className=\"flex items-center gap-2\">\n <Switch\n {...{ disabled }}\n data-cy=\"receive-email-notification-switch\"\n name=\"isEnabled\"\n onChange={event =>\n handleSwitchChange({ event, setFieldValue, values })\n }\n />\n <Typography\n component=\"span\"\n data-cy=\"receive-email-notification-label\"\n lineHeight=\"normal\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {renderText(\n title,\n t(\"neetoEmailNotifications.emailNotification.title\")\n )}\n </Typography>\n <HelpPopover {...helpPopoverProps} />\n </div>\n </Tooltip>\n <Typography lineHeight=\"normal\" style=\"body2\">\n {renderText(\n subTitle,\n t(\"neetoEmailNotifications.emailNotification.subTitle\")\n )}\n </Typography>\n </div>\n </div>\n {values.isEnabled && children}\n <EmailForm\n showSendToField\n className={classNames({ \"pt-3 \": values.isEnabled })}\n isLoading={isSubmitting}\n showFields={values.isEnabled}\n {...emailFormProps}\n />\n </div>\n <MobilePreviewHeader className=\"lg:hidden\" />\n {values.isEnabled && (\n <div className=\"neeto-ui-bg-gray-100 w-full px-5 py-10 lg:w-1/2 lg:overflow-y-auto lg:px-10\">\n <EmailPreview\n body={values.message}\n from={values.sendFrom}\n subject={values.subject}\n to={pluck(\"value\", values.sendTo)}\n {...emailPreviewProps}\n className=\"neeto-ui-theme--light\"\n />\n </div>\n )}\n </div>\n )}\n </EmailFormProvider>\n </div>\n );\n};\nexport default NeetoEmailNotificationForm;\n"],"names":["EMAIL_NOTIFICATIONS_URL","fetch","params","axios","get","update","payload","put","emailNotificationsApi","QUERY_KEYS","NEETO_EMAIL_NOTIFICATIONS","useFetchEmailNotifications","useQuery","queryKey","queryFn","staleTime","DEFAULT_STALE_TIME","select","prop","enabled","isNotEmpty","useUpdateEmailNotification","useMutationWithInvalidation","keysToInvalidate","_","_ref","notificationHolderId","FORM_VALIDATION_SCHEMA","isEnabled","yup","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","length","undefined","map","label","value","valid","parseEmailsOptions","emailOptions","parseEmailNotificationData","data","sendToOptions","_sendToOptions$","notifyEmails","notifyCcEmails","notifyBccEmails","replyToId","customFields","rest","_objectWithoutProperties","_excluded","parsed","_objectSpread","sendTo","sendToCc","sendToBcc","replyTo","sendToId","showCopyEmails","packEmailPayload","values","isReplyToDropdownField","id","message","subject","sendFrom","disabledByUser","_excluded2","mergeLeft","renderText","text","fallbackTranslation","isEmpty","NeetoEmailNotificationForm","_emailFormProps$sendT","_ref$emailNotificatio","emailNotificationParams","_ref$emailPreviewProp","emailPreviewProps","_ref$emailFormProps","emailFormProps","_ref$emailFormikProps","emailFormikProps","_ref$title","title","_ref$subTitle","subTitle","_ref$disabled","disabled","_ref$tooltipProps","tooltipProps","_ref$onSuccess","onSuccess","noop","_ref$blockNavigation","blockNavigation","_ref$breadcrumbs","breadcrumbs","children","_ref$helpPopoverProps","helpPopoverProps","_useTranslation","useTranslation","t","_useFetchEmailNotific","_useFetchEmailNotific2","isLoading","_useUpdateEmailNotifi","updateEmailNotification","mutate","isSubmitting","isPending","handleSubmit","_emailFormProps$reply","replyToFieldProps","options","body","mergeDeepLeft","handleSwitchChange","_ref2","_event$target","_event$target2","event","setFieldValue","target","checked","isNotPresent","_jsx","className","Spinner","EmailFormProvider","showSendToField","formikProps","validateOnBlur","validateOnChange","validationSchema","initialValues","sendToFieldProps","onSubmit","_ref3","_jsxs","Breadcrumbs","BlockNavigation","Tooltip","position","Switch","name","onChange","Typography","component","lineHeight","style","weight","HelpPopover","EmailForm","classNames","showFields","MobilePreviewHeader","EmailPreview","from","to","pluck"],"mappings":"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"}
1
+ {"version":3,"file":"NeetoEmailNotificationForm.js","sources":["../app/javascript/src/constants/index.js","../app/javascript/src/apis/email_notifications.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/emailNotificationApi.js","../app/javascript/src/components/EmailNotificationForm/constants.js","../app/javascript/src/components/EmailNotificationForm/utils.js","../app/javascript/src/components/EmailNotificationForm/index.jsx"],"sourcesContent":["export const EMAIL_NOTIFICATIONS_BASE_URL =\n \"neeto_email_notifications/email_notification\";\n\nexport const RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL = `${EMAIL_NOTIFICATIONS_BASE_URL}/reset_to_default`;\n","import axios from \"axios\";\n\nimport {\n RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL,\n EMAIL_NOTIFICATIONS_BASE_URL,\n} from \"src/constants\";\n\nconst fetch = params => axios.get(EMAIL_NOTIFICATIONS_BASE_URL, { params });\n\nconst update = payload => axios.put(EMAIL_NOTIFICATIONS_BASE_URL, payload);\n\nconst resetToDefault = params =>\n axios.post(RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL, params);\n\nconst emailNotificationsApi = { fetch, update, resetToDefault };\n\nexport default emailNotificationsApi;\n","export const QUERY_KEYS = {\n NEETO_EMAIL_NOTIFICATIONS: \"neeto-email-notifications\",\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { isNotEmpty } from \"neetocist\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport emailNotificationsApi from \"src/apis/email_notifications\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useFetchEmailNotifications = params =>\n useQuery({\n queryKey: [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n params[\"notificationHolderId\"],\n params[\"customFields\"],\n ],\n queryFn: () => emailNotificationsApi.fetch(params),\n staleTime: DEFAULT_STALE_TIME,\n select: prop(\"emailNotification\"),\n enabled: isNotEmpty(params),\n });\n\nexport const useUpdateEmailNotification = () =>\n useMutationWithInvalidation(params => emailNotificationsApi.update(params), {\n keysToInvalidate: [\n (_, { notificationHolderId }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n ],\n ],\n });\n\nexport const useResetEmailNotificationToDefault = () =>\n useMutationWithInvalidation(emailNotificationsApi.resetToDefault, {\n keysToInvalidate: [\n (_, { notificationHolderId, customFields }) => [\n QUERY_KEYS.NEETO_EMAIL_NOTIFICATIONS,\n notificationHolderId,\n customFields,\n ],\n ],\n });\n","import * as yup from \"yup\";\n\nexport const FORM_VALIDATION_SCHEMA = { isEnabled: yup.boolean() };\n\nexport const DEFAULT_FIELDS_VISIBILITY = {\n showSendToField: true,\n showReplyToField: false,\n showSendToAsRadio: false,\n showBccField: false,\n showCcField: false,\n};\n","import { isNotEmpty } from \"neetocist\";\nimport { isEmpty, mergeLeft, prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nconst createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseEmailsOptions = (emailOptions = []) =>\n emailOptions.map(prop(\"label\"));\n\nexport const parseEmailNotificationData = (data, sendToOptions) => {\n const {\n notifyEmails,\n notifyCcEmails,\n notifyBccEmails,\n replyToId,\n customFields,\n ...rest\n } = data;\n\n const parsed = { ...customFields, ...rest };\n parsed.sendTo = notifyEmails ? createEmailOptions(notifyEmails) : [];\n parsed.sendToCc = notifyCcEmails ? createEmailOptions(notifyCcEmails) : [];\n parsed.sendToBcc = notifyCcEmails ? createEmailOptions(notifyBccEmails) : [];\n parsed.replyTo = replyToId || customFields[\"replyTo\"];\n parsed.sendToId = customFields[\"sendToId\"] || sendToOptions?.[0]?.value || \"\";\n parsed.showCopyEmails = !!(notifyCcEmails?.length || notifyBccEmails?.length);\n\n return parsed;\n};\n\nexport const packEmailPayload = (\n values,\n isReplyToDropdownField,\n isDisabledByUser\n) => {\n const {\n // eslint-disable-next-line no-unused-vars\n id: _,\n isEnabled,\n sendTo,\n sendToCc,\n sendToBcc,\n showCopyEmails,\n replyTo,\n message,\n subject,\n sendFrom,\n sendToId,\n ...rest\n } = values;\n let payload = { isEnabled };\n\n if (isEnabled) {\n payload = { ...payload };\n payload.notifyEmails = parseEmailsOptions(sendTo);\n payload.notifyBccEmails = showCopyEmails\n ? parseEmailsOptions(sendToBcc)\n : [];\n\n payload.notifyCcEmails = showCopyEmails ? parseEmailsOptions(sendToCc) : [];\n if (isReplyToDropdownField) {\n payload.replyToId = replyTo;\n } else {\n rest.replyTo = replyTo;\n }\n payload.message = message;\n payload.subject = subject;\n payload.customFields = { ...rest, disabledByUser: false };\n\n if (isNotEmpty(sendToId)) {\n payload.customFields = mergeLeft(payload.customFields, { sendToId });\n }\n payload.sendFrom = sendFrom;\n } else {\n payload.customFields = { disabledByUser: isDisabledByUser };\n }\n\n return payload;\n};\n\nexport const renderText = (text, fallbackTranslation) =>\n isEmpty(text) ? fallbackTranslation : text;\n","import { useRef } from \"react\";\n\nimport { isNotPresent, noop } from \"neetocist\";\nimport EmailForm from \"neetomolecules/EmailForm\";\nimport { Spinner } from \"neetoui\";\nimport { mergeDeepLeft, mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchEmailNotifications,\n useUpdateEmailNotification,\n useResetEmailNotificationToDefault,\n} from \"src/hooks/reactQuery/emailNotificationApi\";\n\nimport { DEFAULT_FIELDS_VISIBILITY, FORM_VALIDATION_SCHEMA } from \"./constants\";\nimport {\n packEmailPayload,\n parseEmailNotificationData,\n renderText,\n} from \"./utils\";\n\nconst NeetoEmailNotificationForm = ({\n emailNotificationParams = {},\n emailPreviewProps = {},\n emailFormProps = {},\n emailFormikProps = {},\n title = \"\",\n notificationToggleLabel = \"\",\n breadcrumbs = [],\n helpPopoverProps = {},\n tooltipProps = {},\n disabled = false,\n fieldsVisibility = {},\n blockNavigation = false,\n onSuccess = noop,\n children,\n}) => {\n const editorRef = useRef();\n\n const { t } = useTranslation();\n\n const { data = {}, isLoading } = useFetchEmailNotifications(\n emailNotificationParams\n );\n\n const { mutate: updateEmailNotification, isPending: isSubmitting } =\n useUpdateEmailNotification();\n\n const { mutate: resetToDefault, isPending: isResetting } =\n useResetEmailNotificationToDefault();\n\n const handleSubmit = values => {\n const isDisabledByUser = data.isEnabled && !values.isEnabled;\n const isReplyToDropdownField =\n emailFormProps?.replyToFieldProps?.options !== undefined;\n\n const body = mergeDeepLeft(\n packEmailPayload(values, isReplyToDropdownField, isDisabledByUser),\n emailNotificationParams\n );\n updateEmailNotification(body, { onSuccess });\n };\n\n if (isLoading || isNotPresent(data)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const formattedTitle = renderText(\n title,\n t(\"neetoEmailNotifications.emailNotification.title\")\n );\n\n const formattedNotificationToggleLabel = renderText(\n notificationToggleLabel,\n t(\"neetoEmailNotifications.emailNotification.notificationToggleLabel\")\n );\n\n const { validationSchema: customValidationSchema, ...formikProps } =\n emailFormikProps;\n\n const handleResetToDefault = () => {\n resetToDefault(emailNotificationParams, {\n onSuccess: ({ emailNotification }) =>\n editorRef?.current?.editor?.commands?.setContent(\n emailNotification.message\n ),\n });\n };\n\n return (\n <div className=\"min-w-0 flex-grow overflow-y-auto\">\n <EmailForm\n {...{\n blockNavigation,\n emailPreviewProps,\n formikProps,\n tooltipProps,\n ...mergeLeft(fieldsVisibility, DEFAULT_FIELDS_VISIBILITY),\n }}\n isLoading={isSubmitting || isResetting}\n validationSchema={customValidationSchema || FORM_VALIDATION_SCHEMA}\n emailFormProps={{\n editorRef,\n handleResetToDefault,\n ...emailFormProps,\n }}\n headerProps={{\n title: formattedTitle,\n titleHelpPopoverProps: helpPopoverProps,\n breadcrumbs,\n }}\n initialValues={parseEmailNotificationData(\n data,\n emailFormProps?.sendToFieldProps?.options\n )}\n switchProps={{\n label: formattedNotificationToggleLabel,\n disabled,\n \"data-cy\": \"receive-email-notification-switch\",\n }}\n onSubmit={handleSubmit}\n >\n {children}\n </EmailForm>\n </div>\n );\n};\n\nexport default NeetoEmailNotificationForm;\n"],"names":["EMAIL_NOTIFICATIONS_BASE_URL","RESET_EMAIL_NOTIFICATIONS_TO_DEFAULT_URL","concat","fetch","params","axios","get","update","payload","put","resetToDefault","post","emailNotificationsApi","QUERY_KEYS","NEETO_EMAIL_NOTIFICATIONS","useFetchEmailNotifications","useQuery","queryKey","queryFn","staleTime","DEFAULT_STALE_TIME","select","prop","enabled","isNotEmpty","useUpdateEmailNotification","useMutationWithInvalidation","keysToInvalidate","_","_ref","notificationHolderId","useResetEmailNotificationToDefault","_ref2","customFields","FORM_VALIDATION_SCHEMA","isEnabled","yup","DEFAULT_FIELDS_VISIBILITY","showSendToField","showReplyToField","showSendToAsRadio","showBccField","showCcField","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","length","undefined","map","label","value","valid","parseEmailsOptions","emailOptions","parseEmailNotificationData","data","sendToOptions","_sendToOptions$","notifyEmails","notifyCcEmails","notifyBccEmails","replyToId","rest","_objectWithoutProperties","_excluded","parsed","_objectSpread","sendTo","sendToCc","sendToBcc","replyTo","sendToId","showCopyEmails","packEmailPayload","values","isReplyToDropdownField","isDisabledByUser","id","message","subject","sendFrom","_excluded2","disabledByUser","mergeLeft","renderText","text","fallbackTranslation","isEmpty","NeetoEmailNotificationForm","_emailFormProps$sendT","_ref$emailNotificatio","emailNotificationParams","_ref$emailPreviewProp","emailPreviewProps","_ref$emailFormProps","emailFormProps","_ref$emailFormikProps","emailFormikProps","_ref$title","title","_ref$notificationTogg","notificationToggleLabel","_ref$breadcrumbs","breadcrumbs","_ref$helpPopoverProps","helpPopoverProps","_ref$tooltipProps","tooltipProps","_ref$disabled","disabled","_ref$fieldsVisibility","fieldsVisibility","_ref$blockNavigation","blockNavigation","_ref$onSuccess","onSuccess","noop","children","editorRef","useRef","_useTranslation","useTranslation","t","_useFetchEmailNotific","_useFetchEmailNotific2","isLoading","_useUpdateEmailNotifi","updateEmailNotification","mutate","isSubmitting","isPending","_useResetEmailNotific","isResetting","handleSubmit","_emailFormProps$reply","replyToFieldProps","options","body","mergeDeepLeft","isNotPresent","_jsx","className","Spinner","formattedTitle","formattedNotificationToggleLabel","customValidationSchema","validationSchema","formikProps","handleResetToDefault","_editorRef$current","emailNotification","current","editor","commands","setContent","EmailForm","headerProps","titleHelpPopoverProps","initialValues","sendToFieldProps","switchProps","onSubmit"],"mappings":"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"}