@bigbinary/neeto-molecules 3.7.9 → 3.7.10

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.
@@ -7,26 +7,28 @@ var Form$1 = require('@bigbinary/neetoui/formik/Form');
7
7
  var reactI18next = require('react-i18next');
8
8
  var EmailPreview = require('./EmailPreview.js');
9
9
  var React = require('react');
10
- var classnames = require('classnames');
11
10
  var formik = require('formik');
12
- var Label = require('@bigbinary/neetoui/Label');
13
11
  var Input = require('@bigbinary/neetoui/formik/Input');
14
- var Switch = require('@bigbinary/neetoui/formik/Switch');
15
12
  var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
16
13
  var SendToFields = require('./SendToFields.js');
17
- var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
18
- var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
19
- var jsxRuntime = require('react/jsx-runtime');
20
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
21
14
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
15
+ var classnames = require('classnames');
16
+ var Down = require('@bigbinary/neeto-icons/Down');
17
+ var Up = require('@bigbinary/neeto-icons/Up');
18
+ var Label = require('@bigbinary/neetoui/Label');
19
+ var Switch = require('@bigbinary/neetoui/formik/Switch');
20
+ var ramda = require('ramda');
21
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
22
22
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
23
23
  var DatePicker = require('@bigbinary/neetoui/DatePicker');
24
24
  var i18next = require('i18next');
25
25
  var neetoCist = require('@bigbinary/neeto-cist');
26
26
  var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
27
27
  var utils = require('@bigbinary/neeto-editor/utils');
28
- var ramda = require('ramda');
29
28
  var yup = require('yup');
29
+ var jsxRuntime = require('react/jsx-runtime');
30
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
31
+ var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
30
32
  require('@bigbinary/neeto-commons-frontend/react-utils/withT');
31
33
  require('@bigbinary/neeto-editor/EditorContent');
32
34
  require('./index-57253dc4.js');
@@ -64,18 +66,20 @@ var LeftArrow__default = /*#__PURE__*/_interopDefaultLegacy(LeftArrow);
64
66
  var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
65
67
  var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
66
68
  var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form$1);
69
+ var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
70
+ var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
71
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
67
72
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
73
+ var Down__default = /*#__PURE__*/_interopDefaultLegacy(Down);
74
+ var Up__default = /*#__PURE__*/_interopDefaultLegacy(Up);
68
75
  var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
69
- var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
70
76
  var Switch__default = /*#__PURE__*/_interopDefaultLegacy(Switch);
71
- var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
72
- var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
73
- var FormikEditor__default = /*#__PURE__*/_interopDefaultLegacy(FormikEditor);
74
77
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
75
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
76
78
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
77
79
  var DatePicker__default = /*#__PURE__*/_interopDefaultLegacy(DatePicker);
78
80
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
81
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
82
+ var FormikEditor__default = /*#__PURE__*/_interopDefaultLegacy(FormikEditor);
79
83
 
80
84
  var INITIAL_VALUES = {
81
85
  sendFromEmail: "",
@@ -91,24 +95,6 @@ var INITIAL_VALUES = {
91
95
  var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
92
96
  var TIME_FORMAT = "hh:mm A";
93
97
 
94
- var EmailBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
95
- var id = _ref.id,
96
- showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
97
- var _useTranslation = reactI18next.useTranslation(),
98
- t = _useTranslation.t;
99
- return /*#__PURE__*/jsxRuntime.jsx(FormikEditor__default["default"], {
100
- id: id,
101
- ref: ref,
102
- required: true,
103
- className: "mb-6",
104
- "data-cy": "email-body",
105
- label: t("neetoMolecules.shareViaEmail.emailBody"),
106
- name: "emailBody",
107
- addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray__default["default"](EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
108
- });
109
- });
110
- EmailBody.displayName = "EmailBody";
111
-
112
98
  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; }
113
99
  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__default["default"](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; }
114
100
  var isPastDate = function isPastDate(date) {
@@ -209,42 +195,41 @@ var FormikDatePicker = function FormikDatePicker(_ref) {
209
195
  }, props));
210
196
  };
211
197
 
