@bigbinary/neeto-molecules 1.0.113 → 1.0.115

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- import React, { forwardRef, useRef, useCallback } from 'react';
1
+ import React, { useRef, forwardRef } from 'react';
2
2
  import { Upload, LeftArrow } from '@bigbinary/neeto-icons';
3
- import { Typography, Button, DatePicker, Label } from '@bigbinary/neetoui';
3
+ import { Typography, Button, Toastr, DatePicker, Label } from '@bigbinary/neetoui';
4
4
  import { MultiEmailInput, Input, Switch, ActionBlock, Form as Form$1 } from '@bigbinary/neetoui/formik';
5
5
  import { useTranslation } from 'react-i18next';
6
- import { isPresent, isNotEmpty, isNot } from '@bigbinary/neeto-commons-frontend/pure';
6
+ import { isPresent, isNotEmpty } from '@bigbinary/neeto-commons-frontend/pure';
7
7
  import { withT } from '@bigbinary/neeto-commons-frontend/react-utils';
8
8
  import { EditorContent, FormikEditor, isEditorEmpty } from '@bigbinary/neeto-editor';
9
- import { useField, useFormikContext } from 'formik';
10
- import dayjs from 'dayjs';
9
+ import { useFormikContext, useField } from 'formik';
11
10
  import { t } from 'i18next';
12
11
  import require$$0 from 'stream';
13
12
  import { prop } from 'ramda';
14
13
  import * as yup from 'yup';
15
14
  import { string } from 'yup';
15
+ import dayjs from 'dayjs';
16
16
 
