@bigbinary/neeto-molecules 1.1.78 → 1.2.0-beta2
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.
- package/README.md +67 -52
- package/dist/Breadcrumbs.js +16 -19
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BrowserSupport.js +41 -138
- package/dist/BrowserSupport.js.map +1 -1
- package/dist/Builder.js +207 -364
- package/dist/Builder.js.map +1 -1
- package/dist/CalendarView.js +40 -288
- package/dist/CalendarView.js.map +1 -1
- package/dist/Chevron-c639aa31.js +190 -0
- package/dist/Chevron-c639aa31.js.map +1 -0
- package/dist/Codeblock.js +26 -209
- package/dist/Codeblock.js.map +1 -1
- package/dist/Columns.js +16 -240
- package/dist/Columns.js.map +1 -1
- package/dist/ConfigurePageSidebar.js +97 -0
- package/dist/ConfigurePageSidebar.js.map +1 -0
- package/dist/ConfirmationModal.js +10 -10
- package/dist/ConfirmationModal.js.map +1 -1
- package/dist/Container.js +5 -1187
- package/dist/Container.js.map +1 -1
- package/dist/CopyToClipboardButton.js +26 -155
- package/dist/CopyToClipboardButton.js.map +1 -1
- package/dist/Currency.js +912 -0
- package/dist/Currency.js.map +1 -0
- package/dist/CustomDomain.js +37 -633
- package/dist/CustomDomain.js.map +1 -1
- package/dist/CustomDomainDashboard.js +69 -2192
- package/dist/CustomDomainDashboard.js.map +1 -1
- package/dist/DateFormat.js +6 -20
- package/dist/DateFormat.js.map +1 -1
- package/dist/DateRangeFilter.js +22 -77
- package/dist/DateRangeFilter.js.map +1 -1
- package/dist/DeleteArchiveModal.js +86 -0
- package/dist/DeleteArchiveModal.js.map +1 -0
- package/dist/DocumentEditor.js +43 -133
- package/dist/DocumentEditor.js.map +1 -1
- package/dist/DownloadMobileAppCallout.js +4 -4
- package/dist/DownloadMobileAppCallout.js.map +1 -1
- package/dist/DynamicVariables.js +12 -95
- package/dist/DynamicVariables.js.map +1 -1
- package/dist/EmailForm.js +79 -1741
- package/dist/EmailForm.js.map +1 -1
- package/dist/EmailPreview.js +32 -1213
- package/dist/EmailPreview.js.map +1 -1
- package/dist/EmojiPicker.js +106 -0
- package/dist/EmojiPicker.js.map +1 -0
- package/dist/EmojiReactions.js +69 -0
- package/dist/EmojiReactions.js.map +1 -0
- package/dist/ErrorPage.js +17 -26
- package/dist/ErrorPage.js.map +1 -1
- package/dist/FloatingActionMenu.js +646 -0
- package/dist/FloatingActionMenu.js.map +1 -0
- package/dist/Header.js +45 -117
- package/dist/Header.js.map +1 -1
- package/dist/HelpPopover.js +73 -0
- package/dist/HelpPopover.js.map +1 -0
- package/dist/IconPicker.js +36 -129
- package/dist/IconPicker.js.map +1 -1
- package/dist/ImageWithFallback.js +8 -144
- package/dist/ImageWithFallback.js.map +1 -1
- package/dist/InlineInput.js +25 -528
- package/dist/InlineInput.js.map +1 -1
- package/dist/Insights.js +305 -0
- package/dist/Insights.js.map +1 -0
- package/dist/IntegrationCard.js +42 -226
- package/dist/IntegrationCard.js.map +1 -1
- package/dist/IntegrationDisconnectAlert.js +6 -48
- package/dist/IntegrationDisconnectAlert.js.map +1 -1
- package/dist/IntegrationWalkthroughModal.js +10 -10
- package/dist/IntegrationWalkthroughModal.js.map +1 -1
- package/dist/IpRestriction.js +74 -221
- package/dist/IpRestriction.js.map +1 -1
- package/dist/KeyboardShortcuts.js +38 -128
- package/dist/KeyboardShortcuts.js.map +1 -1
- package/dist/LoginPage.js +44 -463
- package/dist/LoginPage.js.map +1 -1
- package/dist/MadeWith.js +32 -0
- package/dist/MadeWith.js.map +1 -0
- package/dist/MenuBar.js +34 -1295
- package/dist/MenuBar.js.map +1 -1
- package/dist/Metadata.js +65 -86
- package/dist/Metadata.js.map +1 -1
- package/dist/MoreDropdown.js +48 -107
- package/dist/MoreDropdown.js.map +1 -1
- package/dist/NavigationHeader.js +62 -733
- package/dist/NavigationHeader.js.map +1 -1
- package/dist/NeetoWidget.js +148 -316
- package/dist/NeetoWidget.js.map +1 -1
- package/dist/Onboarding.js +204 -0
- package/dist/Onboarding.js.map +1 -0
- package/dist/OptionFields.js +507 -0
- package/dist/OptionFields.js.map +1 -0
- package/dist/PageLoader.js +9 -112
- package/dist/PageLoader.js.map +1 -1
- package/dist/PhoneNumber.js +122 -201
- package/dist/PhoneNumber.js.map +1 -1
- package/dist/ProductEmbed.js +767 -0
- package/dist/ProductEmbed.js.map +1 -0
- package/dist/PublishBlock.js +19 -60
- package/dist/PublishBlock.js.map +1 -1
- package/dist/PublishYourItem.js +52 -0
- package/dist/PublishYourItem.js.map +1 -0
- package/dist/Rename.js +127 -394
- package/dist/Rename.js.map +1 -1
- package/dist/ResponsiveDevicePicker.js +8 -144
- package/dist/ResponsiveDevicePicker.js.map +1 -1
- package/dist/Schedule.js +134 -389
- package/dist/Schedule.js.map +1 -1
- package/dist/Scrollable.js +6 -89
- package/dist/Scrollable.js.map +1 -1
- package/dist/Search.js +54 -157
- package/dist/Search.js.map +1 -1
- package/dist/Security.js +72 -1567
- package/dist/Security.js.map +1 -1
- package/dist/SendToFields.js +51 -133
- package/dist/SendToFields.js.map +1 -1
- package/dist/Settings.js +141 -412
- package/dist/Settings.js.map +1 -1
- package/dist/ShareRecordingPane.js +189 -0
- package/dist/ShareRecordingPane.js.map +1 -0
- package/dist/ShareViaEmail.js +126 -551
- package/dist/ShareViaEmail.js.map +1 -1
- package/dist/ShareViaLink.js +127 -345
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/Sidebar.js +161 -758
- package/dist/Sidebar.js.map +1 -1
- package/dist/StickyRibbonsContainer.js +81 -0
- package/dist/StickyRibbonsContainer.js.map +1 -0
- package/dist/SubHeader.js +63 -108
- package/dist/SubHeader.js.map +1 -1
- package/dist/SuffixedInput.js +105 -0
- package/dist/SuffixedInput.js.map +1 -0
- package/dist/TableWrapper.js +8 -9
- package/dist/TableWrapper.js.map +1 -1
- package/dist/Taxonomy.js +112 -1774
- package/dist/Taxonomy.js.map +1 -1
- package/dist/ThemeSidebar.js +168 -784
- package/dist/ThemeSidebar.js.map +1 -1
- package/dist/TimeFormat.js +8 -44
- package/dist/TimeFormat.js.map +1 -1
- package/dist/TimezoneMismatchModal.js +49 -84
- package/dist/TimezoneMismatchModal.js.map +1 -1
- package/dist/ToggleFeatureCard.js +46 -169
- package/dist/ToggleFeatureCard.js.map +1 -1
- package/dist/cjs/Breadcrumbs.js +49 -0
- package/dist/cjs/Breadcrumbs.js.map +1 -0
- package/dist/cjs/BrowserSupport.js +332 -0
- package/dist/cjs/BrowserSupport.js.map +1 -0
- package/dist/cjs/Builder.js +560 -0
- package/dist/cjs/Builder.js.map +1 -0
- package/dist/cjs/CalendarView.js +303 -0
- package/dist/cjs/CalendarView.js.map +1 -0
- package/dist/cjs/Chevron-5fe59f57.js +206 -0
- package/dist/cjs/Chevron-5fe59f57.js.map +1 -0
- package/dist/cjs/Codeblock.js +59 -0
- package/dist/cjs/Codeblock.js.map +1 -0
- package/dist/cjs/Columns.js +31 -0
- package/dist/cjs/Columns.js.map +1 -0
- package/dist/cjs/ConfigurePageSidebar.js +105 -0
- package/dist/cjs/ConfigurePageSidebar.js.map +1 -0
- package/dist/cjs/ConfirmationModal.js +120 -0
- package/dist/cjs/ConfirmationModal.js.map +1 -0
- package/dist/cjs/Container.js +36 -0
- package/dist/cjs/Container.js.map +1 -0
- package/dist/cjs/CopyToClipboardButton.js +90 -0
- package/dist/cjs/CopyToClipboardButton.js.map +1 -0
- package/dist/cjs/Currency.js +923 -0
- package/dist/cjs/Currency.js.map +1 -0
- package/dist/cjs/CustomDomain.js +126 -0
- package/dist/cjs/CustomDomain.js.map +1 -0
- package/dist/cjs/CustomDomainDashboard.js +202 -0
- package/dist/cjs/CustomDomainDashboard.js.map +1 -0
- package/dist/cjs/DateFormat.js +41 -0
- package/dist/cjs/DateFormat.js.map +1 -0
- package/dist/cjs/DateRangeFilter.js +183 -0
- package/dist/cjs/DateRangeFilter.js.map +1 -0
- package/dist/cjs/DeleteArchiveModal.js +93 -0
- package/dist/cjs/DeleteArchiveModal.js.map +1 -0
- package/dist/cjs/DocumentEditor.js +197 -0
- package/dist/cjs/DocumentEditor.js.map +1 -0
- package/dist/cjs/DownloadMobileAppCallout.js +45 -0
- package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
- package/dist/cjs/DynamicVariables.js +109 -0
- package/dist/cjs/DynamicVariables.js.map +1 -0
- package/dist/cjs/EmailForm.js +397 -0
- package/dist/cjs/EmailForm.js.map +1 -0
- package/dist/cjs/EmailPreview.js +139 -0
- package/dist/cjs/EmailPreview.js.map +1 -0
- package/dist/cjs/EmojiPicker.js +115 -0
- package/dist/cjs/EmojiPicker.js.map +1 -0
- package/dist/cjs/EmojiReactions.js +77 -0
- package/dist/cjs/EmojiReactions.js.map +1 -0
- package/dist/cjs/ErrorPage.js +180 -0
- package/dist/cjs/ErrorPage.js.map +1 -0
- package/dist/cjs/FloatingActionMenu.js +680 -0
- package/dist/cjs/FloatingActionMenu.js.map +1 -0
- package/dist/cjs/Header.js +107 -0
- package/dist/cjs/Header.js.map +1 -0
- package/dist/cjs/HelpPopover.js +82 -0
- package/dist/cjs/HelpPopover.js.map +1 -0
- package/dist/cjs/IconPicker.js +231 -0
- package/dist/cjs/IconPicker.js.map +1 -0
- package/dist/cjs/ImageWithFallback.js +56 -0
- package/dist/cjs/ImageWithFallback.js.map +1 -0
- package/dist/cjs/InlineInput.js +240 -0
- package/dist/cjs/InlineInput.js.map +1 -0
- package/dist/cjs/Insights.js +311 -0
- package/dist/cjs/Insights.js.map +1 -0
- package/dist/cjs/IntegrationCard.js +210 -0
- package/dist/cjs/IntegrationCard.js.map +1 -0
- package/dist/cjs/IntegrationDisconnectAlert.js +50 -0
- package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -0
- package/dist/cjs/IntegrationWalkthroughModal.js +51 -0
- package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -0
- package/dist/cjs/IpRestriction.js +527 -0
- package/dist/cjs/IpRestriction.js.map +1 -0
- package/dist/cjs/KeyboardShortcuts.js +284 -0
- package/dist/cjs/KeyboardShortcuts.js.map +1 -0
- package/dist/cjs/LoginPage.js +202 -0
- package/dist/cjs/LoginPage.js.map +1 -0
- package/dist/cjs/MadeWith.js +40 -0
- package/dist/cjs/MadeWith.js.map +1 -0
- package/dist/cjs/MenuBar.js +211 -0
- package/dist/cjs/MenuBar.js.map +1 -0
- package/dist/cjs/Metadata.js +196 -0
- package/dist/cjs/Metadata.js.map +1 -0
- package/dist/cjs/MoreDropdown.js +155 -0
- package/dist/cjs/MoreDropdown.js.map +1 -0
- package/dist/cjs/NavigationHeader.js +187 -0
- package/dist/cjs/NavigationHeader.js.map +1 -0
- package/dist/cjs/NeetoWidget.js +915 -0
- package/dist/cjs/NeetoWidget.js.map +1 -0
- package/dist/cjs/Onboarding.js +216 -0
- package/dist/cjs/Onboarding.js.map +1 -0
- package/dist/cjs/OptionFields.js +518 -0
- package/dist/cjs/OptionFields.js.map +1 -0
- package/dist/cjs/PageLoader.js +40 -0
- package/dist/cjs/PageLoader.js.map +1 -0
- package/dist/cjs/PhoneNumber.js +367 -0
- package/dist/cjs/PhoneNumber.js.map +1 -0
- package/dist/cjs/ProductEmbed.js +777 -0
- package/dist/cjs/ProductEmbed.js.map +1 -0
- package/dist/cjs/PublishBlock.js +127 -0
- package/dist/cjs/PublishBlock.js.map +1 -0
- package/dist/cjs/PublishYourItem.js +59 -0
- package/dist/cjs/PublishYourItem.js.map +1 -0
- package/dist/cjs/Rename.js +354 -0
- package/dist/cjs/Rename.js.map +1 -0
- package/dist/cjs/ResponsiveDevicePicker.js +68 -0
- package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
- package/dist/cjs/Schedule.js +874 -0
- package/dist/cjs/Schedule.js.map +1 -0
- package/dist/cjs/Scrollable.js +49 -0
- package/dist/cjs/Scrollable.js.map +1 -0
- package/dist/cjs/Search.js +121 -0
- package/dist/cjs/Search.js.map +1 -0
- package/dist/cjs/Security.js +379 -0
- package/dist/cjs/Security.js.map +1 -0
- package/dist/cjs/SendToFields.js +275 -0
- package/dist/cjs/SendToFields.js.map +1 -0
- package/dist/cjs/Settings.js +217 -0
- package/dist/cjs/Settings.js.map +1 -0
- package/dist/cjs/ShareRecordingPane.js +199 -0
- package/dist/cjs/ShareRecordingPane.js.map +1 -0
- package/dist/cjs/ShareViaEmail.js +353 -0
- package/dist/cjs/ShareViaEmail.js.map +1 -0
- package/dist/cjs/ShareViaLink.js +508 -0
- package/dist/cjs/ShareViaLink.js.map +1 -0
- package/dist/cjs/Sidebar.js +292 -0
- package/dist/cjs/Sidebar.js.map +1 -0
- package/dist/cjs/StickyRibbonsContainer.js +90 -0
- package/dist/cjs/StickyRibbonsContainer.js.map +1 -0
- package/dist/cjs/SubHeader.js +181 -0
- package/dist/cjs/SubHeader.js.map +1 -0
- package/dist/cjs/SuffixedInput.js +114 -0
- package/dist/cjs/SuffixedInput.js.map +1 -0
- package/dist/cjs/TableWrapper.js +32 -0
- package/dist/cjs/TableWrapper.js.map +1 -0
- package/dist/cjs/Taxonomy.js +445 -0
- package/dist/cjs/Taxonomy.js.map +1 -0
- package/dist/cjs/ThemeSidebar.js +1443 -0
- package/dist/cjs/ThemeSidebar.js.map +1 -0
- package/dist/cjs/TimeFormat.js +15 -0
- package/dist/cjs/TimeFormat.js.map +1 -0
- package/dist/cjs/TimezoneMismatchModal.js +144 -0
- package/dist/cjs/TimezoneMismatchModal.js.map +1 -0
- package/dist/cjs/ToggleFeatureCard.js +213 -0
- package/dist/cjs/ToggleFeatureCard.js.map +1 -0
- package/dist/cjs/index-248c4f4c.js +1186 -0
- package/dist/cjs/index-248c4f4c.js.map +1 -0
- package/dist/cjs/index-7db1772e.js +544 -0
- package/dist/cjs/index-7db1772e.js.map +1 -0
- package/dist/cjs/inject-css-80a5faa3.js +6 -0
- package/dist/cjs/inject-css-80a5faa3.js.map +1 -0
- package/dist/cjs/useColumns-9978cf70.js +275 -0
- package/dist/cjs/useColumns-9978cf70.js.map +1 -0
- package/dist/index-7d311b7a.js +509 -0
- package/dist/index-7d311b7a.js.map +1 -0
- package/dist/index-e5588516.js +1184 -0
- package/dist/index-e5588516.js.map +1 -0
- package/dist/inject-css-c86de496.js +4 -0
- package/dist/inject-css-c86de496.js.map +1 -0
- package/dist/useColumns-751e9192.js +258 -0
- package/dist/useColumns-751e9192.js.map +1 -0
- package/package.json +30 -19
- package/src/translations/de.json +7 -0
- package/src/translations/en.json +191 -31
- package/src/translations/es.json +7 -0
- package/src/translations/fr.json +7 -0
- package/src/translations/nl.json +7 -0
- package/src/translations/pl.json +7 -0
- package/src/translations/pt.json +7 -0
- package/types/Breadcrumbs.d.ts +1 -0
- package/types/Builder.d.ts +61 -12
- package/types/Columns.d.ts +112 -5
- package/types/ConfigurePageSidebar.d.ts +43 -0
- package/types/CopyToClipboardButton.d.ts +3 -0
- package/types/Currency.d.ts +48 -0
- package/types/CustomDomain.d.ts +2 -0
- package/types/CustomDomainDashboard.d.ts +14 -0
- package/types/DateRangeFilter.d.ts +2 -0
- package/types/DeleteArchiveModal.d.ts +60 -0
- package/types/EmailForm.d.ts +1 -1
- package/types/EmojiPicker.d.ts +33 -0
- package/types/EmojiReactions.d.ts +60 -0
- package/types/ErrorPage.d.ts +1 -0
- package/types/FloatingActionMenu.d.ts +56 -0
- package/types/Header.d.ts +2 -1
- package/types/HelpPopover.d.ts +42 -0
- package/types/Insights.d.ts +108 -0
- package/types/IntegrationCard.d.ts +2 -0
- package/types/KeyboardShortcuts.d.ts +2 -2
- package/types/MadeWith.d.ts +16 -0
- package/types/MoreDropdown.d.ts +4 -1
- package/types/NavigationHeader.d.ts +3 -1
- package/types/Onboarding.d.ts +65 -0
- package/types/OptionFields.d.ts +63 -0
- package/types/PhoneNumber.d.ts +6 -2
- package/types/ProductEmbed.d.ts +87 -0
- package/types/Rename.d.ts +4 -1
- package/types/Schedule.d.ts +2 -0
- package/types/Search.d.ts +2 -0
- package/types/Settings.d.ts +13 -10
- package/types/ShareRecordingPane.d.ts +50 -0
- package/types/ShareViaLink.d.ts +15 -4
- package/types/Sidebar.d.ts +16 -32
- package/types/StickyRibbonsContainer.d.ts +26 -0
- package/types/SubHeader.d.ts +0 -1
- package/types/SuffixedInput.d.ts +43 -0
- package/types/ToggleFeatureCard.d.ts +8 -1
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _extends = require('@babel/runtime/helpers/extends');
|
|
4
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
8
|
+
var reactI18next = require('react-i18next');
|
|
9
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
10
|
+
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
11
|
+
var ramda = require('ramda');
|
|
12
|
+
var CopyToClipboardButton = require('./CopyToClipboardButton.js');
|
|
13
|
+
require('classnames');
|
|
14
|
+
require('@bigbinary/neeto-commons-frontend/utils/general');
|
|
15
|
+
require('@bigbinary/neeto-icons');
|
|
16
|
+
require('./inject-css-80a5faa3.js');
|
|
17
|
+
|
|
18
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
|
+
|
|
20
|
+
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
21
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
22
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
23
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
24
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
25
|
+
|
|
26
|
+
var ONE_SECOND = 1;
|
|
27
|
+
var ONE_MINUTE = 60 * ONE_SECOND;
|
|
28
|
+
var ONE_HOUR = 60 * ONE_MINUTE;
|
|
29
|
+
|
|
30
|
+
var padZero = function padZero(number) {
|
|
31
|
+
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
|
|
32
|
+
var string = String(number);
|
|
33
|
+
var threshold = Math.pow(10, length - 1);
|
|
34
|
+
if (number < threshold) {
|
|
35
|
+
while (String(threshold).length > string.length) {
|
|
36
|
+
string = "0".concat(number);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return string;
|
|
40
|
+
};
|
|
41
|
+
var shouldRenderHoursInput = function shouldRenderHoursInput(duration) {
|
|
42
|
+
var hours = Math.floor(duration / ONE_HOUR);
|
|
43
|
+
return hours > 0;
|
|
44
|
+
};
|
|
45
|
+
var formatTime = function formatTime(timeInSeconds, showHours) {
|
|
46
|
+
var hours = Math.floor(timeInSeconds / ONE_HOUR);
|
|
47
|
+
var minutes = Math.floor(timeInSeconds % ONE_HOUR / ONE_MINUTE);
|
|
48
|
+
var seconds = timeInSeconds % ONE_MINUTE;
|
|
49
|
+
return showHours ? "".concat(padZero(hours), ":").concat(padZero(minutes), ":").concat(padZero(seconds)) : "".concat(padZero(minutes), ":").concat(padZero(seconds));
|
|
50
|
+
};
|
|
51
|
+
var parseTime = function parseTime(timeString) {
|
|
52
|
+
var parts = timeString.split(":").map(function (part) {
|
|
53
|
+
return part === "" ? NaN : parseInt(part, 10);
|
|
54
|
+
});
|
|
55
|
+
if (parts.some(isNaN) || parts.length > 3) {
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
if (parts.length === 1) {
|
|
59
|
+
return parts[0];
|
|
60
|
+
} else if (parts.length === 2) {
|
|
61
|
+
return parts[0] * ONE_MINUTE + parts[1];
|
|
62
|
+
} else if (parts.length === 3) {
|
|
63
|
+
return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];
|
|
64
|
+
}
|
|
65
|
+
return 0;
|
|
66
|
+
};
|
|
67
|
+
var validateInput = function validateInput(input) {
|
|
68
|
+
var regex = /^[0-9:]{0,8}$/;
|
|
69
|
+
var colons = (input.match(/:/g) || []).length;
|
|
70
|
+
return regex.test(input) && colons <= 2;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
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; }
|
|
74
|
+
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; }
|
|
75
|
+
var SharePaneBody = function SharePaneBody(_ref) {
|
|
76
|
+
var recordingUrl = _ref.recordingUrl,
|
|
77
|
+
totalDuration = _ref.totalDuration,
|
|
78
|
+
getCurrentTimestamp = _ref.getCurrentTimestamp,
|
|
79
|
+
isOpen = _ref.isOpen;
|
|
80
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
81
|
+
t = _useTranslation.t;
|
|
82
|
+
var currentTimestamp = getCurrentTimestamp();
|
|
83
|
+
var _useState = React.useState(""),
|
|
84
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
85
|
+
shareLink = _useState2[0],
|
|
86
|
+
setShareLink = _useState2[1];
|
|
87
|
+
var _useState3 = React.useState(currentTimestamp),
|
|
88
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
89
|
+
currentPlaybackTime = _useState4[0],
|
|
90
|
+
setCurrentPlaybackTime = _useState4[1];
|
|
91
|
+
var _useState5 = React.useState(""),
|
|
92
|
+
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
93
|
+
rawInput = _useState6[0],
|
|
94
|
+
setRawInput = _useState6[1];
|
|
95
|
+
var _useState7 = React.useState(currentTimestamp > 0),
|
|
96
|
+
_useState8 = _slicedToArray__default["default"](_useState7, 2),
|
|
97
|
+
isPlaybackTimeCheckboxChecked = _useState8[0],
|
|
98
|
+
setIsPlaybackTimeCheckboxChecked = _useState8[1];
|
|
99
|
+
var showHours = shouldRenderHoursInput(totalDuration);
|
|
100
|
+
var handlePlaybackTimestampChange = function handlePlaybackTimestampChange(e) {
|
|
101
|
+
var input = e.target.value;
|
|
102
|
+
if (validateInput(input)) {
|
|
103
|
+
setRawInput(input);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
var formatAndSetTime = function formatAndSetTime() {
|
|
107
|
+
var timeInSeconds = parseTime(rawInput);
|
|
108
|
+
if (timeInSeconds > totalDuration) {
|
|
109
|
+
timeInSeconds = totalDuration;
|
|
110
|
+
}
|
|
111
|
+
setCurrentPlaybackTime(timeInSeconds);
|
|
112
|
+
setRawInput(formatTime(timeInSeconds, showHours));
|
|
113
|
+
};
|
|
114
|
+
var handleKeyDown = function handleKeyDown(e) {
|
|
115
|
+
if (!(e.key === "Enter")) return;
|
|
116
|
+
formatAndSetTime();
|
|
117
|
+
};
|
|
118
|
+
React.useEffect(function () {
|
|
119
|
+
if (ramda.not(isOpen)) return;
|
|
120
|
+
setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);
|
|
121
|
+
setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);
|
|
122
|
+
setRawInput(formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours));
|
|
123
|
+
}, [isOpen, showHours, currentTimestamp]);
|
|
124
|
+
React.useEffect(function () {
|
|
125
|
+
var playbackUrl = utils.buildUrl(recordingUrl, _objectSpread$1({}, isPlaybackTimeCheckboxChecked && currentPlaybackTime > 0 && {
|
|
126
|
+
time: currentPlaybackTime
|
|
127
|
+
}));
|
|
128
|
+
setShareLink(playbackUrl);
|
|
129
|
+
}, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);
|
|
130
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
131
|
+
className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex w-full items-center justify-between p-2"
|
|
132
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
133
|
+
content: shareLink
|
|
134
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
135
|
+
className: "truncate",
|
|
136
|
+
style: "body2"
|
|
137
|
+
}, shareLink)), /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
|
|
138
|
+
className: "flex-shrink-0",
|
|
139
|
+
style: "secondary",
|
|
140
|
+
value: shareLink
|
|
141
|
+
})), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
142
|
+
className: "flex items-center gap-x-2"
|
|
143
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
|
|
144
|
+
checked: isPlaybackTimeCheckboxChecked,
|
|
145
|
+
className: "grow-0",
|
|
146
|
+
"data-cy": "time-checkbox",
|
|
147
|
+
label: t("neetoMolecules.shareRecording.checkboxLabel"),
|
|
148
|
+
onChange: function onChange(_ref2) {
|
|
149
|
+
var checked = _ref2.target.checked;
|
|
150
|
+
return setIsPlaybackTimeCheckboxChecked(checked);
|
|
151
|
+
}
|
|
152
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
|
|
153
|
+
className: "w-40",
|
|
154
|
+
"data-cy": "time-input",
|
|
155
|
+
disabled: ramda.not(isPlaybackTimeCheckboxChecked),
|
|
156
|
+
placeholder: showHours ? "HH:MM:SS" : "MM:SS",
|
|
157
|
+
value: rawInput,
|
|
158
|
+
onBlur: formatAndSetTime,
|
|
159
|
+
onChange: handlePlaybackTimestampChange,
|
|
160
|
+
onKeyDown: handleKeyDown
|
|
161
|
+
})));
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
var _excluded = ["recordingUrl", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading"];
|
|
165
|
+
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; }
|
|
166
|
+
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; }
|
|
167
|
+
var ShareRecordingPane = function ShareRecordingPane(_ref) {
|
|
168
|
+
var recordingUrl = _ref.recordingUrl,
|
|
169
|
+
totalDuration = _ref.totalDuration,
|
|
170
|
+
getCurrentTimestamp = _ref.getCurrentTimestamp,
|
|
171
|
+
isOpen = _ref.isOpen,
|
|
172
|
+
onClose = _ref.onClose,
|
|
173
|
+
_ref$isLoading = _ref.isLoading,
|
|
174
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
175
|
+
otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
176
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
177
|
+
t = _useTranslation.t;
|
|
178
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, _extends__default["default"]({}, _objectSpread({
|
|
179
|
+
isOpen: isOpen,
|
|
180
|
+
onClose: onClose
|
|
181
|
+
}, otherProps), {
|
|
182
|
+
"data-cy": "share-pane",
|
|
183
|
+
size: "large"
|
|
184
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
185
|
+
style: "h2"
|
|
186
|
+
}, t("neetoMolecules.shareRecording.title"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, {
|
|
187
|
+
className: "flex flex-col space-y-2"
|
|
188
|
+
}, isLoading ? /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
|
|
189
|
+
className: "mx-auto"
|
|
190
|
+
}) : /*#__PURE__*/React__default["default"].createElement(SharePaneBody, {
|
|
191
|
+
getCurrentTimestamp: getCurrentTimestamp,
|
|
192
|
+
isOpen: isOpen,
|
|
193
|
+
recordingUrl: recordingUrl,
|
|
194
|
+
totalDuration: totalDuration
|
|
195
|
+
})));
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
module.exports = ShareRecordingPane;
|
|
199
|
+
//# sourceMappingURL=ShareRecordingPane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import React, { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLink, setShareLink] = useState(\"\");\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n const [rawInput, setRawInput] = useState(\"\");\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (!(e.key === \"Enter\")) return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrl = buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n });\n\n setShareLink(playbackUrl);\n }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex w-full items-center justify-between p-2\">\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport React from \"react\";\n\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n return (\n <Pane\n {...{ isOpen, onClose, ...otherProps }}\n data-cy=\"share-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{ getCurrentTimestamp, isOpen, recordingUrl, totalDuration }}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string.isRequired,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrl","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLink","setShareLink","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","rawInput","setRawInput","_useState7","_useState8","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","handlePlaybackTimestampChange","e","target","value","formatAndSetTime","handleKeyDown","key","useEffect","not","playbackUrl","buildUrl","_objectSpread","time","React","createElement","Fragment","className","Tooltip","content","Typography","style","CopyToClipboardButton","Checkbox","checked","label","onChange","_ref2","Input","disabled","placeholder","onBlur","onKeyDown","ShareRecordingPane","onClose","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","Pane","_extends","size","Header","Body","Spinner"],"mappings":"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"}
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
5
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
6
|
+
var formik$1 = require('@bigbinary/neetoui/formik');
|
|
7
|
+
var reactI18next = require('react-i18next');
|
|
8
|
+
var EmailPreview = require('./EmailPreview.js');
|
|
9
|
+
var classnames = require('classnames');
|
|
10
|
+
var formik = require('formik');
|
|
11
|
+
var SendToFields = require('./SendToFields.js');
|
|
12
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
13
|
+
var neetoEditor = require('@bigbinary/neeto-editor');
|
|
14
|
+
var _extends = require('@babel/runtime/helpers/extends');
|
|
15
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
16
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
17
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
18
|
+
var dayjs = require('dayjs');
|
|
19
|
+
var i18next = require('i18next');
|
|
20
|
+
require('@bigbinary/neeto-cist');
|
|
21
|
+
require('papaparse');
|
|
22
|
+
var ramda = require('ramda');
|
|
23
|
+
var yup = require('yup');
|
|
24
|
+
require('@bigbinary/neeto-commons-frontend/react-utils/withT');
|
|
25
|
+
require('./index-248c4f4c.js');
|
|
26
|
+
require('react-dropzone');
|
|
27
|
+
|
|
28
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
29
|
+
|
|
30
|
+
function _interopNamespace(e) {
|
|
31
|
+
if (e && e.__esModule) return e;
|
|
32
|
+
var n = Object.create(null);
|
|
33
|
+
if (e) {
|
|
34
|
+
Object.keys(e).forEach(function (k) {
|
|
35
|
+
if (k !== 'default') {
|
|
36
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
37
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () { return e[k]; }
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
n["default"] = e;
|
|
45
|
+
return Object.freeze(n);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
49
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
50
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
51
|
+
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
52
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
53
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
54
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
55
|
+
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
56
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
57
|
+
|
|
58
|
+
var INITIAL_VALUES = {
|
|
59
|
+
sendFromEmail: "",
|
|
60
|
+
replyToEmail: "",
|
|
61
|
+
notifyEmails: [],
|
|
62
|
+
emailSubject: "",
|
|
63
|
+
emailBody: "",
|
|
64
|
+
isSendLaterEnabled: false,
|
|
65
|
+
sendEmailDatetime: undefined,
|
|
66
|
+
category: "email_share",
|
|
67
|
+
actionButtonText: ""
|
|
68
|
+
};
|
|
69
|
+
var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
|
|
70
|
+
|
|
71
|
+
var EmailBody = function EmailBody(_ref, ref) {
|
|
72
|
+
var id = _ref.id,
|
|
73
|
+
showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
|
|
74
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
75
|
+
t = _useTranslation.t;
|
|
76
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoEditor.FormikEditor, {
|
|
77
|
+
required: true,
|
|
78
|
+
className: "mb-6",
|
|
79
|
+
"data-cy": "email-body",
|
|
80
|
+
id: id,
|
|
81
|
+
label: t("neetoMolecules.shareViaEmail.emailBody"),
|
|
82
|
+
name: "emailBody",
|
|
83
|
+
ref: ref,
|
|
84
|
+
addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray__default["default"](EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
var EmailBody$1 = /*#__PURE__*/React.forwardRef(EmailBody);
|
|
88
|
+
|
|
89
|
+
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; }
|
|
90
|
+
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; }
|
|
91
|
+
var isPastDate = function isPastDate(date) {
|
|
92
|
+
return dayjs__default["default"](date).isBefore(dayjs__default["default"]().subtract(1, "days"));
|
|
93
|
+
};
|
|
94
|
+
var generateInitialValues = function generateInitialValues(defaultValues) {
|
|
95
|
+
return _objectSpread(_objectSpread({}, INITIAL_VALUES), defaultValues);
|
|
96
|
+
};
|
|
97
|
+
var emailFormValidationSchema = function emailFormValidationSchema(disableReplyTo) {
|
|
98
|
+
return yup__namespace.object().shape({
|
|
99
|
+
emailSubject: yup__namespace.string().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.subject")),
|
|
100
|
+
emailBody: yup__namespace.string().test("emailBody", i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.emailBody"), function (value) {
|
|
101
|
+
return !neetoEditor.isEditorEmpty(value);
|
|
102
|
+
}),
|
|
103
|
+
sendFromEmail: yup__namespace.string().trim().email(i18next.t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress")).required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.sendFrom")),
|
|
104
|
+
replyToEmail: !disableReplyTo && yup__namespace.string().trim().email(i18next.t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress")).required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.replyTo")),
|
|
105
|
+
notifyEmails: yup__namespace.array().min(1, i18next.t("neetoMolecules.shareViaEmail.validations.atleastOneIsRequired.emailAddress")).test("are-all-emails-valid", i18next.t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress"), function (emails) {
|
|
106
|
+
return emails.every(ramda.prop("valid"));
|
|
107
|
+
}),
|
|
108
|
+
isSendLaterEnabled: yup__namespace["boolean"](),
|
|
109
|
+
sendEmailDatetime: yup__namespace.date().when("isSendLaterEnabled", {
|
|
110
|
+
is: true,
|
|
111
|
+
then: yup__namespace.date().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.sendLater"))
|
|
112
|
+
}),
|
|
113
|
+
name: yup__namespace.string(),
|
|
114
|
+
actionButtonText: yup__namespace.string().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.startButtonText"))
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
var disabledTime = function disabledTime(selectedDate) {
|
|
118
|
+
var current = selectedDate ? dayjs__default["default"](selectedDate).startOf("day") : null;
|
|
119
|
+
if (!current) return {};
|
|
120
|
+
var today = dayjs__default["default"]().startOf("day");
|
|
121
|
+
var isAfterToday = current.isAfter(today, "day");
|
|
122
|
+
var isBeforeToday = current.isBefore(today, "day");
|
|
123
|
+
if (isAfterToday) {
|
|
124
|
+
return {
|
|
125
|
+
minTime: null,
|
|
126
|
+
maxTime: null
|
|
127
|
+
};
|
|
128
|
+
} else if (isBeforeToday) {
|
|
129
|
+
return {
|
|
130
|
+
minTime: "0:00",
|
|
131
|
+
maxTime: "24:00"
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
|
|
136
|
+
var currentTime = dayjs__default["default"]().format("HH:mm");
|
|
137
|
+
var endOfDay = "23:59";
|
|
138
|
+
return {
|
|
139
|
+
minTime: currentTime,
|
|
140
|
+
maxTime: endOfDay
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var _excluded = ["name", "disabledDate"];
|
|
145
|
+
var FormikDatePicker = function FormikDatePicker(_ref) {
|
|
146
|
+
var name = _ref.name,
|
|
147
|
+
disabledDate = _ref.disabledDate,
|
|
148
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
149
|
+
var _useField = formik.useField(name),
|
|
150
|
+
_useField2 = _slicedToArray__default["default"](_useField, 3),
|
|
151
|
+
field = _useField2[0],
|
|
152
|
+
meta = _useField2[1],
|
|
153
|
+
_useField2$ = _useField2[2],
|
|
154
|
+
setValue = _useField2$.setValue,
|
|
155
|
+
setTouched = _useField2$.setTouched;
|
|
156
|
+
var disabledTimeFrame = React.useMemo(function () {
|
|
157
|
+
return disabledTime(field === null || field === void 0 ? void 0 : field.value);
|
|
158
|
+
}, [field === null || field === void 0 ? void 0 : field.value]);
|
|
159
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.DateTimePicker, _extends__default["default"]({}, field, meta, {
|
|
160
|
+
timePickerProps: disabledTimeFrame,
|
|
161
|
+
datePickerProps: {
|
|
162
|
+
disabledDate: disabledDate,
|
|
163
|
+
"data-cy": props["data-cy"],
|
|
164
|
+
"data-testid": props["data-testid"]
|
|
165
|
+
},
|
|
166
|
+
onBlur: function onBlur(date) {
|
|
167
|
+
setValue(date || undefined);
|
|
168
|
+
setTouched(true);
|
|
169
|
+
},
|
|
170
|
+
onChange: function onChange(date) {
|
|
171
|
+
setValue(date || undefined);
|
|
172
|
+
setTouched(true);
|
|
173
|
+
}
|
|
174
|
+
}, props));
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
var Form = function Form(_ref) {
|
|
178
|
+
var showSendFromField = _ref.showSendFromField,
|
|
179
|
+
disableReplyTo = _ref.disableReplyTo,
|
|
180
|
+
showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
|
|
181
|
+
children = _ref.children;
|
|
182
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
183
|
+
values = _useFormikContext.values,
|
|
184
|
+
initialValues = _useFormikContext.initialValues;
|
|
185
|
+
var editorRef = React.useRef();
|
|
186
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
187
|
+
t = _useTranslation.t;
|
|
188
|
+
var handleReset = function handleReset() {
|
|
189
|
+
return editorRef.current.editor.commands.setContent(initialValues.emailBody);
|
|
190
|
+
};
|
|
191
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
192
|
+
className: "space-y-4"
|
|
193
|
+
}, /*#__PURE__*/React__default["default"].createElement(SendToFields, {
|
|
194
|
+
showUploadCsvButton: true,
|
|
195
|
+
emailInputProps: {
|
|
196
|
+
label: t("neetoMolecules.shareViaEmail.sendTo"),
|
|
197
|
+
name: "notifyEmails",
|
|
198
|
+
required: true
|
|
199
|
+
}
|
|
200
|
+
}), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
|
|
201
|
+
required: true,
|
|
202
|
+
className: "col-span-1",
|
|
203
|
+
label: t("neetoMolecules.shareViaEmail.subject"),
|
|
204
|
+
name: "emailSubject"
|
|
205
|
+
}), /*#__PURE__*/React__default["default"].createElement(EmailBody$1, {
|
|
206
|
+
showVideoEmbedInEditor: showVideoEmbedInEditor,
|
|
207
|
+
id: "emailBody",
|
|
208
|
+
ref: editorRef
|
|
209
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
210
|
+
ref: editorRef
|
|
211
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
|
|
212
|
+
className: "flex items-center gap-2"
|
|
213
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik$1.Switch, {
|
|
214
|
+
"data-cy": "send-later-switch",
|
|
215
|
+
"data-testid": "send-later-switch",
|
|
216
|
+
name: "isSendLaterEnabled"
|
|
217
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
218
|
+
component: "span",
|
|
219
|
+
"data-cy": "send-later-label",
|
|
220
|
+
lineHeight: "normal",
|
|
221
|
+
style: "h4",
|
|
222
|
+
weight: "semibold"
|
|
223
|
+
}, t("neetoMolecules.shareViaEmail.sendLater")))), values.isSendLaterEnabled && /*#__PURE__*/React__default["default"].createElement(FormikDatePicker, {
|
|
224
|
+
autoFocus: true,
|
|
225
|
+
"data-cy": "email-share-date-input",
|
|
226
|
+
"data-testid": "formik-date-picker",
|
|
227
|
+
disabledDate: isPastDate,
|
|
228
|
+
name: "sendEmailDatetime",
|
|
229
|
+
size: "large"
|
|
230
|
+
}), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
|
|
231
|
+
required: true,
|
|
232
|
+
label: t("neetoMolecules.shareViaEmail.startButtonText"),
|
|
233
|
+
name: "actionButtonText"
|
|
234
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
235
|
+
className: "flex flex-col gap-4 sm:flex-row sm:gap-6"
|
|
236
|
+
}, showSendFromField && /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
|
|
237
|
+
required: true,
|
|
238
|
+
className: classnames__default["default"]({
|
|
239
|
+
"w-full flex-grow-0": !disableReplyTo
|
|
240
|
+
}),
|
|
241
|
+
"data-testid": "neeto-molecules-share-via-email-send-from",
|
|
242
|
+
label: t("neetoMolecules.shareViaEmail.sendFrom"),
|
|
243
|
+
name: "sendFromEmail"
|
|
244
|
+
}), !disableReplyTo && /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
|
|
245
|
+
required: true,
|
|
246
|
+
"data-testid": "replyTo-field",
|
|
247
|
+
label: t("neetoMolecules.shareViaEmail.replyTo"),
|
|
248
|
+
name: "replyToEmail",
|
|
249
|
+
className: classnames__default["default"]({
|
|
250
|
+
"w-full flex-grow-0": showSendFromField
|
|
251
|
+
})
|
|
252
|
+
}))), children && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
253
|
+
className: "neeto-ui-border-gray-300 mt-4 border-t py-4"
|
|
254
|
+
}, /*#__PURE__*/React__default["default"].createElement("h3", {
|
|
255
|
+
className: "mb-4"
|
|
256
|
+
}, t("neetoMolecules.shareViaEmail.additionalOptions")), children), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
257
|
+
className: "mt-6"
|
|
258
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik$1.ActionBlock, {
|
|
259
|
+
cancelButtonProps: {
|
|
260
|
+
label: t("neetoMolecules.shareViaEmail.reset"),
|
|
261
|
+
type: "reset",
|
|
262
|
+
onClick: handleReset
|
|
263
|
+
},
|
|
264
|
+
submitButtonProps: {
|
|
265
|
+
label: t("neetoMolecules.shareViaEmail.sendEmail")
|
|
266
|
+
}
|
|
267
|
+
})));
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
var ShareViaEmail = function ShareViaEmail(_ref) {
|
|
271
|
+
var _ref$showSendFromFiel = _ref.showSendFromField,
|
|
272
|
+
showSendFromField = _ref$showSendFromFiel === void 0 ? false : _ref$showSendFromFiel,
|
|
273
|
+
backToUrl = _ref.backToUrl,
|
|
274
|
+
handleSubmit = _ref.handleSubmit,
|
|
275
|
+
children = _ref.children,
|
|
276
|
+
description = _ref.description,
|
|
277
|
+
defaultValues = _ref.defaultValues,
|
|
278
|
+
disableReplyTo = _ref.disableReplyTo,
|
|
279
|
+
productName = _ref.productName,
|
|
280
|
+
showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
|
|
281
|
+
_ref$title = _ref.title,
|
|
282
|
+
title = _ref$title === void 0 ? "" : _ref$title;
|
|
283
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
284
|
+
t = _useTranslation.t;
|
|
285
|
+
var shareViaEmailTitle = title || t("neetoMolecules.shareViaEmail.title");
|
|
286
|
+
var sendToEmails = function sendToEmails(notifyEmails) {
|
|
287
|
+
return notifyEmails.map(function (email) {
|
|
288
|
+
return email === null || email === void 0 ? void 0 : email.value;
|
|
289
|
+
});
|
|
290
|
+
};
|
|
291
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
292
|
+
className: "neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-6 md:p-8"
|
|
293
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
294
|
+
className: "mx-auto flex w-full max-w-7xl flex-col"
|
|
295
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
|
|
296
|
+
scrollToErrorField: true,
|
|
297
|
+
formProps: {
|
|
298
|
+
noValidate: true
|
|
299
|
+
},
|
|
300
|
+
formikProps: {
|
|
301
|
+
enableReinitialize: true,
|
|
302
|
+
validateOnMount: true,
|
|
303
|
+
initialValues: generateInitialValues(defaultValues),
|
|
304
|
+
validationSchema: emailFormValidationSchema(disableReplyTo),
|
|
305
|
+
onSubmit: handleSubmit
|
|
306
|
+
}
|
|
307
|
+
}, function (_ref2) {
|
|
308
|
+
var values = _ref2.values;
|
|
309
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
310
|
+
className: "grid grid-cols-1 gap-8 md:grid-cols-12"
|
|
311
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
312
|
+
className: "col-span-1 md:col-span-6 lg:col-span-5"
|
|
313
|
+
}, backToUrl && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
314
|
+
className: "mb-4",
|
|
315
|
+
"data-testid": "back-to-url-button",
|
|
316
|
+
icon: neetoIcons.LeftArrow,
|
|
317
|
+
iconPosition: "left",
|
|
318
|
+
label: t("neetoMolecules.shareViaEmail.backToShare"),
|
|
319
|
+
size: "small",
|
|
320
|
+
style: "link",
|
|
321
|
+
to: backToUrl
|
|
322
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
323
|
+
className: "mb-6"
|
|
324
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
325
|
+
className: "mb-0.5 break-words",
|
|
326
|
+
"data-cy": "share-via-email-heading",
|
|
327
|
+
lineHeight: "normal",
|
|
328
|
+
style: "h2",
|
|
329
|
+
weight: "semibold"
|
|
330
|
+
}, shareViaEmailTitle), description && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
331
|
+
className: "neeto-ui-text-gray-700",
|
|
332
|
+
"data-cy": "share-via-email-sub-heading",
|
|
333
|
+
lineHeight: "normal",
|
|
334
|
+
style: "body2"
|
|
335
|
+
}, description)), /*#__PURE__*/React__default["default"].createElement(Form, {
|
|
336
|
+
disableReplyTo: disableReplyTo,
|
|
337
|
+
showSendFromField: showSendFromField,
|
|
338
|
+
showVideoEmbedInEditor: showVideoEmbedInEditor
|
|
339
|
+
}, children)), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
340
|
+
className: "col-span-1 md:col-span-6 lg:col-span-7"
|
|
341
|
+
}, /*#__PURE__*/React__default["default"].createElement(EmailPreview, {
|
|
342
|
+
productName: productName,
|
|
343
|
+
actionButtonText: values.actionButtonText,
|
|
344
|
+
body: values.emailBody,
|
|
345
|
+
className: "sticky pt-1 md:mt-28",
|
|
346
|
+
subject: values.emailSubject,
|
|
347
|
+
to: sendToEmails(values.notifyEmails)
|
|
348
|
+
})));
|
|
349
|
+
})));
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
module.exports = ShareViaEmail;
|
|
353
|
+
//# sourceMappingURL=ShareViaEmail.js.map
|