@bigbinary/neeto-molecules 3.2.6 → 3.2.8

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.
@@ -17,13 +17,13 @@ var SendToFields = require('./SendToFields.js');
17
17
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
18
18
  var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
19
19
  var _extends = require('@babel/runtime/helpers/extends');
20
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
20
21
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
21
22
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
22
- var DateTimePicker = require('@bigbinary/neetoui/DateTimePicker');
23
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
23
+ var DatePicker = require('@bigbinary/neetoui/DatePicker');
24
24
  var dayjs = require('dayjs');
25
25
  var i18next = require('i18next');
26
- require('@bigbinary/neeto-cist');
26
+ var neetoCist = require('@bigbinary/neeto-cist');
27
27
  var utils = require('@bigbinary/neeto-editor/utils');
28
28
  var ramda = require('ramda');
29
29
  var yup = require('yup');
@@ -75,10 +75,10 @@ var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
75
75
  var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
76
76
  var FormikEditor__default = /*#__PURE__*/_interopDefaultLegacy(FormikEditor);
77
77
  var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
78
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
78
79
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
79
80
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
80
- var DateTimePicker__default = /*#__PURE__*/_interopDefaultLegacy(DateTimePicker);
81
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
81
+ var DatePicker__default = /*#__PURE__*/_interopDefaultLegacy(DatePicker);
82
82
  var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
83
83
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
84
84
 
@@ -94,6 +94,7 @@ var INITIAL_VALUES = {
94
94
  actionButtonText: ""
95
95
  };
96
96
  var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
97
+ var TIME_FORMAT = "hh:mm A";
97
98
 
98
99
  var EmailBody = function EmailBody(_ref, ref) {
99
100
  var id = _ref.id,
@@ -113,13 +114,13 @@ var EmailBody = function EmailBody(_ref, ref) {
113
114
  };
114
115
  var EmailBody$1 = /*#__PURE__*/React.forwardRef(EmailBody);
115
116
 
116
- 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; }
117
- 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; }
117
+ 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; }
118
+ 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; }
118
119
  var isPastDate = function isPastDate(date) {
119
120
  return dayjs__default["default"](date).isBefore(dayjs__default["default"]().subtract(1, "days"));
120
121
  };
121
122
  var generateInitialValues = function generateInitialValues(defaultValues) {
122
- return _objectSpread(_objectSpread({}, INITIAL_VALUES), defaultValues);
123
+ return _objectSpread$1(_objectSpread$1({}, INITIAL_VALUES), defaultValues);
123
124
  };