212
- var Form = function Form(_ref) {
198
+ var AdvancedProperties = function AdvancedProperties(_ref) {
213
199
  var showSendFromField = _ref.showSendFromField,
214
- disableReplyTo = _ref.disableReplyTo,
215
- showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
216
- children = _ref.children;
217
- var _useFormikContext = formik.useFormikContext(),
218
- values = _useFormikContext.values,
219
- initialValues = _useFormikContext.initialValues;
220
- var editorRef = React.useRef();
200
+ disableReplyTo = _ref.disableReplyTo;
221
201
  var _useTranslation = reactI18next.useTranslation(),
222
202
  t = _useTranslation.t;
223
- var handleReset = function handleReset() {
224
- return editorRef.current.editor.commands.setContent(initialValues.emailBody);
203
+ var _useFormikContext = formik.useFormikContext(),
204
+ values = _useFormikContext.values;
205
+ var _useState = React.useState(false),
206
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
207
+ isAdvancedPropertiesVisible = _useState2[0],
208
+ setIsAdvancedPropertiesVisible = _useState2[1];
209
+ var toggleAdvancedOptions = function toggleAdvancedOptions() {
210
+ return setIsAdvancedPropertiesVisible(ramda.not);
225
211
  };
226
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
227
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
228
- className: "space-y-4",
229
- children: [/*#__PURE__*/jsxRuntime.jsx(SendToFields, {
230
- showUploadCsvButton: true,
231
- emailInputProps: {
232
- label: t("neetoMolecules.shareViaEmail.sendTo"),
233
- name: "notifyEmails",
234
- required: true
235
- }
236
- }), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
237
- required: true,
238
- className: "col-span-1",
239
- label: t("neetoMolecules.shareViaEmail.subject"),
240
- name: "emailSubject"
241
- }), /*#__PURE__*/jsxRuntime.jsx(EmailBody, {
242
- showVideoEmbedInEditor: showVideoEmbedInEditor,
243
- id: "emailBody",
244
- ref: editorRef
245
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
246
- ref: editorRef
247
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
212
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
213
+ className: "flex w-full flex-col items-start gap-4",
214
+ children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
215
+ className: "flex w-full cursor-pointer items-start justify-between overflow-hidden border-0 py-4",
216
+ type: "button",
217
+ onClick: toggleAdvancedOptions,
218
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
219
+ className: "flex min-w-0 flex-grow",
220
+ component: "span",
221
+ style: "h5",
222
+ weight: "medium",
223
+ children: t("neetoMolecules.shareViaEmail.advancedProperties")
224
+ }), isAdvancedPropertiesVisible ? /*#__PURE__*/jsxRuntime.jsx(Up__default["default"], {
225
+ className: "flex-shrink-0",
226
+ size: 20
227
+ }) : /*#__PURE__*/jsxRuntime.jsx(Down__default["default"], {
228
+ className: "flex-shrink-0",
229
+ size: 20
230
+ })]
231
+ }), isAdvancedPropertiesVisible && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
232
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
248
233
  children: /*#__PURE__*/jsxRuntime.jsxs(Label__default["default"], {
249
234
  className: "flex items-center gap-2",
250
235
  children: [/*#__PURE__*/jsxRuntime.jsx(Switch__default["default"], {
@@ -269,18 +254,19 @@ var Form = function Form(_ref) {
269
254
  size: "large"
270
255
  }), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
271
256
  required: true,
257
+ className: "w-full",
272
258
  label: t("neetoMolecules.shareViaEmail.startButtonText"),
273
259
  name: "actionButtonText"
274
260
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
275
- className: "flex flex-col gap-4 sm:flex-row sm:gap-6",
261
+ className: "flex w-full flex-col gap-4 sm:flex-row sm:gap-6",
276
262
  children: [showSendFromField && /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
277
263
  required: true,
278
- className: classnames__default["default"]({
279
- "w-full flex-grow-0": !disableReplyTo
280
- }),
281
264
  "data-testid": "neeto-molecules-share-via-email-send-from",
282
265
  label: t("neetoMolecules.shareViaEmail.sendFrom"),
283
- name: "sendFromEmail"
266
+ name: "sendFromEmail",
267
+ className: classnames__default["default"]({
268
+ "w-full flex-grow-0": !disableReplyTo
269
+ })
284
270
  }), !disableReplyTo && /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
285
271
  required: true,
286
272
  "data-testid": "replyTo-field",
@@ -291,6 +277,66 @@ var Form = function Form(_ref) {
291
277
  })
292
278
  })]
293
279
  })]
