@bigbinary/neeto-molecules 3.15.43 → 3.15.45
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/dist/AuditLogs.js +539 -0
- package/dist/AuditLogs.js.map +1 -0
- package/dist/BoardView.js +394 -0
- package/dist/BoardView.js.map +1 -0
- package/dist/Breadcrumbs.js +46 -0
- package/dist/Breadcrumbs.js.map +1 -0
- package/dist/BrowserPreview.js +50 -0
- package/dist/BrowserPreview.js.map +1 -0
- package/dist/BrowserSupport.js +348 -0
- package/dist/BrowserSupport.js.map +1 -0
- package/dist/Builder.js +786 -0
- package/dist/Builder.js.map +1 -0
- package/dist/ButtonGroup.js +36 -0
- package/dist/ButtonGroup.js.map +1 -0
- package/dist/CalendarView.js +356 -0
- package/dist/CalendarView.js.map +1 -0
- package/dist/CardLayout.js +49 -0
- package/dist/CardLayout.js.map +1 -0
- package/dist/Chevron-DfSoxXBs.js +246 -0
- package/dist/Chevron-DfSoxXBs.js.map +1 -0
- package/dist/Codeblock.js +58 -0
- package/dist/Codeblock.js.map +1 -0
- package/dist/Columns.js +21 -0
- package/dist/Columns.js.map +1 -0
- package/dist/ConfigurePageSidebar.js +97 -0
- package/dist/ConfigurePageSidebar.js.map +1 -0
- package/dist/ConfirmationModal.js +110 -0
- package/dist/ConfirmationModal.js.map +1 -0
- package/dist/Container.js +38 -0
- package/dist/Container.js.map +1 -0
- package/dist/CopyToClipboardButton.js +82 -0
- package/dist/CopyToClipboardButton.js.map +1 -0
- package/dist/Currency.js +917 -0
- package/dist/Currency.js.map +1 -0
- package/dist/DateFormat.js +45 -0
- package/dist/DateFormat.js.map +1 -0
- package/dist/DateRangeFilter.js +178 -0
- package/dist/DateRangeFilter.js.map +1 -0
- package/dist/DeleteArchiveModal.js +98 -0
- package/dist/DeleteArchiveModal.js.map +1 -0
- package/dist/DeviceIncompatibilityMessage.js +95 -0
- package/dist/DeviceIncompatibilityMessage.js.map +1 -0
- package/dist/DocumentEditor.js +183 -0
- package/dist/DocumentEditor.js.map +1 -0
- package/dist/DownloadMobileAppCallout.js +40 -0
- package/dist/DownloadMobileAppCallout.js.map +1 -0
- package/dist/DynamicVariables.js +115 -0
- package/dist/DynamicVariables.js.map +1 -0
- package/dist/EmailForm.js +567 -0
- package/dist/EmailForm.js.map +1 -0
- package/dist/EmailPreview.js +140 -0
- package/dist/EmailPreview.js.map +1 -0
- package/dist/EmojiPicker.js +112 -0
- package/dist/EmojiPicker.js.map +1 -0
- package/dist/EmojiReactions.js +82 -0
- package/dist/EmojiReactions.js.map +1 -0
- package/dist/Engagements.js +292 -0
- package/dist/Engagements.js.map +1 -0
- package/dist/ErrorPage.js +1811 -0
- package/dist/ErrorPage.js.map +1 -0
- package/dist/FileUpload.js +595 -0
- package/dist/FileUpload.js.map +1 -0
- package/dist/FinderModal.js +280 -0
- package/dist/FinderModal.js.map +1 -0
- package/dist/FloatingActionMenu.js +854 -0
- package/dist/FloatingActionMenu.js.map +1 -0
- package/dist/GoogleFontPicker.js +581 -0
- package/dist/GoogleFontPicker.js.map +1 -0
- package/dist/Header.js +126 -0
- package/dist/Header.js.map +1 -0
- package/dist/HelpPopover.js +83 -0
- package/dist/HelpPopover.js.map +1 -0
- package/dist/IconPicker.js +1159 -0
- package/dist/IconPicker.js.map +1 -0
- package/dist/ImageWithFallback.js +49 -0
- package/dist/ImageWithFallback.js.map +1 -0
- package/dist/InlineInput.js +230 -0
- package/dist/InlineInput.js.map +1 -0
- package/dist/Insights.js +358 -0
- package/dist/Insights.js.map +1 -0
- package/dist/IntegrationCard.js +227 -0
- package/dist/IntegrationCard.js.map +1 -0
- package/dist/IpRestriction.js +3617 -0
- package/dist/IpRestriction.js.map +1 -0
- package/dist/KeyboardShortcuts.js +284 -0
- package/dist/KeyboardShortcuts.js.map +1 -0
- package/dist/LoginPage.js +184 -0
- package/dist/LoginPage.js.map +1 -0
- package/dist/MadeWith.js +41 -0
- package/dist/MadeWith.js.map +1 -0
- package/dist/MenuBar.js +1326 -0
- package/dist/MenuBar.js.map +1 -0
- package/dist/Metadata.js +218 -0
- package/dist/Metadata.js.map +1 -0
- package/dist/MobilePreviewHeader.js +25 -0
- package/dist/MobilePreviewHeader.js.map +1 -0
- package/dist/MoreDropdown.js +163 -0
- package/dist/MoreDropdown.js.map +1 -0
- package/dist/NavigationHeader.js +264 -0
- package/dist/NavigationHeader.js.map +1 -0
- package/dist/NeetoWidget.js +2867 -0
- package/dist/NeetoWidget.js.map +1 -0
- package/dist/Onboarding.js +246 -0
- package/dist/Onboarding.js.map +1 -0
- package/dist/OptionFields.js +717 -0
- package/dist/OptionFields.js.map +1 -0
- package/dist/PageLoader.js +40 -0
- package/dist/PageLoader.js.map +1 -0
- package/dist/PhoneNumber.js +75 -0
- package/dist/PhoneNumber.js.map +1 -0
- package/dist/ProductEmbed.js +884 -0
- package/dist/ProductEmbed.js.map +1 -0
- package/dist/PublishBlock.js +447 -0
- package/dist/PublishBlock.js.map +1 -0
- package/dist/PublishYourItem.js +58 -0
- package/dist/PublishYourItem.js.map +1 -0
- package/dist/Rename.js +366 -0
- package/dist/Rename.js.map +1 -0
- package/dist/ResponsiveDevicePicker.js +63 -0
- package/dist/ResponsiveDevicePicker.js.map +1 -0
- package/dist/Schedule.js +926 -0
- package/dist/Schedule.js.map +1 -0
- package/dist/Scrollable.js +42 -0
- package/dist/Scrollable.js.map +1 -0
- package/dist/Search.js +110 -0
- package/dist/Search.js.map +1 -0
- package/dist/SendToFields.js +2221 -0
- package/dist/SendToFields.js.map +1 -0
- package/dist/SessionEnvironment.js +431 -0
- package/dist/SessionEnvironment.js.map +1 -0
- package/dist/Settings.js +250 -0
- package/dist/Settings.js.map +1 -0
- package/dist/ShareRecordingPane.js +216 -0
- package/dist/ShareRecordingPane.js.map +1 -0
- package/dist/ShareViaEmail.js +416 -0
- package/dist/ShareViaEmail.js.map +1 -0
- package/dist/ShareViaLink.js +1556 -0
- package/dist/ShareViaLink.js.map +1 -0
- package/dist/Sidebar.js +294 -0
- package/dist/Sidebar.js.map +1 -0
- package/dist/StatusDropdown.js +109 -0
- package/dist/StatusDropdown.js.map +1 -0
- package/dist/StickyRibbonsContainer.js +131 -0
- package/dist/StickyRibbonsContainer.js.map +1 -0
- package/dist/SubHeader.js +209 -0
- package/dist/SubHeader.js.map +1 -0
- package/dist/SubscriptionNotificationsContainer.js +77 -0
- package/dist/SubscriptionNotificationsContainer.js.map +1 -0
- package/dist/SuffixedInput.js +111 -0
- package/dist/SuffixedInput.js.map +1 -0
- package/dist/TableWrapper.js +27 -0
- package/dist/TableWrapper.js.map +1 -0
- package/dist/Taxonomy.js +496 -0
- package/dist/Taxonomy.js.map +1 -0
- package/dist/TimeFormat.js +14 -0
- package/dist/TimeFormat.js.map +1 -0
- package/dist/TimezoneMismatchModal.js +138 -0
- package/dist/TimezoneMismatchModal.js.map +1 -0
- package/dist/ToggleFeatureCard.js +211 -0
- package/dist/ToggleFeatureCard.js.map +1 -0
- package/dist/_commonjsHelpers-BFTU3MAI.js +8 -0
- package/dist/_commonjsHelpers-BFTU3MAI.js.map +1 -0
- package/dist/cjs/AuditLogs.js +541 -0
- package/dist/cjs/AuditLogs.js.map +1 -0
- package/dist/cjs/BoardView.js +396 -0
- package/dist/cjs/BoardView.js.map +1 -0
- package/dist/cjs/Breadcrumbs.js +48 -0
- package/dist/cjs/Breadcrumbs.js.map +1 -0
- package/dist/cjs/BrowserPreview.js +52 -0
- package/dist/cjs/BrowserPreview.js.map +1 -0
- package/dist/cjs/BrowserSupport.js +350 -0
- package/dist/cjs/BrowserSupport.js.map +1 -0
- package/dist/cjs/Builder.js +794 -0
- package/dist/cjs/Builder.js.map +1 -0
- package/dist/cjs/ButtonGroup.js +38 -0
- package/dist/cjs/ButtonGroup.js.map +1 -0
- package/dist/cjs/CalendarView.js +358 -0
- package/dist/cjs/CalendarView.js.map +1 -0
- package/dist/cjs/CardLayout.js +51 -0
- package/dist/cjs/CardLayout.js.map +1 -0
- package/dist/cjs/Chevron-DJbXy_CD.js +256 -0
- package/dist/cjs/Chevron-DJbXy_CD.js.map +1 -0
- package/dist/cjs/Codeblock.js +60 -0
- package/dist/cjs/Codeblock.js.map +1 -0
- package/dist/cjs/Columns.js +35 -0
- package/dist/cjs/Columns.js.map +1 -0
- package/dist/cjs/ConfigurePageSidebar.js +99 -0
- package/dist/cjs/ConfigurePageSidebar.js.map +1 -0
- package/dist/cjs/ConfirmationModal.js +131 -0
- package/dist/cjs/ConfirmationModal.js.map +1 -0
- package/dist/cjs/Container.js +40 -0
- package/dist/cjs/Container.js.map +1 -0
- package/dist/cjs/CopyToClipboardButton.js +84 -0
- package/dist/cjs/CopyToClipboardButton.js.map +1 -0
- package/dist/cjs/Currency.js +920 -0
- package/dist/cjs/Currency.js.map +1 -0
- package/dist/cjs/DateFormat.js +47 -0
- package/dist/cjs/DateFormat.js.map +1 -0
- package/dist/cjs/DateRangeFilter.js +180 -0
- package/dist/cjs/DateRangeFilter.js.map +1 -0
- package/dist/cjs/DeleteArchiveModal.js +100 -0
- package/dist/cjs/DeleteArchiveModal.js.map +1 -0
- package/dist/cjs/DeviceIncompatibilityMessage.js +115 -0
- package/dist/cjs/DeviceIncompatibilityMessage.js.map +1 -0
- package/dist/cjs/DocumentEditor.js +185 -0
- package/dist/cjs/DocumentEditor.js.map +1 -0
- package/dist/cjs/DownloadMobileAppCallout.js +42 -0
- package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
- package/dist/cjs/DynamicVariables.js +117 -0
- package/dist/cjs/DynamicVariables.js.map +1 -0
- package/dist/cjs/EmailForm.js +593 -0
- package/dist/cjs/EmailForm.js.map +1 -0
- package/dist/cjs/EmailPreview.js +142 -0
- package/dist/cjs/EmailPreview.js.map +1 -0
- package/dist/cjs/EmojiPicker.js +114 -0
- package/dist/cjs/EmojiPicker.js.map +1 -0
- package/dist/cjs/EmojiReactions.js +84 -0
- package/dist/cjs/EmojiReactions.js.map +1 -0
- package/dist/cjs/Engagements.js +294 -0
- package/dist/cjs/Engagements.js.map +1 -0
- package/dist/cjs/ErrorPage.js +1831 -0
- package/dist/cjs/ErrorPage.js.map +1 -0
- package/dist/cjs/FileUpload.js +598 -0
- package/dist/cjs/FileUpload.js.map +1 -0
- package/dist/cjs/FinderModal.js +282 -0
- package/dist/cjs/FinderModal.js.map +1 -0
- package/dist/cjs/FloatingActionMenu.js +875 -0
- package/dist/cjs/FloatingActionMenu.js.map +1 -0
- package/dist/cjs/GoogleFontPicker.js +583 -0
- package/dist/cjs/GoogleFontPicker.js.map +1 -0
- package/dist/cjs/Header.js +128 -0
- package/dist/cjs/Header.js.map +1 -0
- package/dist/cjs/HelpPopover.js +85 -0
- package/dist/cjs/HelpPopover.js.map +1 -0
- package/dist/cjs/IconPicker.js +1161 -0
- package/dist/cjs/IconPicker.js.map +1 -0
- package/dist/cjs/ImageWithFallback.js +51 -0
- package/dist/cjs/ImageWithFallback.js.map +1 -0
- package/dist/cjs/InlineInput.js +233 -0
- package/dist/cjs/InlineInput.js.map +1 -0
- package/dist/cjs/Insights.js +360 -0
- package/dist/cjs/Insights.js.map +1 -0
- package/dist/cjs/IntegrationCard.js +229 -0
- package/dist/cjs/IntegrationCard.js.map +1 -0
- package/dist/cjs/IpRestriction.js +3638 -0
- package/dist/cjs/IpRestriction.js.map +1 -0
- package/dist/cjs/KeyboardShortcuts.js +286 -0
- package/dist/cjs/KeyboardShortcuts.js.map +1 -0
- package/dist/cjs/LoginPage.js +205 -0
- package/dist/cjs/LoginPage.js.map +1 -0
- package/dist/cjs/MadeWith.js +43 -0
- package/dist/cjs/MadeWith.js.map +1 -0
- package/dist/cjs/MenuBar.js +1328 -0
- package/dist/cjs/MenuBar.js.map +1 -0
- package/dist/cjs/Metadata.js +220 -0
- package/dist/cjs/Metadata.js.map +1 -0
- package/dist/cjs/MobilePreviewHeader.js +27 -0
- package/dist/cjs/MobilePreviewHeader.js.map +1 -0
- package/dist/cjs/MoreDropdown.js +165 -0
- package/dist/cjs/MoreDropdown.js.map +1 -0
- package/dist/cjs/NavigationHeader.js +266 -0
- package/dist/cjs/NavigationHeader.js.map +1 -0
- package/dist/cjs/NeetoWidget.js +2888 -0
- package/dist/cjs/NeetoWidget.js.map +1 -0
- package/dist/cjs/Onboarding.js +248 -0
- package/dist/cjs/Onboarding.js.map +1 -0
- package/dist/cjs/OptionFields.js +719 -0
- package/dist/cjs/OptionFields.js.map +1 -0
- package/dist/cjs/PageLoader.js +42 -0
- package/dist/cjs/PageLoader.js.map +1 -0
- package/dist/cjs/PhoneNumber.js +80 -0
- package/dist/cjs/PhoneNumber.js.map +1 -0
- package/dist/cjs/ProductEmbed.js +886 -0
- package/dist/cjs/ProductEmbed.js.map +1 -0
- package/dist/cjs/PublishBlock.js +449 -0
- package/dist/cjs/PublishBlock.js.map +1 -0
- package/dist/cjs/PublishYourItem.js +60 -0
- package/dist/cjs/PublishYourItem.js.map +1 -0
- package/dist/cjs/Rename.js +368 -0
- package/dist/cjs/Rename.js.map +1 -0
- package/dist/cjs/ResponsiveDevicePicker.js +65 -0
- package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
- package/dist/cjs/Schedule.js +947 -0
- package/dist/cjs/Schedule.js.map +1 -0
- package/dist/cjs/Scrollable.js +44 -0
- package/dist/cjs/Scrollable.js.map +1 -0
- package/dist/cjs/Search.js +112 -0
- package/dist/cjs/Search.js.map +1 -0
- package/dist/cjs/SendToFields.js +2223 -0
- package/dist/cjs/SendToFields.js.map +1 -0
- package/dist/cjs/SessionEnvironment.js +433 -0
- package/dist/cjs/SessionEnvironment.js.map +1 -0
- package/dist/cjs/Settings.js +252 -0
- package/dist/cjs/Settings.js.map +1 -0
- package/dist/cjs/ShareRecordingPane.js +218 -0
- package/dist/cjs/ShareRecordingPane.js.map +1 -0
- package/dist/cjs/ShareViaEmail.js +437 -0
- package/dist/cjs/ShareViaEmail.js.map +1 -0
- package/dist/cjs/ShareViaLink.js +1577 -0
- package/dist/cjs/ShareViaLink.js.map +1 -0
- package/dist/cjs/Sidebar.js +315 -0
- package/dist/cjs/Sidebar.js.map +1 -0
- package/dist/cjs/StatusDropdown.js +111 -0
- package/dist/cjs/StatusDropdown.js.map +1 -0
- package/dist/cjs/StickyRibbonsContainer.js +133 -0
- package/dist/cjs/StickyRibbonsContainer.js.map +1 -0
- package/dist/cjs/SubHeader.js +211 -0
- package/dist/cjs/SubHeader.js.map +1 -0
- package/dist/cjs/SubscriptionNotificationsContainer.js +79 -0
- package/dist/cjs/SubscriptionNotificationsContainer.js.map +1 -0
- package/dist/cjs/SuffixedInput.js +113 -0
- package/dist/cjs/SuffixedInput.js.map +1 -0
- package/dist/cjs/TableWrapper.js +29 -0
- package/dist/cjs/TableWrapper.js.map +1 -0
- package/dist/cjs/Taxonomy.js +517 -0
- package/dist/cjs/Taxonomy.js.map +1 -0
- package/dist/cjs/TimeFormat.js +16 -0
- package/dist/cjs/TimeFormat.js.map +1 -0
- package/dist/cjs/TimezoneMismatchModal.js +140 -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/_commonjsHelpers-BJu3ubxk.js +11 -0
- package/dist/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
- package/dist/cjs/index-JY2zVpnv.js +1189 -0
- package/dist/cjs/index-JY2zVpnv.js.map +1 -0
- package/dist/cjs/inject-css-vQvjPR2x.js +6 -0
- package/dist/cjs/inject-css-vQvjPR2x.js.map +1 -0
- package/dist/cjs/phone-number-BN-c0rfv.js +320 -0
- package/dist/cjs/phone-number-BN-c0rfv.js.map +1 -0
- package/dist/cjs/platform-BUcCb8Jx.js +1254 -0
- package/dist/cjs/platform-BUcCb8Jx.js.map +1 -0
- package/dist/cjs/useColumns-BP8c4PV-.js +282 -0
- package/dist/cjs/useColumns-BP8c4PV-.js.map +1 -0
- package/dist/index-DAYCJu79.js +1187 -0
- package/dist/index-DAYCJu79.js.map +1 -0
- package/dist/inject-css-DmrvuTKK.js +4 -0
- package/dist/inject-css-DmrvuTKK.js.map +1 -0
- package/dist/phone-number-CXCBroLh.js +295 -0
- package/dist/phone-number-CXCBroLh.js.map +1 -0
- package/dist/platform-F44zJ4Xh.js +1252 -0
- package/dist/platform-F44zJ4Xh.js.map +1 -0
- package/dist/styles/page-loader.css +1 -0
- package/dist/styles/page-loader.js +3 -0
- package/dist/useColumns-Db5uic1-.js +274 -0
- package/dist/useColumns-Db5uic1-.js.map +1 -0
- package/package.json +5 -5
- package/types/AuditLogs.d.ts +22 -0
- package/types/BoardView.d.ts +149 -0
- package/types/Breadcrumbs.d.ts +30 -0
- package/types/BrowserPreview.d.ts +30 -0
- package/types/BrowserSupport.d.ts +110 -0
- package/types/Builder.d.ts +99 -0
- package/types/ButtonGroup.d.ts +45 -0
- package/types/CalendarView.d.ts +98 -0
- package/types/CardLayout.d.ts +34 -0
- package/types/Codeblock.d.ts +37 -0
- package/types/Columns.d.ts +168 -0
- package/types/ConfigurePageSidebar.d.ts +45 -0
- package/types/ConfirmationModal.d.ts +65 -0
- package/types/Container.d.ts +38 -0
- package/types/CopyToClipboardButton.d.ts +28 -0
- package/types/Currency.d.ts +50 -0
- package/types/DateFormat.d.ts +15 -0
- package/types/DateRangeFilter.d.ts +56 -0
- package/types/DeleteArchiveModal.d.ts +65 -0
- package/types/DeviceIncompatibilityMessage.d.ts +19 -0
- package/types/DocumentEditor.d.ts +61 -0
- package/types/DownloadMobileAppCallout.d.ts +35 -0
- package/types/DynamicVariables.d.ts +48 -0
- package/types/EmailForm.d.ts +165 -0
- package/types/EmailFormProvider.d.ts +48 -0
- package/types/EmailPreview.d.ts +43 -0
- package/types/EmojiPicker.d.ts +35 -0
- package/types/EmojiReactions.d.ts +62 -0
- package/types/Engagements.d.ts +131 -0
- package/types/ErrorPage.d.ts +22 -0
- package/types/FileUpload.d.ts +89 -0
- package/types/FinderModal.d.ts +66 -0
- package/types/FloatingActionMenu.d.ts +59 -0
- package/types/GoogleFontPicker.d.ts +68 -0
- package/types/Header.d.ts +37 -0
- package/types/HelpPopover.d.ts +45 -0
- package/types/IconPicker.d.ts +45 -0
- package/types/ImageWithFallback.d.ts +24 -0
- package/types/InlineInput.d.ts +87 -0
- package/types/Insights.d.ts +112 -0
- package/types/IntegrationCard.d.ts +60 -0
- package/types/IpRestriction.d.ts +25 -0
- package/types/KeyboardShortcuts.d.ts +149 -0
- package/types/LoginPage.d.ts +45 -0
- package/types/MadeWith.d.ts +18 -0
- package/types/MenuBar.d.ts +127 -0
- package/types/Metadata.d.ts +109 -0
- package/types/MobilePreviewHeader.d.ts +19 -0
- package/types/MoreDropdown.d.ts +52 -0
- package/types/NavigationHeader.d.ts +180 -0
- package/types/NeetoWidget.d.ts +43 -0
- package/types/Onboarding.d.ts +70 -0
- package/types/OptionFields.d.ts +70 -0
- package/types/PageLoader.d.ts +40 -0
- package/types/PhoneNumber.d.ts +112 -0
- package/types/ProductEmbed.d.ts +93 -0
- package/types/PublishBlock.d.ts +148 -0
- package/types/Rename.d.ts +73 -0
- package/types/ResponsiveDevicePicker.d.ts +32 -0
- package/types/Schedule.d.ts +146 -0
- package/types/Scrollable.d.ts +30 -0
- package/types/Search.d.ts +22 -0
- package/types/SendToFields.d.ts +67 -0
- package/types/SessionEnvironment.d.ts +170 -0
- package/types/Settings.d.ts +108 -0
- package/types/ShareRecordingPane.d.ts +85 -0
- package/types/ShareViaEmail.d.ts +99 -0
- package/types/ShareViaLink.d.ts +183 -0
- package/types/Sidebar.d.ts +51 -0
- package/types/StatusDropdown.d.ts +74 -0
- package/types/StickyRibbonsContainer.d.ts +28 -0
- package/types/SubHeader.d.ts +105 -0
- package/types/SubscriptionNotificationsContainer.d.ts +26 -0
- package/types/SuffixedInput.d.ts +45 -0
- package/types/TableWrapper.d.ts +40 -0
- package/types/Taxonomy.d.ts +59 -0
- package/types/TimeFormat.d.ts +13 -0
- package/types/TimezoneMismatchModal.d.ts +41 -0
- package/types/ToggleFeatureCard.d.ts +38 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailForm.js","sources":["../../src/components/EmailForm/constants.js","../../src/components/EmailForm/contexts/EmailForm.js","../../src/components/EmailForm/utils.js","../../src/components/EmailForm/ReplyToField.jsx","../../src/components/EmailForm/SendToField.jsx","../../src/components/EmailForm/SubjectField.jsx","../../src/components/EmailForm/EmailForm.jsx","../../src/components/EmailForm/EmailFormComponent/index.jsx","../../src/components/EmailForm/EmailFormProvider.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport { prop } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_FORM_VALUES = {\n sendTo: [],\n sendToId: \"\",\n sendToCc: [],\n sendToBcc: [],\n replyTo: \"\",\n showCopyEmails: false,\n subject: \"\",\n message: \"\",\n isEnabled: false,\n};\n\nexport const EMAIL_FORM_VALIDATION_SCHEMA = yup.object({\n subject: yup\n .string()\n .required(t(\"neetoMolecules.emailForm.errors.subjectRequired\")),\n message: yup\n .string()\n .test(\n \"message\",\n t(\"neetoMolecules.emailForm.errors.messageRequired\"),\n value => !isEditorEmpty(value)\n ),\n});\n\nexport const sendToFieldValidation = maxEmails => {\n const validation = yup\n .array()\n .test(\n \"all-emails-valid\",\n t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"),\n emails => emails?.every(prop(\"valid\"))\n )\n .test(\n \"max-email-count\",\n t(\"neetoMolecules.emailForm.errors.maxEmails\", { count: maxEmails }),\n emails => emails?.length <= maxEmails\n );\n\n return yup.object({\n sendTo: validation\n .min(\n 1,\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.sendToEmailAddress\"),\n })\n )\n .nullable(),\n sendToCc: validation,\n sendToBcc: validation,\n });\n};\n\nexport const SEND_TO_ID_FIELD_VALIDATION = yup.object({\n sendToId: yup.string().required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n })\n ),\n});\n\nexport const REPLY_TO_FIELD_VALIDATION = yup.object({\n replyTo: yup\n .string()\n .nullable()\n .email(t(\"neetoMolecules.emailForm.errors.invalidEmailAddress\"))\n .required(\n t(\"neetoMolecules.emailForm.errors.required\", {\n entity: t(\"neetoMolecules.emailForm.fields.replyToEmailAddress\"),\n })\n ),\n});\n\nexport const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n \"video-embed\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","/* eslint-disable @bigbinary/neeto/use-zustand-for-global-state-management */\nimport { createContext } from \"react\";\n\nconst EmailFormContext = createContext({\n showSendToField: false,\n showSendToAsRadio: false,\n showReplyToField: false,\n});\n\nexport { EmailFormContext };\n","import { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\n\nimport {\n EMAIL_FORM_VALIDATION_SCHEMA,\n REPLY_TO_FIELD_VALIDATION,\n sendToFieldValidation,\n SEND_TO_ID_FIELD_VALIDATION,\n} from \"./constants\";\n\nexport const getValidationSchema = ({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n}) => {\n let schema = EMAIL_FORM_VALIDATION_SCHEMA.clone();\n\n if (showSendToField) {\n schema = schema.concat(\n showSendToAsRadio\n ? SEND_TO_ID_FIELD_VALIDATION\n : sendToFieldValidation(maxEmails)\n );\n }\n\n if (showReplyToField) schema = schema.concat(REPLY_TO_FIELD_VALIDATION);\n\n return schema.shape(customValidations);\n};\n\nexport const getReplyToFieldLabelProps = ({ popoverProps }) => ({\n helpIconProps: {\n [\"data-testid\"]: \"reply-to-tooltip\",\n tooltipProps: !isPresent(popoverProps) && {\n content: t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n touch: [\"hold\", 500],\n },\n popoverProps: isPresent(popoverProps) && {\n ...popoverProps,\n appendTo: \"parent\",\n description:\n popoverProps.description ||\n t(\"neetoMolecules.emailForm.tooltips.replyTo\"),\n },\n },\n});\n\nexport const resolveContent = (content, func, variable) => {\n if (typeof func === \"function\") {\n return func(content, variable);\n }\n\n return content;\n};\n","import { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Select, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getReplyToFieldLabelProps } from \"./utils\";\n\nconst ReplyToField = ({ options = [], popoverProps = {} }) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const isDropdownField = isNotEmpty(options);\n const labelProps = getReplyToFieldLabelProps({ popoverProps });\n\n if (isDropdownField) {\n return (\n <Select\n {...{ labelProps, options }}\n isClearable\n className=\"w-full\"\n data-testid=\"replyToOptions\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n onChange={data => setFieldValue(\"replyTo\", data?.value ?? \"\")}\n />\n );\n }\n\n return (\n <Input\n {...{ labelProps }}\n autoFocus\n required\n className=\"w-full\"\n data-testid=\"replyToInput\"\n label={t(\"neetoMolecules.emailForm.labels.replyTo\")}\n name=\"replyTo\"\n placeholder={t(\"neetoMolecules.emailForm.placeholders.emailPlaceholder\")}\n size=\"large\"\n onChange={event =>\n setFieldValue(\"replyTo\", event.target.value?.toLowerCase())\n }\n />\n );\n};\n\nexport default ReplyToField;\n","import { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"components/SendToFields\";\n\nconst SendToField = ({ showBccField, showCcField, showSendToTextField }) => {\n const { t } = useTranslation();\n\n if (!showSendToTextField && !showBccField && !showCcField) return null;\n\n return (\n <SendToFields\n showCcBccButton\n showBccField={showSendToTextField ? false : showBccField}\n showCcField={showSendToTextField ? false : showCcField}\n showSendToField={showSendToTextField}\n bccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.bCc\"),\n name: \"sendToBcc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n ccInputProps={{\n label: t(\"neetoMolecules.emailForm.labels.cc\"),\n name: \"sendToCc\",\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n }}\n emailInputProps={{\n id: \"sendTo\",\n name: \"sendTo\",\n label: t(\"neetoMolecules.emailForm.labels.sendTo\"),\n placeholder: t(\n \"neetoMolecules.emailForm.placeholders.commaSeparatedEmails\"\n ),\n required: true,\n }}\n />\n );\n};\n\nexport default SendToField;\n","import { useState } from \"react\";\n\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Input, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DynamicVariables from \"components/DynamicVariables\";\n\nconst SubjectField = ({\n name,\n text,\n updateText,\n subjectVariables = [],\n error,\n required = false,\n}) => {\n const [isFieldFocusedOnce, setIsFieldFocusedOnce] = useState(false);\n\n const { t } = useTranslation();\n\n const tagClickHandler = ({ key: slug }) => {\n const textAreaElement = document.querySelector(`textarea[name=${name}]`);\n const splitIndex =\n isFieldFocusedOnce && textAreaElement\n ? textAreaElement.selectionEnd\n : text.length;\n\n const updatedSubject = [\n text.slice(0, splitIndex),\n ` {{${slug}}}`,\n text.slice(splitIndex),\n ].join(\"\");\n updateText(updatedSubject);\n };\n\n return (\n <>\n <Input\n {...{ error, name, required }}\n label={t(\"neetoMolecules.emailForm.labels.subject\")}\n size=\"large\"\n value={text}\n suffix={\n <DynamicVariables\n variables={subjectVariables}\n dropdownProps={{\n className: \"neeto-ui-dropdown__popup overflow-y-auto\",\n buttonSize: \"small\",\n }}\n onVariableClick={tagClickHandler}\n />\n }\n onChange={withEventTargetValue(updateText)}\n onFocus={() => setIsFieldFocusedOnce(true)}\n />\n <Typography\n className=\"neeto-ui-text-gray-600 mt-2\"\n data-cy=\"subject-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n components={{ span: <span className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"subject\" }}\n />\n </Typography>\n </>\n );\n};\n\nexport default SubjectField;\n","import { useContext } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Field, useFormikContext } from \"formik\";\nimport { notEqualsDeep, isNotEmpty } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { ActionBlock, Radio } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport ReplyToField from \"./ReplyToField\";\nimport SendToField from \"./SendToField\";\nimport SubjectField from \"./SubjectField\";\n\nconst EmailForm = ({\n messageVariables = [],\n subjectVariables = [],\n handleCancel,\n isLoading,\n replyToFieldProps,\n sendToFieldProps,\n replyToOptions,\n sendToOptions = [],\n isUpdating = false,\n showFields = true,\n className = \"\",\n editorAddons = EDITOR_ADDONS,\n}) => {\n const { t } = useTranslation();\n\n const {\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n } = useContext(EmailFormContext);\n\n const { setFieldValue } = useFormikContext();\n\n const sendToFieldOptions = sendToFieldProps?.options || sendToOptions;\n const showSendToRadioField =\n showSendToField && showSendToAsRadio && isNotEmpty(sendToFieldOptions);\n\n const showSendToTextField = showSendToField && !showSendToRadioField;\n\n return (\n <div\n data-cy=\"email-form\"\n data-testid=\"email-form\"\n className={classnames(\"flex flex-1 flex-col items-start gap-2 !pb-0\", {\n [className]: className,\n })}\n >\n {showFields && (\n <div className=\"flex w-full flex-col items-start justify-start gap-6\">\n <Field name=\"subject\">\n {({ field: { value }, meta: { error } }) => (\n <div className=\"w-full\">\n <SubjectField\n {...{ subjectVariables }}\n required\n error={t(error)}\n name=\"subject\"\n text={value}\n updateText={text => setFieldValue(\"subject\", text)}\n />\n </div>\n )}\n </Field>\n {showSendToRadioField && (\n <Radio\n data-testid=\"send-to-id\"\n label={t(\"neetoMolecules.emailForm.labels.sendTo\")}\n labelProps={{ required: true }}\n name=\"sendToId\"\n >\n {sendToFieldOptions.map(({ label, value }) => (\n <Radio.Item {...{ label, value }} key={value} />\n ))}\n </Radio>\n )}\n <SendToField\n {...{ showBccField, showCcField, showSendToTextField }}\n />\n {showReplyToField && (\n <ReplyToField options={replyToOptions} {...replyToFieldProps} />\n )}\n <div className=\"w-full\">\n <FormikEditor\n required\n addons={editorAddons}\n data-cy=\"message-input-field\"\n id=\"form_message\"\n label={t(\"neetoMolecules.emailForm.labels.message\")}\n name=\"message\"\n variables={messageVariables}\n shouldUpdate={(nextProps, prevProps) =>\n notEqualsDeep(nextProps.variables, prevProps.variables)\n }\n />\n <Typography\n className=\"neeto-ui-text-gray-500 mt-2\"\n data-cy=\"message-input-variable-label\"\n style=\"body3\"\n >\n <Trans\n i18nKey=\"neetoMolecules.emailForm.helpText\"\n values={{ type: \"message\" }}\n components={{\n span: <span className=\"font-semibold\" />,\n }}\n />\n </Typography>\n </div>\n </div>\n )}\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n className=\"neeto-ui-bg-white z-10 w-full justify-start py-6 lg:sticky lg:bottom-0\"\n isSubmitting={isLoading || isUpdating}\n />\n </div>\n );\n};\n\nEmailForm.propTypes = {\n /**\n * This is an array of objects used for templating within the message field. Each object in the array has a **label** and a **key**.\n */\n messageVariables: PropTypes.array,\n /**\n * This is an array of objects used for templating within the subject field. Each object in the array has a **label** and a **key**.\n */\n subjectVariables: PropTypes.array,\n /**\n * This function that gets triggered when the 'Cancel' button is clicked.\n */\n handleCancel: PropTypes.func,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Reply To' field into a dropdown menu with given options. Without this prop, 'Reply To' will be a text input field.\n */\n replyToOptions: PropTypes.array,\n /**\n * An array of objects, with each object having **label** and **value** properties. This prop transforms the 'Send To' field into a radio group with given options. Without this prop, 'Send To' will be a multi email input field.\n */\n sendToOptions: PropTypes.array,\n /**\n * A Boolean flag indicating whether an update operation is currently in progress. When set to `true`, the 'Save changes' button is disabled.\n */\n isUpdating: PropTypes.bool,\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide props to the replyToField. Supports options that will\n * be rendered as the reply to options and popover props.\n */\n replyToFieldProps: PropTypes.object,\n /**\n * To provide props to the sendToField. Supports sendTo options.\n */\n sendToFieldProps: PropTypes.object,\n /**\n * To override the default editor addons\n */\n editorAddons: PropTypes.array,\n};\n\nexport default EmailForm;\n","import { noop, isNotEmpty } from \"neetocist\";\nimport { Tooltip } from \"neetoui\";\nimport { BlockNavigation, Switch } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, pluck } from \"ramda\";\n\nimport { EmailFormProvider, EmailForm, EmailPreview } from \"..\";\nimport Header from \"../../Header\";\nimport MobilePreviewHeader from \"../../MobilePreviewHeader\";\nimport { INITIAL_FORM_VALUES } from \"../constants\";\nimport \"../email-form.scss\";\nimport { resolveContent } from \"../utils\";\n\nconst EmailFormComponent = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema,\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showCcField = false,\n showBccField = false,\n isLoading = false,\n maxEmails = 10,\n emailFormProps = {},\n emailPreviewProps = {},\n headerProps = {},\n tooltipProps = {},\n switchProps = {},\n mobilePreviewProps = {},\n}) => {\n const { formatBody, formatSubject, bodyVariables, subjectVariables } =\n emailPreviewProps;\n\n const shouldShowFields = values => isEmpty(switchProps) || values.isEnabled;\n\n return (\n <EmailFormProvider\n {...{\n formikProps,\n initialValues,\n maxEmails,\n onSubmit,\n showBccField,\n showCcField,\n showReplyToField,\n showSendToAsRadio,\n showSendToField,\n validationSchema,\n }}\n >\n {({ values, isSubmitting }) => (\n <div className=\"neeto-notification-email-wrapper flex flex-grow flex-col overflow-y-auto lg:flex-row\">\n <div className=\"flex w-full flex-col px-6 lg:h-full lg:w-1/2 lg:overflow-y-auto\">\n <BlockNavigation />\n {isNotEmpty(headerProps) && (\n <Header className=\"px-0\" size=\"small\" {...headerProps} />\n )}\n {isNotEmpty(switchProps) && (\n <div className=\"flex items-center justify-between space-y-0.5 pb-6\">\n <Tooltip\n disabled={!switchProps?.disabled}\n position=\"top\"\n {...tooltipProps}\n >\n <div className=\"flex items-center gap-2\">\n <Switch\n data-testid=\"switch\"\n name=\"isEnabled\"\n {...switchProps}\n />\n </div>\n </Tooltip>\n </div>\n )}\n {shouldShowFields(values) && children}\n <EmailForm\n isLoading={isSubmitting || isLoading}\n isUpdating={isSubmitting || isLoading}\n showFields={shouldShowFields(values)}\n {...emailFormProps}\n />\n </div>\n {shouldShowFields(values) && (\n <MobilePreviewHeader\n className=\"lg:hidden\"\n {...mobilePreviewProps}\n />\n )}\n {shouldShowFields(values) && (\n <div className=\"neeto-ui-bg-gray-100 w-full px-6 py-10 lg:w-1/2 lg:overflow-y-auto\">\n <EmailPreview\n body={resolveContent(values.message, formatBody, bodyVariables)}\n from={values.sendFrom}\n to={pluck(\"value\", values?.sendTo ?? [])}\n subject={resolveContent(\n values.subject,\n formatSubject,\n subjectVariables\n )}\n {...emailPreviewProps}\n />\n </div>\n )}\n </div>\n )}\n </EmailFormProvider>\n );\n};\n\nEmailFormComponent.propTypes = {\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n isEnabled: PropTypes.bool,\n }),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n /**\n * This Boolean value, when set to true, triggers the display of a loading indicator on the 'Save changes' button.\"\n */\n isLoading: PropTypes.bool,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * These are the values that will be passed to EmailForm Component\n */\n emailFormProps: PropTypes.shape({\n messageVariables: PropTypes.array,\n subjectVariables: PropTypes.array,\n handleCancel: PropTypes.func,\n isLoading: PropTypes.bool,\n replyToFieldProps: PropTypes.object,\n sendToFieldProps: PropTypes.object,\n replyToOptions: PropTypes.array,\n sendToOptions: PropTypes.array,\n isUpdating: PropTypes.bool,\n showFields: PropTypes.bool,\n className: PropTypes.string,\n editorAddons: PropTypes.array,\n }),\n /**\n * These are the values that will be passed to EmailPreview Component\n */\n emailPreviewProps: PropTypes.shape({\n to: PropTypes.array,\n from: PropTypes.string,\n subject: PropTypes.string,\n body: PropTypes.string,\n actionButtonText: PropTypes.string,\n logo: PropTypes.string,\n customContent: PropTypes.string,\n className: PropTypes.string,\n formatBody: PropTypes.func,\n formatSubject: PropTypes.func,\n bodyVariables: PropTypes.object,\n subjectVariables: PropTypes.object,\n }),\n /**\n * These are the values that will be passed to Header Component\n */\n headerProps: PropTypes.object,\n /**\n * These are the values that will be passed to Tooltip Component\n */\n tooltipProps: PropTypes.object,\n /**\n * These are the values that will be passed to Switch Component\n */\n switchProps: PropTypes.object,\n /**\n * These are the values that will be passed to MobilePreviewHeader Component\n */\n mobilePreviewProps: PropTypes.object,\n};\n\nexport default EmailFormComponent;\n","import { noop } from \"neetocist\";\nimport { Form } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\n\nimport { INITIAL_FORM_VALUES } from \"./constants\";\nimport { EmailFormContext } from \"./contexts/EmailForm\";\nimport { getValidationSchema } from \"./utils\";\n\nconst EmailFormProvider = ({\n onSubmit = noop,\n initialValues = INITIAL_FORM_VALUES,\n children,\n formikProps,\n validationSchema: customValidations = {},\n showSendToField = false,\n showReplyToField = false,\n showSendToAsRadio = false,\n showCcField = false,\n showBccField = false,\n maxEmails = 10,\n}) => (\n <div data-testid=\"email-form-provider\">\n <EmailFormContext.Provider\n value={{\n showSendToField,\n showSendToAsRadio,\n showReplyToField,\n showCcField,\n showBccField,\n }}\n >\n <Form\n formikProps={{\n enableReinitialize: true,\n validationSchema: getValidationSchema({\n showSendToField,\n showReplyToField,\n showSendToAsRadio,\n customValidations,\n maxEmails,\n }),\n initialValues: {\n ...initialValues,\n replyTo: initialValues.replyTo || globalProps.user.email,\n },\n onSubmit,\n ...formikProps,\n }}\n >\n {children}\n </Form>\n </EmailFormContext.Provider>\n </div>\n);\n\nEmailFormProvider.propTypes = {\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be displayed or not.\n */\n showSendToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**replyTo**' field should be displayed or not.\n */\n showReplyToField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**sendTo**' field should be radio type or not.\n */\n showSendToAsRadio: PropTypes.bool,\n /**\n * A function that will be triggered with input values when the 'Save changes' button is clicked.\n */\n onSubmit: PropTypes.func,\n /**\n * These are the predefined values that populate the form fields when the form is first rendered.\n */\n initialValues: PropTypes.shape({\n sendTo: PropTypes.array,\n sendToId: PropTypes.string,\n sendToCc: PropTypes.array,\n sendToBcc: PropTypes.array,\n replyTo: PropTypes.string,\n showCopyEmails: PropTypes.bool,\n subject: PropTypes.string,\n message: PropTypes.string,\n }),\n /**\n * A prop used for rendering either standard React element or a render prop function.\n */\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /**\n * A prop that can be used to override the default Formik properties that are set within the component, providing customization flexibility.\n */\n formikProps: PropTypes.object,\n /**\n * A Yup object defining custom form validation rules, which will be merged with the default rules using the concat method.\n */\n validationSchema: PropTypes.object,\n /**\n * A prop to limit number of send to emails\n */\n maxEmails: PropTypes.number,\n /**\n * A Boolean value that determines whether the '**Cc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showCcField: PropTypes.bool,\n /**\n * A Boolean value that determines whether the '**Bcc**' field should be displayed or not when showSendToField is false.\n * This prop has no effect when showSendToField is true.\n */\n showBccField: PropTypes.bool,\n};\n\nexport default EmailFormProvider;\n"],"names":["INITIAL_FORM_VALUES","sendTo","sendToId","sendToCc","sendToBcc","replyTo","showCopyEmails","subject","message","isEnabled","EMAIL_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","test","value","isEditorEmpty","sendToFieldValidation","maxEmails","validation","array","emails","every","prop","count","length","min","entity","nullable","SEND_TO_ID_FIELD_VALIDATION","REPLY_TO_FIELD_VALIDATION","email","EDITOR_ADDONS","EmailFormContext","createContext","showSendToField","showSendToAsRadio","showReplyToField","getValidationSchema","_ref","customValidations","schema","clone","concat","shape","getReplyToFieldLabelProps","_ref2","popoverProps","helpIconProps","_defineProperty","isPresent","content","touch","_objectSpread","appendTo","description","resolveContent","func","variable","ReplyToField","_ref$options","options","_ref$popoverProps","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","isDropdownField","isNotEmpty","labelProps","_jsx","Select","isClearable","className","label","name","onChange","data","_data$value","Input","autoFocus","placeholder","size","event","_event$target$value","target","toLowerCase","SendToField","showBccField","showCcField","showSendToTextField","SendToFields","showCcBccButton","bccInputProps","ccInputProps","emailInputProps","id","SubjectField","text","updateText","_ref$subjectVariables","subjectVariables","error","_ref$required","_useState","useState","_useState2","_slicedToArray","isFieldFocusedOnce","setIsFieldFocusedOnce","tagClickHandler","slug","key","textAreaElement","document","querySelector","splitIndex","selectionEnd","updatedSubject","slice","join","_jsxs","_Fragment","children","suffix","DynamicVariables","variables","dropdownProps","buttonSize","onVariableClick","withEventTargetValue","onFocus","Typography","style","Trans","components","span","i18nKey","values","type","EmailForm","_ref$messageVariables","messageVariables","handleCancel","isLoading","replyToFieldProps","sendToFieldProps","replyToOptions","_ref$sendToOptions","sendToOptions","_ref$isUpdating","isUpdating","_ref$showFields","showFields","_ref$className","_ref$editorAddons","editorAddons","_useContext","useContext","sendToFieldOptions","showSendToRadioField","classnames","Field","field","meta","Radio","map","_ref3","_createElement","Item","FormikEditor","addons","shouldUpdate","nextProps","prevProps","notEqualsDeep","ActionBlock","cancelButtonProps","onClick","isSubmitting","EmailFormComponent","_ref$onSubmit","onSubmit","noop","_ref$initialValues","initialValues","formikProps","validationSchema","_ref$showSendToField","_ref$showReplyToField","_ref$showSendToAsRadi","_ref$showCcField","_ref$showBccField","_ref$isLoading","_ref$maxEmails","_ref$emailFormProps","emailFormProps","_ref$emailPreviewProp","emailPreviewProps","_ref$headerProps","headerProps","_ref$tooltipProps","tooltipProps","_ref$switchProps","switchProps","_ref$mobilePreviewPro","mobilePreviewProps","formatBody","formatSubject","bodyVariables","shouldShowFields","isEmpty","EmailFormProvider","_values$sendTo","BlockNavigation","Header","Tooltip","disabled","position","Switch","MobilePreviewHeader","EmailPreview","body","from","sendFrom","to","pluck","_ref$validationSchema","Provider","Form","enableReinitialize","globalProps","user"],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var classnames = require('classnames');
|
|
5
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
|
+
var withT = require('@bigbinary/neeto-commons-frontend/react-utils/withT');
|
|
7
|
+
var EditorContent = require('@bigbinary/neeto-editor/EditorContent');
|
|
8
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
9
|
+
var Button = require('@bigbinary/neetoui/Button');
|
|
10
|
+
var index = require('./index-JY2zVpnv.js');
|
|
11
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
12
|
+
require('./_commonjsHelpers-BJu3ubxk.js');
|
|
13
|
+
|
|
14
|
+
var MemoizedEditorContent = /*#__PURE__*/React.memo(EditorContent);
|
|
15
|
+
var EmailPreview = withT(function (_ref) {
|
|
16
|
+
var t = _ref.t,
|
|
17
|
+
_ref$to = _ref.to,
|
|
18
|
+
to = _ref$to === void 0 ? [] : _ref$to,
|
|
19
|
+
from = _ref.from,
|
|
20
|
+
subject = _ref.subject,
|
|
21
|
+
body = _ref.body,
|
|
22
|
+
actionButtonText = _ref.actionButtonText,
|
|
23
|
+
logo = _ref.logo,
|
|
24
|
+
_ref$className = _ref.className,
|
|
25
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
26
|
+
customContent = _ref.customContent;
|
|
27
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
28
|
+
"data-cy": "email-preview-card",
|
|
29
|
+
"data-testid": "email-preview",
|
|
30
|
+
className: classnames("neeto-ui-border-gray-300 neeto-ui-shadow-m neeto-ui-bg-white flex flex-1 flex-col border", className),
|
|
31
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
32
|
+
className: "neeto-ui-border-gray-300 space-y-3 border-b p-6",
|
|
33
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
34
|
+
className: "flex gap-2",
|
|
35
|
+
"data-cy": "email-send-to-preview",
|
|
36
|
+
"data-testid": "email-to-block",
|
|
37
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(Typography, {
|
|
38
|
+
className: "neeto-ui-text-gray-500",
|
|
39
|
+
lineHeight: "normal",
|
|
40
|
+
style: "body2",
|
|
41
|
+
children: [t("neetoMolecules.emailPreview.to"), ":"]
|
|
42
|
+
}), neetoCist.isPresent(to) ? /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
43
|
+
className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
|
|
44
|
+
lineHeight: "normal",
|
|
45
|
+
style: "body2",
|
|
46
|
+
children: to.join(", ")
|
|
47
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
48
|
+
className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full mt-2 h-2 w-40"
|
|
49
|
+
})]
|
|
50
|
+
}), from && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
51
|
+
className: "neeto-ui-border-gray-200 flex items-center gap-2 border-t pt-3",
|
|
52
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(Typography, {
|
|
53
|
+
className: "neeto-ui-text-gray-500",
|
|
54
|
+
lineHeight: "normal",
|
|
55
|
+
style: "body2",
|
|
56
|
+
children: [t("neetoMolecules.emailPreview.from"), ":"]
|
|
57
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
58
|
+
className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
|
|
59
|
+
"data-cy": "email-send-from-preview",
|
|
60
|
+
lineHeight: "normal",
|
|
61
|
+
style: "body2",
|
|
62
|
+
children: from
|
|
63
|
+
})]
|
|
64
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
65
|
+
className: "neeto-ui-border-gray-200 flex items-center gap-2 border-t pt-3",
|
|
66
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(Typography, {
|
|
67
|
+
className: "neeto-ui-text-gray-500",
|
|
68
|
+
lineHeight: "normal",
|
|
69
|
+
style: "body2",
|
|
70
|
+
children: [t("neetoMolecules.emailPreview.subject"), ":"]
|
|
71
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
72
|
+
className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
|
|
73
|
+
"data-cy": "email-subject-preview",
|
|
74
|
+
lineHeight: "normal",
|
|
75
|
+
style: "body2",
|
|
76
|
+
children: subject || /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
77
|
+
className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40"
|
|
78
|
+
})
|
|
79
|
+
})]
|
|
80
|
+
})]
|
|
81
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
82
|
+
className: "neeto-ui-text-gray-800 flex flex-1 flex-col justify-between space-y-6 p-6 pr-10 text-base leading-relaxed",
|
|
83
|
+
"data-cy": "email-body-preview-container",
|
|
84
|
+
children: [body ? /*#__PURE__*/jsxRuntime.jsx(MemoizedEditorContent, {
|
|
85
|
+
content: body
|
|
86
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
87
|
+
className: "space-y-4",
|
|
88
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
89
|
+
className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-48 max-w-full md:w-80"
|
|
90
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
91
|
+
className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40 max-w-full md:w-72"
|
|
92
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
93
|
+
className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-48 max-w-full md:w-80"
|
|
94
|
+
})]
|
|
95
|
+
}), customContent && customContent, actionButtonText && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
96
|
+
className: "mt-6 flex w-full items-center justify-center",
|
|
97
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
98
|
+
className: "pointer-events-none",
|
|
99
|
+
label: actionButtonText
|
|
100
|
+
})
|
|
101
|
+
}), logo && /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
102
|
+
alt: t("neetoMolecules.emailPreview.logoAltText"),
|
|
103
|
+
className: "h-20 w-36 object-cover",
|
|
104
|
+
"data-cy": "company-logo-preview",
|
|
105
|
+
src: logo
|
|
106
|
+
})]
|
|
107
|
+
})]
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
EmailPreview.propTypes = {
|
|
111
|
+
/**
|
|
112
|
+
* The value of the send-to field.
|
|
113
|
+
*/
|
|
114
|
+
to: index.PropTypes.arrayOf(index.PropTypes.string),
|
|
115
|
+
/**
|
|
116
|
+
* The value of the send-from field.
|
|
117
|
+
*/
|
|
118
|
+
from: index.PropTypes.string,
|
|
119
|
+
/**
|
|
120
|
+
* The subject of the email.
|
|
121
|
+
*/
|
|
122
|
+
subject: index.PropTypes.string,
|
|
123
|
+
/**
|
|
124
|
+
* The body of the email.
|
|
125
|
+
*/
|
|
126
|
+
body: index.PropTypes.string,
|
|
127
|
+
/**
|
|
128
|
+
* The text to be shown in the action button.
|
|
129
|
+
*/
|
|
130
|
+
actionButtonText: index.PropTypes.string,
|
|
131
|
+
/**
|
|
132
|
+
* Source link for the company logo.
|
|
133
|
+
*/
|
|
134
|
+
logo: index.PropTypes.string,
|
|
135
|
+
/**
|
|
136
|
+
* To pass custom content that will be rendered above the action button.
|
|
137
|
+
*/
|
|
138
|
+
customContent: index.PropTypes.string
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
module.exports = EmailPreview;
|
|
142
|
+
//# sourceMappingURL=EmailPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailPreview.js","sources":["../../src/components/EmailPreview.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Typography, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst MemoizedEditorContent = memo(EditorContent);\n\nconst EmailPreview = withT(\n ({\n t,\n to = [],\n from,\n subject,\n body,\n actionButtonText,\n logo,\n className = \"\",\n customContent,\n }) => (\n <div\n data-cy=\"email-preview-card\"\n data-testid=\"email-preview\"\n className={classnames(\n \"neeto-ui-border-gray-300 neeto-ui-shadow-m neeto-ui-bg-white flex flex-1 flex-col border\",\n className\n )}\n >\n <div className=\"neeto-ui-border-gray-300 space-y-3 border-b p-6\">\n <div\n className=\"flex gap-2\"\n data-cy=\"email-send-to-preview\"\n data-testid=\"email-to-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.to\")}:\n </Typography>\n {isPresent(to) ? (\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {to.join(\", \")}\n </Typography>\n ) : (\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full mt-2 h-2 w-40\" />\n )}\n </div>\n {from && (\n <div className=\"neeto-ui-border-gray-200 flex items-center gap-2 border-t pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.from\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-send-from-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {from}\n </Typography>\n </div>\n )}\n <div className=\"neeto-ui-border-gray-200 flex items-center gap-2 border-t pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.subject\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-subject-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {subject || (\n <span className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40\" />\n )}\n </Typography>\n </div>\n </div>\n <div\n className=\"neeto-ui-text-gray-800 flex flex-1 flex-col justify-between space-y-6 p-6 pr-10 text-base leading-relaxed\"\n data-cy=\"email-body-preview-container\"\n >\n {body ? (\n <MemoizedEditorContent content={body} />\n ) : (\n <div className=\"space-y-4\">\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-48 max-w-full md:w-80\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40 max-w-full md:w-72\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-48 max-w-full md:w-80\" />\n </div>\n )}\n {customContent && customContent}\n {actionButtonText && (\n <div className=\"mt-6 flex w-full items-center justify-center\">\n <Button className=\"pointer-events-none\" label={actionButtonText} />\n </div>\n )}\n {logo && (\n <img\n alt={t(\"neetoMolecules.emailPreview.logoAltText\")}\n className=\"h-20 w-36 object-cover\"\n data-cy=\"company-logo-preview\"\n src={logo}\n />\n )}\n </div>\n </div>\n )\n);\n\nEmailPreview.propTypes = {\n /**\n * The value of the send-to field.\n */\n to: PropTypes.arrayOf(PropTypes.string),\n /**\n * The value of the send-from field.\n */\n from: PropTypes.string,\n /**\n * The subject of the email.\n */\n subject: PropTypes.string,\n /**\n * The body of the email.\n */\n body: PropTypes.string,\n /**\n * The text to be shown in the action button.\n */\n actionButtonText: PropTypes.string,\n /**\n * Source link for the company logo.\n */\n logo: PropTypes.string,\n /**\n * To pass custom content that will be rendered above the action button.\n */\n customContent: PropTypes.string,\n};\n\nexport default EmailPreview;\n"],"names":["MemoizedEditorContent","memo","EditorContent","EmailPreview","withT","_ref","t","_ref$to","to","from","subject","body","actionButtonText","logo","_ref$className","className","customContent","_jsxs","classnames","children","Typography","lineHeight","style","isPresent","_jsx","join","content","Button","label","alt","src","propTypes","PropTypes","arrayOf","string"],"mappings":";;;;;;;;;;;;;AASA,IAAMA,qBAAqB,gBAAGC,UAAI,CAACC,aAAa,CAAC,CAAA;AAEjD,IAAMC,YAAY,GAAGC,KAAK,CACxB,UAAAC,IAAA,EAAA;AAAA,EAAA,IACEC,CAAC,GAAAD,IAAA,CAADC,CAAC;IAAAC,OAAA,GAAAF,IAAA,CACDG,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,OAAA;IACPE,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACJC,OAAO,GAAAL,IAAA,CAAPK,OAAO;IACPC,IAAI,GAAAN,IAAA,CAAJM,IAAI;IACJC,gBAAgB,GAAAP,IAAA,CAAhBO,gBAAgB;IAChBC,IAAI,GAAAR,IAAA,CAAJQ,IAAI;IAAAC,cAAA,GAAAT,IAAA,CACJU,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IACdE,aAAa,GAAAX,IAAA,CAAbW,aAAa,CAAA;AAAA,EAAA,oBAEbC,eAAA,CAAA,KAAA,EAAA;AACE,IAAA,SAAA,EAAQ,oBAAoB;AAC5B,IAAA,aAAA,EAAY,eAAe;AAC3BF,IAAAA,SAAS,EAAEG,UAAU,CACnB,0FAA0F,EAC1FH,SACF,CAAE;AAAAI,IAAAA,QAAA,gBAEFF,eAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,iDAAiD;AAAAI,MAAAA,QAAA,gBAC9DF,eAAA,CAAA,KAAA,EAAA;AACEF,QAAAA,SAAS,EAAC,YAAY;AACtB,QAAA,SAAA,EAAQ,uBAAuB;AAC/B,QAAA,aAAA,EAAY,gBAAgB;QAAAI,QAAA,EAAA,cAE5BF,eAAA,CAACG,UAAU,EAAA;AACTL,UAAAA,SAAS,EAAC,wBAAwB;AAClCM,UAAAA,UAAU,EAAC,QAAQ;AACnBC,UAAAA,KAAK,EAAC,OAAO;AAAAH,UAAAA,QAAA,GAEZb,CAAC,CAAC,gCAAgC,CAAC,EAAC,GACvC,CAAA;SAAY,CAAC,EACZiB,mBAAS,CAACf,EAAE,CAAC,gBACZgB,cAAA,CAACJ,UAAU,EAAA;AACTL,UAAAA,SAAS,EAAC,sDAAsD;AAChEM,UAAAA,UAAU,EAAC,QAAQ;AACnBC,UAAAA,KAAK,EAAC,OAAO;AAAAH,UAAAA,QAAA,EAEZX,EAAE,CAACiB,IAAI,CAAC,IAAI,CAAA;SACH,CAAC,gBAEbD,cAAA,CAAA,KAAA,EAAA;AAAKT,UAAAA,SAAS,EAAC,0DAAA;AAA0D,SAAE,CAC5E,CAAA;AAAA,OACE,CAAC,EACLN,IAAI,iBACHQ,eAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,gEAAgE;QAAAI,QAAA,EAAA,cAC7EF,eAAA,CAACG,UAAU,EAAA;AACTL,UAAAA,SAAS,EAAC,wBAAwB;AAClCM,UAAAA,UAAU,EAAC,QAAQ;AACnBC,UAAAA,KAAK,EAAC,OAAO;AAAAH,UAAAA,QAAA,GAEZb,CAAC,CAAC,kCAAkC,CAAC,EAAC,GACzC,CAAA;AAAA,SAAY,CAAC,eACbkB,cAAA,CAACJ,UAAU,EAAA;AACTL,UAAAA,SAAS,EAAC,sDAAsD;AAChE,UAAA,SAAA,EAAQ,yBAAyB;AACjCM,UAAAA,UAAU,EAAC,QAAQ;AACnBC,UAAAA,KAAK,EAAC,OAAO;AAAAH,UAAAA,QAAA,EAEZV,IAAAA;AAAI,SACK,CAAC,CAAA;OACV,CACN,eACDQ,eAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,gEAAgE;QAAAI,QAAA,EAAA,cAC7EF,eAAA,CAACG,UAAU,EAAA;AACTL,UAAAA,SAAS,EAAC,wBAAwB;AAClCM,UAAAA,UAAU,EAAC,QAAQ;AACnBC,UAAAA,KAAK,EAAC,OAAO;AAAAH,UAAAA,QAAA,GAEZb,CAAC,CAAC,qCAAqC,CAAC,EAAC,GAC5C,CAAA;AAAA,SAAY,CAAC,eACbkB,cAAA,CAACJ,UAAU,EAAA;AACTL,UAAAA,SAAS,EAAC,sDAAsD;AAChE,UAAA,SAAA,EAAQ,uBAAuB;AAC/BM,UAAAA,UAAU,EAAC,QAAQ;AACnBC,UAAAA,KAAK,EAAC,OAAO;UAAAH,QAAA,EAEZT,OAAO,iBACNc,cAAA,CAAA,MAAA,EAAA;AAAMT,YAAAA,SAAS,EAAC,qDAAA;WAAuD,CAAA;AACxE,SACS,CAAC,CAAA;AAAA,OACV,CAAC,CAAA;KACH,CAAC,eACNE,eAAA,CAAA,KAAA,EAAA;AACEF,MAAAA,SAAS,EAAC,2GAA2G;AACrH,MAAA,SAAA,EAAQ,8BAA8B;AAAAI,MAAAA,QAAA,EAErCR,CAAAA,IAAI,gBACHa,cAAA,CAACxB,qBAAqB,EAAA;AAAC0B,QAAAA,OAAO,EAAEf,IAAAA;OAAO,CAAC,gBAExCM,eAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,WAAW;AAAAI,QAAAA,QAAA,gBACxBK,cAAA,CAAA,KAAA,EAAA;AAAKT,UAAAA,SAAS,EAAC,wEAAA;SAA0E,CAAC,eAC1FS,cAAA,CAAA,KAAA,EAAA;AAAKT,UAAAA,SAAS,EAAC,wEAAA;SAA0E,CAAC,eAC1FS,cAAA,CAAA,KAAA,EAAA;AAAKT,UAAAA,SAAS,EAAC,wEAAA;AAAwE,SAAE,CAAC,CAAA;OACvF,CACN,EACAC,aAAa,IAAIA,aAAa,EAC9BJ,gBAAgB,iBACfY,cAAA,CAAA,KAAA,EAAA;AAAKT,QAAAA,SAAS,EAAC,8CAA8C;QAAAI,QAAA,eAC3DK,cAAA,CAACG,MAAM,EAAA;AAACZ,UAAAA,SAAS,EAAC,qBAAqB;AAACa,UAAAA,KAAK,EAAEhB,gBAAAA;SAAmB,CAAA;AAAC,OAChE,CACN,EACAC,IAAI,iBACHW,cAAA,CAAA,KAAA,EAAA;AACEK,QAAAA,GAAG,EAAEvB,CAAC,CAAC,yCAAyC,CAAE;AAClDS,QAAAA,SAAS,EAAC,wBAAwB;AAClC,QAAA,SAAA,EAAQ,sBAAsB;AAC9Be,QAAAA,GAAG,EAAEjB,IAAAA;AAAK,OACX,CACF,CAAA;AAAA,KACE,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAAA,CAEV,EAAC;AAEDV,YAAY,CAAC4B,SAAS,GAAG;AACvB;AACF;AACA;EACEvB,EAAE,EAAEwB,eAAS,CAACC,OAAO,CAACD,eAAS,CAACE,MAAM,CAAC;AACvC;AACF;AACA;EACEzB,IAAI,EAAEuB,eAAS,CAACE,MAAM;AACtB;AACF;AACA;EACExB,OAAO,EAAEsB,eAAS,CAACE,MAAM;AACzB;AACF;AACA;EACEvB,IAAI,EAAEqB,eAAS,CAACE,MAAM;AACtB;AACF;AACA;EACEtB,gBAAgB,EAAEoB,eAAS,CAACE,MAAM;AAClC;AACF;AACA;EACErB,IAAI,EAAEmB,eAAS,CAACE,MAAM;AACtB;AACF;AACA;EACElB,aAAa,EAAEgB,eAAS,CAACE,MAAAA;AAC3B,CAAC;;;;"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var SmileFaceGrey = require('@bigbinary/neeto-icons/SmileFaceGrey');
|
|
7
|
+
var Dropdown = require('@bigbinary/neetoui/Dropdown');
|
|
8
|
+
var reactI18next = require('react-i18next');
|
|
9
|
+
var emojiMart = require('emoji-mart');
|
|
10
|
+
var reactQuery = require('@tanstack/react-query');
|
|
11
|
+
var axios = require('axios');
|
|
12
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
13
|
+
|
|
14
|
+
var fetch = function fetch() {
|
|
15
|
+
return axios.get("https://cdn.jsdelivr.net/npm/@emoji-mart/data");
|
|
16
|
+
};
|
|
17
|
+
var emojiPickerApi = {
|
|
18
|
+
fetch: fetch
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
var QUERY_KEYS = {
|
|
22
|
+
EMOJI_DATA: "emoji-data"
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var useEmojiData = function useEmojiData() {
|
|
26
|
+
return reactQuery.useQuery({
|
|
27
|
+
queryKey: [QUERY_KEYS.EMOJI_DATA],
|
|
28
|
+
queryFn: emojiPickerApi.fetch
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
var EmojiPickerMenu = function EmojiPickerMenu(_ref) {
|
|
33
|
+
var onEmojiSelect = _ref.onEmojiSelect;
|
|
34
|
+
var _useEmojiData = useEmojiData(),
|
|
35
|
+
data = _useEmojiData.data;
|
|
36
|
+
var createPicker = function createPicker(ref) {
|
|
37
|
+
new emojiMart.Picker({
|
|
38
|
+
autoFocus: true,
|
|
39
|
+
data: data,
|
|
40
|
+
"native": true,
|
|
41
|
+
onEmojiSelect: onEmojiSelect,
|
|
42
|
+
previewPosition: "none",
|
|
43
|
+
ref: {
|
|
44
|
+
current: ref
|
|
45
|
+
},
|
|
46
|
+
skinTonePosition: "none",
|
|
47
|
+
style: {
|
|
48
|
+
maxWidth: "100%"
|
|
49
|
+
},
|
|
50
|
+
theme: "light"
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54
|
+
ref: createPicker,
|
|
55
|
+
style: {
|
|
56
|
+
minWidth: "350px"
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
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; }
|
|
62
|
+
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(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; }
|
|
63
|
+
var EmojiPicker = function EmojiPicker(_ref) {
|
|
64
|
+
var onSelect = _ref.onSelect,
|
|
65
|
+
dropdownProps = _ref.dropdownProps,
|
|
66
|
+
_ref$open = _ref.open,
|
|
67
|
+
open = _ref$open === void 0 ? false : _ref$open;
|
|
68
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
69
|
+
t = _useTranslation.t;
|
|
70
|
+
var _useState = React.useState(open),
|
|
71
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
72
|
+
isOpen = _useState2[0],
|
|
73
|
+
setIsOpen = _useState2[1];
|
|
74
|
+
var onEmojiClick = function onEmojiClick(emoji) {
|
|
75
|
+
setIsOpen(false);
|
|
76
|
+
onSelect(emoji);
|
|
77
|
+
};
|
|
78
|
+
return /*#__PURE__*/jsxRuntime.jsx(Dropdown, _objectSpread(_objectSpread({
|
|
79
|
+
isOpen: isOpen,
|
|
80
|
+
closeOnEsc: true,
|
|
81
|
+
closeOnSelect: false,
|
|
82
|
+
dropdownProps: {
|
|
83
|
+
className: "neeto-ui-shadow-s z-10"
|
|
84
|
+
},
|
|
85
|
+
position: "bottom-start",
|
|
86
|
+
strategy: "fixed",
|
|
87
|
+
buttonProps: {
|
|
88
|
+
"data-cy": "emoji-picker-dropdown-icon",
|
|
89
|
+
icon: SmileFaceGrey,
|
|
90
|
+
tooltipProps: {
|
|
91
|
+
content: t("neetoMolecules.common.emojiPicker"),
|
|
92
|
+
position: "top",
|
|
93
|
+
touch: ["hold", 500]
|
|
94
|
+
},
|
|
95
|
+
onClick: function onClick() {
|
|
96
|
+
return setIsOpen(true);
|
|
97
|
+
},
|
|
98
|
+
style: "text"
|
|
99
|
+
},
|
|
100
|
+
onClickOutside: function onClickOutside() {
|
|
101
|
+
return setIsOpen(false);
|
|
102
|
+
},
|
|
103
|
+
onClose: function onClose() {
|
|
104
|
+
return setIsOpen(false);
|
|
105
|
+
}
|
|
106
|
+
}, dropdownProps), {}, {
|
|
107
|
+
children: /*#__PURE__*/jsxRuntime.jsx(EmojiPickerMenu, {
|
|
108
|
+
onEmojiSelect: onEmojiClick
|
|
109
|
+
})
|
|
110
|
+
}));
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
module.exports = EmojiPicker;
|
|
114
|
+
//# sourceMappingURL=EmojiPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmojiPicker.js","sources":["../../src/components/EmojiPicker/api.js","../../src/components/EmojiPicker/constants.js","../../src/components/EmojiPicker/hooks/useEmojiData.js","../../src/components/EmojiPicker/EmojiPickerMenu.jsx","../../src/components/EmojiPicker/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nconst fetch = () => axios.get(\"https://cdn.jsdelivr.net/npm/@emoji-mart/data\");\n\nconst emojiPickerApi = { fetch };\n\nexport default emojiPickerApi;\n","export const QUERY_KEYS = { EMOJI_DATA: \"emoji-data\" };\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport emojiPickerApi from \"../api\";\nimport { QUERY_KEYS } from \"../constants\";\n\nexport const useEmojiData = () =>\n useQuery({\n queryKey: [QUERY_KEYS.EMOJI_DATA],\n queryFn: emojiPickerApi.fetch,\n });\n","import { Picker } from \"emoji-mart\";\nimport PropTypes from \"prop-types\";\n\nimport { useEmojiData } from \"./hooks/useEmojiData\";\n\nconst EmojiPickerMenu = ({ onEmojiSelect }) => {\n const { data } = useEmojiData();\n\n const createPicker = ref => {\n new Picker({\n autoFocus: true,\n data,\n native: true,\n onEmojiSelect,\n previewPosition: \"none\",\n ref: { current: ref },\n skinTonePosition: \"none\",\n style: { maxWidth: \"100%\" },\n theme: \"light\",\n });\n };\n\n return <div ref={createPicker} style={{ minWidth: \"350px\" }} />;\n};\n\nEmojiPickerMenu.propTypes = { onEmojiSelect: PropTypes.func };\n\nexport default EmojiPickerMenu;\n","import { useState } from \"react\";\n\nimport { SmileFaceGrey } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmojiPickerMenu from \"./EmojiPickerMenu\";\n\nconst EmojiPicker = ({ onSelect, dropdownProps, open = false }) => {\n const { t } = useTranslation();\n const [isOpen, setIsOpen] = useState(open);\n\n const onEmojiClick = emoji => {\n setIsOpen(false);\n onSelect(emoji);\n };\n\n return (\n <Dropdown\n {...{ isOpen }}\n closeOnEsc\n closeOnSelect={false}\n dropdownProps={{ className: \"neeto-ui-shadow-s z-10\" }}\n position=\"bottom-start\"\n strategy=\"fixed\"\n buttonProps={{\n \"data-cy\": \"emoji-picker-dropdown-icon\",\n icon: SmileFaceGrey,\n tooltipProps: {\n content: t(\"neetoMolecules.common.emojiPicker\"),\n position: \"top\",\n touch: [\"hold\", 500],\n },\n onClick: () => setIsOpen(true),\n style: \"text\",\n }}\n onClickOutside={() => setIsOpen(false)}\n onClose={() => setIsOpen(false)}\n {...dropdownProps}\n >\n <EmojiPickerMenu onEmojiSelect={onEmojiClick} />\n </Dropdown>\n );\n};\n\nEmojiPicker.propTypes = {\n /**\n * Function to be called when an emoji is selected\n */\n onSelect: PropTypes.func,\n /**\n * Props to be passed to the dropdown component.\n */\n dropdownProps: PropTypes.shape({\n strategy: PropTypes.oneOf(Object.values([\"absolute\", \"fixed\"])),\n }),\n /**\n * Whether to open the emoji picker by default or not.\n */\n open: PropTypes.bool,\n};\n\nexport default EmojiPicker;\n"],"names":["fetch","axios","get","emojiPickerApi","QUERY_KEYS","EMOJI_DATA","useEmojiData","useQuery","queryKey","queryFn","EmojiPickerMenu","_ref","onEmojiSelect","_useEmojiData","data","createPicker","ref","Picker","autoFocus","previewPosition","current","skinTonePosition","style","maxWidth","theme","_jsx","minWidth","EmojiPicker","onSelect","dropdownProps","_ref$open","open","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","onEmojiClick","emoji","Dropdown","_objectSpread","closeOnEsc","closeOnSelect","className","position","strategy","buttonProps","icon","SmileFaceGrey","tooltipProps","content","touch","onClick","onClickOutside","onClose","children"],"mappings":";;;;;;;;;;;;;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAKA,GAAA;AAAA,EAAA,OAASC,KAAK,CAACC,GAAG,CAAC,+CAA+C,CAAC,CAAA;AAAA,CAAA,CAAA;AAE9E,IAAMC,cAAc,GAAG;AAAEH,EAAAA,KAAK,EAALA,KAAAA;AAAM,CAAC;;ACJzB,IAAMI,UAAU,GAAG;AAAEC,EAAAA,UAAU,EAAE,YAAA;AAAa,CAAC;;ACK/C,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAA;AAAA,EAAA,OACvBC,mBAAQ,CAAC;AACPC,IAAAA,QAAQ,EAAE,CAACJ,UAAU,CAACC,UAAU,CAAC;IACjCI,OAAO,EAAEN,cAAc,CAACH,KAAAA;AAC1B,GAAC,CAAC,CAAA;AAAA,CAAA;;ACJJ,IAAMU,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAA0B;AAAA,EAAA,IAApBC,aAAa,GAAAD,IAAA,CAAbC,aAAa,CAAA;AACtC,EAAA,IAAAC,aAAA,GAAiBP,YAAY,EAAE;IAAvBQ,IAAI,GAAAD,aAAA,CAAJC,IAAI,CAAA;AAEZ,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,GAAG,EAAI;AAC1B,IAAA,IAAIC,gBAAM,CAAC;AACTC,MAAAA,SAAS,EAAE,IAAI;AACfJ,MAAAA,IAAI,EAAJA,IAAI;AACJ,MAAA,QAAA,EAAQ,IAAI;AACZF,MAAAA,aAAa,EAAbA,aAAa;AACbO,MAAAA,eAAe,EAAE,MAAM;AACvBH,MAAAA,GAAG,EAAE;AAAEI,QAAAA,OAAO,EAAEJ,GAAAA;OAAK;AACrBK,MAAAA,gBAAgB,EAAE,MAAM;AACxBC,MAAAA,KAAK,EAAE;AAAEC,QAAAA,QAAQ,EAAE,MAAA;OAAQ;AAC3BC,MAAAA,KAAK,EAAE,OAAA;AACT,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,oBAAOC,cAAA,CAAA,KAAA,EAAA;AAAKT,IAAAA,GAAG,EAAED,YAAa;AAACO,IAAAA,KAAK,EAAE;AAAEI,MAAAA,QAAQ,EAAE,OAAA;AAAQ,KAAA;AAAE,GAAE,CAAC,CAAA;AACjE,CAAC;;;;ACdD,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAAhB,IAAA,EAAkD;AAAA,EAAA,IAA5CiB,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IAAEC,aAAa,GAAAlB,IAAA,CAAbkB,aAAa;IAAAC,SAAA,GAAAnB,IAAA,CAAEoB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,SAAA,CAAA;AAC1D,EAAA,IAAAE,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AACT,EAAA,IAAAC,SAAA,GAA4BC,cAAQ,CAACL,IAAI,CAAC;IAAAM,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAnCI,IAAAA,MAAM,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,SAAS,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAExB,EAAA,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK,EAAI;IAC5BF,SAAS,CAAC,KAAK,CAAC,CAAA;IAChBZ,QAAQ,CAACc,KAAK,CAAC,CAAA;GAChB,CAAA;AAED,EAAA,oBACEjB,cAAA,CAACkB,QAAQ,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACDL,IAAAA,MAAM,EAANA,MAAM;IACZM,UAAU,EAAA,IAAA;AACVC,IAAAA,aAAa,EAAE,KAAM;AACrBjB,IAAAA,aAAa,EAAE;AAAEkB,MAAAA,SAAS,EAAE,wBAAA;KAA2B;AACvDC,IAAAA,QAAQ,EAAC,cAAc;AACvBC,IAAAA,QAAQ,EAAC,OAAO;AAChBC,IAAAA,WAAW,EAAE;AACX,MAAA,SAAS,EAAE,4BAA4B;AACvCC,MAAAA,IAAI,EAAEC,aAAa;AACnBC,MAAAA,YAAY,EAAE;AACZC,QAAAA,OAAO,EAAEpB,CAAC,CAAC,mCAAmC,CAAC;AAC/Cc,QAAAA,QAAQ,EAAE,KAAK;AACfO,QAAAA,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAA;OACpB;MACDC,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQhB,SAAS,CAAC,IAAI,CAAC,CAAA;AAAA,OAAA;AAC9BlB,MAAAA,KAAK,EAAE,MAAA;KACP;IACFmC,cAAc,EAAE,SAAhBA,cAAcA,GAAA;MAAA,OAAQjB,SAAS,CAAC,KAAK,CAAC,CAAA;KAAC;IACvCkB,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQlB,SAAS,CAAC,KAAK,CAAC,CAAA;AAAA,KAAA;AAAC,GAAA,EAC5BX,aAAa,CAAA,EAAA,EAAA,EAAA;IAAA8B,QAAA,eAEjBlC,cAAA,CAACf,eAAe,EAAA;AAACE,MAAAA,aAAa,EAAE6B,YAAAA;KAAe,CAAA;AAAC,GAAA,CACxC,CAAC,CAAA;AAEf;;;;"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var classnames = require('classnames');
|
|
6
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
7
|
+
var Tooltip = require('@bigbinary/neetoui/Tooltip');
|
|
8
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
9
|
+
var ramda = require('ramda');
|
|
10
|
+
var reactI18next = require('react-i18next');
|
|
11
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
12
|
+
|
|
13
|
+
var groupBy = function groupBy(objectArray, groupKey) {
|
|
14
|
+
return objectArray.reduce(function (data, obj) {
|
|
15
|
+
(data[obj[groupKey]] = data[obj[groupKey]] || []).push(obj);
|
|
16
|
+
return data;
|
|
17
|
+
}, {});
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var EmojiReactions = function EmojiReactions(_ref) {
|
|
21
|
+
var isUpdating = _ref.isUpdating,
|
|
22
|
+
reactions = _ref.reactions,
|
|
23
|
+
_ref$onReactionClick = _ref.onReactionClick,
|
|
24
|
+
onReactionClick = _ref$onReactionClick === void 0 ? neetoCist.noop : _ref$onReactionClick,
|
|
25
|
+
_ref$emojiSize = _ref.emojiSize,
|
|
26
|
+
emojiSize = _ref$emojiSize === void 0 ? "text-sm" : _ref$emojiSize,
|
|
27
|
+
_ref$emojiBoxStyle = _ref.emojiBoxStyle,
|
|
28
|
+
emojiBoxStyle = _ref$emojiBoxStyle === void 0 ? "neeto-ui-bg-white py-1 px-2" : _ref$emojiBoxStyle;
|
|
29
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
30
|
+
t = _useTranslation.t;
|
|
31
|
+
var groupedReactions = React.useMemo(function () {
|
|
32
|
+
return groupBy(reactions || [], "unified");
|
|
33
|
+
}, [reactions]);
|
|
34
|
+
return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
35
|
+
children: Object.entries(groupedReactions).map(function (_ref2) {
|
|
36
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
37
|
+
unified = _ref3[0],
|
|
38
|
+
grouped = _ref3[1];
|
|
39
|
+
var groupedNames = ramda.pluck("userName", reactions).join(", ");
|
|
40
|
+
var reaction = grouped[0];
|
|
41
|
+
return /*#__PURE__*/jsxRuntime.jsx(Tooltip, {
|
|
42
|
+
position: "top",
|
|
43
|
+
touch: ["hold", 500],
|
|
44
|
+
content: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45
|
+
className: "flex flex-col items-center justify-center",
|
|
46
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
47
|
+
className: "neeto-ui-bg-white neeto-ui-rounded mb-1 flex h-10 w-10 items-center justify-center",
|
|
48
|
+
children: reaction["native"]
|
|
49
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
50
|
+
className: "text-center text-xs",
|
|
51
|
+
children: t("neetoMolecules.reactions.content", {
|
|
52
|
+
groupedNames: groupedNames
|
|
53
|
+
})
|
|
54
|
+
})]
|
|
55
|
+
}),
|
|
56
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
57
|
+
"data-cy": "emoji-reactions-".concat(reaction.unified),
|
|
58
|
+
className: classnames(["neeto-ui-rounded-full hover:neeto-ui-bg-gray-100 neeto-ui-bg-gray-100 flex cursor-pointer items-center justify-center px-2 py-1", emojiBoxStyle], {
|
|
59
|
+
"opacity-80": isUpdating
|
|
60
|
+
}),
|
|
61
|
+
onClick: function onClick() {
|
|
62
|
+
return !isUpdating && onReactionClick({
|
|
63
|
+
"native": reaction["native"],
|
|
64
|
+
unified: reaction.unified
|
|
65
|
+
}, grouped);
|
|
66
|
+
},
|
|
67
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(Typography, {
|
|
68
|
+
className: "space-x-2 text-sm",
|
|
69
|
+
style: "body2",
|
|
70
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
71
|
+
className: emojiSize,
|
|
72
|
+
children: reaction["native"]
|
|
73
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
74
|
+
children: grouped.length
|
|
75
|
+
})]
|
|
76
|
+
})
|
|
77
|
+
})
|
|
78
|
+
}, unified);
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
module.exports = EmojiReactions;
|
|
84
|
+
//# sourceMappingURL=EmojiReactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmojiReactions.js","sources":["../../src/components/EmojiReactions/utils.js","../../src/components/EmojiReactions/index.jsx"],"sourcesContent":["export const groupBy = (objectArray, groupKey) =>\n objectArray.reduce((data, obj) => {\n (data[obj[groupKey]] = data[obj[groupKey]] || []).push(obj);\n\n return data;\n }, {});\n","import { useMemo } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { groupBy } from \"./utils\";\n\nconst EmojiReactions = ({\n isUpdating,\n reactions,\n onReactionClick = noop,\n emojiSize = \"text-sm\",\n emojiBoxStyle = \"neeto-ui-bg-white py-1 px-2\",\n}) => {\n const { t } = useTranslation();\n const groupedReactions = useMemo(\n () => groupBy(reactions || [], \"unified\"),\n [reactions]\n );\n\n return (\n <>\n {Object.entries(groupedReactions).map(([unified, grouped]) => {\n const groupedNames = pluck(\"userName\", reactions).join(\", \");\n const reaction = grouped[0];\n\n return (\n <Tooltip\n key={unified}\n position=\"top\"\n touch={[\"hold\", 500]}\n content={\n <div className=\"flex flex-col items-center justify-center\">\n <div className=\"neeto-ui-bg-white neeto-ui-rounded mb-1 flex h-10 w-10 items-center justify-center\">\n {reaction.native}\n </div>\n <p className=\"text-center text-xs\">\n {t(\"neetoMolecules.reactions.content\", { groupedNames })}\n </p>\n </div>\n }\n >\n <div\n data-cy={`emoji-reactions-${reaction.unified}`}\n className={classNames(\n [\n \"neeto-ui-rounded-full hover:neeto-ui-bg-gray-100 neeto-ui-bg-gray-100 flex cursor-pointer items-center justify-center px-2 py-1\",\n emojiBoxStyle,\n ],\n { \"opacity-80\": isUpdating }\n )}\n onClick={() =>\n !isUpdating &&\n onReactionClick(\n {\n native: reaction.native,\n unified: reaction.unified,\n },\n grouped\n )\n }\n >\n <Typography className=\"space-x-2 text-sm\" style=\"body2\">\n <span className={emojiSize}>{reaction.native}</span>\n <span>{grouped.length}</span>\n </Typography>\n </div>\n </Tooltip>\n );\n })}\n </>\n );\n};\n\nEmojiReactions.propTypes = {\n /**\n * Array of reactions to be displayed\n */\n reactions: PropTypes.arrayOf(\n PropTypes.shape({\n native: PropTypes.string,\n unified: PropTypes.string,\n userName: PropTypes.string,\n })\n ),\n /**\n * Callback function to be called when user click on an existing reaction\n */\n onReactionClick: PropTypes.func,\n /**\n * Size of the emoji\n */\n emojiSize: PropTypes.string,\n /**\n * Emoji picker box style\n */\n emojiBoxStyle: PropTypes.string,\n /**\n * Use this flag to block click action while backend is updating.\n */\n isUpdating: PropTypes.bool,\n};\n\nexport default EmojiReactions;\n"],"names":["groupBy","objectArray","groupKey","reduce","data","obj","push","EmojiReactions","_ref","isUpdating","reactions","_ref$onReactionClick","onReactionClick","noop","_ref$emojiSize","emojiSize","_ref$emojiBoxStyle","emojiBoxStyle","_useTranslation","useTranslation","t","groupedReactions","useMemo","_jsx","_Fragment","children","Object","entries","map","_ref2","_ref3","_slicedToArray","unified","grouped","groupedNames","pluck","join","reaction","Tooltip","position","touch","content","_jsxs","className","concat","classNames","onClick","Typography","style","length"],"mappings":"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"}
|