@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,275 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _extends = require('@babel/runtime/helpers/extends');
|
|
4
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
5
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var formik = require('formik');
|
|
8
|
+
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
9
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
10
|
+
var formik$1 = require('@bigbinary/neetoui/formik');
|
|
11
|
+
var reactI18next = require('react-i18next');
|
|
12
|
+
var classnames = require('classnames');
|
|
13
|
+
var reactDropzone = require('react-dropzone');
|
|
14
|
+
var withT = require('@bigbinary/neeto-commons-frontend/react-utils/withT');
|
|
15
|
+
var i18next = require('i18next');
|
|
16
|
+
var Papa = require('papaparse');
|
|
17
|
+
var ramda = require('ramda');
|
|
18
|
+
var yup = require('yup');
|
|
19
|
+
|
|
20
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
|
+
|
|
22
|
+
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
23
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
24
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
25
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
26
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
27
|
+
var withT__default = /*#__PURE__*/_interopDefaultLegacy(withT);
|
|
28
|
+
var Papa__default = /*#__PURE__*/_interopDefaultLegacy(Papa);
|
|
29
|
+
|
|
30
|
+
var ALLOWED_FILE_TYPES = [".csv"];
|
|
31
|
+
var CSV_FILE_SIZE_IN_KB = 32;
|
|
32
|
+
var ONE_KILOBYTE_IN_BYTES = 1024;
|
|
33
|
+
var DOWNLOAD_SAMPLE_EMAIL_CSV_FILE = "https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv";
|
|
34
|
+
|
|
35
|
+
var Requirements = withT__default["default"](function (_ref) {
|
|
36
|
+
var t = _ref.t,
|
|
37
|
+
fileSize = _ref.fileSize;
|
|
38
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, {
|
|
39
|
+
className: "flex flex-col items-center py-6",
|
|
40
|
+
style: "info"
|
|
41
|
+
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
42
|
+
className: "list-outside list-disc space-y-1 font-normal leading-normal"
|
|
43
|
+
}, fileSize && /*#__PURE__*/React__default["default"].createElement("li", null, t("neetoMolecules.shareViaLink.requirements.fileTypeAndSize", {
|
|
44
|
+
limit: fileSize
|
|
45
|
+
})), /*#__PURE__*/React__default["default"].createElement("li", null, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
|
|
46
|
+
components: {
|
|
47
|
+
strong: /*#__PURE__*/React__default["default"].createElement("strong", {
|
|
48
|
+
className: "font-semibold"
|
|
49
|
+
})
|
|
50
|
+
},
|
|
51
|
+
i18nKey: "neetoMolecules.shareViaLink.requirements.shouldContainColumns"
|
|
52
|
+
}))), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
53
|
+
href: DOWNLOAD_SAMPLE_EMAIL_CSV_FILE,
|
|
54
|
+
icon: neetoIcons.Download,
|
|
55
|
+
iconPosition: "left",
|
|
56
|
+
label: t("neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV"),
|
|
57
|
+
style: "link"
|
|
58
|
+
}));
|
|
59
|
+
});
|
|
60
|
+
var Requirements$1 = /*#__PURE__*/React__default["default"].memo(Requirements);
|
|
61
|
+
|
|
62
|
+
var BulkUploadPane = function BulkUploadPane(_ref) {
|
|
63
|
+
var _fileRejections$;
|
|
64
|
+
var isOpen = _ref.isOpen,
|
|
65
|
+
fileType = _ref.fileType,
|
|
66
|
+
fileSize = _ref.fileSize,
|
|
67
|
+
onClose = _ref.onClose,
|
|
68
|
+
handleFileSubmit = _ref.handleFileSubmit;
|
|
69
|
+
var _useDropzone = reactDropzone.useDropzone({
|
|
70
|
+
accept: fileType,
|
|
71
|
+
maxFiles: 1,
|
|
72
|
+
maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,
|
|
73
|
+
onDrop: function onDrop(files) {
|
|
74
|
+
return files[0] && handleFileSubmit(files[0]);
|
|
75
|
+
}
|
|
76
|
+
}),
|
|
77
|
+
getRootProps = _useDropzone.getRootProps,
|
|
78
|
+
getInputProps = _useDropzone.getInputProps,
|
|
79
|
+
isDragActive = _useDropzone.isDragActive,
|
|
80
|
+
fileRejections = _useDropzone.fileRejections;
|
|
81
|
+
var errors = (_fileRejections$ = fileRejections[0]) === null || _fileRejections$ === void 0 ? void 0 : _fileRejections$.errors.map(function (_ref2) {
|
|
82
|
+
var message = _ref2.message,
|
|
83
|
+
code = _ref2.code;
|
|
84
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
85
|
+
className: "neeto-ui-text-error-500 items",
|
|
86
|
+
"data-cy": "file-input-error-message",
|
|
87
|
+
key: code,
|
|
88
|
+
style: "body3"
|
|
89
|
+
}, message);
|
|
90
|
+
});
|
|
91
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
92
|
+
t = _useTranslation.t;
|
|
93
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
|
|
94
|
+
isOpen: isOpen,
|
|
95
|
+
onClose: onClose,
|
|
96
|
+
"data-testid": "bulk-upload-pane"
|
|
97
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
98
|
+
tabIndex: 0
|
|
99
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
100
|
+
"data-testid": "bulk-upload-header",
|
|
101
|
+
style: "h2",
|
|
102
|
+
weight: "semibold"
|
|
103
|
+
}, t("neetoMolecules.shareViaLink.bulkUpload"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
104
|
+
className: "w-full space-y-4"
|
|
105
|
+
}, /*#__PURE__*/React__default["default"].createElement(Requirements$1, {
|
|
106
|
+
fileSize: fileSize
|
|
107
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", getRootProps({
|
|
108
|
+
className: classnames__default["default"]("flex flex-col p-2 border neeto-ui-border-primary-500 border-dashed neeto-ui-rounded-md transition duration-500 ease-in-out hover:neeto-ui-bg-gray-100 cursor-pointer items-center", {
|
|
109
|
+
"neeto-ui-border-gray-100": isDragActive,
|
|
110
|
+
"neeto-ui-border-error neeto-ui-bg-pastel-red hover:neeto-ui-bg-pastel-red": fileRejections.length
|
|
111
|
+
})
|
|
112
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
113
|
+
className: "flex flex-col items-center space-y-3 p-4"
|
|
114
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoIcons.Upload, {
|
|
115
|
+
className: "neeto-ui-text-primary-500",
|
|
116
|
+
size: 32
|
|
117
|
+
}), /*#__PURE__*/React__default["default"].createElement("input", _extends__default["default"]({}, getInputProps(), {
|
|
118
|
+
"data-cy": "csv-upload-input",
|
|
119
|
+
"data-testid": "csv-upload-input"
|
|
120
|
+
})), isDragActive ? /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
121
|
+
style: "body2"
|
|
122
|
+
}, t("neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere")) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
123
|
+
className: "flex flex-col items-center space-y-1"
|
|
124
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
125
|
+
className: "flex w-full items-center justify-center gap-x-1"
|
|
126
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
|
|
127
|
+
i18nKey: "neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop",
|
|
128
|
+
components: {
|
|
129
|
+
Button: /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
130
|
+
style: "link"
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
})), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
134
|
+
className: "neeto-ui-text-gray-700",
|
|
135
|
+
style: "body3"
|
|
136
|
+
}, fileType && /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
|
|
137
|
+
i18nKey: "neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat",
|
|
138
|
+
values: {
|
|
139
|
+
fileType: fileType
|
|
140
|
+
},
|
|
141
|
+
components: {
|
|
142
|
+
code: /*#__PURE__*/React__default["default"].createElement("code", {
|
|
143
|
+
className: "neeto-ui-typography neeto-ui-text-body3 neeto-ui-bg-white m-0 border-l-0 p-0"
|
|
144
|
+
})
|
|
145
|
+
}
|
|
146
|
+
}), " ", fileSize && t("neetoMolecules.shareViaLink.bulkUploadPane.supportedSize", {
|
|
147
|
+
fileSize: fileSize
|
|
148
|
+
})))), errors))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
|
|
149
|
+
className: "flex items-center space-x-2"
|
|
150
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
151
|
+
"data-cy": "bulk-upload-cancel-button",
|
|
152
|
+
"data-testid": "bulk-upload-cancel-button",
|
|
153
|
+
label: t("neetoMolecules.common.actions.cancel"),
|
|
154
|
+
style: "text",
|
|
155
|
+
type: "reset",
|
|
156
|
+
onClick: onClose
|
|
157
|
+
}))));
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
var isValidEmail = function isValidEmail(email) {
|
|
161
|
+
return yup.string().email().isValidSync(email);
|
|
162
|
+
};
|
|
163
|
+
var createEmailOptions = function createEmailOptions() {
|
|
164
|
+
var emails = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
165
|
+
return emails.map(function (email) {
|
|
166
|
+
return {
|
|
167
|
+
label: email,
|
|
168
|
+
value: email,
|
|
169
|
+
valid: isValidEmail(email)
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
var parseCsvEmails = function parseCsvEmails(file, onSuccess) {
|
|
174
|
+
Papa__default["default"].parse(file, {
|
|
175
|
+
header: true,
|
|
176
|
+
skipEmptyLines: true,
|
|
177
|
+
transformHeader: function transformHeader(h) {
|
|
178
|
+
return h.toLowerCase().replace(/\W/g, "");
|
|
179
|
+
},
|
|
180
|
+
complete: function complete(results) {
|
|
181
|
+
var _results$meta$fields;
|
|
182
|
+
var isEmailFieldPresent = (_results$meta$fields = results.meta.fields) === null || _results$meta$fields === void 0 ? void 0 : _results$meta$fields.includes("email");
|
|
183
|
+
if (isEmailFieldPresent) {
|
|
184
|
+
var emails = results.data.filter(ramda.prop("email")).map(function (item) {
|
|
185
|
+
return item.email.trim();
|
|
186
|
+
});
|
|
187
|
+
onSuccess(createEmailOptions(emails));
|
|
188
|
+
} else {
|
|
189
|
+
neetoui.Toastr.error(i18next.t("neetoMolecules.sendToFields.errors.invalidCsv"));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
var SendToFields = function SendToFields(_ref) {
|
|
196
|
+
var emailInputProps = _ref.emailInputProps,
|
|
197
|
+
ccInputProps = _ref.ccInputProps,
|
|
198
|
+
bccInputProps = _ref.bccInputProps,
|
|
199
|
+
_ref$showUploadCsvBut = _ref.showUploadCsvButton,
|
|
200
|
+
showUploadCsvButton = _ref$showUploadCsvBut === void 0 ? false : _ref$showUploadCsvBut,
|
|
201
|
+
_ref$showCcBccButton = _ref.showCcBccButton,
|
|
202
|
+
showCcBccButton = _ref$showCcBccButton === void 0 ? false : _ref$showCcBccButton;
|
|
203
|
+
var _useState = React.useState(false),
|
|
204
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
205
|
+
isBulkUploadPaneOpen = _useState2[0],
|
|
206
|
+
setIsBulkUploadPaneOpen = _useState2[1];
|
|
207
|
+
var sendToFieldRef = React.useRef();
|
|
208
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
209
|
+
_useFormikContext$val = _useFormikContext.values,
|
|
210
|
+
showCopyEmails = _useFormikContext$val.showCopyEmails,
|
|
211
|
+
existingSendToEmails = _useFormikContext$val[emailInputProps.name || "sendTo"],
|
|
212
|
+
setFieldValue = _useFormikContext.setFieldValue;
|
|
213
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
214
|
+
t = _useTranslation.t;
|
|
215
|
+
var handleCSVFile = function handleCSVFile(file) {
|
|
216
|
+
try {
|
|
217
|
+
var _sendToFieldRef$curre;
|
|
218
|
+
var onSuccess = function onSuccess(values) {
|
|
219
|
+
return setFieldValue(emailInputProps.name || "sendTo", [].concat(_toConsumableArray__default["default"](existingSendToEmails), _toConsumableArray__default["default"](values)));
|
|
220
|
+
};
|
|
221
|
+
parseCsvEmails(file, onSuccess);
|
|
222
|
+
setIsBulkUploadPaneOpen(false);
|
|
223
|
+
(_sendToFieldRef$curre = sendToFieldRef.current) === null || _sendToFieldRef$curre === void 0 ? void 0 : _sendToFieldRef$curre.focus();
|
|
224
|
+
} catch (error) {
|
|
225
|
+
neetoui.Toastr.error(error);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
var handelCcBccButtonClick = function handelCcBccButtonClick(e) {
|
|
229
|
+
e.stopPropagation();
|
|
230
|
+
setFieldValue("showCopyEmails", !showCopyEmails);
|
|
231
|
+
};
|
|
232
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
233
|
+
className: "relative w-full flex-col gap-2",
|
|
234
|
+
"data-testid": "send-to-text-field"
|
|
235
|
+
}, showUploadCsvButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
236
|
+
className: "absolute right-1 top-0",
|
|
237
|
+
"data-testid": "bulk-upload-button",
|
|
238
|
+
icon: neetoIcons.Upload,
|
|
239
|
+
label: t("neetoMolecules.shareViaLink.bulkUpload"),
|
|
240
|
+
size: "small",
|
|
241
|
+
style: "link",
|
|
242
|
+
onClick: function onClick() {
|
|
243
|
+
return setIsBulkUploadPaneOpen(true);
|
|
244
|
+
}
|
|
245
|
+
}), /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends__default["default"]({
|
|
246
|
+
name: "sendTo",
|
|
247
|
+
ref: sendToFieldRef
|
|
248
|
+
}, emailInputProps, {
|
|
249
|
+
suffix: showCcBccButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
250
|
+
"data-cy": "cc-bcc-button",
|
|
251
|
+
"data-testid": "cc-bcc-button",
|
|
252
|
+
label: t("neetoMolecules.emailForm.labels.ccBcc"),
|
|
253
|
+
size: "small",
|
|
254
|
+
style: "link",
|
|
255
|
+
onClick: handelCcBccButtonClick
|
|
256
|
+
})
|
|
257
|
+
})), showCopyEmails && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
258
|
+
className: "mt-5 flex w-full flex-col gap-6"
|
|
259
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends__default["default"]({
|
|
260
|
+
name: "sendToBcc"
|
|
261
|
+
}, ccInputProps)), /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends__default["default"]({
|
|
262
|
+
name: "sendToCc"
|
|
263
|
+
}, bccInputProps))), /*#__PURE__*/React__default["default"].createElement(BulkUploadPane, {
|
|
264
|
+
fileSize: CSV_FILE_SIZE_IN_KB,
|
|
265
|
+
fileType: ALLOWED_FILE_TYPES,
|
|
266
|
+
handleFileSubmit: handleCSVFile,
|
|
267
|
+
isOpen: isBulkUploadPaneOpen,
|
|
268
|
+
onClose: function onClose() {
|
|
269
|
+
return setIsBulkUploadPaneOpen(false);
|
|
270
|
+
}
|
|
271
|
+
}));
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
module.exports = SendToFields;
|
|
275
|
+
//# sourceMappingURL=SendToFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendToFields.js","sources":["../../src/components/SendToFields/constants.js","../../src/components/SendToFields/Requirements.jsx","../../src/components/SendToFields/BulkUploadPane.jsx","../../src/components/SendToFields/utils.js","../../src/components/SendToFields/index.jsx"],"sourcesContent":["export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const ALLOWED_FILE_TYPES = [\".csv\"];\nexport const CSV_FILE_SIZE_IN_KB = 32;\nexport const ONE_KILOBYTE_IN_BYTES = 1024;\nexport const DOWNLOAD_SAMPLE_EMAIL_CSV_FILE =\n \"https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv\";\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Download } from \"neetoicons\";\nimport { Button, Callout } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport { DOWNLOAD_SAMPLE_EMAIL_CSV_FILE } from \"./constants\";\n\nconst Requirements = withT(({ t, fileSize }) => (\n <Callout className=\"flex flex-col items-center py-6\" style=\"info\">\n <ul className=\"list-outside list-disc space-y-1 font-normal leading-normal\">\n {fileSize && (\n <li>\n {t(\"neetoMolecules.shareViaLink.requirements.fileTypeAndSize\", {\n limit: fileSize,\n })}\n </li>\n )}\n <li>\n <Trans\n components={{ strong: <strong className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.shareViaLink.requirements.shouldContainColumns\"\n />\n </li>\n </ul>\n <Button\n href={DOWNLOAD_SAMPLE_EMAIL_CSV_FILE}\n icon={Download}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV\")}\n style=\"link\"\n />\n </Callout>\n));\n\nexport default React.memo(Requirements);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Typography, Pane } from \"neetoui\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ONE_KILOBYTE_IN_BYTES } from \"./constants\";\nimport Requirements from \"./Requirements\";\n\nconst BulkUploadPane = ({\n isOpen,\n fileType,\n fileSize,\n onClose,\n handleFileSubmit,\n}) => {\n const { getRootProps, getInputProps, isDragActive, fileRejections } =\n useDropzone({\n accept: fileType,\n maxFiles: 1,\n maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,\n onDrop: files => files[0] && handleFileSubmit(files[0]),\n });\n\n const errors = fileRejections[0]?.errors.map(({ message, code }) => (\n <Typography\n className=\"neeto-ui-text-error-500 items\"\n data-cy=\"file-input-error-message\"\n key={code}\n style=\"body3\"\n >\n {message}\n </Typography>\n ));\n\n const { t } = useTranslation();\n\n return (\n <Pane {...{ isOpen, onClose }} data-testid=\"bulk-upload-pane\">\n <div tabIndex={0}>\n <Pane.Header>\n <Typography\n data-testid=\"bulk-upload-header\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"w-full space-y-4\">\n <Requirements {...{ fileSize }} />\n <div\n {...getRootProps({\n className: classNames(\n \"flex flex-col p-2 border neeto-ui-border-primary-500 border-dashed neeto-ui-rounded-md transition duration-500 ease-in-out hover:neeto-ui-bg-gray-100 cursor-pointer items-center\",\n {\n \"neeto-ui-border-gray-100\": isDragActive,\n \"neeto-ui-border-error neeto-ui-bg-pastel-red hover:neeto-ui-bg-pastel-red\":\n fileRejections.length,\n }\n ),\n })}\n >\n <div className=\"flex flex-col items-center space-y-3 p-4\">\n <Upload className=\"neeto-ui-text-primary-500\" size={32} />\n <input\n {...getInputProps()}\n data-cy=\"csv-upload-input\"\n data-testid=\"csv-upload-input\"\n />\n {isDragActive ? (\n <Typography style=\"body2\">\n {t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere\"\n )}\n </Typography>\n ) : (\n <div className=\"flex flex-col items-center space-y-1\">\n <div className=\"flex w-full items-center justify-center gap-x-1\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop\"\n components={{\n Button: <Button style=\"link\" />,\n }}\n />\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"body3\"\n >\n {fileType && (\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat\"\n values={{ fileType }}\n components={{\n code: (\n <code className=\"neeto-ui-typography neeto-ui-text-body3 neeto-ui-bg-white m-0 border-l-0 p-0\" />\n ),\n }}\n />\n )}{\" \"}\n {fileSize &&\n t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.supportedSize\",\n { fileSize }\n )}\n </Typography>\n </div>\n )}\n </div>\n {errors}\n </div>\n </div>\n </Pane.Body>\n <Pane.Footer className=\"flex items-center space-x-2\">\n <Button\n data-cy=\"bulk-upload-cancel-button\"\n data-testid=\"bulk-upload-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n style=\"text\"\n type=\"reset\"\n onClick={onClose}\n />\n </Pane.Footer>\n </div>\n </Pane>\n );\n};\n\nexport default BulkUploadPane;\n","import { t } from \"i18next\";\nimport { Toastr } from \"neetoui\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import React, { useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Toastr } from \"neetoui\";\nimport { MultiEmailInput } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkUploadPane from \"./BulkUploadPane\";\nimport { ALLOWED_FILE_TYPES, CSV_FILE_SIZE_IN_KB, SIZES } from \"./constants\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n}) => {\n const [isBulkUploadPaneOpen, setIsBulkUploadPaneOpen] = useState(false);\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = file => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n parseCsvEmails(file, onSuccess);\n setIsBulkUploadPaneOpen(false);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div\n className=\"relative w-full flex-col gap-2\"\n data-testid=\"send-to-text-field\"\n >\n {showUploadCsvButton && (\n <Button\n className=\"absolute right-1 top-0\"\n data-testid=\"bulk-upload-button\"\n icon={Upload}\n label={t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n size=\"small\"\n style=\"link\"\n onClick={() => setIsBulkUploadPaneOpen(true)}\n />\n )}\n <MultiEmailInput\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n data-cy=\"cc-bcc-button\"\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"small\"\n style=\"link\"\n onClick={handelCcBccButtonClick}\n />\n )\n }\n />\n {showCopyEmails && (\n <div className=\"mt-5 flex w-full flex-col gap-6\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n <BulkUploadPane\n fileSize={CSV_FILE_SIZE_IN_KB}\n fileType={ALLOWED_FILE_TYPES}\n handleFileSubmit={handleCSVFile}\n isOpen={isBulkUploadPaneOpen}\n onClose={() => setIsBulkUploadPaneOpen(false)}\n />\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n required: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["ALLOWED_FILE_TYPES","CSV_FILE_SIZE_IN_KB","ONE_KILOBYTE_IN_BYTES","DOWNLOAD_SAMPLE_EMAIL_CSV_FILE","Requirements","withT","_ref","t","fileSize","React","createElement","Callout","className","style","limit","Trans","components","strong","i18nKey","Button","href","icon","Download","iconPosition","label","memo","BulkUploadPane","_fileRejections$","isOpen","fileType","onClose","handleFileSubmit","_useDropzone","useDropzone","accept","maxFiles","maxSize","onDrop","files","getRootProps","getInputProps","isDragActive","fileRejections","errors","map","_ref2","message","code","Typography","key","_useTranslation","useTranslation","Pane","tabIndex","Header","weight","Body","classNames","length","Upload","size","_extends","values","Footer","type","onClick","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","undefined","value","valid","parseCsvEmails","file","onSuccess","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","_useState","useState","_useState2","_slicedToArray","isBulkUploadPaneOpen","setIsBulkUploadPaneOpen","sendToFieldRef","useRef","_useFormikContext","useFormikContext","_useFormikContext$val","showCopyEmails","existingSendToEmails","name","setFieldValue","handleCSVFile","_sendToFieldRef$curre","concat","_toConsumableArray","current","focus","handelCcBccButtonClick","e","stopPropagation","MultiEmailInput","ref","suffix"],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var classnames = require('classnames');
|
|
5
|
+
var useQueryParams = require('@bigbinary/neeto-commons-frontend/react-utils/useQueryParams');
|
|
6
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
7
|
+
var ramda = require('ramda');
|
|
8
|
+
var reactI18next = require('react-i18next');
|
|
9
|
+
var Header = require('./Header.js');
|
|
10
|
+
var _extends = require('@babel/runtime/helpers/extends');
|
|
11
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
12
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
13
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
14
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
15
|
+
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
16
|
+
var general = require('@bigbinary/neeto-commons-frontend/utils/general');
|
|
17
|
+
var reactRouterDom = require('react-router-dom');
|
|
18
|
+
require('./Breadcrumbs.js');
|
|
19
|
+
require('./inject-css-80a5faa3.js');
|
|
20
|
+
require('./MoreDropdown.js');
|
|
21
|
+
require('./Search.js');
|
|
22
|
+
require('@babel/runtime/helpers/slicedToArray');
|
|
23
|
+
require('@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce');
|
|
24
|
+
require('@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect');
|
|
25
|
+
require('@bigbinary/neeto-commons-frontend/utils');
|
|
26
|
+
|
|
27
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
28
|
+
|
|
29
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
30
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
31
|
+
var useQueryParams__default = /*#__PURE__*/_interopDefaultLegacy(useQueryParams);
|
|
32
|
+
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
33
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
34
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
35
|
+
|
|
36
|
+
var UNSUPPORTED_LINK_PROPS = ["staticContext", "tReady"];
|
|
37
|
+
|
|
38
|
+
var _excluded$1 = ["label", "description", "icon", "path", "dataCy", "className", "children"];
|
|
39
|
+
var Item = function Item(_ref) {
|
|
40
|
+
var label = _ref.label,
|
|
41
|
+
description = _ref.description,
|
|
42
|
+
_ref$icon = _ref.icon,
|
|
43
|
+
Icon = _ref$icon === void 0 ? null : _ref$icon,
|
|
44
|
+
path = _ref.path,
|
|
45
|
+
dataCy = _ref.dataCy,
|
|
46
|
+
_ref$className = _ref.className,
|
|
47
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
48
|
+
children = _ref.children,
|
|
49
|
+
otherProps = _objectWithoutProperties__default["default"](_ref, _excluded$1);
|
|
50
|
+
return /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, _extends__default["default"]({
|
|
51
|
+
"data-cy": dataCy,
|
|
52
|
+
to: path,
|
|
53
|
+
className: classnames__default["default"]("neeto-ui-rounded-lg delay-220 neeto-ui-shadow-sm translate flex cursor-pointer flex-col space-y-4 border p-6 no-underline outline-none transition-transform duration-300 ease-in-out hover:-translate-y-1", className)
|
|
54
|
+
}, ramda.omit(UNSUPPORTED_LINK_PROPS, otherProps)), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
55
|
+
"data-testid": "settings-item-".concat(general.joinHyphenCase(label))
|
|
56
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
57
|
+
className: "mb-2 flex items-center gap-4"
|
|
58
|
+
}, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
|
|
59
|
+
className: "neeto-ui-text-gray-600",
|
|
60
|
+
size: 32
|
|
61
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
62
|
+
"data-cy": "settings-item-heading",
|
|
63
|
+
style: "h4",
|
|
64
|
+
weight: "semibold"
|
|
65
|
+
}, label)), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
66
|
+
"data-cy": "settings-item-description",
|
|
67
|
+
style: "body2"
|
|
68
|
+
}, description)), children && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
69
|
+
className: "neeto-ui-border-gray-300 border-t pt-3"
|
|
70
|
+
}, children));
|
|
71
|
+
};
|
|
72
|
+
var Item$1 = /*#__PURE__*/React.memo(reactRouterDom.withRouter(Item));
|
|
73
|
+
|
|
74
|
+
var _excluded = ["t", "isConnected", "icon", "description", "label", "path"];
|
|
75
|
+
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; }
|
|
76
|
+
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; }
|
|
77
|
+
var IntegrationItem = reactUtils.withT(function (_ref) {
|
|
78
|
+
var t = _ref.t,
|
|
79
|
+
isConnected = _ref.isConnected,
|
|
80
|
+
icon = _ref.icon,
|
|
81
|
+
description = _ref.description,
|
|
82
|
+
label = _ref.label,
|
|
83
|
+
path = _ref.path,
|
|
84
|
+
otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
85
|
+
return /*#__PURE__*/React__default["default"].createElement(Item$1, _extends__default["default"]({}, _objectSpread$1({
|
|
86
|
+
description: description,
|
|
87
|
+
icon: icon,
|
|
88
|
+
label: label,
|
|
89
|
+
path: path
|
|
90
|
+
}, otherProps), {
|
|
91
|
+
dataCy: "".concat(neetoCist.hyphenate(label).replace(/\./g, "-"), "-integration-card")
|
|
92
|
+
}), isConnected && /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, {
|
|
93
|
+
className: "flex-row-reverse",
|
|
94
|
+
"data-cy": "integration-status-tag",
|
|
95
|
+
icon: neetoIcons.Check,
|
|
96
|
+
label: t("neetoMolecules.integrationCard.connected"),
|
|
97
|
+
style: "success"
|
|
98
|
+
}));
|
|
99
|
+
});
|
|
100
|
+
var IntegrationItem$1 = /*#__PURE__*/React__default["default"].memo(IntegrationItem);
|
|
101
|
+
|
|
102
|
+
var Category = function Category(_ref) {
|
|
103
|
+
var items = _ref.items,
|
|
104
|
+
label = _ref.label,
|
|
105
|
+
id = _ref.id,
|
|
106
|
+
isIntegration = _ref.isIntegration;
|
|
107
|
+
var SettingsCard = isIntegration ? IntegrationItem$1 : Item$1;
|
|
108
|
+
var isLabelPresent = neetoCist.isPresent(label);
|
|
109
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
110
|
+
id: id,
|
|
111
|
+
className: classnames__default["default"]("flex flex-col", {
|
|
112
|
+
"mb-7": isLabelPresent
|
|
113
|
+
})
|
|
114
|
+
}, isLabelPresent && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
115
|
+
className: "mb-6 mt-2",
|
|
116
|
+
component: "h2",
|
|
117
|
+
"data-cy": "settings-category-heading",
|
|
118
|
+
style: "h2",
|
|
119
|
+
weight: "semibold"
|
|
120
|
+
}, label), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
121
|
+
className: "grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4"
|
|
122
|
+
}, items.map(function (item) {
|
|
123
|
+
return /*#__PURE__*/React__default["default"].createElement(SettingsCard, _extends__default["default"]({
|
|
124
|
+
key: item.label
|
|
125
|
+
}, item));
|
|
126
|
+
})));
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
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; }
|
|
130
|
+
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; }
|
|
131
|
+
var isTextMatching = function isTextMatching(label, searchTerm) {
|
|
132
|
+
return label.toLowerCase().includes(searchTerm.trim().toLowerCase());
|
|
133
|
+
};
|
|
134
|
+
var scrollIntoSettingCategory = function scrollIntoSettingCategory(activeCategory) {
|
|
135
|
+
var _document$getElementB;
|
|
136
|
+
(_document$getElementB = document.getElementById(activeCategory)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView({
|
|
137
|
+
behavior: "smooth"
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
var filterCategories = function filterCategories(_ref) {
|
|
141
|
+
var _ref$categories = _ref.categories,
|
|
142
|
+
categories = _ref$categories === void 0 ? [] : _ref$categories,
|
|
143
|
+
_ref$searchTerm = _ref.searchTerm,
|
|
144
|
+
searchTerm = _ref$searchTerm === void 0 ? "" : _ref$searchTerm;
|
|
145
|
+
var isSearchTermBlank = !searchTerm.trim();
|
|
146
|
+
var filteredCategories = isSearchTermBlank ? categories : categories.map(function (category) {
|
|
147
|
+
return _objectSpread(_objectSpread({}, category), {}, {
|
|
148
|
+
items: neetoCist.filterBy(function (_ref2) {
|
|
149
|
+
var label = _ref2.label,
|
|
150
|
+
description = _ref2.description;
|
|
151
|
+
return isTextMatching(label, searchTerm) || isTextMatching(description, searchTerm);
|
|
152
|
+
}, category.items)
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
return neetoCist.filterBy({
|
|
156
|
+
items: neetoCist.isNotEmpty
|
|
157
|
+
}, filteredCategories);
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
var Settings = function Settings(_ref) {
|
|
161
|
+
var _ref$isTitleHidden = _ref.isTitleHidden,
|
|
162
|
+
isTitleHidden = _ref$isTitleHidden === void 0 ? false : _ref$isTitleHidden,
|
|
163
|
+
_ref$isSearchHidden = _ref.isSearchHidden,
|
|
164
|
+
isSearchHidden = _ref$isSearchHidden === void 0 ? false : _ref$isSearchHidden,
|
|
165
|
+
_ref$categories = _ref.categories,
|
|
166
|
+
categories = _ref$categories === void 0 ? [] : _ref$categories;
|
|
167
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
168
|
+
t = _useTranslation.t;
|
|
169
|
+
var _useQueryParams = useQueryParams__default["default"](),
|
|
170
|
+
categoryParam = _useQueryParams.category,
|
|
171
|
+
_useQueryParams$searc = _useQueryParams.searchTerm,
|
|
172
|
+
searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
|
|
173
|
+
var filteredCategories = filterCategories({
|
|
174
|
+
categories: categories,
|
|
175
|
+
searchTerm: searchTerm
|
|
176
|
+
});
|
|
177
|
+
var isHeaderVisible = !isSearchHidden || !isTitleHidden;
|
|
178
|
+
React.useEffect(function () {
|
|
179
|
+
scrollIntoSettingCategory(categoryParam);
|
|
180
|
+
}, [categoryParam]);
|
|
181
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
182
|
+
className: classnames__default["default"]("neeto-molecules-container", {
|
|
183
|
+
"h-auto overflow-y-auto": isTitleHidden
|
|
184
|
+
})
|
|
185
|
+
}, isHeaderVisible && /*#__PURE__*/React__default["default"].createElement(Header, {
|
|
186
|
+
className: classnames__default["default"]({
|
|
187
|
+
"min-h-0 pb-4 pt-8": isTitleHidden
|
|
188
|
+
}),
|
|
189
|
+
title: !isTitleHidden && t("neetoMolecules.settingsPage.title"),
|
|
190
|
+
searchProps: isSearchHidden ? null : {
|
|
191
|
+
className: "w-72",
|
|
192
|
+
placeholder: t("neetoMolecules.settingsPage.placeholder.search")
|
|
193
|
+
}
|
|
194
|
+
}), ramda.isEmpty(filteredCategories) ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
195
|
+
className: "flex h-full w-full flex-grow items-center justify-center",
|
|
196
|
+
"data-testid": "settings-no-data"
|
|
197
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, {
|
|
198
|
+
title: t("neetoMolecules.settingsPage.noData")
|
|
199
|
+
})) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
200
|
+
className: "w-full"
|
|
201
|
+
}, filteredCategories.map(function (_ref2) {
|
|
202
|
+
var id = _ref2.id,
|
|
203
|
+
label = _ref2.label,
|
|
204
|
+
items = _ref2.items,
|
|
205
|
+
isIntegration = _ref2.isIntegration;
|
|
206
|
+
return /*#__PURE__*/React__default["default"].createElement(Category, {
|
|
207
|
+
id: id,
|
|
208
|
+
isIntegration: isIntegration,
|
|
209
|
+
items: items,
|
|
210
|
+
label: label,
|
|
211
|
+
key: id
|
|
212
|
+
});
|
|
213
|
+
})));
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
module.exports = Settings;
|
|
217
|
+
//# sourceMappingURL=Settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Settings.js","sources":["../../src/components/Settings/constants.js","../../src/components/Settings/Item.jsx","../../src/components/Settings/IntegrationItem.jsx","../../src/components/Settings/Category.jsx","../../src/components/Settings/utils.js","../../src/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\", \"tReady\"];\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n children,\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"neeto-ui-rounded-lg delay-220 neeto-ui-shadow-sm translate flex cursor-pointer flex-col space-y-4 border p-6 no-underline outline-none transition-transform duration-300 ease-in-out hover:-translate-y-1\",\n className\n )}\n {...omit(UNSUPPORTED_LINK_PROPS, otherProps)}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n <div className=\"mb-2 flex items-center gap-4\">\n {Icon && <Icon className=\"neeto-ui-text-gray-600\" size={32} />}\n <Typography\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n </div>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 border-t pt-3\">{children}</div>\n )}\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Check } from \"neetoicons\";\nimport { Tag } from \"neetoui\";\n\nimport Item from \"./Item\";\n\nconst IntegrationItem = withT(\n ({ t, isConnected, icon, description, label, path, ...otherProps }) => (\n <Item\n {...{ description, icon, label, path, ...otherProps }}\n dataCy={`${hyphenate(label).replace(/\\./g, \"-\")}-integration-card`}\n >\n {isConnected && (\n <Tag\n className=\"flex-row-reverse\"\n data-cy=\"integration-status-tag\"\n icon={Check}\n label={t(\"neetoMolecules.integrationCard.connected\")}\n style=\"success\"\n />\n )}\n </Item>\n )\n);\n\nexport default React.memo(IntegrationItem);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport IntegrationItem from \"./IntegrationItem\";\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationItem : Item;\n\n const isLabelPresent = isPresent(label);\n\n return (\n <div\n {...{ id }}\n className={classNames(\"flex flex-col\", { \"mb-7\": isLabelPresent })}\n >\n {isLabelPresent && (\n <Typography\n className=\"mb-6 mt-2\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n )}\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import React, { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Header from \"components/Header\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({\n isTitleHidden = false,\n isSearchHidden = false,\n categories = [],\n}) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n const isHeaderVisible = !isSearchHidden || !isTitleHidden;\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classNames(\"neeto-molecules-container\", {\n \"h-auto overflow-y-auto\": isTitleHidden,\n })}\n >\n {isHeaderVisible && (\n <Header\n className={classNames({ \"min-h-0 pb-4 pt-8\": isTitleHidden })}\n title={!isTitleHidden && t(\"neetoMolecules.settingsPage.title\")}\n searchProps={\n isSearchHidden\n ? null\n : {\n className: \"w-72\",\n placeholder: t(\n \"neetoMolecules.settingsPage.placeholder.search\"\n ),\n }\n }\n />\n )}\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n <div className=\"w-full\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: propTypes.bool,\n /**\n * Whether to hide the search bar or not.\n */\n isSearchHidden: propTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","Item","_ref","label","description","_ref$icon","icon","Icon","path","dataCy","_ref$className","className","children","otherProps","_objectWithoutProperties","_excluded","React","createElement","Link","_extends","to","classnames","omit","concat","joinHyphenCase","size","Typography","style","weight","memo","withRouter","IntegrationItem","withT","t","isConnected","_objectSpread","hyphenate","replace","Tag","Check","Category","items","id","isIntegration","SettingsCard","isLabelPresent","isPresent","classNames","component","map","item","key","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_ref$isSearchHidden","isSearchHidden","_useTranslation","useTranslation","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","isHeaderVisible","useEffect","Header","title","searchProps","placeholder","isEmpty","NoData"],"mappings":"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"}
|