280
+ })]
281
+ });
282
+ };
283
+
284
+ var EmailBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
285
+ var id = _ref.id,
286
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
287
+ var _useTranslation = reactI18next.useTranslation(),
288
+ t = _useTranslation.t;
289
+ return /*#__PURE__*/jsxRuntime.jsx(FormikEditor__default["default"], {
290
+ id: id,
291
+ ref: ref,
292
+ required: true,
293
+ className: "mb-6",
294
+ "data-cy": "email-body",
295
+ label: t("neetoMolecules.shareViaEmail.emailBody"),
296
+ name: "emailBody",
297
+ addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray__default["default"](EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
298
+ });
299
+ });
300
+ EmailBody.displayName = "EmailBody";
301
+
302
+ var Form = function Form(_ref) {
303
+ var showSendFromField = _ref.showSendFromField,
304
+ disableReplyTo = _ref.disableReplyTo,
305
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
306
+ children = _ref.children;
307
+ var _useFormikContext = formik.useFormikContext(),
308
+ initialValues = _useFormikContext.initialValues;
309
+ var editorRef = React.useRef();
310
+ var _useTranslation = reactI18next.useTranslation(),
311
+ t = _useTranslation.t;
312
+ var handleReset = function handleReset() {
313
+ return editorRef.current.editor.commands.setContent(initialValues.emailBody);
314
+ };
315
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
316
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
317
+ className: "space-y-4",
318
+ children: [/*#__PURE__*/jsxRuntime.jsx(SendToFields, {
319
+ showUploadCsvButton: true,
320
+ emailInputProps: {
321
+ label: t("neetoMolecules.shareViaEmail.sendTo"),
322
+ name: "notifyEmails",
323
+ required: true
324
+ }
325
+ }), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
326
+ required: true,
327
+ className: "col-span-1",
328
+ label: t("neetoMolecules.shareViaEmail.subject"),
329
+ name: "emailSubject"
330
+ }), /*#__PURE__*/jsxRuntime.jsx(EmailBody, {
331
+ showVideoEmbedInEditor: showVideoEmbedInEditor,
332
+ id: "emailBody",
333
+ ref: editorRef
334
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
335
+ ref: editorRef
336
+ }), /*#__PURE__*/jsxRuntime.jsx(AdvancedProperties, {
337
+ disableReplyTo: disableReplyTo,
338
+ showSendFromField: showSendFromField
339
+ })]
294
340
  }), children && /*#__PURE__*/jsxRuntime.jsxs("div", {
295
341
  className: "neeto-ui-border-gray-300 mt-4 border-t py-4",
296
342
  children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
@@ -1 +1 @@
1
- {"version":3,"file":"ShareViaEmail.js","sources":["../../src/components/ShareViaEmail/constants.js","../../src/components/ShareViaEmail/EmailBodyEditor.jsx","../../src/components/ShareViaEmail/utils.js","../../src/components/ShareViaEmail/FormikDatePicker.jsx","../../src/components/ShareViaEmail/Form.jsx","../../src/components/ShareViaEmail/index.jsx"],"sourcesContent":["export const ONE_MEGABYTE = 1_048_576;\n\nexport const INITIAL_VALUES = {\n sendFromEmail: \"\",\n replyToEmail: \"\",\n notifyEmails: [],\n emailSubject: \"\",\n emailBody: \"\",\n isSendLaterEnabled: false,\n sendEmailDatetime: undefined,\n category: \"email_share\",\n actionButtonText: \"\",\n};\n\nexport const EDITOR_ADDONS = [\n \"emoji\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n\nexport const TIME_FORMAT = \"hh:mm A\";\n","import { forwardRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\n\nconst EmailBody = forwardRef(({ id, showVideoEmbedInEditor }, ref) => {\n const { t } = useTranslation();\n\n return (\n <FormikEditor\n {...{ id, ref }}\n required\n className=\"mb-6\"\n data-cy=\"email-body\"\n label={t(\"neetoMolecules.shareViaEmail.emailBody\")}\n name=\"emailBody\"\n addons={\n showVideoEmbedInEditor\n ? [...EDITOR_ADDONS, \"video-embed\"]\n : EDITOR_ADDONS\n }\n />\n );\n});\n\nEmailBody.displayName = \"EmailBody\";\n\nexport default EmailBody;\n","import { t } from \"i18next\";\nimport { dynamicArray, isNot } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\nimport * as yup from \"yup\";\n\nimport { INITIAL_VALUES } from \"./constants\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const isPastDate = date =>\n dayjs(date).isBefore(dayjs().subtract(1, \"days\"));\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = file =>\n new Promise(resolve => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (!isEmailFieldPresent) return resolve([]);\n\n const emails = results.data\n .map(item => item.email?.trim())\n .filter(isNot(undefined));\n\n return resolve(createEmailOptions(emails));\n },\n });\n });\n\nexport const generateInitialValues = defaultValues => ({\n ...INITIAL_VALUES,\n ...defaultValues,\n});\n\nexport const emailFormValidationSchema = disableReplyTo =>\n yup.object().shape({\n emailSubject: yup\n .string()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.subject\")\n ),\n emailBody: yup\n .string()\n .test(\n \"emailBody\",\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.emailBody\"),\n value => !isEditorEmpty(value)\n ),\n sendFromEmail: yup\n .string()\n .trim()\n .email(\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\")\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendFrom\")\n ),\n replyToEmail:\n !disableReplyTo &&\n yup\n .string()\n .trim()\n .email(\n t(\n \"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"\n )\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.replyTo\")\n ),\n notifyEmails: yup\n .array()\n .min(\n 1,\n t(\n \"neetoMolecules.shareViaEmail.validations.atleastOneIsRequired.emailAddress\"\n )\n )\n .test(\n \"are-all-emails-valid\",\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"),\n emails => emails.every(prop(\"valid\"))\n ),\n isSendLaterEnabled: yup.boolean(),\n sendEmailDatetime: yup.date().when(\"isSendLaterEnabled\", {\n is: true,\n then: yup\n .date()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendLater\")\n ),\n }),\n name: yup.string(),\n actionButtonText: yup\n .string()\n .required(\n t(\n \"neetoMolecules.shareViaEmail.validations.requiredField.startButtonText\"\n )\n ),\n });\n\nexport const disabledTime = selectedDate => {\n const current = dayjs(selectedDate).startOf(\"day\");\n const today = dayjs().startOf(\"day\");\n\n if (current.isBefore(today)) {\n return {\n disabledHours: () => dynamicArray(24, i => i),\n disabledMinutes: () => dynamicArray(60, i => i),\n };\n }\n\n if (current.isSame(today)) {\n const currentTime = dayjs();\n const currentHour = currentTime.hour();\n const currentMinute = currentTime.minute();\n\n return {\n disabledHours: () => dynamicArray(currentHour, i => i),\n disabledMinutes: selectedHour =>\n selectedHour === currentHour ? dynamicArray(currentMinute, i => i) : [],\n };\n }\n\n return {};\n};\n","import { useField } from \"formik\";\nimport { DatePicker } from \"neetoui\";\n\nimport { TIME_FORMAT } from \"./constants\";\nimport { disabledTime } from \"./utils\";\n\nconst FormikDatePicker = ({ name, disabledDate, ...props }) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n\n return (\n <DatePicker\n showTime\n timeFormat={TIME_FORMAT}\n {...{ ...field, ...meta, disabledDate }}\n data-cy={props[\"data-cy\"]}\n data-testid={props[\"data-testid\"]}\n timePickerProps={{ disabledTime }}\n onBlur={() => !meta.touched && setTouched(true)}\n onChange={date => {\n setValue(date || undefined);\n if (!meta.touched) setTouched(true);\n }}\n {...props}\n />\n );\n};\n\nexport default FormikDatePicker;\n","import { useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Typography, Label } from \"neetoui\";\nimport { Input, Switch, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"components/SendToFields\";\n\nimport EmailBody from \"./EmailBodyEditor\";\nimport FormikDatePicker from \"./FormikDatePicker\";\nimport { isPastDate } from \"./utils\";\n\nconst Form = ({\n showSendFromField,\n disableReplyTo,\n showVideoEmbedInEditor,\n children,\n}) => {\n const { values, initialValues } = useFormikContext();\n const editorRef = useRef();\n const { t } = useTranslation();\n\n const handleReset = () =>\n editorRef.current.editor.commands.setContent(initialValues.emailBody);\n\n return (\n <>\n <div className=\"space-y-4\">\n <SendToFields\n showUploadCsvButton\n emailInputProps={{\n label: t(\"neetoMolecules.shareViaEmail.sendTo\"),\n name: \"notifyEmails\",\n required: true,\n }}\n />\n <Input\n required\n className=\"col-span-1\"\n label={t(\"neetoMolecules.shareViaEmail.subject\")}\n name=\"emailSubject\"\n />\n <EmailBody\n {...{ showVideoEmbedInEditor }}\n id=\"emailBody\"\n ref={editorRef}\n />\n <div ref={editorRef} />\n <div>\n <Label className=\"flex items-center gap-2\">\n <Switch\n data-cy=\"send-later-switch\"\n data-testid=\"send-later-switch\"\n name=\"isSendLaterEnabled\"\n />\n <Typography\n component=\"span\"\n data-cy=\"send-later-label\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.sendLater\")}\n </Typography>\n </Label>\n </div>\n {values.isSendLaterEnabled && (\n <FormikDatePicker\n autoFocus\n data-cy=\"email-share-date-input\"\n data-testid=\"formik-date-picker\"\n disabledDate={isPastDate}\n name=\"sendEmailDatetime\"\n size=\"large\"\n />\n )}\n <Input\n required\n label={t(\"neetoMolecules.shareViaEmail.startButtonText\")}\n name=\"actionButtonText\"\n />\n <div className=\"flex flex-col gap-4 sm:flex-row sm:gap-6\">\n {showSendFromField && (\n <Input\n required\n className={classnames({ \"w-full flex-grow-0\": !disableReplyTo })}\n data-testid=\"neeto-molecules-share-via-email-send-from\"\n label={t(\"neetoMolecules.shareViaEmail.sendFrom\")}\n name=\"sendFromEmail\"\n />\n )}\n {!disableReplyTo && (\n <Input\n required\n data-testid=\"replyTo-field\"\n label={t(\"neetoMolecules.shareViaEmail.replyTo\")}\n name=\"replyToEmail\"\n className={classnames({\n \"w-full flex-grow-0\": showSendFromField,\n })}\n />\n )}\n </div>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 mt-4 border-t py-4\">\n <h3 className=\"mb-4\">\n {t(\"neetoMolecules.shareViaEmail.additionalOptions\")}\n </h3>\n {children}\n </div>\n )}\n <div className=\"mt-6\">\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.reset\"),\n type: \"reset\",\n onClick: handleReset,\n }}\n submitButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.sendEmail\"),\n }}\n />\n </div>\n </>\n );\n};\n\nexport default Form;\n","import { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { Form } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmailPreview from \"components/EmailPreview\";\n\nimport EmailForm from \"./Form\";\nimport { emailFormValidationSchema, generateInitialValues } from \"./utils\";\n\nconst ShareViaEmail = ({\n showSendFromField = false,\n backToUrl,\n handleSubmit,\n children,\n description,\n defaultValues,\n disableReplyTo,\n showVideoEmbedInEditor,\n title = \"\",\n}) => {\n const { t } = useTranslation();\n\n const shareViaEmailTitle = title || t(\"neetoMolecules.shareViaEmail.title\");\n const sendToEmails = notifyEmails => notifyEmails.map(email => email?.value);\n\n return (\n <div className=\"neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-6 md:p-8\">\n <div className=\"mx-auto flex w-full max-w-7xl flex-col\">\n <Form\n scrollToErrorField\n formProps={{ noValidate: true }}\n formikProps={{\n enableReinitialize: true,\n validateOnMount: true,\n initialValues: generateInitialValues(defaultValues),\n validationSchema: emailFormValidationSchema(disableReplyTo),\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => (\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-12\">\n <div className=\"col-span-1 md:col-span-6 lg:col-span-5\">\n {backToUrl && (\n <Button\n className=\"mb-4\"\n data-testid=\"back-to-url-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaEmail.backToShare\")}\n size=\"small\"\n style=\"link\"\n to={backToUrl}\n />\n )}\n <div className=\"mb-6\">\n <Typography\n className=\"mb-0.5 break-words\"\n data-cy=\"share-via-email-heading\"\n lineHeight=\"normal\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {shareViaEmailTitle}\n </Typography>\n {description && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"share-via-email-sub-heading\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n )}\n </div>\n <EmailForm\n {...{\n disableReplyTo,\n showSendFromField,\n showVideoEmbedInEditor,\n }}\n >\n {children}\n </EmailForm>\n </div>\n <div className=\"col-span-1 md:col-span-6 lg:col-span-7\">\n <EmailPreview\n actionButtonText={values.actionButtonText}\n body={values.emailBody}\n className=\"sticky pt-1 md:mt-28\"\n subject={values.emailSubject}\n to={sendToEmails(values.notifyEmails)}\n />\n </div>\n </div>\n )}\n </Form>\n </div>\n </div>\n );\n};\n\nShareViaEmail.propTypes = {\n /**\n * The path to navigate back to the required page on clicking the 'Back to share' button.\n */\n backToUrl: PropTypes.string,\n /**\n * The function that handles submitting of values to the API.\n */\n handleSubmit: PropTypes.func,\n /**\n * React components that can be passed on as children, to add optional fields.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * Description text to be displayed under the component title.\n */\n description: PropTypes.string,\n /**\n * An object to assign default values to the email form.\n */\n defaultValues: PropTypes.shape({\n sendFromEmail: PropTypes.string,\n replyToEmail: PropTypes.string,\n actionButtonText: PropTypes.string,\n emailSubject: PropTypes.string,\n emailBody: PropTypes.string,\n }),\n /**\n * Boolean value to show the \"Send From\" field if needed.\n */\n showSendFromField: PropTypes.bool,\n /**\n * Boolean value to hide the \"Reply to\" field if not needed.\n */\n disableReplyTo: PropTypes.bool,\n /**\n * Boolean value to show video url as embed video in email body.\n */\n showVideoEmbedInEditor: PropTypes.bool,\n /**\n * To specify the title of the component. Defaults to \"Share via email\"\n */\n title: PropTypes.string,\n};\n\nexport default ShareViaEmail;\n"],"names":["INITIAL_VALUES","sendFromEmail","replyToEmail","notifyEmails","emailSubject","emailBody","isSendLaterEnabled","sendEmailDatetime","undefined","category","actionButtonText","EDITOR_ADDONS","TIME_FORMAT","EmailBody","forwardRef","_ref","ref","id","showVideoEmbedInEditor","_useTranslation","useTranslation","t","_jsx","FormikEditor","required","className","label","name","addons","concat","_toConsumableArray","displayName","isPastDate","date","dayjs","isBefore","subtract","generateInitialValues","defaultValues","_objectSpread","emailFormValidationSchema","disableReplyTo","yup","object","shape","string","test","value","isEditorEmpty","trim","email","array","min","emails","every","prop","when","is","then","disabledTime","selectedDate","current","startOf","today","disabledHours","dynamicArray","i","disabledMinutes","isSame","currentTime","currentHour","hour","currentMinute","minute","selectedHour","FormikDatePicker","disabledDate","props","_objectWithoutProperties","_excluded","_useField","useField","_useField2","_slicedToArray","field","meta","_useField2$","setValue","setTouched","DatePicker","showTime","timeFormat","timePickerProps","onBlur","touched","onChange","Form","showSendFromField","children","_useFormikContext","useFormikContext","values","initialValues","editorRef","useRef","handleReset","editor","commands","setContent","_jsxs","_Fragment","SendToFields","showUploadCsvButton","emailInputProps","Input","Label","Switch","Typography","component","lineHeight","style","weight","autoFocus","size","classnames","ActionBlock","cancelButtonProps","type","onClick","submitButtonProps","ShareViaEmail","_ref$showSendFromFiel","backToUrl","handleSubmit","description","_ref$title","title","shareViaEmailTitle","sendToEmails","map","scrollToErrorField","formProps","noValidate","formikProps","enableReinitialize","validateOnMount","validationSchema","onSubmit","_ref2","Button","icon","LeftArrow","iconPosition","to","EmailForm","EmailPreview","body","subject"],"mappings":"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"}
1
+ {"version":3,"file":"ShareViaEmail.js","sources":["../../src/components/ShareViaEmail/constants.js","../../src/components/ShareViaEmail/utils.js","../../src/components/ShareViaEmail/FormikDatePicker.jsx","../../src/components/ShareViaEmail/AdvancedProperties.jsx","../../src/components/ShareViaEmail/EmailBodyEditor.jsx","../../src/components/ShareViaEmail/Form.jsx","../../src/components/ShareViaEmail/index.jsx"],"sourcesContent":["export const ONE_MEGABYTE = 1_048_576;\n\nexport const INITIAL_VALUES = {\n sendFromEmail: \"\",\n replyToEmail: \"\",\n notifyEmails: [],\n emailSubject: \"\",\n emailBody: \"\",\n isSendLaterEnabled: false,\n sendEmailDatetime: undefined,\n category: \"email_share\",\n actionButtonText: \"\",\n};\n\nexport const EDITOR_ADDONS = [\n \"emoji\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n\nexport const TIME_FORMAT = \"hh:mm A\";\n","import { t } from \"i18next\";\nimport { dynamicArray, isNot } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\nimport * as yup from \"yup\";\n\nimport { INITIAL_VALUES } from \"./constants\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const isPastDate = date =>\n dayjs(date).isBefore(dayjs().subtract(1, \"days\"));\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = file =>\n new Promise(resolve => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (!isEmailFieldPresent) return resolve([]);\n\n const emails = results.data\n .map(item => item.email?.trim())\n .filter(isNot(undefined));\n\n return resolve(createEmailOptions(emails));\n },\n });\n });\n\nexport const generateInitialValues = defaultValues => ({\n ...INITIAL_VALUES,\n ...defaultValues,\n});\n\nexport const emailFormValidationSchema = disableReplyTo =>\n yup.object().shape({\n emailSubject: yup\n .string()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.subject\")\n ),\n emailBody: yup\n .string()\n .test(\n \"emailBody\",\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.emailBody\"),\n value => !isEditorEmpty(value)\n ),\n sendFromEmail: yup\n .string()\n .trim()\n .email(\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\")\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendFrom\")\n ),\n replyToEmail:\n !disableReplyTo &&\n yup\n .string()\n .trim()\n .email(\n t(\n \"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"\n )\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.replyTo\")\n ),\n notifyEmails: yup\n .array()\n .min(\n 1,\n t(\n \"neetoMolecules.shareViaEmail.validations.atleastOneIsRequired.emailAddress\"\n )\n )\n .test(\n \"are-all-emails-valid\",\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"),\n emails => emails.every(prop(\"valid\"))\n ),\n isSendLaterEnabled: yup.boolean(),\n sendEmailDatetime: yup.date().when(\"isSendLaterEnabled\", {\n is: true,\n then: yup\n .date()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendLater\")\n ),\n }),\n name: yup.string(),\n actionButtonText: yup\n .string()\n .required(\n t(\n \"neetoMolecules.shareViaEmail.validations.requiredField.startButtonText\"\n )\n ),\n });\n\nexport const disabledTime = selectedDate => {\n const current = dayjs(selectedDate).startOf(\"day\");\n const today = dayjs().startOf(\"day\");\n\n if (current.isBefore(today)) {\n return {\n disabledHours: () => dynamicArray(24, i => i),\n disabledMinutes: () => dynamicArray(60, i => i),\n };\n }\n\n if (current.isSame(today)) {\n const currentTime = dayjs();\n const currentHour = currentTime.hour();\n const currentMinute = currentTime.minute();\n\n return {\n disabledHours: () => dynamicArray(currentHour, i => i),\n disabledMinutes: selectedHour =>\n selectedHour === currentHour ? dynamicArray(currentMinute, i => i) : [],\n };\n }\n\n return {};\n};\n","import { useField } from \"formik\";\nimport { DatePicker } from \"neetoui\";\n\nimport { TIME_FORMAT } from \"./constants\";\nimport { disabledTime } from \"./utils\";\n\nconst FormikDatePicker = ({ name, disabledDate, ...props }) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n\n return (\n <DatePicker\n showTime\n timeFormat={TIME_FORMAT}\n {...{ ...field, ...meta, disabledDate }}\n data-cy={props[\"data-cy\"]}\n data-testid={props[\"data-testid\"]}\n timePickerProps={{ disabledTime }}\n onBlur={() => !meta.touched && setTouched(true)}\n onChange={date => {\n setValue(date || undefined);\n if (!meta.touched) setTouched(true);\n }}\n {...props}\n />\n );\n};\n\nexport default FormikDatePicker;\n","import { useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Down, Up } from \"neetoicons\";\nimport { Label, Typography } from \"neetoui\";\nimport { Input, Switch } from \"neetoui/formik\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport FormikDatePicker from \"./FormikDatePicker\";\nimport { isPastDate } from \"./utils\";\n\nconst AdvancedProperties = ({ showSendFromField, disableReplyTo }) => {\n const { t } = useTranslation();\n\n const { values } = useFormikContext();\n\n const [isAdvancedPropertiesVisible, setIsAdvancedPropertiesVisible] =\n useState(false);\n\n const toggleAdvancedOptions = () => setIsAdvancedPropertiesVisible(not);\n\n return (\n <div className=\"flex w-full flex-col items-start gap-4\">\n <button\n className=\"flex w-full cursor-pointer items-start justify-between overflow-hidden border-0 py-4\"\n type=\"button\"\n onClick={toggleAdvancedOptions}\n >\n <Typography\n className=\"flex min-w-0 flex-grow\"\n component=\"span\"\n style=\"h5\"\n weight=\"medium\"\n >\n {t(\"neetoMolecules.shareViaEmail.advancedProperties\")}\n </Typography>\n {isAdvancedPropertiesVisible ? (\n <Up className=\"flex-shrink-0\" size={20} />\n ) : (\n <Down className=\"flex-shrink-0\" size={20} />\n )}\n </button>\n {isAdvancedPropertiesVisible && (\n <>\n <div>\n <Label className=\"flex items-center gap-2\">\n <Switch\n data-cy=\"send-later-switch\"\n data-testid=\"send-later-switch\"\n name=\"isSendLaterEnabled\"\n />\n <Typography\n component=\"span\"\n data-cy=\"send-later-label\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.sendLater\")}\n </Typography>\n </Label>\n </div>\n {values.isSendLaterEnabled && (\n <FormikDatePicker\n autoFocus\n data-cy=\"email-share-date-input\"\n data-testid=\"formik-date-picker\"\n disabledDate={isPastDate}\n name=\"sendEmailDatetime\"\n size=\"large\"\n />\n )}\n <Input\n required\n className=\"w-full\"\n label={t(\"neetoMolecules.shareViaEmail.startButtonText\")}\n name=\"actionButtonText\"\n />\n <div className=\"flex w-full flex-col gap-4 sm:flex-row sm:gap-6\">\n {showSendFromField && (\n <Input\n required\n data-testid=\"neeto-molecules-share-via-email-send-from\"\n label={t(\"neetoMolecules.shareViaEmail.sendFrom\")}\n name=\"sendFromEmail\"\n className={classNames({\n \"w-full flex-grow-0\": !disableReplyTo,\n })}\n />\n )}\n {!disableReplyTo && (\n <Input\n required\n data-testid=\"replyTo-field\"\n label={t(\"neetoMolecules.shareViaEmail.replyTo\")}\n name=\"replyToEmail\"\n className={classNames({\n \"w-full flex-grow-0\": showSendFromField,\n })}\n />\n )}\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport default AdvancedProperties;\n","import { forwardRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\n\nconst EmailBody = forwardRef(({ id, showVideoEmbedInEditor }, ref) => {\n const { t } = useTranslation();\n\n return (\n <FormikEditor\n {...{ id, ref }}\n required\n className=\"mb-6\"\n data-cy=\"email-body\"\n label={t(\"neetoMolecules.shareViaEmail.emailBody\")}\n name=\"emailBody\"\n addons={\n showVideoEmbedInEditor\n ? [...EDITOR_ADDONS, \"video-embed\"]\n : EDITOR_ADDONS\n }\n />\n );\n});\n\nEmailBody.displayName = \"EmailBody\";\n\nexport default EmailBody;\n","import { useRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Input, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"components/SendToFields\";\n\nimport AdvancedProperties from \"./AdvancedProperties\";\nimport EmailBody from \"./EmailBodyEditor\";\n\nconst Form = ({\n showSendFromField,\n disableReplyTo,\n showVideoEmbedInEditor,\n children,\n}) => {\n const { initialValues } = useFormikContext();\n const editorRef = useRef();\n const { t } = useTranslation();\n\n const handleReset = () =>\n editorRef.current.editor.commands.setContent(initialValues.emailBody);\n\n return (\n <>\n <div className=\"space-y-4\">\n <SendToFields\n showUploadCsvButton\n emailInputProps={{\n label: t(\"neetoMolecules.shareViaEmail.sendTo\"),\n name: \"notifyEmails\",\n required: true,\n }}\n />\n <Input\n required\n className=\"col-span-1\"\n label={t(\"neetoMolecules.shareViaEmail.subject\")}\n name=\"emailSubject\"\n />\n <EmailBody\n {...{ showVideoEmbedInEditor }}\n id=\"emailBody\"\n ref={editorRef}\n />\n <div ref={editorRef} />\n <AdvancedProperties {...{ disableReplyTo, showSendFromField }} />\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 mt-4 border-t py-4\">\n <h3 className=\"mb-4\">\n {t(\"neetoMolecules.shareViaEmail.additionalOptions\")}\n </h3>\n {children}\n </div>\n )}\n <div className=\"mt-6\">\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.reset\"),\n type: \"reset\",\n onClick: handleReset,\n }}\n submitButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.sendEmail\"),\n }}\n />\n </div>\n </>\n );\n};\n\nexport default Form;\n","import { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { Form } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmailPreview from \"components/EmailPreview\";\n\nimport EmailForm from \"./Form\";\nimport { emailFormValidationSchema, generateInitialValues } from \"./utils\";\n\nconst ShareViaEmail = ({\n showSendFromField = false,\n backToUrl,\n handleSubmit,\n children,\n description,\n defaultValues,\n disableReplyTo,\n showVideoEmbedInEditor,\n title = \"\",\n}) => {\n const { t } = useTranslation();\n\n const shareViaEmailTitle = title || t(\"neetoMolecules.shareViaEmail.title\");\n const sendToEmails = notifyEmails => notifyEmails.map(email => email?.value);\n\n return (\n <div className=\"neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-6 md:p-8\">\n <div className=\"mx-auto flex w-full max-w-7xl flex-col\">\n <Form\n scrollToErrorField\n formProps={{ noValidate: true }}\n formikProps={{\n enableReinitialize: true,\n validateOnMount: true,\n initialValues: generateInitialValues(defaultValues),\n validationSchema: emailFormValidationSchema(disableReplyTo),\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => (\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-12\">\n <div className=\"col-span-1 md:col-span-6 lg:col-span-5\">\n {backToUrl && (\n <Button\n className=\"mb-4\"\n data-testid=\"back-to-url-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaEmail.backToShare\")}\n size=\"small\"\n style=\"link\"\n to={backToUrl}\n />\n )}\n <div className=\"mb-6\">\n <Typography\n className=\"mb-0.5 break-words\"\n data-cy=\"share-via-email-heading\"\n lineHeight=\"normal\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {shareViaEmailTitle}\n </Typography>\n {description && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"share-via-email-sub-heading\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n )}\n </div>\n <EmailForm\n {...{\n disableReplyTo,\n showSendFromField,\n showVideoEmbedInEditor,\n }}\n >\n {children}\n </EmailForm>\n </div>\n <div className=\"col-span-1 md:col-span-6 lg:col-span-7\">\n <EmailPreview\n actionButtonText={values.actionButtonText}\n body={values.emailBody}\n className=\"sticky pt-1 md:mt-28\"\n subject={values.emailSubject}\n to={sendToEmails(values.notifyEmails)}\n />\n </div>\n </div>\n )}\n </Form>\n </div>\n </div>\n );\n};\n\nShareViaEmail.propTypes = {\n /**\n * The path to navigate back to the required page on clicking the 'Back to share' button.\n */\n backToUrl: PropTypes.string,\n /**\n * The function that handles submitting of values to the API.\n */\n handleSubmit: PropTypes.func,\n /**\n * React components that can be passed on as children, to add optional fields.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * Description text to be displayed under the component title.\n */\n description: PropTypes.string,\n /**\n * An object to assign default values to the email form.\n */\n defaultValues: PropTypes.shape({\n sendFromEmail: PropTypes.string,\n replyToEmail: PropTypes.string,\n actionButtonText: PropTypes.string,\n emailSubject: PropTypes.string,\n emailBody: PropTypes.string,\n }),\n /**\n * Boolean value to show the \"Send From\" field if needed.\n */\n showSendFromField: PropTypes.bool,\n /**\n * Boolean value to hide the \"Reply to\" field if not needed.\n */\n disableReplyTo: PropTypes.bool,\n /**\n * Boolean value to show video url as embed video in email body.\n */\n showVideoEmbedInEditor: PropTypes.bool,\n /**\n * To specify the title of the component. Defaults to \"Share via email\"\n */\n title: PropTypes.string,\n};\n\nexport default ShareViaEmail;\n"],"names":["INITIAL_VALUES","sendFromEmail","replyToEmail","notifyEmails","emailSubject","emailBody","isSendLaterEnabled","sendEmailDatetime","undefined","category","actionButtonText","EDITOR_ADDONS","TIME_FORMAT","isPastDate","date","dayjs","isBefore","subtract","generateInitialValues","defaultValues","_objectSpread","emailFormValidationSchema","disableReplyTo","yup","object","shape","string","required","t","test","value","isEditorEmpty","trim","email","array","min","emails","every","prop","when","is","then","name","disabledTime","selectedDate","current","startOf","today","disabledHours","dynamicArray","i","disabledMinutes","isSame","currentTime","currentHour","hour","currentMinute","minute","selectedHour","FormikDatePicker","_ref","disabledDate","props","_objectWithoutProperties","_excluded","_useField","useField","_useField2","_slicedToArray","field","meta","_useField2$","setValue","setTouched","_jsx","DatePicker","showTime","timeFormat","timePickerProps","onBlur","touched","onChange","AdvancedProperties","showSendFromField","_useTranslation","useTranslation","_useFormikContext","useFormikContext","values","_useState","useState","_useState2","isAdvancedPropertiesVisible","setIsAdvancedPropertiesVisible","toggleAdvancedOptions","not","_jsxs","className","children","type","onClick","Typography","component","style","weight","Up","size","Down","_Fragment","Label","Switch","lineHeight","autoFocus","Input","label","classNames","EmailBody","forwardRef","ref","id","showVideoEmbedInEditor","FormikEditor","addons","concat","_toConsumableArray","displayName","Form","initialValues","editorRef","useRef","handleReset","editor","commands","setContent","SendToFields","showUploadCsvButton","emailInputProps","ActionBlock","cancelButtonProps","submitButtonProps","ShareViaEmail","_ref$showSendFromFiel","backToUrl","handleSubmit","description","_ref$title","title","shareViaEmailTitle","sendToEmails","map","scrollToErrorField","formProps","noValidate","formikProps","enableReinitialize","validateOnMount","validationSchema","onSubmit","_ref2","Button","icon","LeftArrow","iconPosition","to","EmailForm","EmailPreview","body","subject"],"mappings":"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"}
@@ -23,9 +23,9 @@ var injectCss = require('./inject-css-80a5faa3.js');
23
23
  var jsxRuntime = require('react/jsx-runtime');
