@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.
@@ -9,11 +9,11 @@ var pure = require('@bigbinary/neeto-commons-frontend/pure');
9
9
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
10
10
  var neetoEditor = require('@bigbinary/neeto-editor');
11
11
  var formik = require('formik');
12
- var dayjs = require('dayjs');
13
12
  var i18next = require('i18next');
14
13
  var require$$0 = require('stream');
15
14
  var ramda = require('ramda');
16
15
  var yup = require('yup');
16
+ var dayjs = require('dayjs');
17
17
 
18
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
19
 
@@ -36,9 +36,9 @@ function _interopNamespace(e) {
36
36
  }
37
37
 
38
38
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
39
- var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
40
39
  var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
41
40
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
41
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
42
42
 
43
43
  function _typeof$1(obj) {
44
44
  "@babel/helpers - typeof";
@@ -1447,36 +1447,19 @@ EmailPreview.propTypes = {
1447
1447
  logo: propTypes.exports.string
1448
1448
  };
1449
1449
 
1450
- function _arrayWithHoles(arr) {
1451
- if (Array.isArray(arr)) return arr;
1452
- }
1453
-
1454
- function _iterableToArrayLimit(arr, i) {
1455
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
1456
- if (null != _i) {
1457
- var _s,
1458
- _e,
1459
- _x,
1460
- _r,
1461
- _arr = [],
1462
- _n = !0,
1463
- _d = !1;
1464
- try {
1465
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
1466
- if (Object(_i) !== _i) return;
1467
- _n = !1;
1468
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
1469
- } catch (err) {
1470
- _d = !0, _e = err;
1471
- } finally {
1472
- try {
1473
- if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
1474
- } finally {
1475
- if (_d) throw _e;
1450
+ function _extends() {
1451
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
1452
+ for (var i = 1; i < arguments.length; i++) {
1453
+ var source = arguments[i];
1454
+ for (var key in source) {
1455
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1456
+ target[key] = source[key];
1457
+ }
1476
1458
  }
1477
1459
  }
1478
- return _arr;
1479
- }
1460
+ return target;
1461
+ };
1462
+ return _extends.apply(this, arguments);
1480
1463
  }
1481
1464
 
1482
1465
  function _arrayLikeToArray(arr, len) {
@@ -1485,6 +1468,14 @@ function _arrayLikeToArray(arr, len) {
1485
1468
  return arr2;
1486
1469
  }
1487
1470
 
1471
+ function _arrayWithoutHoles(arr) {
1472
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
1473
+ }
1474
+
1475
+ function _iterableToArray(iter) {
1476
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1477
+ }
1478
+
1488
1479
  function _unsupportedIterableToArray(o, minLen) {
1489
1480
  if (!o) return;
1490
1481
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
@@ -1494,12 +1485,12 @@ function _unsupportedIterableToArray(o, minLen) {
1494
1485
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
1495
1486
  }
1496
1487
 
1497
- function _nonIterableRest() {
1498
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1488
+ function _nonIterableSpread() {
1489
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1499
1490
  }
1500
1491
 
1501
- function _slicedToArray(arr, i) {
1502
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
1492
+ function _toConsumableArray(arr) {
1493
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
1503
1494
  }
1504
1495
 
1505
1496
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -1872,62 +1863,17 @@ try {
1872
1863
  }
1873
1864
  }
1874
1865
 
1875
- var INITIAL_VALUES = {
1876
- sendFromEmail: "",
1877
- replyToEmail: "",
1878
- notifyEmails: [],
1879
- emailSubject: "",
1880
- emailBody: "",
1881
- isSendLaterEnabled: false,
1882
- sendEmailDatetime: undefined,
1883
- category: "email_share",
1884
- actionButtonText: ""
1885
- };
1886
- var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
1887
1866
  var ALLOWED_FILE_PICKER_TYPES = [".csv"];
1888
1867
 
1889
- function _arrayWithoutHoles(arr) {
1890
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
1891
- }
1892
-
1893
- function _iterableToArray(iter) {
1894
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1895
- }
1896
-
1897
- function _nonIterableSpread() {
1898
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1899
- }
1900
-
1901
- function _toConsumableArray(arr) {
1902
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
1903
- }
1904
-
1905
- var EmailBody = function EmailBody(_ref, ref) {
1906
- var id = _ref.id,
1907
- showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
1908
- var _useTranslation = reactI18next.useTranslation(),
1909
- t = _useTranslation.t;
1910
- return /*#__PURE__*/React__default["default"].createElement(neetoEditor.FormikEditor, {
1911
- required: true,
1912
- className: "mb-6",
1913
- "data-cy": "email-body",
1914
- id: id,
1915
- label: t("neetoMolecules.shareViaEmail.emailBody"),
1916
- name: "emailBody",
1917
- ref: ref,
1918
- addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray(EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
1919
- });
1920
- };
1921
- var EmailBody$1 = /*#__PURE__*/React.forwardRef(EmailBody);
1922
-
1923
1868
  var FilePicker = function FilePicker(_ref) {
1924
1869
  var _ref$types = _ref.types,
1925
1870
  types = _ref$types === void 0 ? [] : _ref$types,
1926
- onChange = _ref.onChange;
1927
- var _useTranslation = reactI18next.useTranslation(),
1928
- t = _useTranslation.t;
1871
+ onChange = _ref.onChange,
1872
+ children = _ref.children;
1929
1873
  var inputRef = React.useRef();
1930
- var accept = types.join(", ");
1874
+ var accept = types.reduce(function (acc, ext) {
1875
+ return "".concat(acc, ", ").concat(ext);
1876
+ }, "");
1931
1877
  var handleInputChange = function handleInputChange(_ref2) {
1932
1878
  var target = _ref2.target;
1933
1879
  if (!target.files) return;
@@ -1941,16 +1887,9 @@ var FilePicker = function FilePicker(_ref) {
1941
1887
  if (!inputRef.current) return;
1942
1888
  inputRef.current.click();
1943
1889
  };
1944
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
1945
- icon: neetoIcons.Upload,
1946
- label: t("neetoMolecules.shareViaEmail.uploadCsv"),
1947
- size: "small",
1948
- style: "link",
1949
- tooltipProps: {
1950
- content: t("neetoMolecules.shareViaEmail.uploadCsvTooltip")
1951
- },
1890
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
1952
1891
  onClick: handleClick
1953
- }), /*#__PURE__*/React__default["default"].createElement("input", {
1892
+ }, children), /*#__PURE__*/React__default["default"].createElement("input", {
1954
1893
  accept: accept,
1955
1894
  className: "hidden",
1956
1895
  ref: inputRef,
@@ -1958,69 +1897,6 @@ var FilePicker = function FilePicker(_ref) {
1958
1897
  onChange: handleInputChange
1959
1898
  }));
1960
1899
  };
1961
- var FilePicker$1 = /*#__PURE__*/React__default["default"].memo(FilePicker);
1962
-
1963
- function _extends() {
1964
- _extends = Object.assign ? Object.assign.bind() : function (target) {
1965
- for (var i = 1; i < arguments.length; i++) {
1966
- var source = arguments[i];
1967
- for (var key in source) {
1968
- if (Object.prototype.hasOwnProperty.call(source, key)) {
1969
- target[key] = source[key];
1970
- }
1971
- }
1972
- }
1973
- return target;
1974
- };
1975
- return _extends.apply(this, arguments);
1976
- }
1977
-
1978
- function _objectWithoutPropertiesLoose(source, excluded) {
1979
- if (source == null) return {};
1980
- var target = {};
1981
- var sourceKeys = Object.keys(source);
1982
- var key, i;
1983
- for (i = 0; i < sourceKeys.length; i++) {
1984
- key = sourceKeys[i];
1985
- if (excluded.indexOf(key) >= 0) continue;
1986
- target[key] = source[key];
1987
- }
1988
- return target;
1989
- }
1990
-
1991
- function _objectWithoutProperties(source, excluded) {
1992
- if (source == null) return {};
1993
- var target = _objectWithoutPropertiesLoose(source, excluded);
1994
- var key, i;
1995
- if (Object.getOwnPropertySymbols) {
1996
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
1997
- for (i = 0; i < sourceSymbolKeys.length; i++) {
1998
- key = sourceSymbolKeys[i];
1999
- if (excluded.indexOf(key) >= 0) continue;
2000
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
2001
- target[key] = source[key];
2002
- }
2003
- }
2004
- return target;
2005
- }
2006
-
2007
- var _excluded = ["name"];
2008
- var FormikDatePicker = function FormikDatePicker(_ref) {
2009
- var name = _ref.name,
2010
- props = _objectWithoutProperties(_ref, _excluded);
2011
- var _useField = formik.useField(name),
2012
- _useField2 = _slicedToArray(_useField, 3),
2013
- field = _useField2[0],
2014
- meta = _useField2[1],
2015
- setValue = _useField2[2].setValue;
2016
- return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, field, meta, {
2017
- onChange: function onChange(date) {
2018
- return setValue(date || undefined);
2019
- }
2020
- }, props, {
2021
- "data-cy": "email-share-date-input"
2022
- }));
2023
- };
2024
1900
 
2025
1901
  var papaparse = {exports: {}};
2026
1902
 
@@ -3936,14 +3812,9 @@ License: MIT
3936
3812
 
3937
3813
  var Papa = papaparse.exports;
3938
3814
 
3939
- 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; }
3940
- 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; }
3941
3815
  var isValidEmail = function isValidEmail(email) {
3942
3816
  return yup.string().email().isValidSync(email);
3943
3817
  };
3944
- var isPastDate = function isPastDate(date) {
3945
- return dayjs__default["default"](date).isBefore(dayjs__default["default"]().subtract(1, "days"));
3946
- };
3947
3818
  var createEmailOptions = function createEmailOptions() {
3948
3819
  var emails = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
3949
3820
  return emails.map(function (email) {
@@ -3954,27 +3825,253 @@ var createEmailOptions = function createEmailOptions() {
3954
3825
  };
3955
3826
  });
3956
3827
  };
3957
- var parseCsvEmails = function parseCsvEmails(file) {
3958
- return new Promise(function (resolve) {
3959
- Papa.parse(file, {
3960
- header: true,
3961
- skipEmptyLines: true,
3962
- transformHeader: function transformHeader(h) {
3963
- return h.toLowerCase().replace(/\W/g, "");
3964
- },
3965
- complete: function complete(results) {
3966
- var _results$meta$fields;
3967
- var isEmailFieldPresent = (_results$meta$fields = results.meta.fields) === null || _results$meta$fields === void 0 ? void 0 : _results$meta$fields.includes("email");
3968
- if (!isEmailFieldPresent) return resolve([]);
3969
- var emails = results.data.map(function (item) {
3970
- var _item$email;
3971
- return (_item$email = item.email) === null || _item$email === void 0 ? void 0 : _item$email.trim();
3972
- }).filter(pure.isNot(undefined));
3973
- return resolve(createEmailOptions(emails));
3828
+ var parseCsvEmails = /*#__PURE__*/function () {
3829
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(file, onSuccess) {
3830
+ return regenerator.wrap(function _callee$(_context) {
3831
+ while (1) switch (_context.prev = _context.next) {
3832
+ case 0:
3833
+ Papa.parse(file, {
3834
+ header: true,
3835
+ skipEmptyLines: true,
3836
+ transformHeader: function transformHeader(h) {
3837
+ return h.toLowerCase().replace(/\W/g, "");
3838
+ },
3839
+ complete: function complete(results) {
3840
+ var _results$meta$fields;
3841
+ var isEmailFieldPresent = (_results$meta$fields = results.meta.fields) === null || _results$meta$fields === void 0 ? void 0 : _results$meta$fields.includes("email");
3842
+ if (isEmailFieldPresent) {
3843
+ var emails = results.data.filter(ramda.prop("email")).map(function (item) {
3844
+ return item.email.trim();
3845
+ });
3846
+ onSuccess(createEmailOptions(emails));
3847
+ } else {
3848
+ neetoui.Toastr.error(i18next.t("neetoMolecules.sendToFields.errors.invalidCsv"));
3849
+ }
3850
+ }
3851
+ });
3852
+ case 1:
3853
+ case "end":
3854
+ return _context.stop();
3974
3855
  }
3975
- });
3856
+ }, _callee);
3857
+ }));
3858
+ return function parseCsvEmails(_x, _x2) {
3859
+ return _ref.apply(this, arguments);
3860
+ };
3861
+ }();
3862
+
3863
+ var SendToFields = function SendToFields(_ref) {
3864
+ var emailInputProps = _ref.emailInputProps,
3865
+ ccInputProps = _ref.ccInputProps,
3866
+ bccInputProps = _ref.bccInputProps,
3867
+ _ref$showUploadCsvBut = _ref.showUploadCsvButton,
3868
+ showUploadCsvButton = _ref$showUploadCsvBut === void 0 ? false : _ref$showUploadCsvBut,
3869
+ _ref$showCcBccButton = _ref.showCcBccButton,
3870
+ showCcBccButton = _ref$showCcBccButton === void 0 ? false : _ref$showCcBccButton;
3871
+ var sendToFieldRef = React.useRef();
3872
+ var _useFormikContext = formik.useFormikContext(),
3873
+ _useFormikContext$val = _useFormikContext.values,
3874
+ showCopyEmails = _useFormikContext$val.showCopyEmails,
3875
+ existingSendToEmails = _useFormikContext$val[emailInputProps.name || "sendTo"],
3876
+ setFieldValue = _useFormikContext.setFieldValue;
3877
+ var _useTranslation = reactI18next.useTranslation(),
3878
+ t = _useTranslation.t;
3879
+ var handleCSVFile = /*#__PURE__*/function () {
3880
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(files) {
3881
+ var _sendToFieldRef$curre, onSuccess;
3882
+ return regenerator.wrap(function _callee$(_context) {
3883
+ while (1) switch (_context.prev = _context.next) {
3884
+ case 0:
3885
+ _context.prev = 0;
3886
+ onSuccess = function onSuccess(values) {
3887
+ return setFieldValue(emailInputProps.name || "sendTo", [].concat(_toConsumableArray(existingSendToEmails), _toConsumableArray(values)));
3888
+ };
3889
+ _context.next = 4;
3890
+ return parseCsvEmails(files[0], onSuccess);
3891
+ case 4:
3892
+ (_sendToFieldRef$curre = sendToFieldRef.current) === null || _sendToFieldRef$curre === void 0 ? void 0 : _sendToFieldRef$curre.focus();
3893
+ _context.next = 10;
3894
+ break;
3895
+ case 7:
3896
+ _context.prev = 7;
3897
+ _context.t0 = _context["catch"](0);
3898
+ neetoui.Toastr.error(_context.t0);
3899
+ case 10:
3900
+ case "end":
3901
+ return _context.stop();
3902
+ }
3903
+ }, _callee, null, [[0, 7]]);
3904
+ }));
3905
+ return function handleCSVFile(_x) {
3906
+ return _ref2.apply(this, arguments);
3907
+ };
3908
+ }();
3909
+ var handelCcBccButtonClick = function handelCcBccButtonClick(e) {
3910
+ e.stopPropagation();
3911
+ setFieldValue("showCopyEmails", !showCopyEmails);
3912
+ };
3913
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3914
+ className: "relative w-full flex-col gap-2"
3915
+ }, showUploadCsvButton && /*#__PURE__*/React__default["default"].createElement("div", {
3916
+ className: "absolute top-0 right-1"
3917
+ }, /*#__PURE__*/React__default["default"].createElement(FilePicker, {
3918
+ types: ALLOWED_FILE_PICKER_TYPES,
3919
+ onChange: handleCSVFile
3920
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
3921
+ "data-cy": "upload-csv-button",
3922
+ icon: neetoIcons.Upload,
3923
+ label: t("neetoMolecules.emailForm.uploadCSV"),
3924
+ size: "small",
3925
+ style: "link",
3926
+ tooltipProps: {
3927
+ content: t("neetoMolecules.sendToFields.uploadCsvTooltip"),
3928
+ position: "right"
3929
+ }
3930
+ }))), /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends({
3931
+ "data-testid": "emails",
3932
+ name: "sendTo",
3933
+ ref: sendToFieldRef
3934
+ }, emailInputProps, {
3935
+ suffix: showCcBccButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
3936
+ "data-cy": "cc-bcc-button",
3937
+ "data-testid": "cc-bcc-button",
3938
+ label: t("neetoMolecules.emailForm.labels.ccBcc"),
3939
+ size: "small",
3940
+ style: "link",
3941
+ onClick: handelCcBccButtonClick
3942
+ })
3943
+ })), showCopyEmails && /*#__PURE__*/React__default["default"].createElement("div", {
3944
+ className: "mt-5 flex w-full flex-col gap-6"
3945
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends({
3946
+ name: "sendToBcc"
3947
+ }, ccInputProps)), /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends({
3948
+ name: "sendToCc"
3949
+ }, bccInputProps))));
3950
+ };
3951
+
3952
+ var INITIAL_VALUES = {
3953
+ sendFromEmail: "",
3954
+ replyToEmail: "",
3955
+ notifyEmails: [],
3956
+ emailSubject: "",
3957
+ emailBody: "",
3958
+ isSendLaterEnabled: false,
3959
+ sendEmailDatetime: undefined,
3960
+ category: "email_share",
3961
+ actionButtonText: ""
3962
+ };
3963
+ var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
3964
+
3965
+ var EmailBody = function EmailBody(_ref, ref) {
3966
+ var id = _ref.id,
3967
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
3968
+ var _useTranslation = reactI18next.useTranslation(),
3969
+ t = _useTranslation.t;
3970
+ return /*#__PURE__*/React__default["default"].createElement(neetoEditor.FormikEditor, {
3971
+ required: true,
3972
+ className: "mb-6",
3973
+ "data-cy": "email-body",
3974
+ id: id,
3975
+ label: t("neetoMolecules.shareViaEmail.emailBody"),
3976
+ name: "emailBody",
3977
+ ref: ref,
3978
+ addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray(EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
3976
3979
  });
3977
3980
  };
3981
+ var EmailBody$1 = /*#__PURE__*/React.forwardRef(EmailBody);
3982
+
3983
+ function _arrayWithHoles(arr) {
3984
+ if (Array.isArray(arr)) return arr;
3985
+ }
3986
+
3987
+ function _iterableToArrayLimit(arr, i) {
3988
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
3989
+ if (null != _i) {
3990
+ var _s,
3991
+ _e,
3992
+ _x,
3993
+ _r,
3994
+ _arr = [],
3995
+ _n = !0,
3996
+ _d = !1;
3997
+ try {
3998
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
3999
+ if (Object(_i) !== _i) return;
4000
+ _n = !1;
4001
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
4002
+ } catch (err) {
4003
+ _d = !0, _e = err;
4004
+ } finally {
4005
+ try {
4006
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
4007
+ } finally {
4008
+ if (_d) throw _e;
4009
+ }
4010
+ }
4011
+ return _arr;
4012
+ }
4013
+ }
4014
+
4015
+ function _nonIterableRest() {
4016
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
4017
+ }
4018
+
4019
+ function _slicedToArray(arr, i) {
4020
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
4021
+ }
4022
+
4023
+ function _objectWithoutPropertiesLoose(source, excluded) {
4024
+ if (source == null) return {};
4025
+ var target = {};
4026
+ var sourceKeys = Object.keys(source);
4027
+ var key, i;
4028
+ for (i = 0; i < sourceKeys.length; i++) {
4029
+ key = sourceKeys[i];
4030
+ if (excluded.indexOf(key) >= 0) continue;
4031
+ target[key] = source[key];
4032
+ }
4033
+ return target;
4034
+ }
4035
+
4036
+ function _objectWithoutProperties(source, excluded) {
4037
+ if (source == null) return {};
4038
+ var target = _objectWithoutPropertiesLoose(source, excluded);
4039
+ var key, i;
4040
+ if (Object.getOwnPropertySymbols) {
4041
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
4042
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
4043
+ key = sourceSymbolKeys[i];
4044
+ if (excluded.indexOf(key) >= 0) continue;
4045
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
4046
+ target[key] = source[key];
4047
+ }
4048
+ }
4049
+ return target;
4050
+ }
4051
+
4052
+ var _excluded = ["name"];
4053
+ var FormikDatePicker = function FormikDatePicker(_ref) {
4054
+ var name = _ref.name,
4055
+ props = _objectWithoutProperties(_ref, _excluded);
4056
+ var _useField = formik.useField(name),
4057
+ _useField2 = _slicedToArray(_useField, 3),
4058
+ field = _useField2[0],
4059
+ meta = _useField2[1],
4060
+ setValue = _useField2[2].setValue;
4061
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, field, meta, {
4062
+ onChange: function onChange(date) {
4063
+ return setValue(date || undefined);
4064
+ }
4065
+ }, props, {
4066
+ "data-cy": "email-share-date-input"
4067
+ }));
4068
+ };
4069
+
4070
+ 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; }
4071
+ 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; }
4072
+ var isPastDate = function isPastDate(date) {
4073
+ return dayjs__default["default"](date).isBefore(dayjs__default["default"]().subtract(1, "days"));
4074
+ };
3978
4075
  var generateInitialValues = function generateInitialValues(defaultValues) {
3979
4076
  return _objectSpread(_objectSpread({}, INITIAL_VALUES), defaultValues);
3980
4077
  };