17
17
  function _typeof$1(obj) {
18
18
  "@babel/helpers - typeof";
@@ -1421,36 +1421,19 @@ EmailPreview.propTypes = {
1421
1421
  logo: propTypes.exports.string
1422
1422
  };
1423
1423
 
1424
- function _arrayWithHoles(arr) {
1425
- if (Array.isArray(arr)) return arr;
1426
- }
1427
-
1428
- function _iterableToArrayLimit(arr, i) {
1429
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
1430
- if (null != _i) {
1431
- var _s,
1432
- _e,
1433
- _x,
1434
- _r,
1435
- _arr = [],
1436
- _n = !0,
1437
- _d = !1;
1438
- try {
1439
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
1440
- if (Object(_i) !== _i) return;
1441
- _n = !1;
1442
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
1443
- } catch (err) {
1444
- _d = !0, _e = err;
1445
- } finally {
1446
- try {
1447
- if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
1448
- } finally {
1449
- if (_d) throw _e;
1424
+ function _extends() {
1425
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
1426
+ for (var i = 1; i < arguments.length; i++) {
1427
+ var source = arguments[i];
1428
+ for (var key in source) {
1429
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1430
+ target[key] = source[key];
1431
+ }
1450
1432
  }
1451
1433
  }
1452
- return _arr;
1453
- }
1434
+ return target;
1435
+ };
1436
+ return _extends.apply(this, arguments);
1454
1437
  }
1455
1438
 
1456
1439
  function _arrayLikeToArray(arr, len) {
@@ -1459,6 +1442,14 @@ function _arrayLikeToArray(arr, len) {
1459
1442
  return arr2;
1460
1443
  }
1461
1444
 
1445
+ function _arrayWithoutHoles(arr) {
1446
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
1447
+ }
1448
+
1449
+ function _iterableToArray(iter) {
1450
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1451
+ }
1452
+
1462
1453
  function _unsupportedIterableToArray(o, minLen) {
1463
1454
  if (!o) return;
1464
1455
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
@@ -1468,12 +1459,12 @@ function _unsupportedIterableToArray(o, minLen) {
1468
1459
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
1469
1460
  }
1470
1461
 
1471
- function _nonIterableRest() {
1472
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1462
+ function _nonIterableSpread() {
1463
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1473
1464
  }
1474
1465
 
1475
- function _slicedToArray(arr, i) {
1476
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
1466
+ function _toConsumableArray(arr) {
1467
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
1477
1468
  }
1478
1469
 
1479
1470
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -1846,62 +1837,17 @@ try {
1846
1837
  }
1847
1838
  }
1848
1839
 
1849
- var INITIAL_VALUES = {
1850
- sendFromEmail: "",
1851
- replyToEmail: "",
1852
- notifyEmails: [],
1853
- emailSubject: "",
1854
- emailBody: "",
1855
- isSendLaterEnabled: false,
1856
- sendEmailDatetime: undefined,
1857
- category: "email_share",
1858
- actionButtonText: ""
1859
- };
1860
- var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
1861
1840
  var ALLOWED_FILE_PICKER_TYPES = [".csv"];
1862
1841
 
1863
- function _arrayWithoutHoles(arr) {
1864
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
1865
- }
1866
-
1867
- function _iterableToArray(iter) {
1868
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1869
- }
1870
-
1871
- function _nonIterableSpread() {
1872
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1873
- }
1874
-
1875
- function _toConsumableArray(arr) {
1876
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
1877
- }
1878
-
1879
- var EmailBody = function EmailBody(_ref, ref) {
1880
- var id = _ref.id,
1881
- showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
1882
- var _useTranslation = useTranslation(),
1883
- t = _useTranslation.t;
1884
- return /*#__PURE__*/React.createElement(FormikEditor, {
1885
- required: true,
1886
- className: "mb-6",
1887
- "data-cy": "email-body",
1888
- id: id,
1889
- label: t("neetoMolecules.shareViaEmail.emailBody"),
1890
- name: "emailBody",
1891
- ref: ref,
1892
- addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray(EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
1893
- });
1894
- };
1895
- var EmailBody$1 = /*#__PURE__*/forwardRef(EmailBody);
1896
-
1897
1842
  var FilePicker = function FilePicker(_ref) {
1898
1843
  var _ref$types = _ref.types,
1899
1844
  types = _ref$types === void 0 ? [] : _ref$types,
1900
- onChange = _ref.onChange;
1901
- var _useTranslation = useTranslation(),
1902
- t = _useTranslation.t;
1845
+ onChange = _ref.onChange,
1846
+ children = _ref.children;
1903
1847
  var inputRef = useRef();
1904
- var accept = types.join(", ");
1848
+ var accept = types.reduce(function (acc, ext) {
1849
+ return "".concat(acc, ", ").concat(ext);
1850
+ }, "");
1905
1851
  var handleInputChange = function handleInputChange(_ref2) {
1906
1852
  var target = _ref2.target;
1907
1853
  if (!target.files) return;
@@ -1915,16 +1861,9 @@ var FilePicker = function FilePicker(_ref) {
1915
1861
  if (!inputRef.current) return;
1916
1862
  inputRef.current.click();
1917
1863
  };
1918
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
1919
- icon: Upload,
1920
- label: t("neetoMolecules.shareViaEmail.uploadCsv"),
1921
- size: "small",
1922
- style: "link",
1923
- tooltipProps: {
1924
- content: t("neetoMolecules.shareViaEmail.uploadCsvTooltip")
1925
- },
1864
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1926
1865
  onClick: handleClick
1927
- }), /*#__PURE__*/React.createElement("input", {
1866
+ }, children), /*#__PURE__*/React.createElement("input", {
1928
1867
  accept: accept,
1929
1868
  className: "hidden",
1930
1869
  ref: inputRef,
@@ -1932,69 +1871,6 @@ var FilePicker = function FilePicker(_ref) {
1932
1871
  onChange: handleInputChange
1933
1872
  }));
1934
1873
  };
1935
- var FilePicker$1 = /*#__PURE__*/React.memo(FilePicker);
1936
-
1937
- function _extends() {
1938
- _extends = Object.assign ? Object.assign.bind() : function (target) {
1939
- for (var i = 1; i < arguments.length; i++) {
1940
- var source = arguments[i];
1941
- for (var key in source) {
1942
- if (Object.prototype.hasOwnProperty.call(source, key)) {
1943
- target[key] = source[key];
1944
- }
1945
- }
1946
- }
1947
- return target;
1948
- };
1949
- return _extends.apply(this, arguments);
1950
- }
1951
-
1952
- function _objectWithoutPropertiesLoose(source, excluded) {
1953
- if (source == null) return {};
1954
- var target = {};
1955
- var sourceKeys = Object.keys(source);
1956
- var key, i;
1957
- for (i = 0; i < sourceKeys.length; i++) {
1958
- key = sourceKeys[i];
1959
- if (excluded.indexOf(key) >= 0) continue;
1960
- target[key] = source[key];
1961
- }
1962
- return target;
1963
- }
1964
-
1965
- function _objectWithoutProperties(source, excluded) {
1966
- if (source == null) return {};
1967
- var target = _objectWithoutPropertiesLoose(source, excluded);
1968
- var key, i;
1969
- if (Object.getOwnPropertySymbols) {
1970
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
1971
- for (i = 0; i < sourceSymbolKeys.length; i++) {
1972
- key = sourceSymbolKeys[i];
1973
- if (excluded.indexOf(key) >= 0) continue;
1974
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
1975
- target[key] = source[key];
1976
- }
1977
- }
1978
- return target;
1979
- }
1980
-
1981
- var _excluded = ["name"];
1982
- var FormikDatePicker = function FormikDatePicker(_ref) {
1983
- var name = _ref.name,
1984
- props = _objectWithoutProperties(_ref, _excluded);
1985
- var _useField = useField(name),
1986
- _useField2 = _slicedToArray(_useField, 3),
1987
- field = _useField2[0],
1988
- meta = _useField2[1],
1989
- setValue = _useField2[2].setValue;
1990
- return /*#__PURE__*/React.createElement(DatePicker, _extends({}, field, meta, {
1991
- onChange: function onChange(date) {
1992
- return setValue(date || undefined);
1993
- }
1994
- }, props, {
1995
- "data-cy": "email-share-date-input"
1996
- }));
1997
- };
1998
1874
 
1999
1875
  var papaparse = {exports: {}};
2000
1876
 
@@ -3910,14 +3786,9 @@ License: MIT
3910
3786
 
3911
3787
  var Papa = papaparse.exports;
3912
3788
 
3913
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3914
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3915
3789
  var isValidEmail = function isValidEmail(email) {
3916
3790
  return string().email().isValidSync(email);
3917
3791
  };
3918
- var isPastDate = function isPastDate(date) {
3919
- return dayjs(date).isBefore(dayjs().subtract(1, "days"));
3920
- };
3921
3792
  var createEmailOptions = function createEmailOptions() {
3922
3793
  var emails = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
3923
3794
  return emails.map(function (email) {
@@ -3928,27 +3799,253 @@ var createEmailOptions = function createEmailOptions() {
3928
3799
  };
3929
3800
  });
3930
3801
  };
3931
- var parseCsvEmails = function parseCsvEmails(file) {
3932
- return new Promise(function (resolve) {
3933
- Papa.parse(file, {
3934
- header: true,
3935
- skipEmptyLines: true,
3936
- transformHeader: function transformHeader(h) {
3937
- return h.toLowerCase().replace(/\W/g, "");
3938
- },
3939
- complete: function complete(results) {
3940
- var _results$meta$fields;
3941
- var isEmailFieldPresent = (_results$meta$fields = results.meta.fields) === null || _results$meta$fields === void 0 ? void 0 : _results$meta$fields.includes("email");
3942
- if (!isEmailFieldPresent) return resolve([]);
3943
- var emails = results.data.map(function (item) {
3944
- var _item$email;
3945
- return (_item$email = item.email) === null || _item$email === void 0 ? void 0 : _item$email.trim();
3946
- }).filter(isNot(undefined));
3947
- return resolve(createEmailOptions(emails));
3802
+ var parseCsvEmails = /*#__PURE__*/function () {
3803
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(file, onSuccess) {
3804
+ return regenerator.wrap(function _callee$(_context) {
3805
+ while (1) switch (_context.prev = _context.next) {
3806
+ case 0:
3807
+ Papa.parse(file, {
3808
+ header: true,
3809
+ skipEmptyLines: true,
3810
+ transformHeader: function transformHeader(h) {
3811
+ return h.toLowerCase().replace(/\W/g, "");
3812
+ },
3813
+ complete: function complete(results) {
3814
+ var _results$meta$fields;
3815
+ var isEmailFieldPresent = (_results$meta$fields = results.meta.fields) === null || _results$meta$fields === void 0 ? void 0 : _results$meta$fields.includes("email");
3816
+ if (isEmailFieldPresent) {
3817
+ var emails = results.data.filter(prop("email")).map(function (item) {
3818
+ return item.email.trim();
3819
+ });
3820
+ onSuccess(createEmailOptions(emails));
3821
+ } else {
3822
+ Toastr.error(t("neetoMolecules.sendToFields.errors.invalidCsv"));
3823
+ }
3824
+ }
3825
+ });
3826
+ case 1:
3827
+ case "end":
3828
+ return _context.stop();
3948
3829
  }
3949
- });
3830
+ }, _callee);
3831
+ }));
3832
+ return function parseCsvEmails(_x, _x2) {
3833
+ return _ref.apply(this, arguments);
3834
+ };
3835
+ }();
3836
+
3837
+ var SendToFields = function SendToFields(_ref) {
3838
+ var emailInputProps = _ref.emailInputProps,
3839
+ ccInputProps = _ref.ccInputProps,
3840
+ bccInputProps = _ref.bccInputProps,
3841
+ _ref$showUploadCsvBut = _ref.showUploadCsvButton,
3842
+ showUploadCsvButton = _ref$showUploadCsvBut === void 0 ? false : _ref$showUploadCsvBut,
3843
+ _ref$showCcBccButton = _ref.showCcBccButton,
3844
+ showCcBccButton = _ref$showCcBccButton === void 0 ? false : _ref$showCcBccButton;
3845
+ var sendToFieldRef = useRef();
3846
+ var _useFormikContext = useFormikContext(),
3847
+ _useFormikContext$val = _useFormikContext.values,
3848
+ showCopyEmails = _useFormikContext$val.showCopyEmails,
3849
+ existingSendToEmails = _useFormikContext$val[emailInputProps.name || "sendTo"],
3850
+ setFieldValue = _useFormikContext.setFieldValue;
3851
+ var _useTranslation = useTranslation(),
3852
+ t = _useTranslation.t;
3853
+ var handleCSVFile = /*#__PURE__*/function () {
3854
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(files) {
3855
+ var _sendToFieldRef$curre, onSuccess;
3856
+ return regenerator.wrap(function _callee$(_context) {
3857
+ while (1) switch (_context.prev = _context.next) {
3858
+ case 0:
3859
+ _context.prev = 0;
3860
+ onSuccess = function onSuccess(values) {
3861
+ return setFieldValue(emailInputProps.name || "sendTo", [].concat(_toConsumableArray(existingSendToEmails), _toConsumableArray(values)));
3862
+ };
3863
+ _context.next = 4;
3864
+ return parseCsvEmails(files[0], onSuccess);
3865
+ case 4:
3866
+ (_sendToFieldRef$curre = sendToFieldRef.current) === null || _sendToFieldRef$curre === void 0 ? void 0 : _sendToFieldRef$curre.focus();
3867
+ _context.next = 10;
3868
+ break;
3869
+ case 7:
3870
+ _context.prev = 7;
3871
+ _context.t0 = _context["catch"](0);
3872
+ Toastr.error(_context.t0);
3873
+ case 10:
3874
+ case "end":
3875
+ return _context.stop();
3876
+ }
3877
+ }, _callee, null, [[0, 7]]);
3878
+ }));
3879
+ return function handleCSVFile(_x) {
3880
+ return _ref2.apply(this, arguments);
3881
+ };
3882
+ }();
3883
+ var handelCcBccButtonClick = function handelCcBccButtonClick(e) {
3884
+ e.stopPropagation();
3885
+ setFieldValue("showCopyEmails", !showCopyEmails);
3886
+ };
3887
+ return /*#__PURE__*/React.createElement("div", {
3888
+ className: "relative w-full flex-col gap-2"
3889
+ }, showUploadCsvButton && /*#__PURE__*/React.createElement("div", {
3890
+ className: "absolute top-0 right-1"
3891
+ }, /*#__PURE__*/React.createElement(FilePicker, {
3892
+ types: ALLOWED_FILE_PICKER_TYPES,
3893
+ onChange: handleCSVFile
3894
+ }, /*#__PURE__*/React.createElement(Button, {
3895
+ "data-cy": "upload-csv-button",
3896
+ icon: Upload,
3897
+ label: t("neetoMolecules.emailForm.uploadCSV"),
3898
+ size: "small",
3899
+ style: "link",
3900
+ tooltipProps: {
3901
+ content: t("neetoMolecules.sendToFields.uploadCsvTooltip"),
3902
+ position: "right"
3903
+ }
3904
+ }))), /*#__PURE__*/React.createElement(MultiEmailInput, _extends({
3905
+ "data-testid": "emails",
3906
+ name: "sendTo",
3907
+ ref: sendToFieldRef
3908
+ }, emailInputProps, {
3909
+ suffix: showCcBccButton && /*#__PURE__*/React.createElement(Button, {
3910
+ "data-cy": "cc-bcc-button",
3911
+ "data-testid": "cc-bcc-button",
3912
+ label: t("neetoMolecules.emailForm.labels.ccBcc"),
3913
+ size: "small",
3914
+ style: "link",
3915
+ onClick: handelCcBccButtonClick
3916
+ })
3917
+ })), showCopyEmails && /*#__PURE__*/React.createElement("div", {
3918
+ className: "mt-5 flex w-full flex-col gap-6"
3919
+ }, /*#__PURE__*/React.createElement(MultiEmailInput, _extends({
3920
+ name: "sendToBcc"
3921
+ }, ccInputProps)), /*#__PURE__*/React.createElement(MultiEmailInput, _extends({
3922
+ name: "sendToCc"
3923
+ }, bccInputProps))));
3924
+ };
3925
+
3926
+ var INITIAL_VALUES = {
3927
+ sendFromEmail: "",
3928
+ replyToEmail: "",
3929
+ notifyEmails: [],
3930
+ emailSubject: "",
3931
+ emailBody: "",
3932
+ isSendLaterEnabled: false,
3933
+ sendEmailDatetime: undefined,
3934
+ category: "email_share",
3935
+ actionButtonText: ""
3936
+ };
3937
+ var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
3938
+
3939
+ var EmailBody = function EmailBody(_ref, ref) {
3940
+ var id = _ref.id,
3941
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
3942
+ var _useTranslation = useTranslation(),
3943
+ t = _useTranslation.t;
3944
+ return /*#__PURE__*/React.createElement(FormikEditor, {
3945
+ required: true,
3946
+ className: "mb-6",
3947
+ "data-cy": "email-body",
3948
+ id: id,
3949
+ label: t("neetoMolecules.shareViaEmail.emailBody"),
3950
+ name: "emailBody",
3951
+ ref: ref,
3952
+ addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray(EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
3950
3953
  });
3951
3954
  };
3955
+ var EmailBody$1 = /*#__PURE__*/forwardRef(EmailBody);
3956
+
3957
+ function _arrayWithHoles(arr) {
3958
+ if (Array.isArray(arr)) return arr;
3959
+ }
3960
+
3961
+ function _iterableToArrayLimit(arr, i) {
3962
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
3963
+ if (null != _i) {
3964
+ var _s,
3965
+ _e,
3966
+ _x,
3967
+ _r,
3968
+ _arr = [],
3969
+ _n = !0,
3970
+ _d = !1;
3971
+ try {
3972
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
3973
+ if (Object(_i) !== _i) return;
3974
+ _n = !1;
3975
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
3976
+ } catch (err) {
3977
+ _d = !0, _e = err;
3978
+ } finally {
3979
+ try {
3980
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
3981
+ } finally {
3982
+ if (_d) throw _e;
3983
+ }
3984
+ }
3985
+ return _arr;
3986
+ }
3987
+ }
3988
+
3989
+ function _nonIterableRest() {
3990
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3991
+ }
3992
+
3993
+ function _slicedToArray(arr, i) {
3994
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
3995
+ }
3996
+
3997
+ function _objectWithoutPropertiesLoose(source, excluded) {
3998
+ if (source == null) return {};
3999
+ var target = {};
4000
+ var sourceKeys = Object.keys(source);
4001
+ var key, i;
4002
+ for (i = 0; i < sourceKeys.length; i++) {
4003
+ key = sourceKeys[i];
4004
+ if (excluded.indexOf(key) >= 0) continue;
4005
+ target[key] = source[key];
4006
+ }
4007
+ return target;
4008
+ }
4009
+
4010
+ function _objectWithoutProperties(source, excluded) {
4011
+ if (source == null) return {};
4012
+ var target = _objectWithoutPropertiesLoose(source, excluded);
4013
+ var key, i;
4014
+ if (Object.getOwnPropertySymbols) {
4015
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
4016
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
4017
+ key = sourceSymbolKeys[i];
4018
+ if (excluded.indexOf(key) >= 0) continue;
4019
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
4020
+ target[key] = source[key];
4021
+ }
4022
+ }
4023
+ return target;
4024
+ }
4025
+
4026
+ var _excluded = ["name"];
4027
+ var FormikDatePicker = function FormikDatePicker(_ref) {
4028
+ var name = _ref.name,
4029
+ props = _objectWithoutProperties(_ref, _excluded);
4030
+ var _useField = useField(name),
4031
+ _useField2 = _slicedToArray(_useField, 3),
4032
+ field = _useField2[0],
4033
+ meta = _useField2[1],
4034
+ setValue = _useField2[2].setValue;
4035
+ return /*#__PURE__*/React.createElement(DatePicker, _extends({}, field, meta, {
4036
+ onChange: function onChange(date) {
4037
+ return setValue(date || undefined);
4038
+ }
4039
+ }, props, {
4040
+ "data-cy": "email-share-date-input"
4041
+ }));
4042
+ };
4043
+
4044
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4045
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4046
+ var isPastDate = function isPastDate(date) {
4047
+ return dayjs(date).isBefore(dayjs().subtract(1, "days"));
4048
+ };
3952
4049
  var generateInitialValues = function generateInitialValues(defaultValues) {
3953
4050
  return _objectSpread(_objectSpread({}, INITIAL_VALUES), defaultValues);
3954
4051
  };
@@ -3979,56 +4076,22 @@ var Form = function Form(_ref) {
3979
4076
  children = _ref.children;
3980
4077
  var _useFormikContext = useFormikContext(),
3981
4078
  values = _useFormikContext.values,
3982
- setFieldValue = _useFormikContext.setFieldValue,
3983
4079
  initialValues = _useFormikContext.initialValues;
3984
4080
  var editorRef = useRef();
3985
4081
  var _useTranslation = useTranslation(),
3986
4082
  t = _useTranslation.t;
3987
4083
  var handleReset = function handleReset() {
3988
- editorRef.current.editor.commands.setContent(initialValues.emailBody);
4084
+ return editorRef.current.editor.commands.setContent(initialValues.emailBody);
3989
4085
  };
3990
- var handleCSVFile = useCallback( /*#__PURE__*/function () {
3991
- var _ref3 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref2) {
3992
- var _ref4, file, values;
3993
- return regenerator.wrap(function _callee$(_context) {
3994
- while (1) switch (_context.prev = _context.next) {
3995
- case 0:
3996
- _ref4 = _slicedToArray(_ref2, 1), file = _ref4[0];
3997
- _context.next = 3;
3998
- return parseCsvEmails(file);
3999
- case 3:
4000
- values = _context.sent;
4001
- setFieldValue("notifyEmails", values);
4002
- case 5:
4003
- case "end":
4004
- return _context.stop();
4005
- }
4006
- }, _callee);
4007
- }));
4008
- return function (_x) {
4009
- return _ref3.apply(this, arguments);
4010
- };
4011
- }(), []);
4012
4086
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
4013
4087
  className: "space-y-4"
4014
- }, /*#__PURE__*/React.createElement("div", {
4015
- className: "space-y-2"
4016
- }, /*#__PURE__*/React.createElement("div", {
4017
- className: "flex items-center justify-between"
4018
- }, /*#__PURE__*/React.createElement(Typography, {
4019
- "data-cy": "send-to-input-label",
4020
- lineHeight: "normal",
4021
- style: "h4",
4022
- weight: "semibold"
4023
- }, t("neetoMolecules.shareViaEmail.sendTo")), /*#__PURE__*/React.createElement(FilePicker$1, {
4024
- types: ALLOWED_FILE_PICKER_TYPES,
4025
- onChange: handleCSVFile
4026
- })), /*#__PURE__*/React.createElement(MultiEmailInput, {
4027
- filterInvalidEmails: true,
4028
- required: true,
4029
- label: "",
4030
- name: "notifyEmails"
4031
- })), /*#__PURE__*/React.createElement(Input, {
4088
+ }, /*#__PURE__*/React.createElement(SendToFields, {
4089
+ showUploadCsvButton: true,
4090
+ emailInputProps: {
4091
+ label: t("neetoMolecules.shareViaEmail.sendTo"),
4092
+ name: "notifyEmails"
4093
+ }
4094
+ }), /*#__PURE__*/React.createElement(Input, {
4032
4095
  required: true,
4033
4096
  className: "col-span-1",
4034
4097
  label: t("neetoMolecules.shareViaEmail.subject"),