24
24
  var Modal = require('@bigbinary/neetoui/Modal');
25
25
  var Input$1 = require('@bigbinary/neetoui/Input');
26
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
26
27
  var classnames = require('classnames');
27
28
  var reactRouterDom = require('react-router-dom');
28
- require('@babel/runtime/helpers/defineProperty');
29
29
  require('@babel/runtime/helpers/objectWithoutProperties');
30
30
  require('@bigbinary/neeto-icons/Copy');
31
31
  require('@bigbinary/neeto-icons/Check');
@@ -69,6 +69,7 @@ var Twitter__default = /*#__PURE__*/_interopDefaultLegacy(Twitter);
69
69
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
70
70
  var Modal__default = /*#__PURE__*/_interopDefaultLegacy(Modal);
71
71
  var Input__default$1 = /*#__PURE__*/_interopDefaultLegacy(Input$1);
72
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
72
73
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
73
74
 
74
75
  var facebookShareLink = function facebookShareLink(_ref) {
@@ -1250,7 +1251,7 @@ var QRCode = function QRCode(_ref) {
1250
1251
  });
1251
1252
  };
1252
1253
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1253
- className: "neeto-ui-border-gray-200 flex flex-col justify-center space-y-2 border-t py-3 pl-8 sm:space-y-4 sm:border-l sm:py-2 sm:pl-6",
1254
+ className: "neeto-ui-border-gray-200 flex flex-col justify-start space-y-2 border-t py-3 pl-8 sm:space-y-4 sm:border-l sm:py-2 sm:pl-6",
1254
1255
  "data-cy": "qr-download-block",