@@ -4005,56 +4102,22 @@ var Form = function Form(_ref) {
4005
4102
  children = _ref.children;
4006
4103
  var _useFormikContext = formik.useFormikContext(),
4007
4104
  values = _useFormikContext.values,
4008
- setFieldValue = _useFormikContext.setFieldValue,
4009
4105
  initialValues = _useFormikContext.initialValues;
4010
4106
  var editorRef = React.useRef();
4011
4107
  var _useTranslation = reactI18next.useTranslation(),
4012
4108
  t = _useTranslation.t;
4013
4109
  var handleReset = function handleReset() {
4014
- editorRef.current.editor.commands.setContent(initialValues.emailBody);
4110
+ return editorRef.current.editor.commands.setContent(initialValues.emailBody);
4015
4111
  };
4016
- var handleCSVFile = React.useCallback( /*#__PURE__*/function () {
4017
- var _ref3 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref2) {
4018
- var _ref4, file, values;
4019
- return regenerator.wrap(function _callee$(_context) {
4020
- while (1) switch (_context.prev = _context.next) {
4021
- case 0:
4022
- _ref4 = _slicedToArray(_ref2, 1), file = _ref4[0];
4023
- _context.next = 3;
4024
- return parseCsvEmails(file);
4025
- case 3:
4026
- values = _context.sent;
4027
- setFieldValue("notifyEmails", values);
4028
- case 5:
4029
- case "end":
4030
- return _context.stop();
4031
- }
4032
- }, _callee);
4033
- }));
4034
- return function (_x) {
4035
- return _ref3.apply(this, arguments);
4036
- };
4037
- }(), []);
4038
4112
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
4039
4113
  className: "space-y-4"
4040
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4041
- className: "space-y-2"
4042
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4043
- className: "flex items-center justify-between"
4044
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4045
- "data-cy": "send-to-input-label",
4046
- lineHeight: "normal",
4047
- style: "h4",
4048
- weight: "semibold"
4049
- }, t("neetoMolecules.shareViaEmail.sendTo")), /*#__PURE__*/React__default["default"].createElement(FilePicker$1, {
4050
- types: ALLOWED_FILE_PICKER_TYPES,
4051
- onChange: handleCSVFile
4052
- })), /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, {
4053
- filterInvalidEmails: true,
4054
- required: true,
4055
- label: "",
4056
- name: "notifyEmails"
4057
- })), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
4114
+ }, /*#__PURE__*/React__default["default"].createElement(SendToFields, {
4115
+ showUploadCsvButton: true,
4116
+ emailInputProps: {
4117
+ label: t("neetoMolecules.shareViaEmail.sendTo"),
4118
+ name: "notifyEmails"
4119
+ }
4120
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
4058
4121
  required: true,
4059
4122
  className: "col-span-1",
4060
4123
  label: t("neetoMolecules.shareViaEmail.subject"),