@bigbinary/neeto-molecules 3.15.43 → 3.15.44
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 +353 -0
- package/dist/CalendarView.js.map +1 -0
- package/dist/CardLayout.js +49 -0
- package/dist/CardLayout.js.map +1 -0
- package/dist/Chevron-6dLkaXtR.js +246 -0
- package/dist/Chevron-6dLkaXtR.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 +355 -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-wfVdaB4-.js +256 -0
- package/dist/cjs/Chevron-wfVdaB4-.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 +1 -1
- 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,1161 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var classnames = require('classnames');
|
|
8
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
9
|
+
var useDebounce = require('@bigbinary/neeto-commons-frontend/react-utils/useDebounce');
|
|
10
|
+
var Close = require('@bigbinary/neeto-icons/Close');
|
|
11
|
+
var Dropdown = require('@bigbinary/neetoui/Dropdown');
|
|
12
|
+
var Label = require('@bigbinary/neetoui/Label');
|
|
13
|
+
var Input = require('@bigbinary/neetoui/Input');
|
|
14
|
+
var Button = require('@bigbinary/neetoui/Button');
|
|
15
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
16
|
+
var reactI18next = require('react-i18next');
|
|
17
|
+
var _extends = require('@babel/runtime/helpers/esm/extends');
|
|
18
|
+
var _assertThisInitialized = require('@babel/runtime/helpers/esm/assertThisInitialized');
|
|
19
|
+
var _inheritsLoose = require('@babel/runtime/helpers/esm/inheritsLoose');
|
|
20
|
+
require('@babel/runtime/helpers/esm/objectWithoutPropertiesLoose');
|
|
21
|
+
var Tooltip = require('@bigbinary/neetoui/Tooltip');
|
|
22
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
23
|
+
var injectCss = require('./inject-css-vQvjPR2x.js');
|
|
24
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
25
|
+
|
|
26
|
+
var safeIsNaN = Number.isNaN ||
|
|
27
|
+
function ponyfill(value) {
|
|
28
|
+
return typeof value === 'number' && value !== value;
|
|
29
|
+
};
|
|
30
|
+
function isEqual(first, second) {
|
|
31
|
+
if (first === second) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
if (safeIsNaN(first) && safeIsNaN(second)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
function areInputsEqual(newInputs, lastInputs) {
|
|
40
|
+
if (newInputs.length !== lastInputs.length) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
for (var i = 0; i < newInputs.length; i++) {
|
|
44
|
+
if (!isEqual(newInputs[i], lastInputs[i])) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function memoizeOne(resultFn, isEqual) {
|
|
52
|
+
if (isEqual === void 0) { isEqual = areInputsEqual; }
|
|
53
|
+
var lastThis;
|
|
54
|
+
var lastArgs = [];
|
|
55
|
+
var lastResult;
|
|
56
|
+
var calledOnce = false;
|
|
57
|
+
function memoized() {
|
|
58
|
+
var newArgs = [];
|
|
59
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
60
|
+
newArgs[_i] = arguments[_i];
|
|
61
|
+
}
|
|
62
|
+
if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {
|
|
63
|
+
return lastResult;
|
|
64
|
+
}
|
|
65
|
+
lastResult = resultFn.apply(this, newArgs);
|
|
66
|
+
calledOnce = true;
|
|
67
|
+
lastThis = this;
|
|
68
|
+
lastArgs = newArgs;
|
|
69
|
+
return lastResult;
|
|
70
|
+
}
|
|
71
|
+
return memoized;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Animation frame based implementation of setTimeout.
|
|
75
|
+
// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js
|
|
76
|
+
var hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';
|
|
77
|
+
var now = hasNativePerformanceNow ? function () {
|
|
78
|
+
return performance.now();
|
|
79
|
+
} : function () {
|
|
80
|
+
return Date.now();
|
|
81
|
+
};
|
|
82
|
+
function cancelTimeout(timeoutID) {
|
|
83
|
+
cancelAnimationFrame(timeoutID.id);
|
|
84
|
+
}
|
|
85
|
+
function requestTimeout(callback, delay) {
|
|
86
|
+
var start = now();
|
|
87
|
+
|
|
88
|
+
function tick() {
|
|
89
|
+
if (now() - start >= delay) {
|
|
90
|
+
callback.call(null);
|
|
91
|
+
} else {
|
|
92
|
+
timeoutID.id = requestAnimationFrame(tick);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
var timeoutID = {
|
|
97
|
+
id: requestAnimationFrame(tick)
|
|
98
|
+
};
|
|
99
|
+
return timeoutID;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
var size = -1; // This utility copied from "dom-helpers" package.
|
|
103
|
+
|
|
104
|
+
function getScrollbarSize(recalculate) {
|
|
105
|
+
if (recalculate === void 0) {
|
|
106
|
+
recalculate = false;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (size === -1 || recalculate) {
|
|
110
|
+
var div = document.createElement('div');
|
|
111
|
+
var style = div.style;
|
|
112
|
+
style.width = '50px';
|
|
113
|
+
style.height = '50px';
|
|
114
|
+
style.overflow = 'scroll';
|
|
115
|
+
document.body.appendChild(div);
|
|
116
|
+
size = div.offsetWidth - div.clientWidth;
|
|
117
|
+
document.body.removeChild(div);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return size;
|
|
121
|
+
}
|
|
122
|
+
var cachedRTLResult = null; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.
|
|
123
|
+
// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).
|
|
124
|
+
// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.
|
|
125
|
+
// The safest way to check this is to intentionally set a negative offset,
|
|
126
|
+
// and then verify that the subsequent "scroll" event matches the negative offset.
|
|
127
|
+
// If it does not match, then we can assume a non-standard RTL scroll implementation.
|
|
128
|
+
|
|
129
|
+
function getRTLOffsetType(recalculate) {
|
|
130
|
+
if (recalculate === void 0) {
|
|
131
|
+
recalculate = false;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (cachedRTLResult === null || recalculate) {
|
|
135
|
+
var outerDiv = document.createElement('div');
|
|
136
|
+
var outerStyle = outerDiv.style;
|
|
137
|
+
outerStyle.width = '50px';
|
|
138
|
+
outerStyle.height = '50px';
|
|
139
|
+
outerStyle.overflow = 'scroll';
|
|
140
|
+
outerStyle.direction = 'rtl';
|
|
141
|
+
var innerDiv = document.createElement('div');
|
|
142
|
+
var innerStyle = innerDiv.style;
|
|
143
|
+
innerStyle.width = '100px';
|
|
144
|
+
innerStyle.height = '100px';
|
|
145
|
+
outerDiv.appendChild(innerDiv);
|
|
146
|
+
document.body.appendChild(outerDiv);
|
|
147
|
+
|
|
148
|
+
if (outerDiv.scrollLeft > 0) {
|
|
149
|
+
cachedRTLResult = 'positive-descending';
|
|
150
|
+
} else {
|
|
151
|
+
outerDiv.scrollLeft = 1;
|
|
152
|
+
|
|
153
|
+
if (outerDiv.scrollLeft === 0) {
|
|
154
|
+
cachedRTLResult = 'negative';
|
|
155
|
+
} else {
|
|
156
|
+
cachedRTLResult = 'positive-ascending';
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
document.body.removeChild(outerDiv);
|
|
161
|
+
return cachedRTLResult;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return cachedRTLResult;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
var IS_SCROLLING_DEBOUNCE_INTERVAL = 150;
|
|
168
|
+
|
|
169
|
+
var defaultItemKey = function defaultItemKey(_ref) {
|
|
170
|
+
var columnIndex = _ref.columnIndex;
|
|
171
|
+
_ref.data;
|
|
172
|
+
var rowIndex = _ref.rowIndex;
|
|
173
|
+
return rowIndex + ":" + columnIndex;
|
|
174
|
+
}; // In DEV mode, this Set helps us only log a warning once per component instance.
|
|
175
|
+
// This avoids spamming the console every time a render happens.
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
var devWarningsOverscanCount = null;
|
|
179
|
+
var devWarningsOverscanRowsColumnsCount = null;
|
|
180
|
+
var devWarningsTagName = null;
|
|
181
|
+
|
|
182
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
183
|
+
if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {
|
|
184
|
+
devWarningsOverscanCount = /*#__PURE__*/new WeakSet();
|
|
185
|
+
devWarningsOverscanRowsColumnsCount = /*#__PURE__*/new WeakSet();
|
|
186
|
+
devWarningsTagName = /*#__PURE__*/new WeakSet();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function createGridComponent(_ref2) {
|
|
191
|
+
var _class;
|
|
192
|
+
|
|
193
|
+
var getColumnOffset = _ref2.getColumnOffset,
|
|
194
|
+
getColumnStartIndexForOffset = _ref2.getColumnStartIndexForOffset,
|
|
195
|
+
getColumnStopIndexForStartIndex = _ref2.getColumnStopIndexForStartIndex,
|
|
196
|
+
getColumnWidth = _ref2.getColumnWidth,
|
|
197
|
+
getEstimatedTotalHeight = _ref2.getEstimatedTotalHeight,
|
|
198
|
+
getEstimatedTotalWidth = _ref2.getEstimatedTotalWidth,
|
|
199
|
+
getOffsetForColumnAndAlignment = _ref2.getOffsetForColumnAndAlignment,
|
|
200
|
+
getOffsetForRowAndAlignment = _ref2.getOffsetForRowAndAlignment,
|
|
201
|
+
getRowHeight = _ref2.getRowHeight,
|
|
202
|
+
getRowOffset = _ref2.getRowOffset,
|
|
203
|
+
getRowStartIndexForOffset = _ref2.getRowStartIndexForOffset,
|
|
204
|
+
getRowStopIndexForStartIndex = _ref2.getRowStopIndexForStartIndex,
|
|
205
|
+
initInstanceProps = _ref2.initInstanceProps,
|
|
206
|
+
shouldResetStyleCacheOnItemSizeChange = _ref2.shouldResetStyleCacheOnItemSizeChange,
|
|
207
|
+
validateProps = _ref2.validateProps;
|
|
208
|
+
return _class = /*#__PURE__*/function (_PureComponent) {
|
|
209
|
+
_inheritsLoose(Grid, _PureComponent);
|
|
210
|
+
|
|
211
|
+
// Always use explicit constructor for React components.
|
|
212
|
+
// It produces less code after transpilation. (#26)
|
|
213
|
+
// eslint-disable-next-line no-useless-constructor
|
|
214
|
+
function Grid(props) {
|
|
215
|
+
var _this;
|
|
216
|
+
|
|
217
|
+
_this = _PureComponent.call(this, props) || this;
|
|
218
|
+
_this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));
|
|
219
|
+
_this._resetIsScrollingTimeoutId = null;
|
|
220
|
+
_this._outerRef = void 0;
|
|
221
|
+
_this.state = {
|
|
222
|
+
instance: _assertThisInitialized(_this),
|
|
223
|
+
isScrolling: false,
|
|
224
|
+
horizontalScrollDirection: 'forward',
|
|
225
|
+
scrollLeft: typeof _this.props.initialScrollLeft === 'number' ? _this.props.initialScrollLeft : 0,
|
|
226
|
+
scrollTop: typeof _this.props.initialScrollTop === 'number' ? _this.props.initialScrollTop : 0,
|
|
227
|
+
scrollUpdateWasRequested: false,
|
|
228
|
+
verticalScrollDirection: 'forward'
|
|
229
|
+
};
|
|
230
|
+
_this._callOnItemsRendered = void 0;
|
|
231
|
+
_this._callOnItemsRendered = memoizeOne(function (overscanColumnStartIndex, overscanColumnStopIndex, overscanRowStartIndex, overscanRowStopIndex, visibleColumnStartIndex, visibleColumnStopIndex, visibleRowStartIndex, visibleRowStopIndex) {
|
|
232
|
+
return _this.props.onItemsRendered({
|
|
233
|
+
overscanColumnStartIndex: overscanColumnStartIndex,
|
|
234
|
+
overscanColumnStopIndex: overscanColumnStopIndex,
|
|
235
|
+
overscanRowStartIndex: overscanRowStartIndex,
|
|
236
|
+
overscanRowStopIndex: overscanRowStopIndex,
|
|
237
|
+
visibleColumnStartIndex: visibleColumnStartIndex,
|
|
238
|
+
visibleColumnStopIndex: visibleColumnStopIndex,
|
|
239
|
+
visibleRowStartIndex: visibleRowStartIndex,
|
|
240
|
+
visibleRowStopIndex: visibleRowStopIndex
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
_this._callOnScroll = void 0;
|
|
244
|
+
_this._callOnScroll = memoizeOne(function (scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested) {
|
|
245
|
+
return _this.props.onScroll({
|
|
246
|
+
horizontalScrollDirection: horizontalScrollDirection,
|
|
247
|
+
scrollLeft: scrollLeft,
|
|
248
|
+
scrollTop: scrollTop,
|
|
249
|
+
verticalScrollDirection: verticalScrollDirection,
|
|
250
|
+
scrollUpdateWasRequested: scrollUpdateWasRequested
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
_this._getItemStyle = void 0;
|
|
254
|
+
|
|
255
|
+
_this._getItemStyle = function (rowIndex, columnIndex) {
|
|
256
|
+
var _this$props = _this.props,
|
|
257
|
+
columnWidth = _this$props.columnWidth,
|
|
258
|
+
direction = _this$props.direction,
|
|
259
|
+
rowHeight = _this$props.rowHeight;
|
|
260
|
+
|
|
261
|
+
var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && columnWidth, shouldResetStyleCacheOnItemSizeChange && direction, shouldResetStyleCacheOnItemSizeChange && rowHeight);
|
|
262
|
+
|
|
263
|
+
var key = rowIndex + ":" + columnIndex;
|
|
264
|
+
var style;
|
|
265
|
+
|
|
266
|
+
if (itemStyleCache.hasOwnProperty(key)) {
|
|
267
|
+
style = itemStyleCache[key];
|
|
268
|
+
} else {
|
|
269
|
+
var _offset = getColumnOffset(_this.props, columnIndex, _this._instanceProps);
|
|
270
|
+
|
|
271
|
+
var isRtl = direction === 'rtl';
|
|
272
|
+
itemStyleCache[key] = style = {
|
|
273
|
+
position: 'absolute',
|
|
274
|
+
left: isRtl ? undefined : _offset,
|
|
275
|
+
right: isRtl ? _offset : undefined,
|
|
276
|
+
top: getRowOffset(_this.props, rowIndex, _this._instanceProps),
|
|
277
|
+
height: getRowHeight(_this.props, rowIndex, _this._instanceProps),
|
|
278
|
+
width: getColumnWidth(_this.props, columnIndex, _this._instanceProps)
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return style;
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
_this._getItemStyleCache = void 0;
|
|
286
|
+
_this._getItemStyleCache = memoizeOne(function (_, __, ___) {
|
|
287
|
+
return {};
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
_this._onScroll = function (event) {
|
|
291
|
+
var _event$currentTarget = event.currentTarget,
|
|
292
|
+
clientHeight = _event$currentTarget.clientHeight,
|
|
293
|
+
clientWidth = _event$currentTarget.clientWidth,
|
|
294
|
+
scrollLeft = _event$currentTarget.scrollLeft,
|
|
295
|
+
scrollTop = _event$currentTarget.scrollTop,
|
|
296
|
+
scrollHeight = _event$currentTarget.scrollHeight,
|
|
297
|
+
scrollWidth = _event$currentTarget.scrollWidth;
|
|
298
|
+
|
|
299
|
+
_this.setState(function (prevState) {
|
|
300
|
+
if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {
|
|
301
|
+
// Scroll position may have been updated by cDM/cDU,
|
|
302
|
+
// In which case we don't need to trigger another render,
|
|
303
|
+
// And we don't want to update state.isScrolling.
|
|
304
|
+
return null;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
var direction = _this.props.direction; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.
|
|
308
|
+
// This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).
|
|
309
|
+
// It's also easier for this component if we convert offsets to the same format as they would be in for ltr.
|
|
310
|
+
// So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.
|
|
311
|
+
|
|
312
|
+
var calculatedScrollLeft = scrollLeft;
|
|
313
|
+
|
|
314
|
+
if (direction === 'rtl') {
|
|
315
|
+
switch (getRTLOffsetType()) {
|
|
316
|
+
case 'negative':
|
|
317
|
+
calculatedScrollLeft = -scrollLeft;
|
|
318
|
+
break;
|
|
319
|
+
|
|
320
|
+
case 'positive-descending':
|
|
321
|
+
calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
} // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
calculatedScrollLeft = Math.max(0, Math.min(calculatedScrollLeft, scrollWidth - clientWidth));
|
|
328
|
+
var calculatedScrollTop = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));
|
|
329
|
+
return {
|
|
330
|
+
isScrolling: true,
|
|
331
|
+
horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',
|
|
332
|
+
scrollLeft: calculatedScrollLeft,
|
|
333
|
+
scrollTop: calculatedScrollTop,
|
|
334
|
+
verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward',
|
|
335
|
+
scrollUpdateWasRequested: false
|
|
336
|
+
};
|
|
337
|
+
}, _this._resetIsScrollingDebounced);
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
_this._outerRefSetter = function (ref) {
|
|
341
|
+
var outerRef = _this.props.outerRef;
|
|
342
|
+
_this._outerRef = ref;
|
|
343
|
+
|
|
344
|
+
if (typeof outerRef === 'function') {
|
|
345
|
+
outerRef(ref);
|
|
346
|
+
} else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {
|
|
347
|
+
outerRef.current = ref;
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
_this._resetIsScrollingDebounced = function () {
|
|
352
|
+
if (_this._resetIsScrollingTimeoutId !== null) {
|
|
353
|
+
cancelTimeout(_this._resetIsScrollingTimeoutId);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
_this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL);
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
_this._resetIsScrolling = function () {
|
|
360
|
+
_this._resetIsScrollingTimeoutId = null;
|
|
361
|
+
|
|
362
|
+
_this.setState({
|
|
363
|
+
isScrolling: false
|
|
364
|
+
}, function () {
|
|
365
|
+
// Clear style cache after state update has been committed.
|
|
366
|
+
// This way we don't break pure sCU for items that don't use isScrolling param.
|
|
367
|
+
_this._getItemStyleCache(-1);
|
|
368
|
+
});
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
return _this;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
Grid.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
|
|
375
|
+
validateSharedProps(nextProps, prevState);
|
|
376
|
+
validateProps(nextProps);
|
|
377
|
+
return null;
|
|
378
|
+
};
|
|
379
|
+
|
|
380
|
+
var _proto = Grid.prototype;
|
|
381
|
+
|
|
382
|
+
_proto.scrollTo = function scrollTo(_ref3) {
|
|
383
|
+
var scrollLeft = _ref3.scrollLeft,
|
|
384
|
+
scrollTop = _ref3.scrollTop;
|
|
385
|
+
|
|
386
|
+
if (scrollLeft !== undefined) {
|
|
387
|
+
scrollLeft = Math.max(0, scrollLeft);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
if (scrollTop !== undefined) {
|
|
391
|
+
scrollTop = Math.max(0, scrollTop);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
this.setState(function (prevState) {
|
|
395
|
+
if (scrollLeft === undefined) {
|
|
396
|
+
scrollLeft = prevState.scrollLeft;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
if (scrollTop === undefined) {
|
|
400
|
+
scrollTop = prevState.scrollTop;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {
|
|
404
|
+
return null;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
return {
|
|
408
|
+
horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',
|
|
409
|
+
scrollLeft: scrollLeft,
|
|
410
|
+
scrollTop: scrollTop,
|
|
411
|
+
scrollUpdateWasRequested: true,
|
|
412
|
+
verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward'
|
|
413
|
+
};
|
|
414
|
+
}, this._resetIsScrollingDebounced);
|
|
415
|
+
};
|
|
416
|
+
|
|
417
|
+
_proto.scrollToItem = function scrollToItem(_ref4) {
|
|
418
|
+
var _ref4$align = _ref4.align,
|
|
419
|
+
align = _ref4$align === void 0 ? 'auto' : _ref4$align,
|
|
420
|
+
columnIndex = _ref4.columnIndex,
|
|
421
|
+
rowIndex = _ref4.rowIndex;
|
|
422
|
+
var _this$props2 = this.props,
|
|
423
|
+
columnCount = _this$props2.columnCount,
|
|
424
|
+
height = _this$props2.height,
|
|
425
|
+
rowCount = _this$props2.rowCount,
|
|
426
|
+
width = _this$props2.width;
|
|
427
|
+
var _this$state = this.state,
|
|
428
|
+
scrollLeft = _this$state.scrollLeft,
|
|
429
|
+
scrollTop = _this$state.scrollTop;
|
|
430
|
+
var scrollbarSize = getScrollbarSize();
|
|
431
|
+
|
|
432
|
+
if (columnIndex !== undefined) {
|
|
433
|
+
columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
if (rowIndex !== undefined) {
|
|
437
|
+
rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);
|
|
441
|
+
var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); // The scrollbar size should be considered when scrolling an item into view,
|
|
442
|
+
// to ensure it's fully visible.
|
|
443
|
+
// But we only need to account for its size when it's actually visible.
|
|
444
|
+
|
|
445
|
+
var horizontalScrollbarSize = estimatedTotalWidth > width ? scrollbarSize : 0;
|
|
446
|
+
var verticalScrollbarSize = estimatedTotalHeight > height ? scrollbarSize : 0;
|
|
447
|
+
this.scrollTo({
|
|
448
|
+
scrollLeft: columnIndex !== undefined ? getOffsetForColumnAndAlignment(this.props, columnIndex, align, scrollLeft, this._instanceProps, verticalScrollbarSize) : scrollLeft,
|
|
449
|
+
scrollTop: rowIndex !== undefined ? getOffsetForRowAndAlignment(this.props, rowIndex, align, scrollTop, this._instanceProps, horizontalScrollbarSize) : scrollTop
|
|
450
|
+
});
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
_proto.componentDidMount = function componentDidMount() {
|
|
454
|
+
var _this$props3 = this.props,
|
|
455
|
+
initialScrollLeft = _this$props3.initialScrollLeft,
|
|
456
|
+
initialScrollTop = _this$props3.initialScrollTop;
|
|
457
|
+
|
|
458
|
+
if (this._outerRef != null) {
|
|
459
|
+
var outerRef = this._outerRef;
|
|
460
|
+
|
|
461
|
+
if (typeof initialScrollLeft === 'number') {
|
|
462
|
+
outerRef.scrollLeft = initialScrollLeft;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
if (typeof initialScrollTop === 'number') {
|
|
466
|
+
outerRef.scrollTop = initialScrollTop;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
this._callPropsCallbacks();
|
|
471
|
+
};
|
|
472
|
+
|
|
473
|
+
_proto.componentDidUpdate = function componentDidUpdate() {
|
|
474
|
+
var direction = this.props.direction;
|
|
475
|
+
var _this$state2 = this.state,
|
|
476
|
+
scrollLeft = _this$state2.scrollLeft,
|
|
477
|
+
scrollTop = _this$state2.scrollTop,
|
|
478
|
+
scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;
|
|
479
|
+
|
|
480
|
+
if (scrollUpdateWasRequested && this._outerRef != null) {
|
|
481
|
+
// TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.
|
|
482
|
+
// This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).
|
|
483
|
+
// So we need to determine which browser behavior we're dealing with, and mimic it.
|
|
484
|
+
var outerRef = this._outerRef;
|
|
485
|
+
|
|
486
|
+
if (direction === 'rtl') {
|
|
487
|
+
switch (getRTLOffsetType()) {
|
|
488
|
+
case 'negative':
|
|
489
|
+
outerRef.scrollLeft = -scrollLeft;
|
|
490
|
+
break;
|
|
491
|
+
|
|
492
|
+
case 'positive-ascending':
|
|
493
|
+
outerRef.scrollLeft = scrollLeft;
|
|
494
|
+
break;
|
|
495
|
+
|
|
496
|
+
default:
|
|
497
|
+
var clientWidth = outerRef.clientWidth,
|
|
498
|
+
scrollWidth = outerRef.scrollWidth;
|
|
499
|
+
outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;
|
|
500
|
+
break;
|
|
501
|
+
}
|
|
502
|
+
} else {
|
|
503
|
+
outerRef.scrollLeft = Math.max(0, scrollLeft);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
outerRef.scrollTop = Math.max(0, scrollTop);
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
this._callPropsCallbacks();
|
|
510
|
+
};
|
|
511
|
+
|
|
512
|
+
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
513
|
+
if (this._resetIsScrollingTimeoutId !== null) {
|
|
514
|
+
cancelTimeout(this._resetIsScrollingTimeoutId);
|
|
515
|
+
}
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
_proto.render = function render() {
|
|
519
|
+
var _this$props4 = this.props,
|
|
520
|
+
children = _this$props4.children,
|
|
521
|
+
className = _this$props4.className,
|
|
522
|
+
columnCount = _this$props4.columnCount,
|
|
523
|
+
direction = _this$props4.direction,
|
|
524
|
+
height = _this$props4.height,
|
|
525
|
+
innerRef = _this$props4.innerRef,
|
|
526
|
+
innerElementType = _this$props4.innerElementType,
|
|
527
|
+
innerTagName = _this$props4.innerTagName,
|
|
528
|
+
itemData = _this$props4.itemData,
|
|
529
|
+
_this$props4$itemKey = _this$props4.itemKey,
|
|
530
|
+
itemKey = _this$props4$itemKey === void 0 ? defaultItemKey : _this$props4$itemKey,
|
|
531
|
+
outerElementType = _this$props4.outerElementType,
|
|
532
|
+
outerTagName = _this$props4.outerTagName,
|
|
533
|
+
rowCount = _this$props4.rowCount,
|
|
534
|
+
style = _this$props4.style,
|
|
535
|
+
useIsScrolling = _this$props4.useIsScrolling,
|
|
536
|
+
width = _this$props4.width;
|
|
537
|
+
var isScrolling = this.state.isScrolling;
|
|
538
|
+
|
|
539
|
+
var _this$_getHorizontalR = this._getHorizontalRangeToRender(),
|
|
540
|
+
columnStartIndex = _this$_getHorizontalR[0],
|
|
541
|
+
columnStopIndex = _this$_getHorizontalR[1];
|
|
542
|
+
|
|
543
|
+
var _this$_getVerticalRan = this._getVerticalRangeToRender(),
|
|
544
|
+
rowStartIndex = _this$_getVerticalRan[0],
|
|
545
|
+
rowStopIndex = _this$_getVerticalRan[1];
|
|
546
|
+
|
|
547
|
+
var items = [];
|
|
548
|
+
|
|
549
|
+
if (columnCount > 0 && rowCount) {
|
|
550
|
+
for (var _rowIndex = rowStartIndex; _rowIndex <= rowStopIndex; _rowIndex++) {
|
|
551
|
+
for (var _columnIndex = columnStartIndex; _columnIndex <= columnStopIndex; _columnIndex++) {
|
|
552
|
+
items.push(React.createElement(children, {
|
|
553
|
+
columnIndex: _columnIndex,
|
|
554
|
+
data: itemData,
|
|
555
|
+
isScrolling: useIsScrolling ? isScrolling : undefined,
|
|
556
|
+
key: itemKey({
|
|
557
|
+
columnIndex: _columnIndex,
|
|
558
|
+
data: itemData,
|
|
559
|
+
rowIndex: _rowIndex
|
|
560
|
+
}),
|
|
561
|
+
rowIndex: _rowIndex,
|
|
562
|
+
style: this._getItemStyle(_rowIndex, _columnIndex)
|
|
563
|
+
}));
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
} // Read this value AFTER items have been created,
|
|
567
|
+
// So their actual sizes (if variable) are taken into consideration.
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);
|
|
571
|
+
var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps);
|
|
572
|
+
return React.createElement(outerElementType || outerTagName || 'div', {
|
|
573
|
+
className: className,
|
|
574
|
+
onScroll: this._onScroll,
|
|
575
|
+
ref: this._outerRefSetter,
|
|
576
|
+
style: _extends({
|
|
577
|
+
position: 'relative',
|
|
578
|
+
height: height,
|
|
579
|
+
width: width,
|
|
580
|
+
overflow: 'auto',
|
|
581
|
+
WebkitOverflowScrolling: 'touch',
|
|
582
|
+
willChange: 'transform',
|
|
583
|
+
direction: direction
|
|
584
|
+
}, style)
|
|
585
|
+
}, React.createElement(innerElementType || innerTagName || 'div', {
|
|
586
|
+
children: items,
|
|
587
|
+
ref: innerRef,
|
|
588
|
+
style: {
|
|
589
|
+
height: estimatedTotalHeight,
|
|
590
|
+
pointerEvents: isScrolling ? 'none' : undefined,
|
|
591
|
+
width: estimatedTotalWidth
|
|
592
|
+
}
|
|
593
|
+
}));
|
|
594
|
+
};
|
|
595
|
+
|
|
596
|
+
_proto._callPropsCallbacks = function _callPropsCallbacks() {
|
|
597
|
+
var _this$props5 = this.props,
|
|
598
|
+
columnCount = _this$props5.columnCount,
|
|
599
|
+
onItemsRendered = _this$props5.onItemsRendered,
|
|
600
|
+
onScroll = _this$props5.onScroll,
|
|
601
|
+
rowCount = _this$props5.rowCount;
|
|
602
|
+
|
|
603
|
+
if (typeof onItemsRendered === 'function') {
|
|
604
|
+
if (columnCount > 0 && rowCount > 0) {
|
|
605
|
+
var _this$_getHorizontalR2 = this._getHorizontalRangeToRender(),
|
|
606
|
+
_overscanColumnStartIndex = _this$_getHorizontalR2[0],
|
|
607
|
+
_overscanColumnStopIndex = _this$_getHorizontalR2[1],
|
|
608
|
+
_visibleColumnStartIndex = _this$_getHorizontalR2[2],
|
|
609
|
+
_visibleColumnStopIndex = _this$_getHorizontalR2[3];
|
|
610
|
+
|
|
611
|
+
var _this$_getVerticalRan2 = this._getVerticalRangeToRender(),
|
|
612
|
+
_overscanRowStartIndex = _this$_getVerticalRan2[0],
|
|
613
|
+
_overscanRowStopIndex = _this$_getVerticalRan2[1],
|
|
614
|
+
_visibleRowStartIndex = _this$_getVerticalRan2[2],
|
|
615
|
+
_visibleRowStopIndex = _this$_getVerticalRan2[3];
|
|
616
|
+
|
|
617
|
+
this._callOnItemsRendered(_overscanColumnStartIndex, _overscanColumnStopIndex, _overscanRowStartIndex, _overscanRowStopIndex, _visibleColumnStartIndex, _visibleColumnStopIndex, _visibleRowStartIndex, _visibleRowStopIndex);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
if (typeof onScroll === 'function') {
|
|
622
|
+
var _this$state3 = this.state,
|
|
623
|
+
_horizontalScrollDirection = _this$state3.horizontalScrollDirection,
|
|
624
|
+
_scrollLeft = _this$state3.scrollLeft,
|
|
625
|
+
_scrollTop = _this$state3.scrollTop,
|
|
626
|
+
_scrollUpdateWasRequested = _this$state3.scrollUpdateWasRequested,
|
|
627
|
+
_verticalScrollDirection = _this$state3.verticalScrollDirection;
|
|
628
|
+
|
|
629
|
+
this._callOnScroll(_scrollLeft, _scrollTop, _horizontalScrollDirection, _verticalScrollDirection, _scrollUpdateWasRequested);
|
|
630
|
+
}
|
|
631
|
+
} // Lazily create and cache item styles while scrolling,
|
|
632
|
+
// So that pure component sCU will prevent re-renders.
|
|
633
|
+
// We maintain this cache, and pass a style prop rather than index,
|
|
634
|
+
// So that List can clear cached styles and force item re-render if necessary.
|
|
635
|
+
;
|
|
636
|
+
|
|
637
|
+
_proto._getHorizontalRangeToRender = function _getHorizontalRangeToRender() {
|
|
638
|
+
var _this$props6 = this.props,
|
|
639
|
+
columnCount = _this$props6.columnCount,
|
|
640
|
+
overscanColumnCount = _this$props6.overscanColumnCount,
|
|
641
|
+
overscanColumnsCount = _this$props6.overscanColumnsCount,
|
|
642
|
+
overscanCount = _this$props6.overscanCount,
|
|
643
|
+
rowCount = _this$props6.rowCount;
|
|
644
|
+
var _this$state4 = this.state,
|
|
645
|
+
horizontalScrollDirection = _this$state4.horizontalScrollDirection,
|
|
646
|
+
isScrolling = _this$state4.isScrolling,
|
|
647
|
+
scrollLeft = _this$state4.scrollLeft;
|
|
648
|
+
var overscanCountResolved = overscanColumnCount || overscanColumnsCount || overscanCount || 1;
|
|
649
|
+
|
|
650
|
+
if (columnCount === 0 || rowCount === 0) {
|
|
651
|
+
return [0, 0, 0, 0];
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
var startIndex = getColumnStartIndexForOffset(this.props, scrollLeft, this._instanceProps);
|
|
655
|
+
var stopIndex = getColumnStopIndexForStartIndex(this.props, startIndex, scrollLeft, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.
|
|
656
|
+
// If there isn't at least one extra item, tab loops back around.
|
|
657
|
+
|
|
658
|
+
var overscanBackward = !isScrolling || horizontalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;
|
|
659
|
+
var overscanForward = !isScrolling || horizontalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;
|
|
660
|
+
return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];
|
|
661
|
+
};
|
|
662
|
+
|
|
663
|
+
_proto._getVerticalRangeToRender = function _getVerticalRangeToRender() {
|
|
664
|
+
var _this$props7 = this.props,
|
|
665
|
+
columnCount = _this$props7.columnCount,
|
|
666
|
+
overscanCount = _this$props7.overscanCount,
|
|
667
|
+
overscanRowCount = _this$props7.overscanRowCount,
|
|
668
|
+
overscanRowsCount = _this$props7.overscanRowsCount,
|
|
669
|
+
rowCount = _this$props7.rowCount;
|
|
670
|
+
var _this$state5 = this.state,
|
|
671
|
+
isScrolling = _this$state5.isScrolling,
|
|
672
|
+
verticalScrollDirection = _this$state5.verticalScrollDirection,
|
|
673
|
+
scrollTop = _this$state5.scrollTop;
|
|
674
|
+
var overscanCountResolved = overscanRowCount || overscanRowsCount || overscanCount || 1;
|
|
675
|
+
|
|
676
|
+
if (columnCount === 0 || rowCount === 0) {
|
|
677
|
+
return [0, 0, 0, 0];
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
var startIndex = getRowStartIndexForOffset(this.props, scrollTop, this._instanceProps);
|
|
681
|
+
var stopIndex = getRowStopIndexForStartIndex(this.props, startIndex, scrollTop, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.
|
|
682
|
+
// If there isn't at least one extra item, tab loops back around.
|
|
683
|
+
|
|
684
|
+
var overscanBackward = !isScrolling || verticalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;
|
|
685
|
+
var overscanForward = !isScrolling || verticalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;
|
|
686
|
+
return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];
|
|
687
|
+
};
|
|
688
|
+
|
|
689
|
+
return Grid;
|
|
690
|
+
}(React.PureComponent), _class.defaultProps = {
|
|
691
|
+
direction: 'ltr',
|
|
692
|
+
itemData: undefined,
|
|
693
|
+
useIsScrolling: false
|
|
694
|
+
}, _class;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
var validateSharedProps = function validateSharedProps(_ref5, _ref6) {
|
|
698
|
+
var children = _ref5.children,
|
|
699
|
+
direction = _ref5.direction,
|
|
700
|
+
height = _ref5.height,
|
|
701
|
+
innerTagName = _ref5.innerTagName,
|
|
702
|
+
outerTagName = _ref5.outerTagName,
|
|
703
|
+
overscanColumnsCount = _ref5.overscanColumnsCount,
|
|
704
|
+
overscanCount = _ref5.overscanCount,
|
|
705
|
+
overscanRowsCount = _ref5.overscanRowsCount,
|
|
706
|
+
width = _ref5.width;
|
|
707
|
+
var instance = _ref6.instance;
|
|
708
|
+
|
|
709
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
710
|
+
if (typeof overscanCount === 'number') {
|
|
711
|
+
if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {
|
|
712
|
+
devWarningsOverscanCount.add(instance);
|
|
713
|
+
console.warn('The overscanCount prop has been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
if (typeof overscanColumnsCount === 'number' || typeof overscanRowsCount === 'number') {
|
|
718
|
+
if (devWarningsOverscanRowsColumnsCount && !devWarningsOverscanRowsColumnsCount.has(instance)) {
|
|
719
|
+
devWarningsOverscanRowsColumnsCount.add(instance);
|
|
720
|
+
console.warn('The overscanColumnsCount and overscanRowsCount props have been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
if (innerTagName != null || outerTagName != null) {
|
|
725
|
+
if (devWarningsTagName && !devWarningsTagName.has(instance)) {
|
|
726
|
+
devWarningsTagName.add(instance);
|
|
727
|
+
console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
if (children == null) {
|
|
732
|
+
throw Error('An invalid "children" prop has been specified. ' + 'Value should be a React component. ' + ("\"" + (children === null ? 'null' : typeof children) + "\" was specified."));
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
switch (direction) {
|
|
736
|
+
case 'ltr':
|
|
737
|
+
case 'rtl':
|
|
738
|
+
// Valid values
|
|
739
|
+
break;
|
|
740
|
+
|
|
741
|
+
default:
|
|
742
|
+
throw Error('An invalid "direction" prop has been specified. ' + 'Value should be either "ltr" or "rtl". ' + ("\"" + direction + "\" was specified."));
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
if (typeof width !== 'number') {
|
|
746
|
+
throw Error('An invalid "width" prop has been specified. ' + 'Grids must specify a number for width. ' + ("\"" + (width === null ? 'null' : typeof width) + "\" was specified."));
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
if (typeof height !== 'number') {
|
|
750
|
+
throw Error('An invalid "height" prop has been specified. ' + 'Grids must specify a number for height. ' + ("\"" + (height === null ? 'null' : typeof height) + "\" was specified."));
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
};
|
|
754
|
+
|
|
755
|
+
if (process.env.NODE_ENV !== 'production') ;
|
|
756
|
+
|
|
757
|
+
var FixedSizeGrid = /*#__PURE__*/createGridComponent({
|
|
758
|
+
getColumnOffset: function getColumnOffset(_ref, index) {
|
|
759
|
+
var columnWidth = _ref.columnWidth;
|
|
760
|
+
return index * columnWidth;
|
|
761
|
+
},
|
|
762
|
+
getColumnWidth: function getColumnWidth(_ref2, index) {
|
|
763
|
+
var columnWidth = _ref2.columnWidth;
|
|
764
|
+
return columnWidth;
|
|
765
|
+
},
|
|
766
|
+
getRowOffset: function getRowOffset(_ref3, index) {
|
|
767
|
+
var rowHeight = _ref3.rowHeight;
|
|
768
|
+
return index * rowHeight;
|
|
769
|
+
},
|
|
770
|
+
getRowHeight: function getRowHeight(_ref4, index) {
|
|
771
|
+
var rowHeight = _ref4.rowHeight;
|
|
772
|
+
return rowHeight;
|
|
773
|
+
},
|
|
774
|
+
getEstimatedTotalHeight: function getEstimatedTotalHeight(_ref5) {
|
|
775
|
+
var rowCount = _ref5.rowCount,
|
|
776
|
+
rowHeight = _ref5.rowHeight;
|
|
777
|
+
return rowHeight * rowCount;
|
|
778
|
+
},
|
|
779
|
+
getEstimatedTotalWidth: function getEstimatedTotalWidth(_ref6) {
|
|
780
|
+
var columnCount = _ref6.columnCount,
|
|
781
|
+
columnWidth = _ref6.columnWidth;
|
|
782
|
+
return columnWidth * columnCount;
|
|
783
|
+
},
|
|
784
|
+
getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(_ref7, columnIndex, align, scrollLeft, instanceProps, scrollbarSize) {
|
|
785
|
+
var columnCount = _ref7.columnCount,
|
|
786
|
+
columnWidth = _ref7.columnWidth,
|
|
787
|
+
width = _ref7.width;
|
|
788
|
+
var lastColumnOffset = Math.max(0, columnCount * columnWidth - width);
|
|
789
|
+
var maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth);
|
|
790
|
+
var minOffset = Math.max(0, columnIndex * columnWidth - width + scrollbarSize + columnWidth);
|
|
791
|
+
|
|
792
|
+
if (align === 'smart') {
|
|
793
|
+
if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) {
|
|
794
|
+
align = 'auto';
|
|
795
|
+
} else {
|
|
796
|
+
align = 'center';
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
switch (align) {
|
|
801
|
+
case 'start':
|
|
802
|
+
return maxOffset;
|
|
803
|
+
|
|
804
|
+
case 'end':
|
|
805
|
+
return minOffset;
|
|
806
|
+
|
|
807
|
+
case 'center':
|
|
808
|
+
// "Centered" offset is usually the average of the min and max.
|
|
809
|
+
// But near the edges of the list, this doesn't hold true.
|
|
810
|
+
var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);
|
|
811
|
+
|
|
812
|
+
if (middleOffset < Math.ceil(width / 2)) {
|
|
813
|
+
return 0; // near the beginning
|
|
814
|
+
} else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) {
|
|
815
|
+
return lastColumnOffset; // near the end
|
|
816
|
+
} else {
|
|
817
|
+
return middleOffset;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
case 'auto':
|
|
821
|
+
default:
|
|
822
|
+
if (scrollLeft >= minOffset && scrollLeft <= maxOffset) {
|
|
823
|
+
return scrollLeft;
|
|
824
|
+
} else if (minOffset > maxOffset) {
|
|
825
|
+
// Because we only take into account the scrollbar size when calculating minOffset
|
|
826
|
+
// this value can be larger than maxOffset when at the end of the list
|
|
827
|
+
return minOffset;
|
|
828
|
+
} else if (scrollLeft < minOffset) {
|
|
829
|
+
return minOffset;
|
|
830
|
+
} else {
|
|
831
|
+
return maxOffset;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
}
|
|
835
|
+
},
|
|
836
|
+
getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(_ref8, rowIndex, align, scrollTop, instanceProps, scrollbarSize) {
|
|
837
|
+
var rowHeight = _ref8.rowHeight,
|
|
838
|
+
height = _ref8.height,
|
|
839
|
+
rowCount = _ref8.rowCount;
|
|
840
|
+
var lastRowOffset = Math.max(0, rowCount * rowHeight - height);
|
|
841
|
+
var maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight);
|
|
842
|
+
var minOffset = Math.max(0, rowIndex * rowHeight - height + scrollbarSize + rowHeight);
|
|
843
|
+
|
|
844
|
+
if (align === 'smart') {
|
|
845
|
+
if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) {
|
|
846
|
+
align = 'auto';
|
|
847
|
+
} else {
|
|
848
|
+
align = 'center';
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
switch (align) {
|
|
853
|
+
case 'start':
|
|
854
|
+
return maxOffset;
|
|
855
|
+
|
|
856
|
+
case 'end':
|
|
857
|
+
return minOffset;
|
|
858
|
+
|
|
859
|
+
case 'center':
|
|
860
|
+
// "Centered" offset is usually the average of the min and max.
|
|
861
|
+
// But near the edges of the list, this doesn't hold true.
|
|
862
|
+
var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);
|
|
863
|
+
|
|
864
|
+
if (middleOffset < Math.ceil(height / 2)) {
|
|
865
|
+
return 0; // near the beginning
|
|
866
|
+
} else if (middleOffset > lastRowOffset + Math.floor(height / 2)) {
|
|
867
|
+
return lastRowOffset; // near the end
|
|
868
|
+
} else {
|
|
869
|
+
return middleOffset;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
case 'auto':
|
|
873
|
+
default:
|
|
874
|
+
if (scrollTop >= minOffset && scrollTop <= maxOffset) {
|
|
875
|
+
return scrollTop;
|
|
876
|
+
} else if (minOffset > maxOffset) {
|
|
877
|
+
// Because we only take into account the scrollbar size when calculating minOffset
|
|
878
|
+
// this value can be larger than maxOffset when at the end of the list
|
|
879
|
+
return minOffset;
|
|
880
|
+
} else if (scrollTop < minOffset) {
|
|
881
|
+
return minOffset;
|
|
882
|
+
} else {
|
|
883
|
+
return maxOffset;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
}
|
|
887
|
+
},
|
|
888
|
+
getColumnStartIndexForOffset: function getColumnStartIndexForOffset(_ref9, scrollLeft) {
|
|
889
|
+
var columnWidth = _ref9.columnWidth,
|
|
890
|
+
columnCount = _ref9.columnCount;
|
|
891
|
+
return Math.max(0, Math.min(columnCount - 1, Math.floor(scrollLeft / columnWidth)));
|
|
892
|
+
},
|
|
893
|
+
getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(_ref10, startIndex, scrollLeft) {
|
|
894
|
+
var columnWidth = _ref10.columnWidth,
|
|
895
|
+
columnCount = _ref10.columnCount,
|
|
896
|
+
width = _ref10.width;
|
|
897
|
+
var left = startIndex * columnWidth;
|
|
898
|
+
var numVisibleColumns = Math.ceil((width + scrollLeft - left) / columnWidth);
|
|
899
|
+
return Math.max(0, Math.min(columnCount - 1, startIndex + numVisibleColumns - 1 // -1 is because stop index is inclusive
|
|
900
|
+
));
|
|
901
|
+
},
|
|
902
|
+
getRowStartIndexForOffset: function getRowStartIndexForOffset(_ref11, scrollTop) {
|
|
903
|
+
var rowHeight = _ref11.rowHeight,
|
|
904
|
+
rowCount = _ref11.rowCount;
|
|
905
|
+
return Math.max(0, Math.min(rowCount - 1, Math.floor(scrollTop / rowHeight)));
|
|
906
|
+
},
|
|
907
|
+
getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(_ref12, startIndex, scrollTop) {
|
|
908
|
+
var rowHeight = _ref12.rowHeight,
|
|
909
|
+
rowCount = _ref12.rowCount,
|
|
910
|
+
height = _ref12.height;
|
|
911
|
+
var top = startIndex * rowHeight;
|
|
912
|
+
var numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight);
|
|
913
|
+
return Math.max(0, Math.min(rowCount - 1, startIndex + numVisibleRows - 1 // -1 is because stop index is inclusive
|
|
914
|
+
));
|
|
915
|
+
},
|
|
916
|
+
initInstanceProps: function initInstanceProps(props) {// Noop
|
|
917
|
+
},
|
|
918
|
+
shouldResetStyleCacheOnItemSizeChange: true,
|
|
919
|
+
validateProps: function validateProps(_ref13) {
|
|
920
|
+
var columnWidth = _ref13.columnWidth,
|
|
921
|
+
rowHeight = _ref13.rowHeight;
|
|
922
|
+
|
|
923
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
924
|
+
if (typeof columnWidth !== 'number') {
|
|
925
|
+
throw Error('An invalid "columnWidth" prop has been specified. ' + 'Value should be a number. ' + ("\"" + (columnWidth === null ? 'null' : typeof columnWidth) + "\" was specified."));
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
if (typeof rowHeight !== 'number') {
|
|
929
|
+
throw Error('An invalid "rowHeight" prop has been specified. ' + 'Value should be a number. ' + ("\"" + (rowHeight === null ? 'null' : typeof rowHeight) + "\" was specified."));
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
});
|
|
934
|
+
|
|
935
|
+
var GRID_PROPERTIES = {
|
|
936
|
+
gridWidth: 300,
|
|
937
|
+
gridHeight: 300,
|
|
938
|
+
columnWidthDesktop: 100,
|
|
939
|
+
columnWidthMobile: 90,
|
|
940
|
+
rowHeight: 100,
|
|
941
|
+
columnCount: 3
|
|
942
|
+
};
|
|
943
|
+
var ICONS_LIST = ["10k", "10mp", "11mp", "123", "12mp", "13mp", "14mp", "15mp", "16mp", "17mp", "18_up_rating", "18mp", "19mp", "1k", "1k_plus", "1x_mobiledata", "1x_mobiledata_badge", "20mp", "21mp", "22mp", "23mp", "24mp", "2k", "2k_plus", "2mp", "30fps", "30fps_select", "360", "3d_rotation", "3g_mobiledata", "3g_mobiledata_badge", "3k", "3k_plus", "3mp", "3p", "4g_mobiledata", "4g_mobiledata_badge", "4g_plus_mobiledata", "4k", "4k_plus", "4mp", "50mp", "5g", "5g_mobiledata_badge", "5k", "5k_plus", "5mp", "60fps", "60fps_select", "6_ft_apart", "6k", "6k_plus", "6mp", "7k", "7k_plus", "7mp", "8k", "8k_plus", "8mp", "9k", "9k_plus", "9mp", "abc", "ac_unit", "accessibility", "accessibility_new", "accessible", "accessible_forward", "account_balance", "account_balance_wallet", "account_box", "account_circle", "account_circle_off", "account_tree", "activity_zone", "acute", "ad_off", "ad_units", "adb", "add", "add_a_photo", "add_alert", "add_box", "add_business", "add_call", "add_card", "add_chart", "add_circle", "add_comment", "add_home", "add_home_work", "add_link", "add_location", "add_location_alt", "add_moderator", "add_notes", "add_photo_alternate", "add_reaction", "add_road", "add_shopping_cart", "add_task", "add_to_drive", "add_to_home_screen", "add_to_photos", "add_to_queue", "adf_scanner", "adjust", "admin_meds", "admin_panel_settings", "ads_click", "agender", "agriculture", "air", "air_freshener", "air_purifier_gen", "airline_seat_flat", "airline_seat_flat_angled", "airline_seat_individual_suite", "airline_seat_legroom_extra", "airline_seat_legroom_normal", "airline_seat_legroom_reduced", "airline_seat_recline_extra", "airline_seat_recline_normal", "airline_stops", "airlines", "airplane_ticket", "airplanemode_active", "airplanemode_inactive", "airplay", "airport_shuttle", "airware", "airwave", "alarm", "alarm_add", "alarm_off", "alarm_on", "alarm_smart_wake", "album", "align_center", "align_end", "align_flex_center", "align_flex_end", "align_flex_start", "align_horizontal_center", "align_horizontal_left", "align_horizontal_right", "align_items_stretch", "align_justify_center", "align_justify_flex_end", "align_justify_flex_start", "align_justify_space_around", "align_justify_space_between", "align_justify_space_even", "align_justify_stretch", "align_self_stretch", "align_space_around", "align_space_between", "align_space_even", "align_start", "align_stretch", "align_vertical_bottom", "align_vertical_center", "align_vertical_top", "all_inbox", "all_inclusive", "all_match", "all_out", "allergies", "allergy", "alt_route", "alternate_email", "altitude", "ambient_screen", "ambulance", "amend", "amp_stories", "analytics", "anchor", "android", "animation", "aod", "aod_tablet", "aod_watch", "apartment", "api", "apk_document", "apk_install", "app_badging", "app_blocking", "app_registration", "app_shortcut", "approval", "approval_delegation", "apps", "apps_outage", "architecture", "archive", "area_chart", "arming_countdown", "arrow_and_edge", "arrow_back", "arrow_back_ios", "arrow_back_ios_new", "arrow_circle_down", "arrow_circle_left", "arrow_circle_right", "arrow_circle_up", "arrow_downward", "arrow_drop_down", "arrow_drop_down_circle", "arrow_drop_up", "arrow_forward", "arrow_forward_ios", "arrow_insert", "arrow_left", "arrow_or_edge", "arrow_outward", "arrow_range", "arrow_right", "arrow_right_alt", "arrow_selector_tool", "arrow_top_left", "arrow_top_right", "arrow_upward", "arrows_more_down", "arrows_more_up", "arrows_outward", "art_track", "article", "aspect_ratio", "assignment", "assignment_add", "assignment_ind", "assignment_late", "assignment_return", "assignment_returned", "assignment_turned_in", "assist_walker", "assistant", "assistant_direction", "assistant_navigation", "assistant_on_hub", "assured_workload", "astrophotography_auto", "astrophotography_off", "atm", "atr", "attach_email", "attach_file", "attach_file_add", "attach_money", "attachment", "attractions", "attribution", "audio_file", "audio_video_receiver", "auto_activity_zone", "auto_awesome", "auto_awesome_mosaic", "auto_awesome_motion", "auto_delete", "auto_detect_voice", "auto_fix", "auto_fix_high", "auto_fix_normal", "auto_fix_off", "auto_graph", "auto_label", "auto_meeting_room", "auto_mode", "auto_read_pause", "auto_read_play", "auto_schedule", "auto_stories", "auto_videocam", "autofps_select", "autopause", "autopay", "autoplay", "autorenew", "autostop", "av_timer", "avg_pace", "avg_time", "award_star", "azm", "baby_changing_station", "back_hand", "back_to_tab", "background_dot_large", "background_grid_small", "background_replace", "backlight_high", "backlight_low", "backpack", "backspace", "backup", "backup_table", "badge", "badge_critical_battery", "bakery_dining", "balance", "balcony", "ballot", "bar_chart", "bar_chart_4_bars", "barcode", "barcode_reader", "barcode_scanner", "barefoot", "batch_prediction", "bath_outdoor", "bath_private", "bath_public_large", "bathroom", "bathtub", "battery_0_bar", "battery_1_bar", "battery_20", "battery_2_bar", "battery_30", "battery_3_bar", "battery_4_bar", "battery_50", "battery_5_bar", "battery_60", "battery_6_bar", "battery_80", "battery_90", "battery_alert", "battery_change", "battery_charging_20", "battery_charging_30", "battery_charging_50", "battery_charging_60", "battery_charging_80", "battery_charging_90", "battery_charging_full", "battery_error", "battery_full", "battery_full_alt", "battery_horiz_000", "battery_horiz_050", "battery_horiz_075", "battery_low", "battery_plus", "battery_profile", "battery_saver", "battery_share", "battery_status_good", "battery_unknown", "battery_vert_005", "battery_vert_020", "battery_vert_050", "battery_very_low", "beach_access", "bed", "bedroom_baby", "bedroom_child", "bedroom_parent", "bedtime", "bedtime_off", "beenhere", "bento", "bia", "bike_scooter", "biotech", "blanket", "blender", "blind", "blinds", "blinds_closed", "block", "blood_pressure", "bloodtype", "bluetooth", "bluetooth_connected", "bluetooth_disabled", "bluetooth_drive", "bluetooth_searching", "blur_circular", "blur_linear", "blur_medium", "blur_off", "blur_on", "blur_short", "body_fat", "body_system", "bolt", "book", "book_online", "bookmark", "bookmark_add", "bookmark_added", "bookmark_manager", "bookmark_remove", "bookmarks", "border_all", "border_bottom", "border_clear", "border_color", "border_horizontal", "border_inner", "border_left", "border_outer", "border_right", "border_style", "border_top", "border_vertical", "bottom_panel_close", "bottom_panel_open", "bottom_right_click", "boy", "branding_watermark", "breakfast_dining", "breaking_news_alt_1", "breastfeeding", "brightness_1", "brightness_2", "brightness_3", "brightness_4", "brightness_5", "brightness_6", "brightness_7", "brightness_auto", "brightness_empty", "brightness_high", "brightness_low", "brightness_medium", "bring_your_own_ip", "broadcast_on_home", "broadcast_on_personal", "broken_image", "browse_activity", "browse_gallery", "browser_updated", "brunch_dining", "brush", "bubble_chart", "bubbles", "bug_report", "build", "build_circle", "bungalow", "burst_mode", "bus_alert", "business_center", "business_chip", "cabin", "cable", "cached", "cake", "cake_add", "calculate", "calendar_add_on", "calendar_apps_script", "calendar_month", "calendar_today", "calendar_view_day", "calendar_view_month", "calendar_view_week", "call", "call_end", "call_log", "call_made", "call_merge", "call_missed", "call_missed_outgoing", "call_quality", "call_received", "call_split", "call_to_action", "camera", "camera_enhance", "camera_front", "camera_indoor", "camera_outdoor", "camera_rear", "camera_roll", "camera_video", "cameraswitch", "campaign", "camping", "cancel", "cancel_presentation", "cancel_schedule_send", "candlestick_chart", "captive_portal", "capture", "car_crash", "car_rental", "car_repair", "card_membership", "card_travel", "cardiology", "carpenter", "cases", "casino", "cast", "cast_connected", "cast_for_education", "cast_pause", "cast_warning", "castle", "category", "celebration", "cell_merge", "cell_tower", "cell_wifi", "center_focus_strong", "center_focus_weak", "chair", "chair_alt", "chalet", "change_circle", "change_history", "charger", "charging_station", "chart_data", "chat", "chat_add_on", "chat_apps_script", "chat_bubble", "chat_error", "chat_paste_go", "check", "check_box", "check_box_outline_blank", "check_circle", "check_in_out", "check_indeterminate_small", "check_small", "checklist", "checklist_rtl", "checkroom", "cheer", "chess", "chevron_left", "chevron_right", "child_care", "child_friendly", "chip_extraction", "chrome_reader_mode", "chromecast_2", "chromecast_device", "chronic", "church", "cinematic_blur", "circle", "circle_notifications", "clarify", "clean_hands", "cleaning_bucket", "cleaning_services", "clear_all", "clear_day", "clear_night", "climate_mini_split", "clinical_notes", "clock_loader_10", "clock_loader_20", "clock_loader_40", "clock_loader_60", "clock_loader_80", "clock_loader_90", "close", "close_fullscreen", "closed_caption", "closed_caption_disabled", "cloud", "cloud_circle", "cloud_done", "cloud_download", "cloud_off", "cloud_queue", "cloud_sync", "cloud_upload", "cloudy", "cloudy_snowing", "co2", "co_present", "code", "code_blocks", "code_off", "coffee", "coffee_maker", "cognition", "collections_bookmark", "colorize", "comic_bubble", "comment", "comment_bank", "comments_disabled", "commit", "communication", "commute", "compare", "compare_arrows", "compass_calibration", "component_exchange", "compost", "compress", "computer", "conditions", "confirmation_number", "congenital", "connect_without_contact", "connected_tv", "connecting_airports", "construction", "contact_emergency", "contact_mail", "contact_page", "contact_phone", "contact_support", "contactless", "contactless_off", "contacts", "content_copy", "content_cut", "content_paste", "content_paste_go", "content_paste_off", "content_paste_search", "contrast", "contrast_rtl_off", "control_camera", "control_point_duplicate", "controller_gen", "conversion_path", "conversion_path_off", "conveyor_belt", "cookie", "cookie_off", "cooking", "cool_to_dry", "copy_all", "copyright", "coronavirus", "corporate_fare", "cottage", "counter_0", "counter_1", "counter_2", "counter_3", "counter_4", "counter_5", "counter_6", "counter_7", "counter_8", "counter_9", "countertops", "create_new_folder", "credit_card", "credit_card_off", "credit_score", "crib", "crisis_alert", "crop", "crop_16_9", "crop_3_2", "crop_5_4", "crop_7_5", "crop_free", "crop_landscape", "crop_portrait", "crop_rotate", "crop_square", "crossword", "cruelty_free", "css", "currency_bitcoin", "currency_exchange", "currency_franc", "currency_lira", "currency_pound", "currency_ruble", "currency_rupee", "currency_yen", "currency_yuan", "curtains", "curtains_closed", "cut", "cycle", "cyclone", "dangerous", "dark_mode", "dashboard", "dashboard_customize", "data_alert", "data_array", "data_check", "data_exploration", "data_info_alert", "data_object", "data_saver_on", "data_thresholding", "data_usage", "database", "dataset", "dataset_linked", "date_range", "deblur", "deceased", "decimal_decrease", "decimal_increase", "deck", "dehaze", "delete", "delete_forever", "delete_sweep", "demography", "density_large", "density_medium", "density_small", "dentistry", "departure_board", "deployed_code", "deployed_code_alert", "deployed_code_history", "deployed_code_update", "dermatology", "description", "deselect", "design_services", "desk", "deskphone", "desktop_access_disabled", "desktop_mac", "desktop_windows", "details", "detection_and_zone", "detector", "detector_alarm", "detector_battery", "detector_co", "detector_offline", "detector_smoke", "detector_status", "developer_board", "developer_board_off", "developer_mode", "device_hub", "device_reset", "device_thermostat", "device_unknown", "devices", "devices_fold", "devices_off", "devices_other", "devices_wearables", "dew_point", "diagnosis", "dialer_sip", "dialpad", "diamond", "difference", "digital_out_of_home", "dining", "dinner_dining", "directions", "directions_alt", "directions_alt_off", "directions_bike", "directions_boat", "directions_bus", "directions_car", "directions_off", "directions_railway", "directions_run", "directions_subway", "directions_walk", "dirty_lens", "disabled_by_default", "disabled_visible", "disc_full", "discover_tune", "dishwasher_gen", "display_external_input", "display_settings", "distance", "diversity_1", "diversity_2", "diversity_3", "diversity_4", "dns", "do_not_disturb_off", "do_not_disturb_on", "do_not_disturb_on_total_silence", "do_not_step", "do_not_touch", "dock", "dock_to_bottom", "dock_to_left", "dock_to_right", "docs_add_on", "docs_apps_script", "document_scanner", "domain", "domain_add", "domain_disabled", "domain_verification", "domain_verification_off", "domino_mask", "done", "done_all", "done_outline", "donut_large", "donut_small", "door_back", "door_front", "door_open", "door_sensor", "door_sliding", "doorbell", "doorbell_3p", "doorbell_chime", "double_arrow", "downhill_skiing", "download", "download_done", "download_for_offline", "downloading", "draft", "draft_orders", "drafts", "drag_click", "drag_handle", "drag_indicator", "drag_pan", "draw", "draw_abstract", "draw_collage", "dresser", "drive_file_move", "drive_folder_upload", "dry", "dry_cleaning", "dual_screen", "duo", "dvr", "dynamic_feed", "dynamic_form", "e911_avatar", "e911_emergency", "e_mobiledata", "e_mobiledata_badge", "earbuds", "earbuds_battery", "early_on", "earthquake", "east", "ecg", "ecg_heart", "eco", "eda", "edgesensor_high", "edgesensor_low", "edit", "edit_attributes", "edit_calendar", "edit_document", "edit_location", "edit_location_alt", "edit_note", "edit_notifications", "edit_off", "edit_road", "edit_square", "egg", "egg_alt", "eject", "elderly", "elderly_woman", "electric_bike", "electric_bolt", "electric_car", "electric_meter", "electric_moped", "electric_rickshaw", "electric_scooter", "electrical_services", "elevation", "elevator", "emergency", "emergency_heat", "emergency_home", "emergency_recording", "emergency_share", "emoji_flags", "emoji_food_beverage", "emoji_nature", "emoji_objects", "emoji_people", "emoji_symbols", "emoji_transportation", "emoticon", "empty_dashboard", "enable", "endocrinology", "energy_program_saving", "energy_program_time_used", "energy_savings_leaf", "engineering", "enhanced_encryption", "ent", "equal", "equalizer", "error", "error_med", "escalator", "escalator_warning", "euro", "euro_symbol", "ev_charger", "ev_mobiledata_badge", "ev_shadow", "ev_station", "event", "event_available", "event_busy", "event_list", "event_note", "event_repeat", "event_seat", "event_upcoming", "exclamation", "exercise", "exit_to_app", "expand", "expand_circle_down", "expand_circle_up", "expand_content", "expand_less", "expand_more", "explicit", "explore", "explore_off", "explosion", "export_notes", "exposure", "exposure_neg_1", "exposure_neg_2", "exposure_plus_1", "exposure_plus_2", "exposure_zero", "extension", "extension_off", "eyeglasses", "face", "face_2", "face_3", "face_4", "face_5", "face_6", "face_retouching_natural", "face_retouching_off", "fact_check", "factory", "falling", "familiar_face_and_zone", "family_history", "family_restroom", "fast_forward", "fast_rewind", "fastfood", "faucet", "favorite", "fax", "featured_play_list", "featured_video", "feed", "female", "femur", "femur_alt", "fence", "fertile", "festival", "fiber_dvr", "fiber_manual_record", "fiber_new", "fiber_pin", "fiber_smart_record", "file_copy", "file_download_done", "file_download_off", "file_open", "file_present", "file_upload_off", "filter", "filter_1", "filter_2", "filter_3", "filter_4", "filter_5", "filter_6", "filter_7", "filter_8", "filter_9", "filter_9_plus", "filter_alt", "filter_alt_off", "filter_b_and_w", "filter_center_focus", "filter_drama", "filter_frames", "filter_hdr", "filter_list", "filter_list_off", "filter_none", "filter_tilt_shift", "filter_vintage", "finance_chip", "find_in_page", "find_replace", "fingerprint", "fire_extinguisher", "fire_hydrant", "fire_truck", "fireplace", "first_page", "fit_page", "fit_screen", "fit_width", "fitness_center", "flag", "flag_circle", "flaky", "flare", "flash_auto", "flash_off", "flash_on", "flashlight_off", "flashlight_on", "flatware", "flex_direction", "flex_no_wrap", "flex_wrap", "flight", "flight_class", "flight_land", "flight_takeoff", "flip", "flip_camera_android", "flip_camera_ios", "flip_to_back", "flip_to_front", "flood", "floor", "floor_lamp", "flowsheet", "fluid", "fluid_balance", "fluid_med", "fluorescent", "flutter_dash", "fmd_bad", "foggy", "folded_hands", "folder", "folder_copy", "folder_delete", "folder_managed", "folder_off", "folder_open", "folder_shared", "folder_special", "folder_supervised", "folder_zip", "follow_the_signs", "font_download", "font_download_off", "food_bank", "foot_bones", "footprint", "forest", "fork_left", "fork_right", "forklift", "format_align_center", "format_align_justify", "format_align_left", "format_align_right", "format_bold", "format_clear", "format_color_fill", "format_color_reset", "format_color_text", "format_h1", "format_h2", "format_h3", "format_h4", "format_h5", "format_h6", "format_image_left", "format_image_right", "format_indent_decrease", "format_indent_increase", "format_ink_highlighter", "format_italic", "format_letter_spacing", "format_letter_spacing_2", "format_letter_spacing_standard", "format_letter_spacing_wide", "format_letter_spacing_wider", "format_line_spacing", "format_list_bulleted", "format_list_bulleted_add", "format_list_numbered", "format_list_numbered_rtl", "format_overline", "format_paint", "format_paragraph", "format_quote", "format_shapes", "format_size", "format_strikethrough", "format_text_clip", "format_text_overflow", "format_text_wrap", "format_textdirection_l_to_r", "format_textdirection_r_to_l", "format_underlined", "format_underlined_squiggle", "forms_add_on", "forms_apps_script", "fort", "forum", "forward", "forward_10", "forward_30", "forward_5", "forward_circle", "forward_media", "forward_to_inbox", "foundation", "frame_inspect", "frame_person", "frame_person_off", "frame_reload", "frame_source", "free_cancellation", "front_hand", "front_loader", "full_stacked_bar_chart", "fullscreen", "fullscreen_exit", "function", "functions", "g_mobiledata", "g_mobiledata_badge", "g_translate", "gallery_thumbnail", "gamepad", "garage", "garage_home", "garden_cart", "gas_meter", "gastroenterology", "gate", "gavel", "generating_tokens", "genetics", "gesture", "gesture_select", "gif", "gif_box", "girl", "gite", "glass_cup", "globe_asia", "globe_uk", "glucose", "glyphs", "go_to_line", "golf_course", "google_tv_remote", "google_wifi", "gpp_bad", "gpp_maybe", "grade", "gradient", "grading", "grain", "graphic_eq", "grass", "grid_3x3", "grid_3x3_off", "grid_4x4", "grid_goldenratio", "grid_guides", "grid_off", "grid_on", "grid_view", "group", "group_add", "group_off", "group_remove", "group_work", "grouped_bar_chart", "groups", "groups_2", "groups_3", "gynecology", "h_mobiledata", "h_mobiledata_badge", "h_plus_mobiledata", "h_plus_mobiledata_badge", "hail", "hand_bones", "hand_gesture", "handshake", "handyman", "hard_drive", "hard_drive_2", "hardware", "hd", "hdr_auto", "hdr_auto_select", "hdr_enhanced_select", "hdr_off", "hdr_off_select", "hdr_on", "hdr_on_select", "hdr_plus", "hdr_strong", "hdr_weak", "headphones", "headphones_battery", "headset_mic", "headset_off", "healing", "health_and_safety", "health_metrics", "heap_snapshot_large", "heap_snapshot_multiple", "heap_snapshot_thumbnail", "hearing", "hearing_disabled", "heart_broken", "heart_check", "heart_minus", "heart_plus", "heat_pump", "heat_pump_balance", "height", "helicopter", "help", "help_center", "help_clinic", "hematology", "hevc", "hexagon", "hide", "hide_image", "hide_source", "high_density", "high_quality", "highlight", "highlighter_size_1", "highlighter_size_2", "highlighter_size_3", "highlighter_size_4", "highlighter_size_5", "hiking", "history", "history_edu", "history_toggle_off", "hive", "hls", "hls_off", "holiday_village", "home", "home_app_logo", "home_health", "home_iot_device", "home_max", "home_max_dots", "home_mini", "home_pin", "home_repair_service", "home_speaker", "home_storage", "home_work", "horizontal_distribute", "horizontal_rule", "horizontal_split", "hot_tub", "hotel", "hotel_class", "hourglass_bottom", "hourglass_disabled", "hourglass_empty", "hourglass_full", "hourglass_top", "house", "house_siding", "house_with_shield", "houseboat", "how_to_reg", "how_to_vote", "hr_resting", "html", "http", "hub", "humerus", "humerus_alt", "humidity_high", "humidity_low", "humidity_mid", "humidity_percentage", "hvac", "ice_skating", "icecream", "iframe", "iframe_off", "image", "image_aspect_ratio", "image_not_supported", "image_search", "imagesearch_roller", "imagesmode", "immunology", "import_contacts", "important_devices", "in_home_mode", "inactive_order", "inbox", "inbox_customize", "incomplete_circle", "indeterminate_check_box", "info", "infrared", "inpatient", "input", "input_circle", "insert_chart", "insert_page_break", "insert_text", "insights", "install_desktop", "install_mobile", "integration_instructions", "interactive_space", "interests", "interpreter_mode", "inventory", "inventory_2", "invert_colors", "invert_colors_off", "ios_share", "iron", "javascript", "join", "join_full", "join_inner", "join_left", "join_right", "joystick", "jump_to_element", "kayaking", "kebab_dining", "kettle", "key", "key_off", "key_visualizer", "keyboard", "keyboard_alt", "keyboard_arrow_down", "keyboard_arrow_left", "keyboard_arrow_right", "keyboard_arrow_up", "keyboard_backspace", "keyboard_capslock", "keyboard_capslock_badge", "keyboard_command_key", "keyboard_control_key", "keyboard_double_arrow_down", "keyboard_double_arrow_left", "keyboard_double_arrow_right", "keyboard_double_arrow_up", "keyboard_external_input", "keyboard_full", "keyboard_hide", "keyboard_keys", "keyboard_off", "keyboard_onscreen", "keyboard_option_key", "keyboard_previous_language", "keyboard_return", "keyboard_tab", "keyboard_tab_rtl", "keyboard_voice", "king_bed", "kitchen", "kitesurfing", "lab_panel", "lab_profile", "lab_research", "label", "label_important", "label_off", "labs", "lan", "landscape", "landslide", "language", "language_chinese_array", "language_chinese_cangjie", "language_chinese_dayi", "language_chinese_pinyin", "language_chinese_quick", "language_chinese_wubi", "language_french", "language_gb_english", "language_international", "language_korean_latin", "language_pinyin", "language_spanish", "language_us", "language_us_colemak", "language_us_dvorak", "laps", "laptop_chromebook", "laptop_mac", "laptop_windows", "last_page", "laundry", "layers", "layers_clear", "lda", "leaderboard", "leak_add", "leak_remove", "left_click", "left_panel_close", "left_panel_open", "legend_toggle", "lens", "lens_blur", "letter_switch", "library_add", "library_add_check", "library_books", "library_music", "lift_to_talk", "light", "light_group", "light_mode", "lightbulb", "lightbulb_circle", "line_axis", "line_curve", "line_end", "line_end_arrow", "line_end_arrow_notch", "line_end_circle", "line_end_diamond", "line_end_square", "line_start", "line_start_arrow", "line_start_arrow_notch", "line_start_circle", "line_start_diamond", "line_start_square", "line_style", "line_weight", "linear_scale", "link", "link_off", "linked_camera", "liquor", "list", "list_alt", "list_alt_add", "live_help", "live_tv", "living", "local_activity", "local_atm", "local_bar", "local_cafe", "local_car_wash", "local_convenience_store", "local_dining", "local_drink", "local_fire_department", "local_florist", "local_gas_station", "local_hospital", "local_laundry_service", "local_library", "local_mall", "local_parking", "local_pharmacy", "local_pizza", "local_police", "local_post_office", "local_see", "local_shipping", "local_taxi", "location_automation", "location_away", "location_chip", "location_city", "location_disabled", "location_home", "location_off", "location_on", "location_searching", "lock", "lock_clock", "lock_open", "lock_open_right", "lock_person", "lock_reset", "login", "logo_dev", "logout", "looks", "looks_3", "looks_4", "looks_5", "looks_6", "looks_one", "looks_two", "loupe", "low_density", "low_priority", "loyalty", "lte_mobiledata", "lte_mobiledata_badge", "lte_plus_mobiledata", "lte_plus_mobiledata_badge", "luggage", "lunch_dining", "lyrics", "macro_auto", "macro_off", "magic_button", "magic_exchange", "magic_tether", "magnification_large", "magnification_small", "magnify_docked", "magnify_fullscreen", "mail", "mail_lock", "male", "man", "man_2", "man_3", "man_4", "manage_accounts", "manage_history", "manage_search", "manga", "map", "maps_ugc", "margin", "mark_as_unread", "mark_chat_read", "mark_chat_unread", "mark_email_read", "mark_email_unread", "mark_unread_chat_alt", "markunread_mailbox", "masks", "match_case", "match_word", "matter", "maximize", "measuring_tape", "media_bluetooth_off", "media_bluetooth_on", "media_link", "mediation", "medical_information", "medical_mask", "medical_services", "medication", "medication_liquid", "meeting_room", "memory", "memory_alt", "menstrual_health", "menu", "menu_book", "menu_open", "merge", "merge_type", "metabolism", "mfg_nest_yale_lock", "mic", "mic_double", "mic_external_off", "mic_external_on", "mic_off", "microbiology", "microwave", "microwave_gen", "military_tech", "mindfulness", "minimize", "minor_crash", "missed_video_call", "mist", "mixture_med", "mms", "mobile_friendly", "mobile_off", "mobile_screen_share", "mobiledata_off", "mode_comment", "mode_cool", "mode_cool_off", "mode_fan", "mode_fan_off", "mode_heat", "mode_heat_cool", "mode_heat_off", "mode_night", "mode_of_travel", "mode_off_on", "mode_standby", "model_training", "monetization_on", "money", "money_off", "monitor", "monitor_heart", "monitor_weight", "monitor_weight_gain", "monitor_weight_loss", "monitoring", "monochrome_photos", "mood", "mood_bad", "mop", "more", "more_down", "more_horiz", "more_time", "more_up", "more_vert", "mosque", "motion_blur", "motion_mode", "motion_photos_auto", "motion_photos_off", "motion_photos_paused", "motion_sensor_active", "motion_sensor_alert", "motion_sensor_idle", "motion_sensor_urgent", "motorcycle", "mountain_flag", "mouse", "move", "move_down", "move_group", "move_location", "move_selection_down", "move_selection_left", "move_selection_right", "move_selection_up", "move_to_inbox", "move_up", "movie", "movie_edit", "movie_filter", "moving", "moving_beds", "moving_ministry", "mp", "multicooker", "multiline_chart", "multiple_stop", "museum", "music_note", "music_off", "music_video", "my_location", "mystery", "nat", "nature", "nature_people", "navigate_before", "navigate_next", "navigation", "near_me", "near_me_disabled", "nearby_error", "nearby_off", "nephrology", "nest_audio", "nest_cam_floodlight", "nest_cam_indoor", "nest_cam_iq", "nest_cam_iq_outdoor", "nest_cam_magnet_mount", "nest_cam_outdoor", "nest_cam_stand", "nest_cam_wall_mount", "nest_cam_wired_stand", "nest_clock_farsight_analog", "nest_clock_farsight_digital", "nest_connect", "nest_detect", "nest_display", "nest_display_max", "nest_doorbell_visitor", "nest_eco_leaf", "nest_farsight_weather", "nest_found_savings", "nest_heat_link_e", "nest_heat_link_gen_3", "nest_hello_doorbell", "nest_mini", "nest_multi_room", "nest_remote", "nest_remote_comfort_sensor", "nest_secure_alarm", "nest_sunblock", "nest_tag", "nest_thermostat_e_eu", "nest_thermostat_gen_3", "nest_thermostat_sensor", "nest_thermostat_sensor_eu", "nest_thermostat_zirconium_eu", "nest_true_radiant", "nest_wake_on_approach", "nest_wake_on_press", "nest_wifi_gale", "nest_wifi_point", "nest_wifi_router", "network_cell", "network_check", "network_intelligence_history", "network_intelligence_update", "network_locked", "network_manage", "network_ping", "network_wifi", "network_wifi_1_bar", "network_wifi_2_bar", "network_wifi_3_bar", "neurology", "new_label", "new_releases", "new_window", "newspaper", "next_plan", "next_week", "nfc", "night_shelter", "night_sight_auto", "night_sight_auto_off", "night_sight_max", "nightlife", "nightlight", "nightlight_off", "nights_stay", "no_accounts", "no_adult_content", "no_backpack", "no_crash", "no_drinks", "no_encryption", "no_flash", "no_food", "no_luggage", "no_meals", "no_meeting_room", "no_photography", "no_sim", "no_stroller", "no_transfer", "noise_aware", "noise_control_off", "noise_control_on", "nordic_walking", "north", "north_east", "north_west", "not_accessible", "not_listed_location", "not_started", "note", "note_add", "note_alt", "notes", "notification_add", "notification_important", "notifications", "notifications_active", "notifications_off", "notifications_paused", "numbers", "nutrition", "offline_bolt", "offline_pin", "offline_share", "oil_barrel", "on_device_training", "oncology", "online_prediction", "onsen", "opacity", "open_in_browser", "open_in_full", "open_in_new", "open_in_new_down", "open_in_new_off", "open_with", "ophthalmology", "oral_disease", "order_approve", "order_play", "orthopedics", "other_admission", "other_houses", "outbound", "outbox", "outdoor_garden", "outdoor_grill", "outgoing_mail", "outlet", "outpatient", "outpatient_med", "output", "output_circle", "oven_gen", "overview", "overview_key", "oxygen_saturation", "pace", "pacemaker", "package", "padding", "page_info", "pages", "pageview", "paid", "palette", "pallet", "pan_tool", "pan_tool_alt", "pan_zoom", "panorama", "panorama_fish_eye", "panorama_horizontal", "panorama_photosphere", "panorama_vertical", "panorama_wide_angle", "paragliding", "park", "partly_cloudy_day", "partly_cloudy_night", "partner_exchange", "party_mode", "password", "patient_list", "pattern", "pause", "pause_circle", "pause_presentation", "payments", "pedal_bike", "pediatrics", "pen_size_1", "pen_size_2", "pen_size_3", "pen_size_4", "pen_size_5", "pending", "pending_actions", "pentagon", "percent", "pergola", "perm_camera_mic", "perm_contact_calendar", "perm_data_setting", "perm_device_information", "perm_media", "perm_phone_msg", "perm_scan_wifi", "person", "person_2", "person_3", "person_4", "person_add", "person_add_disabled", "person_book", "person_celebrate", "person_off", "person_pin", "person_pin_circle", "person_play", "person_remove", "person_search", "personal_injury", "pest_control", "pest_control_rodent", "pets", "phishing", "phone_android", "phone_bluetooth_speaker", "phone_callback", "phone_disabled", "phone_enabled", "phone_forwarded", "phone_in_talk", "phone_iphone", "phone_locked", "phone_missed", "phone_paused", "phonelink_erase", "phonelink_lock", "phonelink_off", "phonelink_ring", "phonelink_ring_off", "phonelink_setup", "photo", "photo_album", "photo_camera", "photo_camera_back", "photo_camera_front", "photo_filter", "photo_frame", "photo_library", "photo_size_select_large", "photo_size_select_small", "php", "physical_therapy", "piano", "piano_off", "picture_as_pdf", "picture_in_picture", "picture_in_picture_alt", "pie_chart", "pill", "pill_off", "pin", "pin_drop", "pin_end", "pin_invoke", "pinch", "pinch_zoom_in", "pinch_zoom_out", "pip", "pip_exit", "pivot_table_chart", "place_item", "plagiarism", "play_arrow", "play_circle", "play_disabled", "play_for_work", "play_lesson", "play_pause", "play_shapes", "playing_cards", "playlist_add", "playlist_add_check", "playlist_add_check_circle", "playlist_add_circle", "playlist_play", "playlist_remove", "plumbing", "podcasts", "podiatry", "podium", "point_of_sale", "point_scan", "policy", "polyline", "polymer", "pool", "portable_wifi_off", "position_bottom_left", "position_bottom_right", "position_top_right", "post_add", "potted_plant", "power", "power_input", "power_off", "power_rounded", "power_settings_new", "prayer_times", "precision_manufacturing", "pregnancy", "pregnant_woman", "preliminary", "prescriptions", "present_to_all", "preview", "preview_off", "price_change", "price_check", "print", "print_add", "print_connect", "print_disabled", "print_error", "print_lock", "priority", "priority_high", "privacy", "privacy_tip", "private_connectivity", "problem", "procedure", "process_chart", "production_quantity_limits", "productivity", "propane", "propane_tank", "psychiatry", "psychology", "psychology_alt", "public", "public_off", "publish", "published_with_changes", "pulmonology", "punch_clock", "push_pin", "qr_code", "qr_code_2", "qr_code_2_add", "qr_code_scanner", "query_stats", "question_exchange", "question_mark", "queue_music", "queue_play_next", "quick_phrases", "quick_reference", "quick_reference_all", "quickreply", "quiet_time", "quiet_time_active", "quiz", "r_mobiledata", "radar", "radio", "radio_button_checked", "radio_button_unchecked", "radiology", "railway_alert", "rainy", "rainy_heavy", "rainy_light", "rainy_snow", "ramen_dining", "ramp_left", "ramp_right", "range_hood", "rate_review", "raw_off", "raw_on", "read_more", "readiness_score", "real_estate_agent", "rear_camera", "rebase", "rebase_edit", "receipt", "receipt_long", "recent_actors", "recent_patient", "recommend", "record_voice_over", "rectangle", "recycling", "redeem", "redo", "reduce_capacity", "refresh", "regular_expression", "relax", "release_alert", "remember_me", "remote_gen", "remove", "remove_done", "remove_from_queue", "remove_moderator", "remove_road", "remove_shopping_cart", "reopen_window", "reorder", "repartition", "repeat", "repeat_on", "repeat_one", "repeat_one_on", "replay", "replay_10", "replay_30", "replay_5", "reply", "reply_all", "report", "report_off", "request_page", "request_quote", "reset_image", "reset_tv", "resize", "respiratory_rate", "restart_alt", "restaurant", "restaurant_menu", "restore_from_trash", "restore_page", "resume", "reviews", "rheumatology", "rib_cage", "rice_bowl", "right_click", "right_panel_close", "right_panel_open", "ring_volume", "robot", "rocket", "rocket_launch", "roller_shades", "roller_shades_closed", "roller_skating", "roofing", "room_preferences", "room_service", "rotate_90_degrees_ccw", "rotate_90_degrees_cw", "rotate_left", "rotate_right", "roundabout_left", "roundabout_right", "rounded_corner", "route", "router", "routine", "rowing", "rss_feed", "rsvp", "rtt", "rule", "rule_folder", "rule_settings", "run_circle", "running_with_errors", "rv_hookup", "safety_check", "safety_divider", "sailing", "salinity", "sanitizer", "satellite", "satellite_alt", "sauna", "save", "save_as", "saved_search", "savings", "scale", "scan", "scan_delete", "scanner", "scatter_plot", "scene", "schedule", "schedule_send", "schema", "school", "science", "score", "scoreboard", "screen_lock_landscape", "screen_lock_portrait", "screen_lock_rotation", "screen_record", "screen_rotation", "screen_rotation_alt", "screen_rotation_up", "screen_search_desktop", "screen_share", "screenshot", "screenshot_frame", "screenshot_keyboard", "screenshot_monitor", "screenshot_region", "screenshot_tablet", "scuba_diving", "sd", "sd_card", "sd_card_alert", "search", "search_check", "search_off", "security", "security_update_good", "security_update_warning", "segment", "select", "select_all", "select_check_box", "select_to_speak", "self_care", "self_improvement", "sell", "send", "send_and_archive", "send_time_extension", "send_to_mobile", "sensor_door", "sensor_occupied", "sensor_window", "sensors", "sensors_off", "sentiment_calm", "sentiment_content", "sentiment_dissatisfied", "sentiment_excited", "sentiment_extremely_dissatisfied", "sentiment_frustrated", "sentiment_neutral", "sentiment_sad", "sentiment_satisfied", "sentiment_stressed", "sentiment_very_dissatisfied", "sentiment_very_satisfied", "sentiment_worried", "set_meal", "settings", "settings_accessibility", "settings_account_box", "settings_alert", "settings_applications", "settings_b_roll", "settings_backup_restore", "settings_bluetooth", "settings_brightness", "settings_cell", "settings_cinematic_blur", "settings_ethernet", "settings_input_antenna", "settings_input_component", "settings_input_hdmi", "settings_input_svideo", "settings_motion_mode", "settings_night_sight", "settings_overscan", "settings_panorama", "settings_phone", "settings_photo_camera", "settings_power", "settings_remote", "settings_slow_motion", "settings_suggest", "settings_system_daydream", "settings_timelapse", "settings_video_camera", "settings_voice", "settop_component", "severe_cold", "shape_line", "shapes", "share", "share_location", "share_off", "share_reviews", "share_windows", "sheets_rtl", "shelf_auto_hide", "shelf_position", "shelves", "shield", "shield_lock", "shield_moon", "shield_person", "shield_with_heart", "shield_with_house", "shift", "shift_lock", "shop", "shop_two", "shopping_bag", "shopping_basket", "shopping_cart", "shopping_cart_checkout", "short_stay", "short_text", "show_chart", "shower", "shuffle", "shuffle_on", "shutter_speed", "sick", "sign_language", "signal_cellular_0_bar", "signal_cellular_1_bar", "signal_cellular_2_bar", "signal_cellular_3_bar", "signal_cellular_4_bar", "signal_cellular_add", "signal_cellular_alt", "signal_cellular_alt_1_bar", "signal_cellular_alt_2_bar", "signal_cellular_connected_no_internet_0_bar", "signal_cellular_connected_no_internet_4_bar", "signal_cellular_nodata", "signal_cellular_null", "signal_cellular_off", "signal_disconnected", "signal_wifi_0_bar", "signal_wifi_4_bar", "signal_wifi_bad", "signal_wifi_off", "signal_wifi_statusbar_not_connected", "signal_wifi_statusbar_null", "signature", "signpost", "sim_card", "sim_card_download", "single_bed", "sip", "skateboarding", "skeleton", "skip_next", "skip_previous", "skull", "sledding", "sleep", "sleep_score", "slide_library", "slideshow", "slow_motion_video", "smart_button", "smart_display", "smart_outlet", "smart_screen", "smart_toy", "smartphone", "smb_share", "smoke_free", "smoking_rooms", "sms", "sms_failed", "snippet_folder", "snooze", "snowboarding", "snowing", "snowing_heavy", "snowmobile", "snowshoeing", "soap", "social_distance", "social_leaderboard", "solar_power", "sort", "sort_by_alpha", "sos", "sound_detection_dog_barking", "sound_detection_glass_break", "sound_detection_loud_sound", "sound_sampler", "soup_kitchen", "source_notes", "south", "south_america", "south_east", "south_west", "spa", "space_bar", "space_dashboard", "spatial_audio", "spatial_audio_off", "spatial_tracking", "speaker", "speaker_group", "speaker_notes", "speaker_notes_off", "speaker_phone", "special_character", "specific_gravity", "speech_to_text", "speed", "spellcheck", "splitscreen", "splitscreen_bottom", "splitscreen_left", "splitscreen_right", "splitscreen_top", "spo2", "spoke", "sports", "sports_bar", "sports_baseball", "sports_basketball", "sports_cricket", "sports_esports", "sports_football", "sports_golf", "sports_gymnastics", "sports_handball", "sports_hockey", "sports_kabaddi", "sports_martial_arts", "sports_mma", "sports_motorsports", "sports_rugby", "sports_score", "sports_soccer", "sports_tennis", "sports_volleyball", "sprinkler", "sprint", "square", "square_foot", "ssid_chart", "stack", "stack_off", "stack_star", "stacked_bar_chart", "stacked_line_chart", "stadia_controller", "stadium", "stairs", "star", "star_half", "star_rate", "star_rate_half", "stars", "start", "stay_current_landscape", "stay_current_portrait", "stay_primary_landscape", "stay_primary_portrait", "step", "step_into", "step_out", "step_over", "steps", "stethoscope", "stethoscope_arrow", "stethoscope_check", "sticky_note_2", "stop", "stop_circle", "stop_screen_share", "storage", "store", "storefront", "storm", "straight", "straighten", "strategy", "stream", "stream_apps", "streetview", "stress_management", "strikethrough_s", "stroke_full", "stroke_partial", "stroller", "style", "styler", "stylus", "stylus_laser_pointer", "stylus_note", "subdirectory_arrow_left", "subdirectory_arrow_right", "subject", "subscript", "subscriptions", "subtitles", "subtitles_off", "subway", "summarize", "sunny", "sunny_snowing", "superscript", "supervised_user_circle", "supervised_user_circle_off", "supervisor_account", "support", "support_agent", "surfing", "surgical", "surround_sound", "swap_calls", "swap_horiz", "swap_horizontal_circle", "swap_vert", "swap_vertical_circle", "swipe", "swipe_down", "swipe_down_alt", "swipe_left", "swipe_left_alt", "swipe_right", "swipe_right_alt", "swipe_up", "swipe_up_alt", "swipe_vertical", "switch", "switch_access", "switch_access_shortcut", "switch_access_shortcut_add", "switch_account", "switch_camera", "switch_left", "switch_right", "switch_video", "sword_rose", "swords", "symptoms", "synagogue", "sync", "sync_alt", "sync_disabled", "sync_lock", "sync_problem", "sync_saved_locally", "syringe", "system_update", "system_update_alt", "tab", "tab_close", "tab_close_right", "tab_duplicate", "tab_group", "tab_move", "tab_new_right", "tab_recent", "tab_unselected", "table", "table_bar", "table_chart", "table_chart_view", "table_lamp", "table_restaurant", "table_rows", "table_rows_narrow", "table_view", "tablet", "tablet_android", "tablet_mac", "tag", "takeout_dining", "tamper_detection_off", "tamper_detection_on", "tap_and_play", "tapas", "task", "task_alt", "taunt", "taxi_alert", "team_dashboard", "temp_preferences_custom", "temp_preferences_eco", "temple_buddhist", "temple_hindu", "tenancy", "terminal", "text_decrease", "text_fields", "text_format", "text_increase", "text_rotate_up", "text_rotate_vertical", "text_rotation_angledown", "text_rotation_angleup", "text_rotation_down", "text_rotation_none", "text_select_end", "text_select_jump_to_beginning", "text_select_jump_to_end", "text_select_move_back_character", "text_select_move_back_word", "text_select_move_down", "text_select_move_forward_character", "text_select_move_forward_word", "text_select_move_up", "text_select_start", "text_snippet", "text_to_speech", "texture", "theater_comedy", "theaters", "thermometer", "thermometer_gain", "thermometer_loss", "thermostat", "thermostat_auto", "thermostat_carbon", "thumb_down", "thumb_up", "thumbnail_bar", "thumbs_up_down", "thunderstorm", "tibia", "tibia_alt", "time_auto", "timelapse", "timeline", "timer", "timer_10", "timer_10_alt_1", "timer_10_select", "timer_3", "timer_3_alt_1", "timer_3_select", "timer_off", "tips_and_updates", "tire_repair", "title", "toc", "today", "toggle_off", "toggle_on", "token", "toll", "tonality", "tools_flat_head", "tools_installation_kit", "tools_ladder", "tools_level", "tools_phillips", "tools_pliers_wire_stripper", "tools_power_drill", "top_panel_close", "top_panel_open", "topic", "tornado", "total_dissolved_solids", "touch_app", "touchpad_mouse", "tour", "toys", "toys_fan", "track_changes", "traffic", "trail_length", "trail_length_medium", "trail_length_short", "train", "tram", "transcribe", "transfer_within_a_station", "transform", "transgender", "transit_enterexit", "translate", "transportation", "travel_explore", "trending_down", "trending_flat", "trending_up", "trip_origin", "trolley", "tsunami", "tty", "tune", "turn_left", "turn_right", "turn_sharp_left", "turn_sharp_right", "turn_slight_left", "turn_slight_right", "tv", "tv_gen", "tv_off", "tv_remote", "tv_with_assistant", "two_wheeler", "type_specimen", "u_turn_left", "u_turn_right", "ulna_radius", "ulna_radius_alt", "umbrella", "unarchive", "undo", "unfold_less", "unfold_less_double", "unfold_more", "unfold_more_double", "ungroup", "unknown_document", "unknown_med", "unpublished", "unsubscribe", "upcoming", "update", "update_disabled", "upgrade", "upload", "upload_file", "urology", "usb", "usb_off", "vaccines", "valve", "vape_free", "vaping_rooms", "variables", "ventilator", "verified", "verified_user", "vertical_align_bottom", "vertical_align_center", "vertical_align_top", "vertical_distribute", "vertical_shades", "vertical_shades_closed", "vertical_split", "vibration", "video_call", "video_camera_back", "video_camera_front", "video_camera_front_off", "video_chat", "video_file", "video_label", "video_library", "video_settings", "video_stable", "videocam", "videocam_off", "videogame_asset", "videogame_asset_off", "view_agenda", "view_array", "view_carousel", "view_column", "view_column_2", "view_comfy", "view_comfy_alt", "view_compact", "view_compact_alt", "view_cozy", "view_day", "view_headline", "view_in_ar", "view_in_ar_off", "view_kanban", "view_list", "view_module", "view_quilt", "view_sidebar", "view_stream", "view_timeline", "view_week", "vignette", "villa", "visibility", "visibility_lock", "visibility_off", "vital_signs", "voice_chat", "voice_over_off", "voicemail", "volcano", "volume_down", "volume_down_alt", "volume_mute", "volume_off", "volume_up", "volunteer_activism", "voting_chip", "vpn_key", "vpn_key_alert", "vpn_key_off", "vpn_lock", "vrpano", "wall_lamp", "wallet", "wallpaper", "wallpaper_slideshow", "ward", "warehouse", "warning", "warning_off", "wash", "watch", "watch_button_press", "watch_off", "watch_screentime", "watch_wake", "water", "water_bottle", "water_bottle_large", "water_damage", "water_do", "water_drop", "water_ec", "water_full", "water_heater", "water_lock", "water_loss", "water_lux", "water_medium", "water_orp", "water_ph", "water_pump", "water_voc", "waterfall_chart", "waves", "waving_hand", "wb_auto", "wb_incandescent", "wb_iridescent", "wb_shade", "wb_sunny", "wb_twilight", "wc", "weather_hail", "weather_mix", "weather_snowy", "web", "web_asset", "web_asset_off", "web_stories", "webhook", "weekend", "weight", "west", "whatshot", "wheelchair_pickup", "where_to_vote", "widgets", "width", "width_full", "width_normal", "width_wide", "wifi", "wifi_1_bar", "wifi_2_bar", "wifi_add", "wifi_calling", "wifi_calling_1", "wifi_calling_2", "wifi_calling_3", "wifi_channel", "wifi_find", "wifi_home", "wifi_lock", "wifi_notification", "wifi_off", "wifi_password", "wifi_protected_setup", "wifi_proxy", "wifi_tethering", "wifi_tethering_error", "wifi_tethering_off", "wind_power", "window", "window_closed", "window_open", "window_sensor", "wine_bar", "woman", "woman_2", "work", "work_alert", "work_history", "work_update", "workspace_premium", "workspaces", "wounds_injuries", "wrap_text", "wrist", "wrong_location", "wysiwyg", "yard", "youtube_activity", "youtube_searched_for", "zone_person_alert", "zone_person_idle", "zone_person_urgent", "zoom_in", "zoom_in_map", "zoom_out", "zoom_out_map"];
|
|
944
|
+
|
|
945
|
+
var Icon = function Icon(_ref) {
|
|
946
|
+
var active = _ref.active,
|
|
947
|
+
icon = _ref.icon,
|
|
948
|
+
_onClick = _ref.onClick,
|
|
949
|
+
symbolsStyle = _ref.symbolsStyle,
|
|
950
|
+
style = _ref.style;
|
|
951
|
+
return /*#__PURE__*/jsxRuntime.jsx(Tooltip, {
|
|
952
|
+
content: neetoCist.humanize(icon),
|
|
953
|
+
position: "bottom",
|
|
954
|
+
touch: ["hold", 500],
|
|
955
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
956
|
+
style: style,
|
|
957
|
+
"data-testid": "icon-picker-icon-".concat(icon),
|
|
958
|
+
className: classnames("neeto-ui-rounded-md flex cursor-pointer items-center justify-center", {
|
|
959
|
+
"neeto-ui-text-gray-700 hover:neeto-ui-bg-gray-100": !active,
|
|
960
|
+
"neeto-ui-text-white neeto-ui-bg-primary-500": active
|
|
961
|
+
}),
|
|
962
|
+
onClick: function onClick() {
|
|
963
|
+
return _onClick(icon);
|
|
964
|
+
},
|
|
965
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
966
|
+
className: "flex w-11/12 flex-col justify-center p-1",
|
|
967
|
+
style: symbolsStyle,
|
|
968
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
969
|
+
className: "material-symbols-rounded mx-auto",
|
|
970
|
+
children: icon
|
|
971
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
972
|
+
className: "line-clamp-2 text-center",
|
|
973
|
+
style: "body3",
|
|
974
|
+
children: neetoCist.humanize(icon)
|
|
975
|
+
})]
|
|
976
|
+
})
|
|
977
|
+
})
|
|
978
|
+
});
|
|
979
|
+
};
|
|
980
|
+
|
|
981
|
+
var css = "@import url(\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,300,0..1,0\");";
|
|
982
|
+
injectCss.n(css,{});
|
|
983
|
+
|
|
984
|
+
var NoResults = reactUtils.withT(function (_ref) {
|
|
985
|
+
var t = _ref.t;
|
|
986
|
+
return /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
987
|
+
className: "neeto-ui-text-gray-400 flex h-64 items-center justify-center text-lg",
|
|
988
|
+
"data-cy": "no-icon-results-found-text",
|
|
989
|
+
children: t("neetoMolecules.iconPicker.dropdown.noResults")
|
|
990
|
+
});
|
|
991
|
+
});
|
|
992
|
+
var NoResults$1 = /*#__PURE__*/React.memo(NoResults);
|
|
993
|
+
|
|
994
|
+
var _excluded = ["filled", "label", "value", "onClick", "className"];
|
|
995
|
+
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; }
|
|
996
|
+
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; }
|
|
997
|
+
var IconPicker = function IconPicker(_ref) {
|
|
998
|
+
var _ref$filled = _ref.filled,
|
|
999
|
+
filled = _ref$filled === void 0 ? false : _ref$filled,
|
|
1000
|
+
label = _ref.label,
|
|
1001
|
+
_ref$value = _ref.value,
|
|
1002
|
+
value = _ref$value === void 0 ? "" : _ref$value,
|
|
1003
|
+
_ref$onClick = _ref.onClick,
|
|
1004
|
+
onClick = _ref$onClick === void 0 ? neetoCist.noop : _ref$onClick,
|
|
1005
|
+
_ref$className = _ref.className,
|
|
1006
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
1007
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
1008
|
+
var _useState = React.useState(""),
|
|
1009
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1010
|
+
searchTerm = _useState2[0],
|
|
1011
|
+
setSearchTerm = _useState2[1];
|
|
1012
|
+
var _useState3 = React.useState([]),
|
|
1013
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
1014
|
+
iconList = _useState4[0],
|
|
1015
|
+
setIconList = _useState4[1];
|
|
1016
|
+
var _useState5 = React.useState(value),
|
|
1017
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
1018
|
+
activeIcon = _useState6[0],
|
|
1019
|
+
setActiveIcon = _useState6[1];
|
|
1020
|
+
var gridRef = React.useRef(null);
|
|
1021
|
+
var debouncedSearchTerm = useDebounce(searchTerm);
|
|
1022
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
1023
|
+
t = _useTranslation.t;
|
|
1024
|
+
var isLargerScreen = function isLargerScreen() {
|
|
1025
|
+
return window.innerWidth > 768;
|
|
1026
|
+
};
|
|
1027
|
+
var handleSearch = function handleSearch(term) {
|
|
1028
|
+
var _gridRef$current;
|
|
1029
|
+
var searchTerm = term.toLowerCase().trim().replace(/\s+/g, "_");
|
|
1030
|
+
var filteredIcons = ICONS_LIST.filter(function (icon) {
|
|
1031
|
+
return icon.toLowerCase().includes(searchTerm);
|
|
1032
|
+
});
|
|
1033
|
+
setIconList(filteredIcons);
|
|
1034
|
+
(_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 || _gridRef$current.scrollToItem({
|
|
1035
|
+
rowIndex: 0
|
|
1036
|
+
});
|
|
1037
|
+
};
|
|
1038
|
+
var handleRemoveClick = function handleRemoveClick() {
|
|
1039
|
+
onClick("");
|
|
1040
|
+
setActiveIcon("");
|
|
1041
|
+
};
|
|
1042
|
+
var handleDropdownClick = function handleDropdownClick() {
|
|
1043
|
+
var _gridRef$current2;
|
|
1044
|
+
(_gridRef$current2 = gridRef.current) === null || _gridRef$current2 === void 0 || _gridRef$current2.scrollToItem({
|
|
1045
|
+
rowIndex: iconList.findIndex(function (icon) {
|
|
1046
|
+
return icon === activeIcon;
|
|
1047
|
+
}) / GRID_PROPERTIES.columnCount
|
|
1048
|
+
});
|
|
1049
|
+
setSearchTerm("");
|
|
1050
|
+
};
|
|
1051
|
+
var symbolsStyle = {
|
|
1052
|
+
fontVariationSettings: "'FILL' ".concat(filled ? 1 : 0)
|
|
1053
|
+
};
|
|
1054
|
+
React.useEffect(function () {
|
|
1055
|
+
handleSearch(debouncedSearchTerm);
|
|
1056
|
+
}, [debouncedSearchTerm]);
|
|
1057
|
+
var renderGridCell = function renderGridCell(_ref2) {
|
|
1058
|
+
var columnIndex = _ref2.columnIndex,
|
|
1059
|
+
rowIndex = _ref2.rowIndex,
|
|
1060
|
+
style = _ref2.style,
|
|
1061
|
+
data = _ref2.data;
|
|
1062
|
+
var iconIndex = rowIndex * GRID_PROPERTIES.columnCount + columnIndex;
|
|
1063
|
+
var icon = data[iconIndex];
|
|
1064
|
+
var handleIconClick = function handleIconClick(icon) {
|
|
1065
|
+
onClick(icon);
|
|
1066
|
+
setActiveIcon(icon);
|
|
1067
|
+
};
|
|
1068
|
+
return icon ? /*#__PURE__*/jsxRuntime.jsx(Icon, {
|
|
1069
|
+
icon: icon,
|
|
1070
|
+
style: style,
|
|
1071
|
+
symbolsStyle: symbolsStyle,
|
|
1072
|
+
active: icon === activeIcon,
|
|
1073
|
+
onClick: handleIconClick
|
|
1074
|
+
}) : null;
|
|
1075
|
+
};
|
|
1076
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1077
|
+
className: "flex flex-col items-start gap-2",
|
|
1078
|
+
children: [label && /*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
1079
|
+
children: label
|
|
1080
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Dropdown, _objectSpread(_objectSpread({
|
|
1081
|
+
buttonSize: "small",
|
|
1082
|
+
buttonStyle: "secondary",
|
|
1083
|
+
closeOnSelect: false,
|
|
1084
|
+
dropdownProps: {
|
|
1085
|
+
className: classnames("h-96", className)
|
|
1086
|
+
},
|
|
1087
|
+
position: "bottom-start",
|
|
1088
|
+
strategy: "fixed",
|
|
1089
|
+
buttonProps: {
|
|
1090
|
+
"data-testid": "icon-picker-dropdown",
|
|
1091
|
+
onClick: handleDropdownClick
|
|
1092
|
+
},
|
|
1093
|
+
label: /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
1094
|
+
className: "flex items-center gap-2",
|
|
1095
|
+
style: symbolsStyle,
|
|
1096
|
+
children: [value && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
1097
|
+
className: "material-symbols-rounded neeto-ui-text-base mx-auto",
|
|
1098
|
+
children: value
|
|
1099
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
1100
|
+
style: "body2",
|
|
1101
|
+
children: neetoCist.humanize(value) || t("neetoMolecules.iconPicker.dropdown.label")
|
|
1102
|
+
})]
|
|
1103
|
+
}),
|
|
1104
|
+
onClose: function onClose() {
|
|
1105
|
+
return setSearchTerm("");
|
|
1106
|
+
}
|
|
1107
|
+
}, otherProps), {}, {
|
|
1108
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1109
|
+
className: "w-72 flex-grow p-2 md:w-80",
|
|
1110
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1111
|
+
className: "mb-1 space-y-2",
|
|
1112
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
|
|
1113
|
+
autoFocus: true,
|
|
1114
|
+
autoComplete: "off",
|
|
1115
|
+
"data-cy": "pick-icon-text-field",
|
|
1116
|
+
value: searchTerm,
|
|
1117
|
+
placeholder: t("neetoMolecules.common.search", {
|
|
1118
|
+
entity: t("neetoMolecules.iconPicker.entity")
|
|
1119
|
+
}),
|
|
1120
|
+
suffix: /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
1121
|
+
icon: Close,
|
|
1122
|
+
size: "small",
|
|
1123
|
+
style: "link",
|
|
1124
|
+
onClick: function onClick() {
|
|
1125
|
+
return setSearchTerm("");
|
|
1126
|
+
}
|
|
1127
|
+
}),
|
|
1128
|
+
onChange: function onChange(e) {
|
|
1129
|
+
return setSearchTerm(e.target.value);
|
|
1130
|
+
}
|
|
1131
|
+
}), value && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1132
|
+
className: "neeto-ui-bg-white flex justify-center",
|
|
1133
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
1134
|
+
className: "text-sm",
|
|
1135
|
+
"data-cy": "icon-remove-button",
|
|
1136
|
+
"data-testid": "icon-remove-button",
|
|
1137
|
+
icon: Close,
|
|
1138
|
+
label: t("neetoMolecules.iconPicker.dropdown.removeButton"),
|
|
1139
|
+
style: "link",
|
|
1140
|
+
onClick: handleRemoveClick
|
|
1141
|
+
})
|
|
1142
|
+
})]
|
|
1143
|
+
}), neetoCist.isNotEmpty(iconList) ? /*#__PURE__*/jsxRuntime.jsx(FixedSizeGrid, {
|
|
1144
|
+
className: "w-full overflow-x-hidden",
|
|
1145
|
+
columnCount: GRID_PROPERTIES.columnCount,
|
|
1146
|
+
height: GRID_PROPERTIES.gridHeight,
|
|
1147
|
+
itemData: iconList,
|
|
1148
|
+
ref: gridRef,
|
|
1149
|
+
rowHeight: GRID_PROPERTIES.rowHeight,
|
|
1150
|
+
width: GRID_PROPERTIES.gridWidth,
|
|
1151
|
+
columnWidth: isLargerScreen() ? GRID_PROPERTIES.columnWidthDesktop : GRID_PROPERTIES.columnWidthMobile,
|
|
1152
|
+
rowCount: Math.ceil(iconList.length / GRID_PROPERTIES.columnCount),
|
|
1153
|
+
children: renderGridCell
|
|
1154
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(NoResults$1, {})]
|
|
1155
|
+
})
|
|
1156
|
+
}))]
|
|
1157
|
+
});
|
|
1158
|
+
};
|
|
1159
|
+
|
|
1160
|
+
module.exports = IconPicker;
|
|
1161
|
+
//# sourceMappingURL=IconPicker.js.map
|