1255
1256
  "data-testid": "qr-download-block",
1256
1257
  children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
@@ -1284,6 +1285,32 @@ var QRCode = function QRCode(_ref) {
1284
1285
  });
1285
1286
  };
1286
1287
 
1288
+ var Subtitle = function Subtitle(_ref) {
1289
+ var link = _ref.link,
1290
+ dataCy = _ref.dataCy,
1291
+ _onClick = _ref.onClick,
1292
+ subtitle = _ref.subtitle;
1293
+ var Component = neetoCist.isPresent(link) ? reactRouterDom.Link : "div";
1294
+ return /*#__PURE__*/jsxRuntime.jsx(Component, {
1295
+ "data-cy": dataCy,
1296
+ to: link,
1297
+ onClick: function onClick(event) {
1298
+ event.stopPropagation();
1299
+ _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
1300
+ },
1301
+ children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1302
+ style: "body3",
1303
+ weight: "medium",
1304
+ className: classnames__default["default"]("break-words", {
1305
+ "neeto-ui-text-accent-800": neetoCist.isPresent(_onClick) || neetoCist.isPresent(link)
1306
+ }),
1307
+ children: subtitle
1308
+ })
1309
+ });
1310
+ };
1311
+
1312
+ 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; }
1313
+ 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__default["default"](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; }
1287
1314
  var ShareBlock = function ShareBlock(_ref) {
1288
1315
  var entity = _ref.entity,
1289
1316
  postTitle = _ref.postTitle,
@@ -1298,13 +1325,14 @@ var ShareBlock = function ShareBlock(_ref) {
1298
1325
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1299
1326
  className: "flex flex-col divide-y sm:flex-row sm:gap-6 sm:divide-x sm:divide-y-0",
1300
1327
  children: [hasMoreOptions && /*#__PURE__*/jsxRuntime.jsx("div", {
1301
- className: "divide-y",
1328
+ className: "max-w-md divide-y",
1302
1329
  children: moreOptions.map(function (_ref2, index) {
1303
1330
  var title = _ref2.title,
1304
1331
  link = _ref2.link,
1305
1332
  Icon = _ref2.icon,
1306
1333
  onClick = _ref2.onClick,
1307
- dataCy = _ref2.dataCy;
1334
+ dataCy = _ref2.dataCy,
1335
+ subtitleProps = _ref2.subtitleProps;
1308
1336
  var Component = neetoCist.isPresent(link) ? reactRouterDom.Link : "div";
1309
1337
  return /*#__PURE__*/React.createElement(Component, {
1310
1338
  onClick: onClick,
@@ -1314,14 +1342,20 @@ var ShareBlock = function ShareBlock(_ref) {
1314
1342
  className: classnames__default["default"]("neeto-ui-border-gray-200 flex cursor-pointer items-center gap-x-2 border-t py-3", {
1315
1343
  "border-none": index === 0
1316
1344
  })
1317
- }, /*#__PURE__*/jsxRuntime.jsx(Icon, {
1318
- className: "neeto-ui-text-gray-500",
1319
- size: 24
1320
- }), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1321
- className: "group-hover:underline",
1322
- style: "body2",
1323
- weight: "medium",
1324
- children: title
1345
+ }, /*#__PURE__*/jsxRuntime.jsxs("div", {
1346
+ className: "flex flex-row gap-2",
1347
+ children: [/*#__PURE__*/jsxRuntime.jsx(Icon, {
1348
+ className: "neeto-ui-text-gray-500 flex-shrink-0",
1349
+ size: 24
1350
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1351
+ className: "flex flex-col gap-1",
1352
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
1353
+ className: "group-hover:underline",
1354
+ style: "body2",
1355
+ weight: "medium",
1356
+ children: title
1357
+ }), subtitleProps && /*#__PURE__*/jsxRuntime.jsx(Subtitle, _objectSpread({}, subtitleProps))]
1358
+ })]
1325
1359
  }));
1326
1360
  })
1327
1361
  }), !disableShareSocialMedia && /*#__PURE__*/jsxRuntime.jsxs("div", {