124
125
  var emailFormValidationSchema = function emailFormValidationSchema(disableReplyTo) {
125
126
  return yup__namespace.object().shape({
@@ -142,33 +143,45 @@ var emailFormValidationSchema = function emailFormValidationSchema(disableReplyT
142
143
  });
143
144
  };
144
145
  var disabledTime = function disabledTime(selectedDate) {
145
- var current = selectedDate ? dayjs__default["default"](selectedDate).startOf("day") : null;
146
- if (!current) return {};
146
+ var current = dayjs__default["default"](selectedDate).startOf("day");
147
147
  var today = dayjs__default["default"]().startOf("day");
148
- var isAfterToday = current.isAfter(today, "day");
149
- var isBeforeToday = current.isBefore(today, "day");
150
- if (isAfterToday) {
148
+ if (current.isBefore(today)) {
151
149
  return {
152
- minTime: null,
153
- maxTime: null
150
+ disabledHours: function disabledHours() {
151
+ return neetoCist.dynamicArray(24, function (i) {
152
+ return i;
153
+ });
154
+ },
155
+ disabledMinutes: function disabledMinutes() {
156
+ return neetoCist.dynamicArray(60, function (i) {
157
+ return i;
158
+ });
159
+ }
154
160
  };
155
- } else if (isBeforeToday) {
161
+ }
162
+ if (current.isSame(today)) {
163
+ var currentTime = dayjs__default["default"]();
164
+ var currentHour = currentTime.hour();
165
+ var currentMinute = currentTime.minute();
156
166
  return {
157
- minTime: "0:00",
158
- maxTime: "24:00"
167
+ disabledHours: function disabledHours() {
168
+ return neetoCist.dynamicArray(currentHour, function (i) {
169
+ return i;
170
+ });
171
+ },
172
+ disabledMinutes: function disabledMinutes(selectedHour) {
173
+ return selectedHour === currentHour ? neetoCist.dynamicArray(currentMinute, function (i) {
174
+ return i;
175
+ }) : [];
176
+ }
159
177
  };
160
178
  }
161
-
162
- // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
163
- var currentTime = dayjs__default["default"]().format("HH:mm");
164
- var endOfDay = "23:59";
165
- return {
166
- minTime: currentTime,
167
- maxTime: endOfDay
168
- };
179
+ return {};
169
180
  };
170
181
 
171
182
  var _excluded = ["name", "disabledDate"];
183
+ 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; }
184
+ 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; }
172
185
  var FormikDatePicker = function FormikDatePicker(_ref) {
173
186
  var name = _ref.name,
174
187
  disabledDate = _ref.disabledDate,
@@ -180,23 +193,23 @@ var FormikDatePicker = function FormikDatePicker(_ref) {
180
193
  _useField2$ = _useField2[2],
181
194
  setValue = _useField2$.setValue,
182
195
  setTouched = _useField2$.setTouched;
183
- var disabledTimeFrame = React.useMemo(function () {
184
- return disabledTime(field === null || field === void 0 ? void 0 : field.value);
185
- }, [field === null || field === void 0 ? void 0 : field.value]);
186
- return /*#__PURE__*/React__default["default"].createElement(DateTimePicker__default["default"], _extends__default["default"]({}, field, meta, {
187
- timePickerProps: disabledTimeFrame,
188
- datePickerProps: {
189
- disabledDate: disabledDate,
190
- "data-cy": props["data-cy"],
191
- "data-testid": props["data-testid"]
196
+ return /*#__PURE__*/React__default["default"].createElement(DatePicker__default["default"], _extends__default["default"]({
197
+ showTime: true,
198
+ timeFormat: TIME_FORMAT
199
+ }, _objectSpread(_objectSpread(_objectSpread({}, field), meta), {}, {
200
+ disabledDate: disabledDate
201
+ }), {
202
+ "data-cy": props["data-cy"],
203
+ "data-testid": props["data-testid"],
204
+ timePickerProps: {
205
+ disabledTime: disabledTime
192
206
  },
193
- onBlur: function onBlur(date) {
194
- setValue(date || undefined);
195
- setTouched(true);
207
+ onBlur: function onBlur() {
208
+ return !meta.touched && setTouched(true);
196
209
  },
197
210
  onChange: function onChange(date) {
198
211
  setValue(date || undefined);
199
- setTouched(true);
212
+ if (!meta.touched) setTouched(true);
200
213
  }
201
214
  }, props));
202
215
  };
@@ -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","import React, { forwardRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\n\nconst EmailBody = ({ id, showVideoEmbedInEditor }, ref) => {\n const { t } = useTranslation();\n\n return (\n <FormikEditor\n required\n className=\"mb-6\"\n data-cy=\"email-body\"\n id={id}\n label={t(\"neetoMolecules.shareViaEmail.emailBody\")}\n name=\"emailBody\"\n ref={ref}\n addons={\n showVideoEmbedInEditor\n ? [...EDITOR_ADDONS, \"video-embed\"]\n : EDITOR_ADDONS\n }\n />\n );\n};\n\nexport default forwardRef(EmailBody);\n","import dayjs from \"dayjs\";\nimport { t } from \"i18next\";\nimport { isNot } from \"neetocist\";\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 = selectedDate ? dayjs(selectedDate).startOf(\"day\") : null;\n\n if (!current) return {};\n\n const today = dayjs().startOf(\"day\");\n const isAfterToday = current.isAfter(today, \"day\");\n const isBeforeToday = current.isBefore(today, \"day\");\n\n if (isAfterToday) {\n return { minTime: null, maxTime: null };\n } else if (isBeforeToday) {\n return { minTime: \"0:00\", maxTime: \"24:00\" };\n }\n\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n const currentTime = dayjs().format(\"HH:mm\");\n const endOfDay = \"23:59\";\n\n return { minTime: currentTime, maxTime: endOfDay };\n};\n","import React, { useMemo } from \"react\";\n\nimport { useField } from \"formik\";\nimport { DateTimePicker } from \"neetoui\";\n\nimport { disabledTime } from \"./utils\";\n\nconst FormikDatePicker = ({ name, disabledDate, ...props }) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n\n const disabledTimeFrame = useMemo(\n () => disabledTime(field?.value),\n [field?.value]\n );\n\n return (\n <DateTimePicker\n {...field}\n {...meta}\n timePickerProps={disabledTimeFrame}\n datePickerProps={{\n disabledDate,\n \"data-cy\": props[\"data-cy\"],\n \"data-testid\": props[\"data-testid\"],\n }}\n onBlur={date => {\n setValue(date || undefined);\n setTouched(true);\n }}\n onChange={date => {\n setValue(date || undefined);\n setTouched(true);\n }}\n {...props}\n />\n );\n};\n\nexport default FormikDatePicker;\n","import React, { 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 React from \"react\";\n\nimport { 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 productName,\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 {...{ productName }}\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 * product name for the `<EmailPreview />` component can be passed.\n */\n productName: PropTypes.string,\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","EmailBody","_ref","ref","id","showVideoEmbedInEditor","_useTranslation","useTranslation","t","React","createElement","FormikEditor","required","className","label","name","addons","concat","_toConsumableArray","forwardRef","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","isAfterToday","isAfter","isBeforeToday","minTime","maxTime","currentTime","format","endOfDay","FormikDatePicker","disabledDate","props","_objectWithoutProperties","_excluded","_useField","useField","_useField2","_slicedToArray","field","meta","_useField2$","setValue","setTouched","disabledTimeFrame","useMemo","DateTimePicker","_extends","timePickerProps","datePickerProps","onBlur","onChange","Form","showSendFromField","children","_useFormikContext","useFormikContext","values","initialValues","editorRef","useRef","handleReset","editor","commands","setContent","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","productName","_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/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 React, { forwardRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\n\nconst EmailBody = ({ id, showVideoEmbedInEditor }, ref) => {\n const { t } = useTranslation();\n\n return (\n <FormikEditor\n required\n className=\"mb-6\"\n data-cy=\"email-body\"\n id={id}\n label={t(\"neetoMolecules.shareViaEmail.emailBody\")}\n name=\"emailBody\"\n ref={ref}\n addons={\n showVideoEmbedInEditor\n ? [...EDITOR_ADDONS, \"video-embed\"]\n : EDITOR_ADDONS\n }\n />\n );\n};\n\nexport default forwardRef(EmailBody);\n","import dayjs from \"dayjs\";\nimport { t } from \"i18next\";\nimport { dynamicArray, isNot } from \"neetocist\";\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 React from \"react\";\n\nimport { 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 React, { 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 React from \"react\";\n\nimport { 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 productName,\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 {...{ productName }}\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 * product name for the `<EmailPreview />` component can be passed.\n */\n productName: PropTypes.string,\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","_ref","ref","id","showVideoEmbedInEditor","_useTranslation","useTranslation","t","React","createElement","FormikEditor","required","className","label","name","addons","concat","_toConsumableArray","forwardRef","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","_extends","showTime","timeFormat","timePickerProps","onBlur","touched","onChange","Form","showSendFromField","children","_useFormikContext","useFormikContext","values","initialValues","editorRef","useRef","handleReset","editor","commands","setContent","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","productName","_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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"}