@finsemble/finsemble-ui 6.1.1 → 6.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -28
- package/package.json +1 -1
- package/react/actions/favoriteActions.js.map +1 -1
- package/react/actions/linkerActions.js.map +1 -1
- package/react/actions/menuActions.js.map +1 -1
- package/react/actions/rootActions.js.map +1 -1
- package/react/actions/searchActions.js.map +1 -1
- package/react/actions/smartDesktopDesignerActions.js.map +1 -1
- package/react/actions/toolbarActions.js.map +1 -1
- package/react/actions/workspaceActions.js.map +1 -1
- package/react/assets/css/advancedAppLauncher.css +636 -636
- package/react/assets/css/appCatalog.css +1069 -1069
- package/react/assets/css/authentication.css +78 -78
- package/react/assets/css/button.css +219 -219
- package/react/assets/css/core/formElements.css +23 -23
- package/react/assets/css/core/icons.css +69 -69
- package/react/assets/css/core/notifications.css +75 -75
- package/react/assets/css/core/windowFrame.css +36 -36
- package/react/assets/css/dashbar.css +78 -78
- package/react/assets/css/defaultTheme.css +356 -356
- package/react/assets/css/dialogs.css +158 -158
- package/react/assets/css/favorites.css +101 -101
- package/react/assets/css/finsemble.css +38 -38
- package/react/assets/css/focus.css +4 -4
- package/react/assets/css/font-finance.css +385 -385
- package/react/assets/css/fonts/Open_Sans/LICENSE.txt +202 -202
- package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +118 -118
- package/react/assets/css/fonts/font-finance.svg +124 -124
- package/react/assets/css/fonts/icons-reference.html +1174 -1174
- package/react/assets/css/linkerWindow.css +124 -124
- package/react/assets/css/menus.css +195 -195
- package/react/assets/css/notificationsCenter.css +594 -594
- package/react/assets/css/processMonitor.css +213 -213
- package/react/assets/css/search.css +128 -128
- package/react/assets/css/shared/animations.css +99 -99
- package/react/assets/css/tags.css +136 -136
- package/react/assets/css/toolbar.css +413 -413
- package/react/assets/css/userPreferences.css +565 -565
- package/react/assets/css/windowTitleBar.css +619 -619
- package/react/assets/icons/check.svg +3 -3
- package/react/assets/icons/chevron-left.svg +3 -3
- package/react/assets/icons/chevron-right.svg +3 -3
- package/react/assets/icons/copy.svg +10 -10
- package/react/assets/icons/exclamation-circle.svg +4 -4
- package/react/assets/icons/external-link.svg +12 -12
- package/react/assets/icons/flag.svg +10 -10
- package/react/assets/icons/folder.svg +3 -3
- package/react/assets/icons/font.svg +3 -3
- package/react/assets/icons/globe.svg +3 -3
- package/react/assets/icons/hdd.svg +9 -9
- package/react/assets/icons/key.svg +10 -10
- package/react/assets/icons/life-ring.svg +3 -3
- package/react/assets/icons/magic.svg +15 -15
- package/react/assets/icons/moon.svg +10 -10
- package/react/assets/icons/paint-roller.svg +3 -3
- package/react/assets/icons/pencil.svg +10 -10
- package/react/assets/icons/plus.svg +3 -3
- package/react/assets/icons/question-circle.svg +5 -5
- package/react/assets/icons/search.svg +3 -3
- package/react/assets/icons/sun.svg +9 -9
- package/react/assets/icons/times.svg +3 -3
- package/react/assets/icons/toggle-off.svg +6 -6
- package/react/assets/icons/toggle-on.svg +6 -6
- package/react/assets/icons/tools.svg +3 -3
- package/react/assets/icons/trash.svg +12 -12
- package/react/assets/icons/upload.svg +10 -10
- package/react/assets/icons/window.svg +3 -3
- package/react/componentTemplateGenerator.js +85 -85
- package/react/componentTemplateGenerator.js.map +1 -1
- package/react/components/FinsembleProvider.js.map +1 -1
- package/react/components/appCatalog/AppCatalog.js.map +1 -1
- package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
- package/react/components/appCatalog/components/AppCard.js.map +1 -1
- package/react/components/appCatalog/components/AppList.js.map +1 -1
- package/react/components/appCatalog/components/AppResults.js.map +1 -1
- package/react/components/appCatalog/components/Carousel.js.map +1 -1
- package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
- package/react/components/appCatalog/components/Hero.js.map +1 -1
- package/react/components/appCatalog/components/Home.js.map +1 -1
- package/react/components/appCatalog/components/SearchBar.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/defaults.js.map +1 -1
- package/react/components/appCatalog/components/Tag.js.map +1 -1
- package/react/components/appCatalog/components/Toast.js.map +1 -1
- package/react/components/appCatalog/components/helpers.js.map +1 -1
- package/react/components/appCatalog/index.js.map +1 -1
- package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
- package/react/components/appCatalog/modules/FDC3.js.map +1 -1
- package/react/components/appCatalog/stores/appStore.js.map +1 -1
- package/react/components/appCatalog/stores/storeActions.js.map +1 -1
- package/react/components/common/Button.js.map +1 -1
- package/react/components/common/ButtonIcon.js.map +1 -1
- package/react/components/common/ButtonTile.js.map +1 -1
- package/react/components/common/ColorPicker.js.map +1 -1
- package/react/components/common/DropZone.js.map +1 -1
- package/react/components/common/DropdownButton.js.map +1 -1
- package/react/components/common/FileInput.js.map +1 -1
- package/react/components/common/FinsembleIcon.js.map +1 -1
- package/react/components/common/FinsembleSelect.js.map +1 -1
- package/react/components/common/FinsembleToggle.js.map +1 -1
- package/react/components/common/FontSizeSelector.js.map +1 -1
- package/react/components/common/Header.js.map +1 -1
- package/react/components/common/ImagePreview.js.map +1 -1
- package/react/components/common/LoadingSpinner.js.map +1 -1
- package/react/components/common/Tab.js.map +1 -1
- package/react/components/common/Tooltip.js.map +1 -1
- package/react/components/common/css/application-edit-page.css +117 -117
- package/react/components/common/css/application-list.css +47 -47
- package/react/components/common/css/button.css +164 -164
- package/react/components/common/css/color-picker.css +52 -52
- package/react/components/common/css/drop-zone.css +17 -17
- package/react/components/common/css/file-input.css +49 -49
- package/react/components/common/css/header.css +43 -43
- package/react/components/common/css/icon.css +13 -13
- package/react/components/common/css/image-preview.css +57 -57
- package/react/components/common/css/loading-spinner.css +39 -39
- package/react/components/common/css/selector.css +51 -51
- package/react/components/common/css/styles.css +128 -128
- package/react/components/common/css/tab.css +56 -56
- package/react/components/common/css/toggle.css +32 -32
- package/react/components/common/css/tooltip.css +68 -68
- package/react/components/common/file_helpers.js.map +1 -1
- package/react/components/common/fixtures/FinsembleIcon.css +4 -4
- package/react/components/common/helpers.js.map +1 -1
- package/react/components/common/stories/Button.stories.js.map +1 -1
- package/react/components/common/stories/ButtonIcon.stories.js.map +1 -1
- package/react/components/common/stories/ButtonTile.stories.js.map +1 -1
- package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
- package/react/components/common/stories/DropZone.stories.js.map +1 -1
- package/react/components/common/stories/FileInput.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleIcon.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleSelect.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
- package/react/components/common/stories/FontSizeSelector.stories.js.map +1 -1
- package/react/components/common/stories/Header.stories.js.map +1 -1
- package/react/components/common/stories/ImagePreview.stories.js.map +1 -1
- package/react/components/common/stories/LoadingSpinner.stories.js.map +1 -1
- package/react/components/common/stories/Tab.stories.js.map +1 -1
- package/react/components/common/stories/Tooltip.stories.js.map +1 -1
- package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
- package/react/components/common/tests/DropZone.spec.js.map +1 -1
- package/react/components/common/tests/FileInput.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
- package/react/components/common/tests/Header.spec.js.map +1 -1
- package/react/components/common/tests/ImagePreview.spec.js.map +1 -1
- package/react/components/common/tests/Tab.spec.js.map +1 -1
- package/react/components/common/tests/Tooltip.spec.js.map +1 -1
- package/react/components/favorites/FavoriteMaker.js.map +1 -1
- package/react/components/favorites/FavoritesShell.js.map +1 -1
- package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
- package/react/components/favorites/FavoritesShell.stories.js.map +1 -1
- package/react/components/favorites/index.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.css +125 -125
- package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
- package/react/components/icon/Icon.js.map +1 -1
- package/react/components/icon/index.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
- package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
- package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
- package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
- package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
- package/react/components/legacyControls/stories/FinsembleDialog.stories.js.map +1 -1
- package/react/components/legacyControls/stories/FinsembleDialogButton.stories.js.map +1 -1
- package/react/components/legacyControls/stories/FinsembleDialogQuestion.stories.js.map +1 -1
- package/react/components/legacyControls/stories/FinsembleDialogTextInput.stories.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialog.spec.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogQuestion.spec.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
- package/react/components/linker/LinkerMenu.js.map +1 -1
- package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
- package/react/components/linker/index.js.map +1 -1
- package/react/components/linker/remoteRedux.js.map +1 -1
- package/react/components/menu/Menu.js.map +1 -1
- package/react/components/menu/MenuAutoResizer.js.map +1 -1
- package/react/components/menu/MenuContent.js.map +1 -1
- package/react/components/menu/MenuHotKey.js.map +1 -1
- package/react/components/menu/MenuItem.js.map +1 -1
- package/react/components/menu/MenuPortal.js.map +1 -1
- package/react/components/menu/MenuShell.js.map +1 -1
- package/react/components/menu/MenuToggle.js.map +1 -1
- package/react/components/menu/index.js.map +1 -1
- package/react/components/menu/keyboardNavigation.js.map +1 -1
- package/react/components/menu/menuContext.js.map +1 -1
- package/react/components/menu/menuHelpers.js.map +1 -1
- package/react/components/notifications/components/NoNotifications.js.map +1 -1
- package/react/components/notifications/components/drawer/Drawer.js.map +1 -1
- package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
- package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
- package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
- package/react/components/notifications/components/shared/IconButton.js.map +1 -1
- package/react/components/notifications/components/shared/NotificationCardShell.js +1 -1
- package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
- package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyActions.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyContentLogo.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderLogo.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
- package/react/components/notifications/components/views/CardView.js.map +1 -1
- package/react/components/notifications/components/views/ListView.js +1 -1
- package/react/components/notifications/components/views/ListView.js.map +1 -1
- package/react/components/notifications/components/views/NotificationDetailsView.js.map +1 -1
- package/react/components/notifications/constants.js.map +1 -1
- package/react/components/notifications/icons/Card.js.map +1 -1
- package/react/components/notifications/icons/Chevron.js.map +1 -1
- package/react/components/notifications/icons/CloseIcon.js.map +1 -1
- package/react/components/notifications/icons/EnvelopeClose.js.map +1 -1
- package/react/components/notifications/icons/EnvelopeOpen.js.map +1 -1
- package/react/components/notifications/icons/SnoozeIcon.js.map +1 -1
- package/react/components/notifications/index.js.map +1 -1
- package/react/components/notifications/notificationsContext.js.map +1 -1
- package/react/components/notifications/types.js.map +1 -1
- package/react/components/notifications/utils.js.map +1 -1
- package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
- package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
- package/react/components/processMonitor/components/ChildWindows.js.map +1 -1
- package/react/components/processMonitor/components/ListHeader.js.map +1 -1
- package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
- package/react/components/processMonitor/constants.js.map +1 -1
- package/react/components/processMonitor/helpers.js.map +1 -1
- package/react/components/processMonitor/index.js.map +1 -1
- package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
- package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
- package/react/components/quickComponentForm/index.js.map +1 -1
- package/react/components/quickComponentForm/quickComponent.css +3 -3
- package/react/components/search/Highlight.js.map +1 -1
- package/react/components/search/Highlight.spec.js.map +1 -1
- package/react/components/search/Highlight.stories.js.map +1 -1
- package/react/components/search/Search.js.map +1 -1
- package/react/components/search/SearchBestMatch.js.map +1 -1
- package/react/components/search/SearchInput.js.map +1 -1
- package/react/components/search/SearchProviderResults.js.map +1 -1
- package/react/components/search/SearchResult.js.map +1 -1
- package/react/components/search/SearchResults.js.map +1 -1
- package/react/components/search/index.js.map +1 -1
- package/react/components/shared/Animate.js.map +1 -1
- package/react/components/shared/BellIcon.js.map +1 -1
- package/react/components/shared/BellIconCrossed.js.map +1 -1
- package/react/components/shared/Button.js.map +1 -1
- package/react/components/shared/ConditionalWrapper.js.map +1 -1
- package/react/components/shared/DefaultDropdownButton.js.map +1 -1
- package/react/components/shared/NavigationButton.js.map +1 -1
- package/react/components/shared/Tag.js.map +1 -1
- package/react/components/shared/TagsMenu.js.map +1 -1
- package/react/components/shared/addProtocolToValidURL.js.map +1 -1
- package/react/components/shared/addProtocolToValidURL.spec.js.map +1 -1
- package/react/components/shared/linkerUtil.js.map +1 -1
- package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
- package/react/components/shared/validateURL.js.map +1 -1
- package/react/components/shared/validateURL.spec.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.css +3 -3
- package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.spec.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
- package/react/components/singleInputDialog/index.js.map +1 -1
- package/react/components/smartDesktopDesigner/AppEditPage.js.map +1 -1
- package/react/components/smartDesktopDesigner/Appearance.css +94 -94
- package/react/components/smartDesktopDesigner/Appearance.helpers.js.map +1 -1
- package/react/components/smartDesktopDesigner/Appearance.js.map +1 -1
- package/react/components/smartDesktopDesigner/Application.js.map +1 -1
- package/react/components/smartDesktopDesigner/ApplicationEdit.js.map +1 -1
- package/react/components/smartDesktopDesigner/ApplicationList.js.map +1 -1
- package/react/components/smartDesktopDesigner/ApplicationSetup.js.map +1 -1
- package/react/components/smartDesktopDesigner/Applications.js.map +1 -1
- package/react/components/smartDesktopDesigner/AssetsPage.css +26 -26
- package/react/components/smartDesktopDesigner/AssetsPage.js.map +1 -1
- package/react/components/smartDesktopDesigner/Authentication.js.map +1 -1
- package/react/components/smartDesktopDesigner/AuthenticationProviderConfig.js.map +1 -1
- package/react/components/smartDesktopDesigner/Content.js.map +1 -1
- package/react/components/smartDesktopDesigner/CurrentView.js.map +1 -1
- package/react/components/smartDesktopDesigner/Export.js.map +1 -1
- package/react/components/smartDesktopDesigner/ExportCloud.js.map +1 -1
- package/react/components/smartDesktopDesigner/ExportDeployInfo.js.map +1 -1
- package/react/components/smartDesktopDesigner/ExportZip.js.map +1 -1
- package/react/components/smartDesktopDesigner/GettingStarted.js.map +1 -1
- package/react/components/smartDesktopDesigner/Navigation.js.map +1 -1
- package/react/components/smartDesktopDesigner/ProjectErrors.js.map +1 -1
- package/react/components/smartDesktopDesigner/ProjectHeader.js.map +1 -1
- package/react/components/smartDesktopDesigner/Publish.js.map +1 -1
- package/react/components/smartDesktopDesigner/PublishProgress.js.map +1 -1
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
- package/react/components/smartDesktopDesigner/ThemePage.css +110 -110
- package/react/components/smartDesktopDesigner/ThemePage.js.map +1 -1
- package/react/components/smartDesktopDesigner/Themes.js.map +1 -1
- package/react/components/smartDesktopDesigner/View.js.map +1 -1
- package/react/components/smartDesktopDesigner/common/fsbl_functions.js.map +1 -1
- package/react/components/smartDesktopDesigner/common/getCSSVars.js.map +1 -1
- package/react/components/smartDesktopDesigner/common/views.js +2 -2
- package/react/components/smartDesktopDesigner/common/views.js.map +1 -1
- package/react/components/smartDesktopDesigner/css/appearance.css +10 -10
- package/react/components/smartDesktopDesigner/css/applications.css +89 -89
- package/react/components/smartDesktopDesigner/css/authentication.css +125 -125
- package/react/components/smartDesktopDesigner/css/buttons.css +12 -12
- package/react/components/smartDesktopDesigner/css/export.css +163 -163
- package/react/components/smartDesktopDesigner/css/getting-started.css +6 -6
- package/react/components/smartDesktopDesigner/css/nav.css +93 -93
- package/react/components/smartDesktopDesigner/css/project-errors.css +15 -15
- package/react/components/smartDesktopDesigner/css/project-header.css +121 -121
- package/react/components/smartDesktopDesigner/css/styles.css +179 -179
- package/react/components/smartDesktopDesigner/css/views.css +16 -16
- package/react/components/smartDesktopDesigner/fixtures/applicationEditProps.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/applicationSetupProps.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/applicationsProps.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/apps.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/authenticationProps.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/configTemplate.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/exportProps.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/projectErrorsProps.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/publishProgress.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/themeProps.js.map +1 -1
- package/react/components/smartDesktopDesigner/fixtures/views.js.map +1 -1
- package/react/components/smartDesktopDesigner/sdd_helpers.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/AppEditPage.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/Appearance.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/ApplicationEdit.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/ApplicationList.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/ApplicationSetup.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/Applications.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/AssetsPage.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/Authentication.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/Export.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/ExportCloud.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/ExportZip.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/GettingStarted.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/Navigation.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/ProjectErrors.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/ProjectHeader.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/Publish.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/PublishProgress.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/SmartDesktopDesigner.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/ThemePage.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/stories/Themes.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/AppEditPage.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/ApplicationEdit.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/ApplicationList.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/ApplicationSetup.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/Applications.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/Authentication.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/Export.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/ExportZip.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/Navigation.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/ProjectErrors.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/ProjectHeader.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/Publish.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/PublishProgess.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/SmartDesktopDesigner.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/Themes.spec.js.map +1 -1
- package/react/components/smartDesktopDesigner/tests/a11y_helper.js +3 -3
- package/react/components/smartDesktopDesigner/tests/a11y_helper.js.map +1 -1
- package/react/components/smartDesktopDesigner/themeDefinitions.js.map +1 -1
- package/react/components/system/System.js.map +1 -1
- package/react/components/system/System.spec.js.map +1 -1
- package/react/components/system/System.stories.js.map +1 -1
- package/react/components/system/SystemTrayComponentShell.js.map +1 -1
- package/react/components/system/index.js.map +1 -1
- package/react/components/toolbar/AutoArrange.js.map +1 -1
- package/react/components/toolbar/DragHandle.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
- package/react/components/toolbar/NotificationControl.js.map +1 -1
- package/react/components/toolbar/RevealAll.js.map +1 -1
- package/react/components/toolbar/RevealAll.spec.js.map +1 -1
- package/react/components/toolbar/RevealAll.stories.js.map +1 -1
- package/react/components/toolbar/ToolbarIcon.js.map +1 -1
- package/react/components/toolbar/ToolbarSection.js.map +1 -1
- package/react/components/toolbar/ToolbarShell.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppTagsList.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/LeftNav.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/NoAppsFound.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/SortBy.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/TagsList.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/LauncherStore.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/appLauncher/DynamicAppLauncher.js.map +1 -1
- package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/appLauncher/appLauncher.css +30 -30
- package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
- package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
- package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
- package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
- package/react/components/toolbar/index.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +94 -94
- package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
- package/react/components/userPreferences/UserPreferences.js.map +1 -1
- package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
- package/react/components/userPreferences/components/Checkbox.js.map +1 -1
- package/react/components/userPreferences/components/ContentSection.js.map +1 -1
- package/react/components/userPreferences/components/LeftNav.js.map +1 -1
- package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
- package/react/components/userPreferences/components/content/General.js.map +1 -1
- package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
- package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/notificationViewsUtils.js.map +1 -1
- package/react/components/userPreferences/components/general/ScheduledRestart.js.map +1 -1
- package/react/components/userPreferences/index.js.map +1 -1
- package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
- package/react/components/userPreferences/stories/DashbarEditor.stories.js.map +1 -1
- package/react/components/utils.js.map +1 -1
- package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
- package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
- package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
- package/react/components/windowTitleBar/components/center/TabRegion.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
- package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
- package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
- package/react/components/windowTitleBar/index.js.map +1 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +1 -1
- package/react/components/windowTitleBar/windowTitleBarContext.js.map +1 -1
- package/react/components/yesNoDialog/Timer.spec.js.map +1 -1
- package/react/components/yesNoDialog/Timer.stories.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.css +3 -3
- package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
- package/react/components/yesNoDialog/index.js.map +1 -1
- package/react/components/yesNoDialog/timer.js.map +1 -1
- package/react/enzymeSetup.js.map +1 -1
- package/react/hooks/index.js.map +1 -1
- package/react/hooks/useAuth.js.map +1 -1
- package/react/hooks/useDeepEffect.js.map +1 -1
- package/react/hooks/useFavorites.js.map +1 -1
- package/react/hooks/useFavoritesShell.js.map +1 -1
- package/react/hooks/useHotkey.js.map +1 -1
- package/react/hooks/useLinker.js.map +1 -1
- package/react/hooks/useMenu.js.map +1 -1
- package/react/hooks/useNotifications.js.map +1 -1
- package/react/hooks/useOutsideClickDetector.js.map +1 -1
- package/react/hooks/usePubSub.js.map +1 -1
- package/react/hooks/useSearch.js.map +1 -1
- package/react/hooks/useToolbar.js.map +1 -1
- package/react/hooks/useWorkspace.js.map +1 -1
- package/react/reducers/favoriteReducer.js.map +1 -1
- package/react/reducers/linkerReducer.js.map +1 -1
- package/react/reducers/menuReducer.js.map +1 -1
- package/react/reducers/rootReducer.js.map +1 -1
- package/react/reducers/searchReducer.js.map +1 -1
- package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
- package/react/reducers/toolbarReducer.js.map +1 -1
- package/react/reducers/workspaceReducer.js.map +1 -1
- package/react/store.js.map +1 -1
- package/react/types/advancedAppLauncherTypes.js.map +1 -1
- package/react/types/dashbarTypes.js.map +1 -1
- package/react/types/favoriteTypes.js.map +1 -1
- package/react/types/fdc3.js.map +1 -1
- package/react/types/hotkeyTypes.js.map +1 -1
- package/react/types/iconTypes.js.map +1 -1
- package/react/types/linkerTypes.js.map +1 -1
- package/react/types/searchTypes.js.map +1 -1
- package/react/types/smartDesktopDesignerTypes.js.map +1 -1
- package/react/types/workspaceTypes.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticAppLauncherMenu.js","sourceRoot":"","sources":["../../../../src/components/toolbar/appLauncher/StaticAppLauncherMenu.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,mBAAmB,CAAC;AAW3B,MAAM,OAAO,qBAAsB,SAAQ,KAAK,CAAC,SAAS;IACzD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG;YACZ,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,KAAK;SAClB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,QAAQ,CAAC;YACb,WAAW,EAAE,IAAI;SACjB,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,YAAY,CAAC,UAAU,EAAE,CAAC;QAG1B,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,eAAe,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;SAC5G;IACF,CAAC;IAED,oBAAoB;QACnB,YAAY,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAGD,kBAAkB;QAEjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM;QACL,IAAI,aAAa,GAAG;YACnB,GAAG,IAAI,CAAC,KAAK;YACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG;YAC9B,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,iBAAiB;YACtC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM;YACjC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,0BAA0B;SAC7D,CAAC;QAEF,OAAO,CACN,oBAAC,IAAI,OAAK,aAAa;YACrB,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,CAC3C,6BAAK,SAAS,EAAC,gBAAgB;gBAC9B,oBAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,cAAoB,CACzD,CACN,CAAC,CAAC,CAAC,IAAI;YACP,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAC1B,oBAAC,aAAa,IACb,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAC3C,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAC9C,CACF,CACK,CACP,CAAC;IACH,CAAC;CACD","sourcesContent":["import * as React from \"react\";\
|
|
1
|
+
{"version":3,"file":"StaticAppLauncherMenu.js","sourceRoot":"","sources":["../../../../src/components/toolbar/appLauncher/StaticAppLauncherMenu.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,mBAAmB,CAAC;AAW3B,MAAM,OAAO,qBAAsB,SAAQ,KAAK,CAAC,SAAS;IACzD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG;YACZ,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,KAAK;SAClB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,QAAQ,CAAC;YACb,WAAW,EAAE,IAAI;SACjB,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,YAAY,CAAC,UAAU,EAAE,CAAC;QAG1B,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,eAAe,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;SAC5G;IACF,CAAC;IAED,oBAAoB;QACnB,YAAY,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAGD,kBAAkB;QAEjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM;QACL,IAAI,aAAa,GAAG;YACnB,GAAG,IAAI,CAAC,KAAK;YACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG;YAC9B,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,iBAAiB;YACtC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM;YACjC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,0BAA0B;SAC7D,CAAC;QAEF,OAAO,CACN,oBAAC,IAAI,OAAK,aAAa;YACrB,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,CAC3C,6BAAK,SAAS,EAAC,gBAAgB;gBAC9B,oBAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,cAAoB,CACzD,CACN,CAAC,CAAC,CAAC,IAAI;YACP,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAC1B,oBAAC,aAAa,IACb,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAC3C,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAC9C,CACF,CACK,CACP,CAAC;IACH,CAAC;CACD","sourcesContent":["import * as React from \"react\";\nimport { Menu } from \"../../menu/Menu\";\nimport { MenuItem } from \"../../menu/MenuItem\";\nimport ComponentList from \"./components/componentList\";\nimport { storeManager } from \"./stores/appLauncherStore\";\n\nimport \"./appLauncher.css\";\n\n/**\n * The \"app\" button that launches the AppLauncher menu from the toolbar.\n * The app launcher lists all configured Finsemble applications.\n *\n * @param {boolean} [enableQuickComponents=false] DEPRECATED: Set to true to allow users to create their own components\n * @param {string} [title] The title of the menu, as viewed in the toolbar\n * @param {string[]} [componentFilter] Custom list of menu items to display\n * @param {boolean} [suppressFavorites=false]\n */\nexport class StaticAppLauncherMenu extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tdimensions: {},\n\t\t\tcomponentList: {},\n\t\t\tinitialized: false,\n\t\t};\n\t\tthis.onInitialized = this.onInitialized.bind(this);\n\t}\n\n\tonInitialized() {\n\t\tthis.setState({\n\t\t\tinitialized: true,\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tstoreManager.addInitializedListener(this.onInitialized);\n\t\tstoreManager.initialize();\n\n\t\t// Focus on the window when it is shown so that a click elsewhere will trigger a blur.\n\t\tfinsembleWindow.addEventListener(\"shown\", () => {\n\t\t\tfinsembleWindow.focus();\n\t\t});\n\n\t\tif (this.props.enableQuickComponents) {\n\t\t\tFSBL.Clients.Logger.system.error(\"QuickComponents are deprecated and will be removed in a future release.\");\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tstoreManager.removeInitializedListener(this.onInitialized);\n\t}\n\n\t// @deprecated - Quick Components will be removed in a future version\n\topenQuickComponent() {\n\t\t// FSBL.Clients.LauncherClient.spawn(\"QuickComponentForm\", { monitor: \"mine\" });\n\t\tFSBL.Clients.DialogManager.open(\"QuickComponentForm\", {}, () => {});\n\t}\n\n\trender() {\n\t\tlet completeProps = {\n\t\t\t...this.props,\n\t\t\twidth: this.props.width ?? 300,\n\t\t\tid: this.props.id ?? \"AppLauncherMenu\",\n\t\t\ttitle: this.props.title ?? \"Apps\",\n\t\t\tclassName: this.props.className ?? \"menu-portal app-launcher\",\n\t\t};\n\n\t\treturn (\n\t\t\t<Menu {...completeProps}>\n\t\t\t\t{this.props.enableQuickComponents == true ? (\n\t\t\t\t\t<div className=\"menu-secondary\">\n\t\t\t\t\t\t<MenuItem onClick={this.openQuickComponent}>New App</MenuItem>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t\t{this.state.initialized && (\n\t\t\t\t\t<ComponentList\n\t\t\t\t\t\tcomponentFilter={this.props.componentFilter}\n\t\t\t\t\t\tsuppressFavorites={this.props.suppressFavorites}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Menu>\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* appLauncher.css
|
|
3
|
-
* Copyright 2017 - 2020 by ChartIQ, Inc.
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
@import url("../../../assets/css/menus.css");
|
|
8
|
-
|
|
9
|
-
.app-launcher-list {
|
|
10
|
-
padding-top: 4px;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/* hover must be set again after overwriting focus for highlight to continue to work on hover after favoriting*/
|
|
14
|
-
.app-launcher-list .menu-item:hover {
|
|
15
|
-
background: var(--menu-content-hover-color);
|
|
16
|
-
outline: none;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.app-launcher .icon-avatar {
|
|
20
|
-
position: relative;
|
|
21
|
-
top: -4px;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/*
|
|
25
|
-
This code prevents a "long word" in a flexbox from pushing other children off the edge of the screen.
|
|
26
|
-
*/
|
|
27
|
-
.app-launcher .menu-item-row > *:first-child {
|
|
28
|
-
min-width: 1%;
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* appLauncher.css
|
|
3
|
+
* Copyright 2017 - 2020 by ChartIQ, Inc.
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@import url("../../../assets/css/menus.css");
|
|
8
|
+
|
|
9
|
+
.app-launcher-list {
|
|
10
|
+
padding-top: 4px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* hover must be set again after overwriting focus for highlight to continue to work on hover after favoriting*/
|
|
14
|
+
.app-launcher-list .menu-item:hover {
|
|
15
|
+
background: var(--menu-content-hover-color);
|
|
16
|
+
outline: none;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.app-launcher .icon-avatar {
|
|
20
|
+
position: relative;
|
|
21
|
+
top: -4px;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
This code prevents a "long word" in a flexbox from pushing other children off the edge of the screen.
|
|
26
|
+
*/
|
|
27
|
+
.app-launcher .menu-item-row > *:first-child {
|
|
28
|
+
min-width: 1%;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/appLauncher/components/componentList.jsx"],"names":[],"mappings":"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","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\n/**\r\n * This is the list of all components in the appLauncher.\r\n */\r\nimport React from \"react\";\r\nimport { getStore, Actions as appLauncherActions } from \"../stores/appLauncherStore\";\r\nimport { MenuItem } from \"../../../menu/MenuItem\";\r\nimport { FavoriteMaker } from \"../../../favorites/FavoriteMaker\";\r\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\r\nimport { iconFromConfig } from \"../../../icon/Icon\";\r\n\r\nlet appLauncherStore;\r\n\r\n/**\r\n * Handles deleting a component and removing it from favorites if necessary\r\n * @param {} props\r\n */\r\nconst DeleteComponent = (props) => {\r\n\tconst { name } = props;\r\n\tconst { isFavorited, removeFavorite } = useFavorites();\r\n\tconst doDeleteComponent = (e) => {\r\n\t\te.preventDefault();\r\n\t\te.stopPropagation();\r\n\t\tappLauncherActions.handleRemoveCustomComponent(name, (wasDeleted) => {\r\n\t\t\tif (wasDeleted && isFavorited(name)) {\r\n\t\t\t\tremoveFavorite(name);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\treturn (\r\n\t\t<span onClick={doDeleteComponent} className=\"menu-item-icon\">\r\n\t\t\t<i className=\"ff-adp-trash-outline\" title=\"Delete\"></i>\r\n\t\t</span>\r\n\t);\r\n};\r\n\r\nexport default class appLauncherContainer extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tcomponentList: {},\r\n\t\t\t// list of components to display instead of all components\r\n\t\t\tfilteredListOfComponents: props.componentFilter ?? [],\r\n\t\t};\r\n\t\tthis.bindCorrectContext();\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps) {\r\n\t\tif (this.props.componentFilter !== prevProps.componentFilter) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tfilteredListOfComponents: this.props.componentFilter ?? [],\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tbindCorrectContext() {\r\n\t\tthis.onComponentListUpdate = this.onComponentListUpdate.bind(this);\r\n\t\tthis.buildComponentItem = this.buildComponentItem.bind(this);\r\n\t}\r\n\r\n\tonComponentListUpdate(err, data) {\r\n\t\tFSBL.Clients.Logger.debug(\"appLauncher onComponentListUpdate\");\r\n\t\tthis.setState({\r\n\t\t\tcomponentList: data.value,\r\n\t\t});\r\n\t}\r\n\r\n\tsetInitialState() {\r\n\t\tlet self = this;\r\n\t\tappLauncherStore.getValue({ field: \"componentList\" }, (err, data) => {\r\n\t\t\tself.setState({\r\n\t\t\t\tcomponentList: data,\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tappLauncherStore = getStore();\r\n\t\tthis.setInitialState();\r\n\t\tappLauncherStore.addListener({ field: \"componentList\" }, this.onComponentListUpdate);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tappLauncherStore.removeListener({ field: \"componentList\" }, this.onComponentListUpdate);\r\n\t}\r\n\r\n\tlaunchComponent(component, params, cb) {\r\n\t\t// If we are launching a group\r\n\t\tif (component.group) {\r\n\t\t\tfor (let i of Object.keys(component.list)) {\r\n\t\t\t\tlet cloneParams = Object.assign({}, params);\r\n\t\t\t\tlet c = component.list[i];\r\n\t\t\t\tif (c.component.windowGroup) {\r\n\t\t\t\t\tcloneParams.groupName = c.component.windowGroup;\r\n\t\t\t\t}\r\n\t\t\t\tappLauncherActions.launchComponent(component.list[i], params, cb);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (component.component.windowGroup) {\r\n\t\t\t\tparams.groupName = component.component.windowGroup;\r\n\t\t\t}\r\n\t\t\tappLauncherActions.launchComponent(component, params, cb);\r\n\t\t}\r\n\t}\r\n\r\n\tbuildComponentItem(params) {\r\n\t\tconst { key, isUserDefined } = params;\r\n\t\tconst config = this.state.componentList[key];\r\n\t\tlet displayName = key;\r\n\r\n\t\t// If the app isn't launchable by the user, don't show it\r\n\t\tif (\r\n\t\t\t(!config ||\r\n\t\t\t\t!config.window ||\r\n\t\t\t\t!config.foreign ||\r\n\t\t\t\t!config.foreign.components ||\r\n\t\t\t\t!config.foreign.components[\"App Launcher\"] ||\r\n\t\t\t\t!config.foreign.components[\"App Launcher\"].launchableByUser) &&\r\n\t\t\t!config.group\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// If the app is temporary (actively being configured in the Smart Desktop Designer), don't show it\r\n\t\tif (config?.appDConfig?.manifest?.temporary) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Component developers can define a display name that will show instead of the component's type.\r\n\t\tif (config.component && config.component.displayName) {\r\n\t\t\t({ displayName } = config.component);\r\n\t\t}\r\n\t\tconst iconObject = iconFromConfig(config?.foreign?.components?.Toolbar, displayName);\r\n\t\treturn (\r\n\t\t\t<MenuItem\r\n\t\t\t\tkey={key}\r\n\t\t\t\tonClick={() => this.launchComponent(config, {})}\r\n\t\t\t\tonKeyDown={(e) => {\r\n\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t<div className=\"menu-item-row\">\r\n\t\t\t\t\t<span className=\"app-name\" title={displayName}>\r\n\t\t\t\t\t\t{displayName}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<span className=\"menu-item-row-push-right\">\r\n\t\t\t\t\t\t{isUserDefined && <DeleteComponent name={displayName} />}\r\n\t\t\t\t\t\t{!this.props.suppressFavorites && (\r\n\t\t\t\t\t\t\t<FavoriteMaker\r\n\t\t\t\t\t\t\t\tid={config?.component?.type}\r\n\t\t\t\t\t\t\t\tcategory=\"Application\"\r\n\t\t\t\t\t\t\t\tname={displayName}\r\n\t\t\t\t\t\t\t\ticon={iconObject}\r\n\t\t\t\t\t\t\t\tclassName=\"menu-item-icon\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</div>\r\n\t\t\t</MenuItem>\r\n\t\t);\r\n\t}\r\n\r\n\trenderComponentsList() {\r\n\t\tconst { state } = this;\r\n\t\tconst components = Object.keys(state.componentList).filter((componentType) => {\r\n\t\t\tif (state.filteredListOfComponents.length) {\r\n\t\t\t\treturn state.filteredListOfComponents.includes(componentType);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t});\r\n\t\t// if this is greater than 0, we don't show a note telling the user to check their configs.\r\n\t\t// iterate through componentList and render a componentItem for each one.\r\n\t\tconst componentList = components.map((key, i) => {\r\n\t\t\tconst { component } = state.componentList[key];\r\n\t\t\tconst isUserDefined = Boolean(component && component.isUserDefined);\r\n\t\t\treturn this.buildComponentItem({ i, key, isUserDefined });\r\n\t\t});\r\n\t\treturn (\r\n\t\t\t<div className=\"app-launcher-list\">\r\n\t\t\t\t{componentList.length ? (\r\n\t\t\t\t\tcomponentList\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t{\" \"}\r\n\t\t\t\t\t\tNo components loaded. Make sure to check ./src/components.json to make sure you've set everything up\r\n\t\t\t\t\t\tcorrectly.\r\n\t\t\t\t\t</p>\r\n\t\t\t\t)}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn this.state.componentList ? this.renderComponentsList() : <div></div>;\r\n\t}\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"componentList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/appLauncher/components/componentList.jsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n/**\n * This is the list of all components in the appLauncher.\n */\nimport React from \"react\";\nimport { getStore, Actions as appLauncherActions } from \"../stores/appLauncherStore\";\nimport { MenuItem } from \"../../../menu/MenuItem\";\nimport { FavoriteMaker } from \"../../../favorites/FavoriteMaker\";\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\nimport { iconFromConfig } from \"../../../icon/Icon\";\n\nlet appLauncherStore;\n\n/**\n * Handles deleting a component and removing it from favorites if necessary\n * @param {} props\n */\nconst DeleteComponent = (props) => {\n\tconst { name } = props;\n\tconst { isFavorited, removeFavorite } = useFavorites();\n\tconst doDeleteComponent = (e) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tappLauncherActions.handleRemoveCustomComponent(name, (wasDeleted) => {\n\t\t\tif (wasDeleted && isFavorited(name)) {\n\t\t\t\tremoveFavorite(name);\n\t\t\t}\n\t\t});\n\t};\n\treturn (\n\t\t<span onClick={doDeleteComponent} className=\"menu-item-icon\">\n\t\t\t<i className=\"ff-adp-trash-outline\" title=\"Delete\"></i>\n\t\t</span>\n\t);\n};\n\nexport default class appLauncherContainer extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tcomponentList: {},\n\t\t\t// list of components to display instead of all components\n\t\t\tfilteredListOfComponents: props.componentFilter ?? [],\n\t\t};\n\t\tthis.bindCorrectContext();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (this.props.componentFilter !== prevProps.componentFilter) {\n\t\t\tthis.setState({\n\t\t\t\tfilteredListOfComponents: this.props.componentFilter ?? [],\n\t\t\t});\n\t\t}\n\t}\n\n\tbindCorrectContext() {\n\t\tthis.onComponentListUpdate = this.onComponentListUpdate.bind(this);\n\t\tthis.buildComponentItem = this.buildComponentItem.bind(this);\n\t}\n\n\tonComponentListUpdate(err, data) {\n\t\tFSBL.Clients.Logger.debug(\"appLauncher onComponentListUpdate\");\n\t\tthis.setState({\n\t\t\tcomponentList: data.value,\n\t\t});\n\t}\n\n\tsetInitialState() {\n\t\tlet self = this;\n\t\tappLauncherStore.getValue({ field: \"componentList\" }, (err, data) => {\n\t\t\tself.setState({\n\t\t\t\tcomponentList: data,\n\t\t\t});\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tappLauncherStore = getStore();\n\t\tthis.setInitialState();\n\t\tappLauncherStore.addListener({ field: \"componentList\" }, this.onComponentListUpdate);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tappLauncherStore.removeListener({ field: \"componentList\" }, this.onComponentListUpdate);\n\t}\n\n\tlaunchComponent(component, params, cb) {\n\t\t// If we are launching a group\n\t\tif (component.group) {\n\t\t\tfor (let i of Object.keys(component.list)) {\n\t\t\t\tlet cloneParams = Object.assign({}, params);\n\t\t\t\tlet c = component.list[i];\n\t\t\t\tif (c.component.windowGroup) {\n\t\t\t\t\tcloneParams.groupName = c.component.windowGroup;\n\t\t\t\t}\n\t\t\t\tappLauncherActions.launchComponent(component.list[i], params, cb);\n\t\t\t}\n\t\t} else {\n\t\t\tif (component.component.windowGroup) {\n\t\t\t\tparams.groupName = component.component.windowGroup;\n\t\t\t}\n\t\t\tappLauncherActions.launchComponent(component, params, cb);\n\t\t}\n\t}\n\n\tbuildComponentItem(params) {\n\t\tconst { key, isUserDefined } = params;\n\t\tconst config = this.state.componentList[key];\n\t\tlet displayName = key;\n\n\t\t// If the app isn't launchable by the user, don't show it\n\t\tif (\n\t\t\t(!config ||\n\t\t\t\t!config.window ||\n\t\t\t\t!config.foreign ||\n\t\t\t\t!config.foreign.components ||\n\t\t\t\t!config.foreign.components[\"App Launcher\"] ||\n\t\t\t\t!config.foreign.components[\"App Launcher\"].launchableByUser) &&\n\t\t\t!config.group\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the app is temporary (actively being configured in the Smart Desktop Designer), don't show it\n\t\tif (config?.appDConfig?.manifest?.temporary) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Component developers can define a display name that will show instead of the component's type.\n\t\tif (config.component && config.component.displayName) {\n\t\t\t({ displayName } = config.component);\n\t\t}\n\t\tconst iconObject = iconFromConfig(config?.foreign?.components?.Toolbar, displayName);\n\t\treturn (\n\t\t\t<MenuItem\n\t\t\t\tkey={key}\n\t\t\t\tonClick={() => this.launchComponent(config, {})}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className=\"menu-item-row\">\n\t\t\t\t\t<span className=\"app-name\" title={displayName}>\n\t\t\t\t\t\t{displayName}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"menu-item-row-push-right\">\n\t\t\t\t\t\t{isUserDefined && <DeleteComponent name={displayName} />}\n\t\t\t\t\t\t{!this.props.suppressFavorites && (\n\t\t\t\t\t\t\t<FavoriteMaker\n\t\t\t\t\t\t\t\tid={config?.component?.type}\n\t\t\t\t\t\t\t\tcategory=\"Application\"\n\t\t\t\t\t\t\t\tname={displayName}\n\t\t\t\t\t\t\t\ticon={iconObject}\n\t\t\t\t\t\t\t\tclassName=\"menu-item-icon\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</MenuItem>\n\t\t);\n\t}\n\n\trenderComponentsList() {\n\t\tconst { state } = this;\n\t\tconst components = Object.keys(state.componentList).filter((componentType) => {\n\t\t\tif (state.filteredListOfComponents.length) {\n\t\t\t\treturn state.filteredListOfComponents.includes(componentType);\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t\t// if this is greater than 0, we don't show a note telling the user to check their configs.\n\t\t// iterate through componentList and render a componentItem for each one.\n\t\tconst componentList = components.map((key, i) => {\n\t\t\tconst { component } = state.componentList[key];\n\t\t\tconst isUserDefined = Boolean(component && component.isUserDefined);\n\t\t\treturn this.buildComponentItem({ i, key, isUserDefined });\n\t\t});\n\t\treturn (\n\t\t\t<div className=\"app-launcher-list\">\n\t\t\t\t{componentList.length ? (\n\t\t\t\t\tcomponentList\n\t\t\t\t) : (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\tNo components loaded. Make sure to check ./src/components.json to make sure you've set everything up\n\t\t\t\t\t\tcorrectly.\n\t\t\t\t\t</p>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn this.state.componentList ? this.renderComponentsList() : <div></div>;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appLauncherStore.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/appLauncher/stores/appLauncherStore.js"],"names":[],"mappings":"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","sourcesContent":["/*!\r\n * Copyright 2017 by ChartIQ, Inc.\r\n * All rights reserved.\r\n */\r\n\r\nimport async from \"async\";\r\nlet appLauncherStore;\r\nlet windowGroupStore;\r\nvar COMPONENT_UPDATE_CHANNEL;\r\n\r\nvar Actions = {\r\n\tinitialize: function (cb) {\r\n\t\tasync.parallel(\r\n\t\t\t[\r\n\t\t\t\tActions.initializeComponentList,\r\n\t\t\t\tActions.getUserDefinedComponentList,\r\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n\t\t\t\tsetupHotkeys,\r\n\t\t\t],\r\n\t\t\t(err) => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tconsole.error(err);\r\n\t\t\t\t}\r\n\t\t\t\tFSBL.Clients.Logger.debug(\"Actions.initialize done\");\r\n\t\t\t\tcb();\r\n\t\t\t}\r\n\t\t);\r\n\t},\r\n\tgetComponentList(cb) {\r\n\t\tFSBL.Clients.LauncherClient.getComponentList((err, response) => {\r\n\t\t\tif (err) {\r\n\t\t\t\tthrow new Error(err);\r\n\t\t\t}\r\n\t\t\t// Each AppLauncher\r\n\t\t\tFSBL.Clients.Logger.debug(\"getComponentList from LauncherClient\", response);\r\n\t\t\tActions.filterComponents(response);\r\n\t\t\tif (cb) {\r\n\t\t\t\tcb();\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\tinitializeComponentList(cb) {\r\n\t\tvar self = Actions;\r\n\t\tvar firstTime = true;\r\n\r\n\t\t// When an app launcher button is clicked, it sends over the types of components that the app launcher can spawn. We assign that data to an object in the windowClient, and then use that to render the app launcher.\r\n\t\tFSBL.Clients.RouterClient.subscribe(COMPONENT_UPDATE_CHANNEL, (err, response) => {\r\n\t\t\tif (!FSBL.Clients.WindowClient.options.customData.spawnData) {\r\n\t\t\t\tFSBL.Clients.WindowClient.options.customData.spawnData = {};\r\n\t\t\t}\r\n\t\t\tObject.assign(FSBL.Clients.WindowClient.options.customData.spawnData, response.data);\r\n\t\t\tif (firstTime) {\r\n\t\t\t\t// only update component list the first time to eliminate re-rendering the menu\r\n\t\t\t\tActions.getComponentList(cb);\r\n\t\t\t\tfirstTime = false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Whenever we add or remove a component, this event is fired. We get a list of all components, then filter it out to include only the ones that this particular launcher is capable of spawning.\r\n\t\tFSBL.Clients.RouterClient.subscribe(\"Launcher.update\", (err, response) => {\r\n\t\t\tFSBL.Clients.Logger.debug(\"list updated\", err, response);\r\n\t\t\tif (err) {\r\n\t\t\t\treturn console.error(err);\r\n\t\t\t}\r\n\t\t\tself.filterComponents(response.data.componentList);\r\n\t\t});\r\n\t},\r\n\t// get quick components that the user created from storage.\r\n\tgetUserDefinedComponentList(cb) {\r\n\t\treturn cb();\r\n\t},\r\n\t// saves quick components\r\n\tsaveCustomComponents() {\r\n\t\tvar UDCs = {};\r\n\t\tvar components = Object.keys(Actions.componentList);\r\n\t\tfor (var i = 0; i < components.length; i++) {\r\n\t\t\tvar config = Actions.componentList[components[i]];\r\n\t\t\tif (config.component && config.component.isUserDefined) {\r\n\t\t\t\tUDCs[config.component.type] = config;\r\n\t\t\t}\r\n\t\t}\r\n\t\tFSBL.Clients.StorageClient.save({\r\n\t\t\ttopic: \"finsemble\",\r\n\t\t\tkey: \"userDefinedComponents\",\r\n\t\t\tvalue: UDCs,\r\n\t\t});\r\n\t},\r\n\t// This filters components based on the mode and list settings in customData\r\n\t// Available settings are list - where you list specific individual component Types, mode - which piggybacks on config.mode and lists all components where the mode matches\r\n\t// If neither mode not list are set, all components are shown\r\n\t// Custom Components are always shown @TODO - make this a setting\r\n\tfilterComponents(components) {\r\n\t\tvar self = this;\r\n\t\tvar settings = FSBL.Clients.WindowClient.getSpawnData();\r\n\t\tvar componentList = {};\r\n\t\tvar keys = Object.keys(components);\r\n\t\tif (!settings) {\r\n\t\t\tsettings = {};\r\n\t\t\tFSBL.Clients.Logger.system.warn(\"appLauncherStore.js: `settings` is null or undefined\");\r\n\t\t}\r\n\t\tif (settings.mode) {\r\n\t\t\tif (!Array.isArray(settings.mode)) {\r\n\t\t\t\tsettings.mode = [settings.mode];\r\n\t\t\t}\r\n\t\t\tkeys.forEach((componentType) => {\r\n\t\t\t\tvar config = components[componentType];\r\n\t\t\t\tvar componentMode = config.component && config.component.mode ? config.component.mode : \"\";\r\n\r\n\t\t\t\tif (componentMode || componentMode === \"\") {\r\n\t\t\t\t\t// component.mode can either be a string or an array of strings. So rationalize it to an array.\r\n\t\t\t\t\tif (componentMode.constructor !== Array) {\r\n\t\t\t\t\t\tcomponentMode = [componentMode];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet commonModes = componentMode.filter((n) => settings.mode.indexOf(n) !== -1);\r\n\r\n\t\t\t\t\t// If the current mode isn't in the list of modes for the component then don't include it in our list\r\n\t\t\t\t\tif (commonModes.length) {\r\n\t\t\t\t\t\tcomponentList[componentType] = components[componentType];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (settings.list) {\r\n\t\t\tvar commonItems = settings.list.filter((n) => keys.indexOf(n) !== -1);\r\n\r\n\t\t\tfor (let i = 0; i < commonItems.length; i++) {\r\n\t\t\t\tcomponentList[commonItems[i]] = components[commonItems[i]];\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!settings.mode && !settings.list) {\r\n\t\t\tcomponentList = components;\r\n\t\t} else {\r\n\t\t\tfor (let i = 0; i < keys.length; i++) {\r\n\t\t\t\tlet component = components[keys[i]];\r\n\t\t\t\tif (component.component.isUserDefined) {\r\n\t\t\t\t\tcomponentList[keys[i]] = component;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.componentList = componentList;\r\n\r\n\t\tFSBL.Clients.Logger.debug(\r\n\t\t\t\"appLauncher filterComponents\",\r\n\t\t\tself.componentList,\r\n\t\t\t\"settings\",\r\n\t\t\tsettings,\r\n\t\t\t\"customData\",\r\n\t\t\tFSBL.Clients.WindowClient.options.customData\r\n\t\t);\r\n\t\tappLauncherStore.setValue({\r\n\t\t\tfield: \"componentList\",\r\n\t\t\tvalue: self.componentList,\r\n\t\t});\r\n\t\tself.saveCustomComponents();\r\n\t},\r\n\t// Handler for when the user wants to remove a quick component.\r\n\thandleRemoveCustomComponent(componentName, cb = Function.prototype) {\r\n\t\tvar self = this;\r\n\t\tFSBL.Clients.DialogManager.open(\r\n\t\t\t\"yesNo\",\r\n\t\t\t{\r\n\t\t\t\ttitle: \"Delete this App?\",\r\n\t\t\t\tquestion: `Are you sure you would like to delete \"${componentName}\"?`,\r\n\t\t\t\taffirmativeResponseLabel: \"Delete\",\r\n\t\t\t\tshowNegativeButton: false,\r\n\t\t\t},\r\n\t\t\t(err, response) => {\r\n\t\t\t\t// If the user chooses \"affirmative\" then delete the component.\r\n\t\t\t\t// We should never get an error, but if we do then go ahead and delete the component too.\r\n\t\t\t\tif (err || response.choice === \"affirmative\") {\r\n\t\t\t\t\tcb(true);\r\n\t\t\t\t\tself.removeCustomComponent(componentName);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcb(false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t},\r\n\t// Remove the component, notify others.\r\n\tremoveCustomComponent(componentName) {\r\n\t\tFSBL.Clients.LauncherClient.removeUserDefinedComponent(\r\n\t\t\t{\r\n\t\t\t\tname: componentName,\r\n\t\t\t},\r\n\t\t\t(err) => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\treturn console.error(err);\r\n\t\t\t\t}\r\n\t\t\t\tActions.getComponentList();\r\n\t\t\t}\r\n\t\t);\r\n\t},\r\n\t// Hide the window.\r\n\thideWindow() {\r\n\t\tfinsembleWindow.hide();\r\n\t},\r\n\t// Spawn a component.\r\n\tlaunchComponent(config, params, cb) {\r\n\t\t// Actions.hideWindow();\r\n\t\tconsole.log(\"launchComponent\");\r\n\t\tlet defaultParams = {\r\n\t\t\taddToWorkspace: true,\r\n\t\t\tmonitor: \"mine\",\r\n\t\t\toptions: { customData: {} },\r\n\t\t};\r\n\t\tparams = Object.assign(defaultParams, params);\r\n\t\tif (!params.options.customData) {\r\n\t\t\tparams.options.customData = {};\r\n\t\t}\r\n\t\tif (!params.options.customData.component) {\r\n\t\t\tparams.options.customData.component = {};\r\n\t\t}\r\n\t\tif (config.component.windowGroup) {\r\n\t\t\tparams.groupName = config.component.windowGroup;\r\n\t\t}\r\n\t\tFSBL.Clients.LauncherClient.spawn(config.component.type, params, (err, windowInfo) => {\r\n\t\t\tif (cb) {\r\n\t\t\t\tcb(windowInfo.windowIdentifier);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\tcreateNewWindowGroup(groupPrefix, cb) {\r\n\t\twindowGroupStore.getValue({ field: groupPrefix }, (err, value) => {\r\n\t\t\tvar currentGroup = 1;\r\n\t\t\tif (value) {\r\n\t\t\t\tcurrentGroup = Math.max(...Object.keys(value)) + 1;\r\n\t\t\t}\r\n\t\t\tlet groupName = `${groupPrefix}.${currentGroup}`;\r\n\t\t\tFSBL.Clients.LauncherClient.createWindowGroup(\r\n\t\t\t\t{\r\n\t\t\t\t\tgroupName: groupName,\r\n\t\t\t\t},\r\n\t\t\t\t() => {\r\n\t\t\t\t\tcb(groupName);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t},\r\n};\r\n\r\nfunction createLocalStore(done) {\r\n\tlet defaultData = {\r\n\t\tcomponentList: {},\r\n\t\tmonitorDimensions: {},\r\n\t};\r\n\r\n\tFSBL.Clients.DistributedStoreClient.createStore(\r\n\t\t{ store: \"Finsemble-AppLauncher-Local-Store\", values: defaultData },\r\n\t\t(err, store) => {\r\n\t\t\tappLauncherStore = store;\r\n\t\t\tdone();\r\n\t\t}\r\n\t);\r\n}\r\n\r\nfunction getWindowGroupStore(done) {\r\n\tFSBL.Clients.DistributedStoreClient.getStore({ global: true, store: \"Finsemble-WindowGroups\" }, (err, store) => {\r\n\t\twindowGroupStore = store;\r\n\t\tdone();\r\n\t});\r\n}\r\n\r\nfunction initialize(cb) {\r\n\tCOMPONENT_UPDATE_CHANNEL = `${finsembleWindow.name}.ComponentsToRender`;\r\n\tFSBL.Clients.RouterClient.addPubSubResponder(COMPONENT_UPDATE_CHANNEL, {});\r\n\tasync.parallel([createLocalStore, getWindowGroupStore, Actions.initialize], (err) => {\r\n\t\tif (err) {\r\n\t\t\tconsole.error(err);\r\n\t\t}\r\n\t\tFSBL.Clients.Logger.debug(\"appLauncherstore init done\");\r\n\t\tcb(appLauncherStore);\r\n\t});\r\n}\r\nvar keys = {};\r\nfunction setupHotkeys(cb) {\r\n\tFSBL.Clients.RouterClient.subscribe(\"humanInterface.keydown\", (err, response) => {\r\n\t\tif (!keys[response.data.key]) {\r\n\t\t\tkeys[response.data.key] = {};\r\n\t\t}\r\n\t\tkeys[response.data.key] = true;\r\n\t\tif (keys[160] && keys[162] && keys[68]) {\r\n\t\t\tif (Actions.componentList[\"Advanced Chart\"]) {\r\n\t\t\t\tFSBL.Clients.LauncherClient.spawn(\"Advanced Chart\", { addToWorkspace: true }, { monitor: \"mine\" });\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tFSBL.Clients.RouterClient.subscribe(\"humanInterface.keyup\", (err, response) => {\r\n\t\tif (!keys[response.data.key]) {\r\n\t\t\tkeys[response.data.key] = {};\r\n\t\t}\r\n\t\tkeys[response.data.key] = false;\r\n\t});\r\n\r\n\treturn cb();\r\n}\r\nlet getStore = () => appLauncherStore;\r\n\r\n/**\r\n * This is a quick little initialization manager that Terry hacked up.\r\n * Ultimately everything in this file should be rewritten in hooks/redux pattern.\r\n */\r\nclass StoreManager {\r\n\tconstructor() {\r\n\t\tthis.initialized = false;\r\n\t\tthis.initializing = false;\r\n\t\tthis.callbacks = [];\r\n\t\tthis.store = null;\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tif (this.initializing) return;\r\n\t\tthis.initializing = true;\r\n\t\tinitialize((store) => {\r\n\t\t\tthis.initialized = true;\r\n\t\t\tthis.store = store;\r\n\t\t\tthis.callbacks.forEach((cb) => cb(store));\r\n\t\t});\r\n\t}\r\n\r\n\taddInitializedListener(cb) {\r\n\t\tif (this.initialized) return cb(this.store);\r\n\t\tthis.callbacks.push(cb);\r\n\t}\r\n\r\n\tremoveInitializedListener(cb) {\r\n\t\tthis.callbacks = this.callbacks.filter((entry) => entry !== cb);\r\n\t}\r\n}\r\nconst storeManager = new StoreManager();\r\n\r\nexport { storeManager };\r\nexport { initialize };\r\nexport { appLauncherStore as Store };\r\nexport { Actions };\r\nexport { getStore };\r\n"]}
|
|
1
|
+
{"version":3,"file":"appLauncherStore.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/appLauncher/stores/appLauncherStore.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport async from \"async\";\nlet appLauncherStore;\nlet windowGroupStore;\nvar COMPONENT_UPDATE_CHANNEL;\n\nvar Actions = {\n\tinitialize: function (cb) {\n\t\tasync.parallel(\n\t\t\t[\n\t\t\t\tActions.initializeComponentList,\n\t\t\t\tActions.getUserDefinedComponentList,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\t\tsetupHotkeys,\n\t\t\t],\n\t\t\t(err) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t}\n\t\t\t\tFSBL.Clients.Logger.debug(\"Actions.initialize done\");\n\t\t\t\tcb();\n\t\t\t}\n\t\t);\n\t},\n\tgetComponentList(cb) {\n\t\tFSBL.Clients.LauncherClient.getComponentList((err, response) => {\n\t\t\tif (err) {\n\t\t\t\tthrow new Error(err);\n\t\t\t}\n\t\t\t// Each AppLauncher\n\t\t\tFSBL.Clients.Logger.debug(\"getComponentList from LauncherClient\", response);\n\t\t\tActions.filterComponents(response);\n\t\t\tif (cb) {\n\t\t\t\tcb();\n\t\t\t}\n\t\t});\n\t},\n\tinitializeComponentList(cb) {\n\t\tvar self = Actions;\n\t\tvar firstTime = true;\n\n\t\t// When an app launcher button is clicked, it sends over the types of components that the app launcher can spawn. We assign that data to an object in the windowClient, and then use that to render the app launcher.\n\t\tFSBL.Clients.RouterClient.subscribe(COMPONENT_UPDATE_CHANNEL, (err, response) => {\n\t\t\tif (!FSBL.Clients.WindowClient.options.customData.spawnData) {\n\t\t\t\tFSBL.Clients.WindowClient.options.customData.spawnData = {};\n\t\t\t}\n\t\t\tObject.assign(FSBL.Clients.WindowClient.options.customData.spawnData, response.data);\n\t\t\tif (firstTime) {\n\t\t\t\t// only update component list the first time to eliminate re-rendering the menu\n\t\t\t\tActions.getComponentList(cb);\n\t\t\t\tfirstTime = false;\n\t\t\t}\n\t\t});\n\n\t\t// Whenever we add or remove a component, this event is fired. We get a list of all components, then filter it out to include only the ones that this particular launcher is capable of spawning.\n\t\tFSBL.Clients.RouterClient.subscribe(\"Launcher.update\", (err, response) => {\n\t\t\tFSBL.Clients.Logger.debug(\"list updated\", err, response);\n\t\t\tif (err) {\n\t\t\t\treturn console.error(err);\n\t\t\t}\n\t\t\tself.filterComponents(response.data.componentList);\n\t\t});\n\t},\n\t// get quick components that the user created from storage.\n\tgetUserDefinedComponentList(cb) {\n\t\treturn cb();\n\t},\n\t// saves quick components\n\tsaveCustomComponents() {\n\t\tvar UDCs = {};\n\t\tvar components = Object.keys(Actions.componentList);\n\t\tfor (var i = 0; i < components.length; i++) {\n\t\t\tvar config = Actions.componentList[components[i]];\n\t\t\tif (config.component && config.component.isUserDefined) {\n\t\t\t\tUDCs[config.component.type] = config;\n\t\t\t}\n\t\t}\n\t\tFSBL.Clients.StorageClient.save({\n\t\t\ttopic: \"finsemble\",\n\t\t\tkey: \"userDefinedComponents\",\n\t\t\tvalue: UDCs,\n\t\t});\n\t},\n\t// This filters components based on the mode and list settings in customData\n\t// Available settings are list - where you list specific individual component Types, mode - which piggybacks on config.mode and lists all components where the mode matches\n\t// If neither mode not list are set, all components are shown\n\t// Custom Components are always shown @TODO - make this a setting\n\tfilterComponents(components) {\n\t\tvar self = this;\n\t\tvar settings = FSBL.Clients.WindowClient.getSpawnData();\n\t\tvar componentList = {};\n\t\tvar keys = Object.keys(components);\n\t\tif (!settings) {\n\t\t\tsettings = {};\n\t\t\tFSBL.Clients.Logger.system.warn(\"appLauncherStore.js: `settings` is null or undefined\");\n\t\t}\n\t\tif (settings.mode) {\n\t\t\tif (!Array.isArray(settings.mode)) {\n\t\t\t\tsettings.mode = [settings.mode];\n\t\t\t}\n\t\t\tkeys.forEach((componentType) => {\n\t\t\t\tvar config = components[componentType];\n\t\t\t\tvar componentMode = config.component && config.component.mode ? config.component.mode : \"\";\n\n\t\t\t\tif (componentMode || componentMode === \"\") {\n\t\t\t\t\t// component.mode can either be a string or an array of strings. So rationalize it to an array.\n\t\t\t\t\tif (componentMode.constructor !== Array) {\n\t\t\t\t\t\tcomponentMode = [componentMode];\n\t\t\t\t\t}\n\n\t\t\t\t\tlet commonModes = componentMode.filter((n) => settings.mode.indexOf(n) !== -1);\n\n\t\t\t\t\t// If the current mode isn't in the list of modes for the component then don't include it in our list\n\t\t\t\t\tif (commonModes.length) {\n\t\t\t\t\t\tcomponentList[componentType] = components[componentType];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (settings.list) {\n\t\t\tvar commonItems = settings.list.filter((n) => keys.indexOf(n) !== -1);\n\n\t\t\tfor (let i = 0; i < commonItems.length; i++) {\n\t\t\t\tcomponentList[commonItems[i]] = components[commonItems[i]];\n\t\t\t}\n\t\t}\n\t\tif (!settings.mode && !settings.list) {\n\t\t\tcomponentList = components;\n\t\t} else {\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tlet component = components[keys[i]];\n\t\t\t\tif (component.component.isUserDefined) {\n\t\t\t\t\tcomponentList[keys[i]] = component;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tself.componentList = componentList;\n\n\t\tFSBL.Clients.Logger.debug(\n\t\t\t\"appLauncher filterComponents\",\n\t\t\tself.componentList,\n\t\t\t\"settings\",\n\t\t\tsettings,\n\t\t\t\"customData\",\n\t\t\tFSBL.Clients.WindowClient.options.customData\n\t\t);\n\t\tappLauncherStore.setValue({\n\t\t\tfield: \"componentList\",\n\t\t\tvalue: self.componentList,\n\t\t});\n\t\tself.saveCustomComponents();\n\t},\n\t// Handler for when the user wants to remove a quick component.\n\thandleRemoveCustomComponent(componentName, cb = Function.prototype) {\n\t\tvar self = this;\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\ttitle: \"Delete this App?\",\n\t\t\t\tquestion: `Are you sure you would like to delete \"${componentName}\"?`,\n\t\t\t\taffirmativeResponseLabel: \"Delete\",\n\t\t\t\tshowNegativeButton: false,\n\t\t\t},\n\t\t\t(err, response) => {\n\t\t\t\t// If the user chooses \"affirmative\" then delete the component.\n\t\t\t\t// We should never get an error, but if we do then go ahead and delete the component too.\n\t\t\t\tif (err || response.choice === \"affirmative\") {\n\t\t\t\t\tcb(true);\n\t\t\t\t\tself.removeCustomComponent(componentName);\n\t\t\t\t} else {\n\t\t\t\t\tcb(false);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t},\n\t// Remove the component, notify others.\n\tremoveCustomComponent(componentName) {\n\t\tFSBL.Clients.LauncherClient.removeUserDefinedComponent(\n\t\t\t{\n\t\t\t\tname: componentName,\n\t\t\t},\n\t\t\t(err) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treturn console.error(err);\n\t\t\t\t}\n\t\t\t\tActions.getComponentList();\n\t\t\t}\n\t\t);\n\t},\n\t// Hide the window.\n\thideWindow() {\n\t\tfinsembleWindow.hide();\n\t},\n\t// Spawn a component.\n\tlaunchComponent(config, params, cb) {\n\t\t// Actions.hideWindow();\n\t\tconsole.log(\"launchComponent\");\n\t\tlet defaultParams = {\n\t\t\taddToWorkspace: true,\n\t\t\tmonitor: \"mine\",\n\t\t\toptions: { customData: {} },\n\t\t};\n\t\tparams = Object.assign(defaultParams, params);\n\t\tif (!params.options.customData) {\n\t\t\tparams.options.customData = {};\n\t\t}\n\t\tif (!params.options.customData.component) {\n\t\t\tparams.options.customData.component = {};\n\t\t}\n\t\tif (config.component.windowGroup) {\n\t\t\tparams.groupName = config.component.windowGroup;\n\t\t}\n\t\tFSBL.Clients.LauncherClient.spawn(config.component.type, params, (err, windowInfo) => {\n\t\t\tif (cb) {\n\t\t\t\tcb(windowInfo.windowIdentifier);\n\t\t\t}\n\t\t});\n\t},\n\tcreateNewWindowGroup(groupPrefix, cb) {\n\t\twindowGroupStore.getValue({ field: groupPrefix }, (err, value) => {\n\t\t\tvar currentGroup = 1;\n\t\t\tif (value) {\n\t\t\t\tcurrentGroup = Math.max(...Object.keys(value)) + 1;\n\t\t\t}\n\t\t\tlet groupName = `${groupPrefix}.${currentGroup}`;\n\t\t\tFSBL.Clients.LauncherClient.createWindowGroup(\n\t\t\t\t{\n\t\t\t\t\tgroupName: groupName,\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tcb(groupName);\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t},\n};\n\nfunction createLocalStore(done) {\n\tlet defaultData = {\n\t\tcomponentList: {},\n\t\tmonitorDimensions: {},\n\t};\n\n\tFSBL.Clients.DistributedStoreClient.createStore(\n\t\t{ store: \"Finsemble-AppLauncher-Local-Store\", values: defaultData },\n\t\t(err, store) => {\n\t\t\tappLauncherStore = store;\n\t\t\tdone();\n\t\t}\n\t);\n}\n\nfunction getWindowGroupStore(done) {\n\tFSBL.Clients.DistributedStoreClient.getStore({ global: true, store: \"Finsemble-WindowGroups\" }, (err, store) => {\n\t\twindowGroupStore = store;\n\t\tdone();\n\t});\n}\n\nfunction initialize(cb) {\n\tCOMPONENT_UPDATE_CHANNEL = `${finsembleWindow.name}.ComponentsToRender`;\n\tFSBL.Clients.RouterClient.addPubSubResponder(COMPONENT_UPDATE_CHANNEL, {});\n\tasync.parallel([createLocalStore, getWindowGroupStore, Actions.initialize], (err) => {\n\t\tif (err) {\n\t\t\tconsole.error(err);\n\t\t}\n\t\tFSBL.Clients.Logger.debug(\"appLauncherstore init done\");\n\t\tcb(appLauncherStore);\n\t});\n}\nvar keys = {};\nfunction setupHotkeys(cb) {\n\tFSBL.Clients.RouterClient.subscribe(\"humanInterface.keydown\", (err, response) => {\n\t\tif (!keys[response.data.key]) {\n\t\t\tkeys[response.data.key] = {};\n\t\t}\n\t\tkeys[response.data.key] = true;\n\t\tif (keys[160] && keys[162] && keys[68]) {\n\t\t\tif (Actions.componentList[\"Advanced Chart\"]) {\n\t\t\t\tFSBL.Clients.LauncherClient.spawn(\"Advanced Chart\", { addToWorkspace: true }, { monitor: \"mine\" });\n\t\t\t}\n\t\t}\n\t});\n\tFSBL.Clients.RouterClient.subscribe(\"humanInterface.keyup\", (err, response) => {\n\t\tif (!keys[response.data.key]) {\n\t\t\tkeys[response.data.key] = {};\n\t\t}\n\t\tkeys[response.data.key] = false;\n\t});\n\n\treturn cb();\n}\nlet getStore = () => appLauncherStore;\n\n/**\n * This is a quick little initialization manager that Terry hacked up.\n * Ultimately everything in this file should be rewritten in hooks/redux pattern.\n */\nclass StoreManager {\n\tconstructor() {\n\t\tthis.initialized = false;\n\t\tthis.initializing = false;\n\t\tthis.callbacks = [];\n\t\tthis.store = null;\n\t}\n\n\tinitialize() {\n\t\tif (this.initializing) return;\n\t\tthis.initializing = true;\n\t\tinitialize((store) => {\n\t\t\tthis.initialized = true;\n\t\t\tthis.store = store;\n\t\t\tthis.callbacks.forEach((cb) => cb(store));\n\t\t});\n\t}\n\n\taddInitializedListener(cb) {\n\t\tif (this.initialized) return cb(this.store);\n\t\tthis.callbacks.push(cb);\n\t}\n\n\tremoveInitializedListener(cb) {\n\t\tthis.callbacks = this.callbacks.filter((entry) => entry !== cb);\n\t}\n}\nconst storeManager = new StoreManager();\n\nexport { storeManager };\nexport { initialize };\nexport { appLauncherStore as Store };\nexport { Actions };\nexport { getStore };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashbar.js","sourceRoot":"","sources":["../../../../src/components/toolbar/dashbar/Dashbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from \"react\";\r\nimport { DashbarItem } from \"./DashbarItem\";\r\nimport { Dashbar as DashbarType, DashbarItem as DashbarItemType, DashbarView } from \"../../../types/dashbarTypes\";\r\nimport { useToolbar } from \"../../../hooks/useToolbar\";\r\nimport { FinsembleDnDContext, AllowableDnDAxis } from \"../../legacyControls/FinsembleDnDContext\";\r\n\r\nimport \"../../../assets/css/dashbar.css\";\r\nimport { FinsembleWindow } from \"common/window/FinsembleWindow\";\r\n\r\ntype DashbarViews = {\r\n\t[key: string]: DashbarView;\r\n} & {};\r\n\r\nlet cachedWidgetTop: number;\r\nlet cachedWidgetHeight: number;\r\n\r\nexport const Dashbar = ({ className, children, widgetTitleGenerator }: DashbarType) => {\r\n\tconst { dashbarItems, reorderDashbarItems, launchPreferences } = useToolbar();\r\n\r\n\tconst [widgets, setWidgets] = useState({});\r\n\tconst [horizontalBounds, setHorizontalBounds] = useState(0);\r\n\tconst [wasReorganized, setReorganized] = useState(false);\r\n\tconst [totalWidgetsWidth, setTotalWidgetsWidth] = useState(0);\r\n\r\n\tlet movingIndex: number | null = null; // The dasharItem index being dragged, null if none\r\n\tlet titleGrabPosition: number | null = null; // The mouse of event when a widget title is dragged\r\n\tlet offsetX: number | null = null; // The original grab location of a given view titlebar\r\n\r\n\tconst WIDGET_COUNT: number = Object.keys(widgets).length;\r\n\tconst SCROLL_BUTTON_WIDTH = 30;\r\n\r\n\t/**\r\n\t *\r\n\t * @param {object} params\r\n\t * @param {number} oldIndex The index of the item being moved\r\n\t * @param {number} newIndex The index to move the item to\r\n\t */\r\n\tconst reorderItems = ({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) => {\r\n\t\tmovingIndex = null;\r\n\t\ttitleGrabPosition = null;\r\n\t\toffsetX = null;\r\n\t\tsetReorganized(true);\r\n\t\t// Update the redux store\r\n\t\treorderDashbarItems({ oldIndex, newIndex });\r\n\t};\r\n\r\n\tconst launchDashbar = () => {\r\n\t\tlaunchPreferences(\"Dashbar\");\r\n\t};\r\n\r\n\tconst { dashbar } = FSBL.Clients.WindowClient.getSpawnData();\r\n\r\n\t// Dashbar is disabled (no config in toolbar) or dashbar height is not specified\r\n\tif (!dashbar || !dashbar.height) {\r\n\t\treturn null;\r\n\t}\r\n\tconst toolbarHeight = finsembleWindow.windowOptions.height;\r\n\tconst dashbarHeight = `${dashbar.height}px`;\r\n\tconst verticalBounds = toolbarHeight - dashbar.height;\r\n\tconst widgetDividerWidth = dashbar.widgetDividerWidth || 0;\r\n\r\n\tconst wrapperClasses = `finsemble-dashbar ${className || \"\"}`.trim();\r\n\r\n\tconst getTotalWidth = () => {\r\n\t\tlet totalWidth = 0;\r\n\t\tdashbarItems.forEach((item: DashbarItemType) => {\r\n\t\t\ttotalWidth = totalWidth + item.width;\r\n\t\t});\r\n\t\treturn totalWidth;\r\n\t};\r\n\r\n\tconst [leftButtonTooltip, setLeftButtonTooltip] = useState(\"\");\r\n\tconst [rightButtonTooltip, setRightButtonTooltip] = useState(\"\");\r\n\r\n\tconst setWidgetsPositions = (isCalledFromDashbar: boolean | undefined) => {\r\n\t\t// This type conversion is safe and was put in place to remove the TS error\r\n\t\t// Currently getCurrentWindow return type is openFin window\r\n\t\t// which apparently does not have a getBounds property, however, the method exists and this\r\n\t\t// is working as expected.\r\n\t\tconst fsblWindow = FSBL.Clients.WindowClient.getCurrentWindow() as unknown as FinsembleWindow;\r\n\t\tfsblWindow.getBounds((bounds: any) => {\r\n\t\t\tconst toolbarWidth = bounds.width ? bounds.width : 0;\r\n\t\t\tconst elements = document.getElementsByClassName(\"dashbar-item-frame\");\r\n\r\n\t\t\tlet tempLeft = 0;\r\n\t\t\tif (toolbarWidth < totalWidgetsWidth) {\r\n\t\t\t\ttempLeft = SCROLL_BUTTON_WIDTH;\r\n\t\t\t}\r\n\r\n\t\t\tlet leftItemsCount = 0;\r\n\t\t\tlet rightItemsCount = 0;\r\n\r\n\t\t\tfor (const element of elements) {\r\n\t\t\t\tconst rect = element.getBoundingClientRect();\r\n\t\t\t\tconst widget = (widgets as DashbarViews)[element.id];\r\n\r\n\t\t\t\tif (rect.left < SCROLL_BUTTON_WIDTH && toolbarWidth < totalWidgetsWidth) {\r\n\t\t\t\t\twidget.bounds.width = 0;\r\n\t\t\t\t\twidget.bounds.left = tempLeft;\r\n\t\t\t\t\tleftItemsCount++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\twidget.bounds.width = rect.width - widgetDividerWidth;\r\n\t\t\t\t\twidget.bounds.left = tempLeft;\r\n\t\t\t\t}\r\n\t\t\t\ttempLeft = tempLeft + widget.bounds.width + widgetDividerWidth;\r\n\r\n\t\t\t\tlet offsetRight = rect.left + rect.width - (toolbarWidth - SCROLL_BUTTON_WIDTH) + widgetDividerWidth;\r\n\t\t\t\tif (offsetRight > 0) {\r\n\t\t\t\t\t// hide title for invisible items\r\n\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\telement.childNodes[0].style.visibility = \"hidden\";\r\n\t\t\t\t\twidget.bounds.width = 0;\r\n\t\t\t\t\trightItemsCount++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\telement.childNodes[0].style.visibility = \"visible\";\r\n\t\t\t\t}\r\n\t\t\t\twidget.view.setBounds(widget.bounds);\r\n\t\t\t}\r\n\r\n\t\t\tsetLeftButtonTooltip(`${leftItemsCount} more`);\r\n\t\t\tsetRightButtonTooltip(`${rightItemsCount} more`);\r\n\t\t});\r\n\r\n\t\t//double call for fix fake empty space between widgets while scrolling\r\n\t\tif (!isCalledFromDashbar) {\r\n\t\t\tsetWidgetsPositions(true);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * When the distributed store's 'dashbaritems' is updated it will cause this hook to\r\n\t * execute. The local representation of widgets will be mutated, then a call to\r\n\t * setWidgets will re-render the component\r\n\t */\r\n\tlet isUpdatingState = false;\r\n\tuseEffect(() => {\r\n\t\tconst updateItems = async () => {\r\n\t\t\tisUpdatingState = true;\r\n\t\t\tconst _widgets: DashbarViews = widgets;\r\n\r\n\t\t\tconst addWidgets = async () => {\r\n\t\t\t\tlet tempHorizontalBounds = horizontalBounds;\r\n\r\n\t\t\t\tfor (const item of dashbarItems) {\r\n\t\t\t\t\tconst widgetBounds = {\r\n\t\t\t\t\t\ttop: verticalBounds,\r\n\t\t\t\t\t\tleft: tempHorizontalBounds,\r\n\t\t\t\t\t\twidth: item.width - widgetDividerWidth,\r\n\t\t\t\t\t\theight: item.height || dashbar.height,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (!_widgets.hasOwnProperty(item.id)) {\r\n\t\t\t\t\t\tconst res: any = await finsembleWindow.addBrowserView({\r\n\t\t\t\t\t\t\turl: item.url,\r\n\t\t\t\t\t\t\tbounds: widgetBounds,\r\n\t\t\t\t\t\t\tallowAutoResize: false,\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t_widgets[item.id] = {\r\n\t\t\t\t\t\t\turl: item.url,\r\n\t\t\t\t\t\t\ttitle: item.title,\r\n\t\t\t\t\t\t\tbounds: widgetBounds,\r\n\t\t\t\t\t\t\tview: res,\r\n\t\t\t\t\t\t\twidth: item.width,\r\n\t\t\t\t\t\t\traiseIntentOptions: item.raiseIntentOptions,\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\ttempHorizontalBounds = tempHorizontalBounds + item.width;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsetWidgets(_widgets);\r\n\t\t\t\tisUpdatingState = false;\r\n\t\t\t\tsetHorizontalBounds(tempHorizontalBounds);\r\n\t\t\t};\r\n\r\n\t\t\tconst removeWidgets = () => {\r\n\t\t\t\t// Widgets is an object, with each key being a reference to an item in dashbarItems\r\n\t\t\t\t// but dashbarItems is an array of objects. Its necessary to loop through them to determine\r\n\t\t\t\t// the differences to figure out which items were removed.\r\n\t\t\t\tconst toRemove: string[] = [];\r\n\t\t\t\tObject.keys(_widgets).map((widgetId) => {\r\n\t\t\t\t\tlet found = false;\r\n\t\t\t\t\tfor (let i = 0; i < dashbarItems.length; i++) {\r\n\t\t\t\t\t\tconst dashItem = dashbarItems[i];\r\n\t\t\t\t\t\tif (dashItem.id === widgetId) {\r\n\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!found) {\r\n\t\t\t\t\t\ttoRemove.push(widgetId);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// toRemove is an array of widgetIds which were no longer found in dashbarItems\r\n\t\t\t\t// As items are removed, the remaining items have to be shuffled to fill the space\r\n\t\t\t\tfor (const id of toRemove) {\r\n\t\t\t\t\tif (_widgets.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tlet tempNewHorizontalBounds = 0;\r\n\t\t\t\t\t\t_widgets[id].view.remove(() => {\r\n\t\t\t\t\t\t\tdelete _widgets[id];\r\n\t\t\t\t\t\t\t// Shuffle remaining views to fill any gaps that were left\r\n\t\t\t\t\t\t\tObject.values(_widgets).map((widget) => {\r\n\t\t\t\t\t\t\t\twidget.bounds = {\r\n\t\t\t\t\t\t\t\t\twidth: widget.bounds.width,\r\n\t\t\t\t\t\t\t\t\theight: widget.bounds.height,\r\n\t\t\t\t\t\t\t\t\tleft: tempNewHorizontalBounds,\r\n\t\t\t\t\t\t\t\t\ttop: widget.bounds.top,\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\twidget.view.setBounds(widget.bounds);\r\n\t\t\t\t\t\t\t\ttempNewHorizontalBounds = tempNewHorizontalBounds + widget.bounds.width;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tsetWidgets(_widgets);\r\n\t\t\t\t\t\t\tisUpdatingState = false;\r\n\t\t\t\t\t\t\tsetHorizontalBounds(tempNewHorizontalBounds);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tFSBL.Clients.Logger.error(`Error removing widget: ${id} from dashbar`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tconst reorganizeWidgets = () => {\r\n\t\t\t\t// Each view needs to be resituated to fill any holes\r\n\t\t\t\t// left by views that have been removed. Use a tempBounds\r\n\t\t\t\t// int to keep track of new widths and set the overall width\r\n\t\t\t\t// once everything is re-seated\r\n\t\t\t\tlet tempBounds = 0;\r\n\t\t\t\tdashbarItems.map((item) => {\r\n\t\t\t\t\tconst widget = _widgets[item.id];\r\n\r\n\t\t\t\t\twidget.bounds = {\r\n\t\t\t\t\t\theight: cachedWidgetHeight || widget.bounds.height,\r\n\t\t\t\t\t\twidth: widget.bounds.width,\r\n\t\t\t\t\t\ttop: cachedWidgetTop || verticalBounds,\r\n\t\t\t\t\t\tleft: tempBounds,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\twidget.view.setBounds(widget.bounds);\r\n\r\n\t\t\t\t\tdelete _widgets[item.id];\r\n\t\t\t\t\t_widgets[item.id] = widget;\r\n\r\n\t\t\t\t\ttempBounds = tempBounds + item.width;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tsetReorganized(false);\r\n\t\t\t\tsetWidgets(_widgets);\r\n\t\t\t\tisUpdatingState = false;\r\n\t\t\t\tsetHorizontalBounds(tempBounds);\r\n\t\t\t};\r\n\r\n\t\t\tif (dashbarItems.length > WIDGET_COUNT) {\r\n\t\t\t\t//Items have been added\r\n\t\t\t\tawait addWidgets();\r\n\t\t\t\tsetTotalWidgetsWidth(getTotalWidth());\r\n\t\t\t} else if (dashbarItems.length < WIDGET_COUNT) {\r\n\t\t\t\t//Items have been removed\r\n\t\t\t\tremoveWidgets();\r\n\t\t\t\tsetTotalWidgetsWidth(getTotalWidth());\r\n\t\t\t} else if (wasReorganized) {\r\n\t\t\t\tif (movingIndex) return;\r\n\t\t\t\t// Length is the same, order has changed\r\n\t\t\t\treorganizeWidgets();\r\n\t\t\t}\r\n\t\t\tsetWidgetsPositions(true);\r\n\t\t};\r\n\r\n\t\tif (isUpdatingState === false) updateItems();\r\n\t}, [dashbarItems]);\r\n\r\n\t/**\r\n\t * Sets the title height as determined by the DashbarItem\r\n\t * component, since the CSS can be changed by the user\r\n\t * the component will render the title and pass back\r\n\t * computed height of that title, then the Dashbar will\r\n\t * make room for item\r\n\t *\r\n\t * @param {number} titleHeight The height of the span containing the title\r\n\t * @param {string} id The key'ed id of the view\r\n\t */\r\n\tconst setTitleHeight = (titleHeight: number, id: string) => {\r\n\t\tconst _widgets: DashbarViews = widgets;\r\n\t\tconst widget = _widgets[id];\r\n\t\tif (cachedWidgetTop) {\r\n\t\t\ttitleHeight = 0;\r\n\t\t}\r\n\r\n\t\tconst newBounds = {\r\n\t\t\ttop: cachedWidgetTop || widget.bounds.top + titleHeight,\r\n\t\t\tleft: widget.bounds.left,\r\n\t\t\theight: cachedWidgetHeight || widget.bounds.height - titleHeight,\r\n\t\t\twidth: widget.bounds.width,\r\n\t\t};\r\n\t\tcachedWidgetTop = newBounds.top;\r\n\t\tcachedWidgetHeight = newBounds.height;\r\n\r\n\t\twidget.view.setBounds(newBounds);\r\n\t\twidget.bounds = newBounds;\r\n\t\tsetWidgets(_widgets);\r\n\t};\r\n\r\n\t/**\r\n\t * When a view starts moving, bring it to the front\r\n\t *\r\n\t * @param {MouseEvent} event The event passed by react-sortable-hoc\r\n\t */\r\n\tconst startMove = (node: any, event: any) => {\r\n\t\tmovingIndex = node.index;\r\n\t\tif (offsetX === null && titleGrabPosition !== null) {\r\n\t\t\toffsetX = event.clientX - titleGrabPosition;\r\n\t\t}\r\n\t\tconst widget = Object.values(widgets)[node.index] as DashbarView;\r\n\t\twidget.view.bringToFront();\r\n\t};\r\n\r\n\t/**\r\n\t * Event triggered by view movement\r\n\t *\r\n\t * @param {MouseEvent} event\r\n\t */\r\n\tconst moveItem = (event: any) => {\r\n\t\t// if (movingIndex !== null && titleGrabPosition !== null) {\r\n\t\t// \t//@ts-ignore: Checked above if movingIndex is null, will always have a value below\r\n\t\tif (movingIndex !== null) {\r\n\t\t\tconst movingWidget = Object.values(widgets)[movingIndex] as DashbarView;\r\n\r\n\t\t\tmovingWidget.view.setBounds({\r\n\t\t\t\ttop: movingWidget.bounds.top,\r\n\t\t\t\theight: movingWidget.bounds.height,\r\n\t\t\t\twidth: movingWidget.bounds.width,\r\n\t\t\t\tleft: event.clientX - (offsetX || 0),\r\n\t\t\t});\r\n\r\n\t\t\t// Some completely not react very hacky stuff to make browserviews move in conjunction with the titles\r\n\t\t\tconst elements = document.getElementsByClassName(\"dashbar-item-frame\");\r\n\t\t\tfor (const element of elements) {\r\n\t\t\t\tconst rect = element.getBoundingClientRect();\r\n\t\t\t\tconst widget = (widgets as any)[element.id];\r\n\t\t\t\tif (widget !== movingWidget && widget.bounds.left !== rect.left) {\r\n\t\t\t\t\twidget.bounds.left = rect.left;\r\n\t\t\t\t\twidget.view.setBounds(widget.bounds);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst setGrabLocation = (location: number) => {\r\n\t\ttitleGrabPosition = location;\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className={wrapperClasses} style={{ height: dashbarHeight }}>\r\n\t\t\t{WIDGET_COUNT > 0 && (\r\n\t\t\t\t<FinsembleDnDContext\r\n\t\t\t\t\tonDragEnd={reorderItems}\r\n\t\t\t\t\tonDragStart={startMove}\r\n\t\t\t\t\tonDragMove={moveItem}\r\n\t\t\t\t\tonLayoutUpdate={setWidgetsPositions}\r\n\t\t\t\t\tclassName=\"finsemble-dashbar-section rearrange-region\"\r\n\t\t\t\t\tid=\"dashbar-container\"\r\n\t\t\t\t\taxis={AllowableDnDAxis.x}\r\n\t\t\t\t\tlockAxis={AllowableDnDAxis.x}\r\n\t\t\t\t\tallowHorizontalScroll={true}\r\n\t\t\t\t\tshowScrollButtonsTooltip={true}\r\n\t\t\t\t\tleftButtonTooltip={leftButtonTooltip}\r\n\t\t\t\t\trightButtonTooltip={rightButtonTooltip}\r\n\t\t\t\t>\r\n\t\t\t\t\t{Object.values(widgets).map((widget, i) => (\r\n\t\t\t\t\t\t<DashbarItem\r\n\t\t\t\t\t\t\tkey={i}\r\n\t\t\t\t\t\t\tid={Object.keys(widgets)[i]}\r\n\t\t\t\t\t\t\tindex={i}\r\n\t\t\t\t\t\t\twidgetTitleGenerator={widgetTitleGenerator}\r\n\t\t\t\t\t\t\twidget={widget as DashbarView}\r\n\t\t\t\t\t\t\tdashbarHeight={dashbar.height}\r\n\t\t\t\t\t\t\twidgetDividerWidth={widgetDividerWidth}\r\n\t\t\t\t\t\t\tsetTitleHeight={setTitleHeight}\r\n\t\t\t\t\t\t\tsetGrabLocation={setGrabLocation}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</FinsembleDnDContext>\r\n\t\t\t)}\r\n\t\t\t{WIDGET_COUNT === 0 && (\r\n\t\t\t\t<div className=\"add-dashbar-item-button\" onClick={launchDashbar}>\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<i className=\"ff-plus\"></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t\t{children}\r\n\t\t</div>\r\n\t);\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"Dashbar.js","sourceRoot":"","sources":["../../../../src/components/toolbar/dashbar/Dashbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { DashbarItem } from \"./DashbarItem\";\nimport { Dashbar as DashbarType, DashbarItem as DashbarItemType, DashbarView } from \"../../../types/dashbarTypes\";\nimport { useToolbar } from \"../../../hooks/useToolbar\";\nimport { FinsembleDnDContext, AllowableDnDAxis } from \"../../legacyControls/FinsembleDnDContext\";\n\nimport \"../../../assets/css/dashbar.css\";\nimport { FinsembleWindow } from \"common/window/FinsembleWindow\";\n\ntype DashbarViews = {\n\t[key: string]: DashbarView;\n} & {};\n\nlet cachedWidgetTop: number;\nlet cachedWidgetHeight: number;\n\nexport const Dashbar = ({ className, children, widgetTitleGenerator }: DashbarType) => {\n\tconst { dashbarItems, reorderDashbarItems, launchPreferences } = useToolbar();\n\n\tconst [widgets, setWidgets] = useState({});\n\tconst [horizontalBounds, setHorizontalBounds] = useState(0);\n\tconst [wasReorganized, setReorganized] = useState(false);\n\tconst [totalWidgetsWidth, setTotalWidgetsWidth] = useState(0);\n\n\tlet movingIndex: number | null = null; // The dasharItem index being dragged, null if none\n\tlet titleGrabPosition: number | null = null; // The mouse of event when a widget title is dragged\n\tlet offsetX: number | null = null; // The original grab location of a given view titlebar\n\n\tconst WIDGET_COUNT: number = Object.keys(widgets).length;\n\tconst SCROLL_BUTTON_WIDTH = 30;\n\n\t/**\n\t *\n\t * @param {object} params\n\t * @param {number} oldIndex The index of the item being moved\n\t * @param {number} newIndex The index to move the item to\n\t */\n\tconst reorderItems = ({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) => {\n\t\tmovingIndex = null;\n\t\ttitleGrabPosition = null;\n\t\toffsetX = null;\n\t\tsetReorganized(true);\n\t\t// Update the redux store\n\t\treorderDashbarItems({ oldIndex, newIndex });\n\t};\n\n\tconst launchDashbar = () => {\n\t\tlaunchPreferences(\"Dashbar\");\n\t};\n\n\tconst { dashbar } = FSBL.Clients.WindowClient.getSpawnData();\n\n\t// Dashbar is disabled (no config in toolbar) or dashbar height is not specified\n\tif (!dashbar || !dashbar.height) {\n\t\treturn null;\n\t}\n\tconst toolbarHeight = finsembleWindow.windowOptions.height;\n\tconst dashbarHeight = `${dashbar.height}px`;\n\tconst verticalBounds = toolbarHeight - dashbar.height;\n\tconst widgetDividerWidth = dashbar.widgetDividerWidth || 0;\n\n\tconst wrapperClasses = `finsemble-dashbar ${className || \"\"}`.trim();\n\n\tconst getTotalWidth = () => {\n\t\tlet totalWidth = 0;\n\t\tdashbarItems.forEach((item: DashbarItemType) => {\n\t\t\ttotalWidth = totalWidth + item.width;\n\t\t});\n\t\treturn totalWidth;\n\t};\n\n\tconst [leftButtonTooltip, setLeftButtonTooltip] = useState(\"\");\n\tconst [rightButtonTooltip, setRightButtonTooltip] = useState(\"\");\n\n\tconst setWidgetsPositions = (isCalledFromDashbar: boolean | undefined) => {\n\t\t// This type conversion is safe and was put in place to remove the TS error\n\t\t// Currently getCurrentWindow return type is openFin window\n\t\t// which apparently does not have a getBounds property, however, the method exists and this\n\t\t// is working as expected.\n\t\tconst fsblWindow = FSBL.Clients.WindowClient.getCurrentWindow() as unknown as FinsembleWindow;\n\t\tfsblWindow.getBounds((bounds: any) => {\n\t\t\tconst toolbarWidth = bounds.width ? bounds.width : 0;\n\t\t\tconst elements = document.getElementsByClassName(\"dashbar-item-frame\");\n\n\t\t\tlet tempLeft = 0;\n\t\t\tif (toolbarWidth < totalWidgetsWidth) {\n\t\t\t\ttempLeft = SCROLL_BUTTON_WIDTH;\n\t\t\t}\n\n\t\t\tlet leftItemsCount = 0;\n\t\t\tlet rightItemsCount = 0;\n\n\t\t\tfor (const element of elements) {\n\t\t\t\tconst rect = element.getBoundingClientRect();\n\t\t\t\tconst widget = (widgets as DashbarViews)[element.id];\n\n\t\t\t\tif (rect.left < SCROLL_BUTTON_WIDTH && toolbarWidth < totalWidgetsWidth) {\n\t\t\t\t\twidget.bounds.width = 0;\n\t\t\t\t\twidget.bounds.left = tempLeft;\n\t\t\t\t\tleftItemsCount++;\n\t\t\t\t} else {\n\t\t\t\t\twidget.bounds.width = rect.width - widgetDividerWidth;\n\t\t\t\t\twidget.bounds.left = tempLeft;\n\t\t\t\t}\n\t\t\t\ttempLeft = tempLeft + widget.bounds.width + widgetDividerWidth;\n\n\t\t\t\tlet offsetRight = rect.left + rect.width - (toolbarWidth - SCROLL_BUTTON_WIDTH) + widgetDividerWidth;\n\t\t\t\tif (offsetRight > 0) {\n\t\t\t\t\t// hide title for invisible items\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\telement.childNodes[0].style.visibility = \"hidden\";\n\t\t\t\t\twidget.bounds.width = 0;\n\t\t\t\t\trightItemsCount++;\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\telement.childNodes[0].style.visibility = \"visible\";\n\t\t\t\t}\n\t\t\t\twidget.view.setBounds(widget.bounds);\n\t\t\t}\n\n\t\t\tsetLeftButtonTooltip(`${leftItemsCount} more`);\n\t\t\tsetRightButtonTooltip(`${rightItemsCount} more`);\n\t\t});\n\n\t\t//double call for fix fake empty space between widgets while scrolling\n\t\tif (!isCalledFromDashbar) {\n\t\t\tsetWidgetsPositions(true);\n\t\t}\n\t};\n\n\t/**\n\t * When the distributed store's 'dashbaritems' is updated it will cause this hook to\n\t * execute. The local representation of widgets will be mutated, then a call to\n\t * setWidgets will re-render the component\n\t */\n\tlet isUpdatingState = false;\n\tuseEffect(() => {\n\t\tconst updateItems = async () => {\n\t\t\tisUpdatingState = true;\n\t\t\tconst _widgets: DashbarViews = widgets;\n\n\t\t\tconst addWidgets = async () => {\n\t\t\t\tlet tempHorizontalBounds = horizontalBounds;\n\n\t\t\t\tfor (const item of dashbarItems) {\n\t\t\t\t\tconst widgetBounds = {\n\t\t\t\t\t\ttop: verticalBounds,\n\t\t\t\t\t\tleft: tempHorizontalBounds,\n\t\t\t\t\t\twidth: item.width - widgetDividerWidth,\n\t\t\t\t\t\theight: item.height || dashbar.height,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (!_widgets.hasOwnProperty(item.id)) {\n\t\t\t\t\t\tconst res: any = await finsembleWindow.addBrowserView({\n\t\t\t\t\t\t\turl: item.url,\n\t\t\t\t\t\t\tbounds: widgetBounds,\n\t\t\t\t\t\t\tallowAutoResize: false,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t_widgets[item.id] = {\n\t\t\t\t\t\t\turl: item.url,\n\t\t\t\t\t\t\ttitle: item.title,\n\t\t\t\t\t\t\tbounds: widgetBounds,\n\t\t\t\t\t\t\tview: res,\n\t\t\t\t\t\t\twidth: item.width,\n\t\t\t\t\t\t\traiseIntentOptions: item.raiseIntentOptions,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\ttempHorizontalBounds = tempHorizontalBounds + item.width;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsetWidgets(_widgets);\n\t\t\t\tisUpdatingState = false;\n\t\t\t\tsetHorizontalBounds(tempHorizontalBounds);\n\t\t\t};\n\n\t\t\tconst removeWidgets = () => {\n\t\t\t\t// Widgets is an object, with each key being a reference to an item in dashbarItems\n\t\t\t\t// but dashbarItems is an array of objects. Its necessary to loop through them to determine\n\t\t\t\t// the differences to figure out which items were removed.\n\t\t\t\tconst toRemove: string[] = [];\n\t\t\t\tObject.keys(_widgets).map((widgetId) => {\n\t\t\t\t\tlet found = false;\n\t\t\t\t\tfor (let i = 0; i < dashbarItems.length; i++) {\n\t\t\t\t\t\tconst dashItem = dashbarItems[i];\n\t\t\t\t\t\tif (dashItem.id === widgetId) {\n\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!found) {\n\t\t\t\t\t\ttoRemove.push(widgetId);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// toRemove is an array of widgetIds which were no longer found in dashbarItems\n\t\t\t\t// As items are removed, the remaining items have to be shuffled to fill the space\n\t\t\t\tfor (const id of toRemove) {\n\t\t\t\t\tif (_widgets.hasOwnProperty(id)) {\n\t\t\t\t\t\tlet tempNewHorizontalBounds = 0;\n\t\t\t\t\t\t_widgets[id].view.remove(() => {\n\t\t\t\t\t\t\tdelete _widgets[id];\n\t\t\t\t\t\t\t// Shuffle remaining views to fill any gaps that were left\n\t\t\t\t\t\t\tObject.values(_widgets).map((widget) => {\n\t\t\t\t\t\t\t\twidget.bounds = {\n\t\t\t\t\t\t\t\t\twidth: widget.bounds.width,\n\t\t\t\t\t\t\t\t\theight: widget.bounds.height,\n\t\t\t\t\t\t\t\t\tleft: tempNewHorizontalBounds,\n\t\t\t\t\t\t\t\t\ttop: widget.bounds.top,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\twidget.view.setBounds(widget.bounds);\n\t\t\t\t\t\t\t\ttempNewHorizontalBounds = tempNewHorizontalBounds + widget.bounds.width;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsetWidgets(_widgets);\n\t\t\t\t\t\t\tisUpdatingState = false;\n\t\t\t\t\t\t\tsetHorizontalBounds(tempNewHorizontalBounds);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tFSBL.Clients.Logger.error(`Error removing widget: ${id} from dashbar`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst reorganizeWidgets = () => {\n\t\t\t\t// Each view needs to be resituated to fill any holes\n\t\t\t\t// left by views that have been removed. Use a tempBounds\n\t\t\t\t// int to keep track of new widths and set the overall width\n\t\t\t\t// once everything is re-seated\n\t\t\t\tlet tempBounds = 0;\n\t\t\t\tdashbarItems.map((item) => {\n\t\t\t\t\tconst widget = _widgets[item.id];\n\n\t\t\t\t\twidget.bounds = {\n\t\t\t\t\t\theight: cachedWidgetHeight || widget.bounds.height,\n\t\t\t\t\t\twidth: widget.bounds.width,\n\t\t\t\t\t\ttop: cachedWidgetTop || verticalBounds,\n\t\t\t\t\t\tleft: tempBounds,\n\t\t\t\t\t};\n\n\t\t\t\t\twidget.view.setBounds(widget.bounds);\n\n\t\t\t\t\tdelete _widgets[item.id];\n\t\t\t\t\t_widgets[item.id] = widget;\n\n\t\t\t\t\ttempBounds = tempBounds + item.width;\n\t\t\t\t});\n\n\t\t\t\tsetReorganized(false);\n\t\t\t\tsetWidgets(_widgets);\n\t\t\t\tisUpdatingState = false;\n\t\t\t\tsetHorizontalBounds(tempBounds);\n\t\t\t};\n\n\t\t\tif (dashbarItems.length > WIDGET_COUNT) {\n\t\t\t\t//Items have been added\n\t\t\t\tawait addWidgets();\n\t\t\t\tsetTotalWidgetsWidth(getTotalWidth());\n\t\t\t} else if (dashbarItems.length < WIDGET_COUNT) {\n\t\t\t\t//Items have been removed\n\t\t\t\tremoveWidgets();\n\t\t\t\tsetTotalWidgetsWidth(getTotalWidth());\n\t\t\t} else if (wasReorganized) {\n\t\t\t\tif (movingIndex) return;\n\t\t\t\t// Length is the same, order has changed\n\t\t\t\treorganizeWidgets();\n\t\t\t}\n\t\t\tsetWidgetsPositions(true);\n\t\t};\n\n\t\tif (isUpdatingState === false) updateItems();\n\t}, [dashbarItems]);\n\n\t/**\n\t * Sets the title height as determined by the DashbarItem\n\t * component, since the CSS can be changed by the user\n\t * the component will render the title and pass back\n\t * computed height of that title, then the Dashbar will\n\t * make room for item\n\t *\n\t * @param {number} titleHeight The height of the span containing the title\n\t * @param {string} id The key'ed id of the view\n\t */\n\tconst setTitleHeight = (titleHeight: number, id: string) => {\n\t\tconst _widgets: DashbarViews = widgets;\n\t\tconst widget = _widgets[id];\n\t\tif (cachedWidgetTop) {\n\t\t\ttitleHeight = 0;\n\t\t}\n\n\t\tconst newBounds = {\n\t\t\ttop: cachedWidgetTop || widget.bounds.top + titleHeight,\n\t\t\tleft: widget.bounds.left,\n\t\t\theight: cachedWidgetHeight || widget.bounds.height - titleHeight,\n\t\t\twidth: widget.bounds.width,\n\t\t};\n\t\tcachedWidgetTop = newBounds.top;\n\t\tcachedWidgetHeight = newBounds.height;\n\n\t\twidget.view.setBounds(newBounds);\n\t\twidget.bounds = newBounds;\n\t\tsetWidgets(_widgets);\n\t};\n\n\t/**\n\t * When a view starts moving, bring it to the front\n\t *\n\t * @param {MouseEvent} event The event passed by react-sortable-hoc\n\t */\n\tconst startMove = (node: any, event: any) => {\n\t\tmovingIndex = node.index;\n\t\tif (offsetX === null && titleGrabPosition !== null) {\n\t\t\toffsetX = event.clientX - titleGrabPosition;\n\t\t}\n\t\tconst widget = Object.values(widgets)[node.index] as DashbarView;\n\t\twidget.view.bringToFront();\n\t};\n\n\t/**\n\t * Event triggered by view movement\n\t *\n\t * @param {MouseEvent} event\n\t */\n\tconst moveItem = (event: any) => {\n\t\t// if (movingIndex !== null && titleGrabPosition !== null) {\n\t\t// \t//@ts-ignore: Checked above if movingIndex is null, will always have a value below\n\t\tif (movingIndex !== null) {\n\t\t\tconst movingWidget = Object.values(widgets)[movingIndex] as DashbarView;\n\n\t\t\tmovingWidget.view.setBounds({\n\t\t\t\ttop: movingWidget.bounds.top,\n\t\t\t\theight: movingWidget.bounds.height,\n\t\t\t\twidth: movingWidget.bounds.width,\n\t\t\t\tleft: event.clientX - (offsetX || 0),\n\t\t\t});\n\n\t\t\t// Some completely not react very hacky stuff to make browserviews move in conjunction with the titles\n\t\t\tconst elements = document.getElementsByClassName(\"dashbar-item-frame\");\n\t\t\tfor (const element of elements) {\n\t\t\t\tconst rect = element.getBoundingClientRect();\n\t\t\t\tconst widget = (widgets as any)[element.id];\n\t\t\t\tif (widget !== movingWidget && widget.bounds.left !== rect.left) {\n\t\t\t\t\twidget.bounds.left = rect.left;\n\t\t\t\t\twidget.view.setBounds(widget.bounds);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst setGrabLocation = (location: number) => {\n\t\ttitleGrabPosition = location;\n\t};\n\n\treturn (\n\t\t<div className={wrapperClasses} style={{ height: dashbarHeight }}>\n\t\t\t{WIDGET_COUNT > 0 && (\n\t\t\t\t<FinsembleDnDContext\n\t\t\t\t\tonDragEnd={reorderItems}\n\t\t\t\t\tonDragStart={startMove}\n\t\t\t\t\tonDragMove={moveItem}\n\t\t\t\t\tonLayoutUpdate={setWidgetsPositions}\n\t\t\t\t\tclassName=\"finsemble-dashbar-section rearrange-region\"\n\t\t\t\t\tid=\"dashbar-container\"\n\t\t\t\t\taxis={AllowableDnDAxis.x}\n\t\t\t\t\tlockAxis={AllowableDnDAxis.x}\n\t\t\t\t\tallowHorizontalScroll={true}\n\t\t\t\t\tshowScrollButtonsTooltip={true}\n\t\t\t\t\tleftButtonTooltip={leftButtonTooltip}\n\t\t\t\t\trightButtonTooltip={rightButtonTooltip}\n\t\t\t\t>\n\t\t\t\t\t{Object.values(widgets).map((widget, i) => (\n\t\t\t\t\t\t<DashbarItem\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tid={Object.keys(widgets)[i]}\n\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\twidgetTitleGenerator={widgetTitleGenerator}\n\t\t\t\t\t\t\twidget={widget as DashbarView}\n\t\t\t\t\t\t\tdashbarHeight={dashbar.height}\n\t\t\t\t\t\t\twidgetDividerWidth={widgetDividerWidth}\n\t\t\t\t\t\t\tsetTitleHeight={setTitleHeight}\n\t\t\t\t\t\t\tsetGrabLocation={setGrabLocation}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</FinsembleDnDContext>\n\t\t\t)}\n\t\t\t{WIDGET_COUNT === 0 && (\n\t\t\t\t<div className=\"add-dashbar-item-button\" onClick={launchDashbar}>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<i className=\"ff-plus\"></i>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashbarItem.js","sourceRoot":"","sources":["../../../../src/components/toolbar/dashbar/DashbarItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,eAAe,EAAa,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E,OAAO,iCAAiC,CAAC;AAezC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,SAAS,EACT,MAAM,EACN,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,oBAAoB,GACF,EAAE,EAAE;IACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5B,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IAEpE,eAAe,CAAC,GAAG,EAAE;QACpB,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,aAAa,EAAE;YAGlD,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;YAE1C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;YAClE,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;SAChC;IACF,CAAC,CAAC,CAAC;IAOH,MAAM,gBAAgB,GAAG,CAAC,KAAmD,EAAE,EAAE;QAChF,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YAE7B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACpD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;IACF,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,0BAA0B,SAAS,IAAI,EAAE,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG;QACjB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,GAAG,kBAAkB,uCAAuC;KACzE,CAAC;IAEF,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,OAAO,CACN,oBAAC,kBAAkB,IAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY;QACrF,6BAAK,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,SAAS;YACvG,iCAAM,KAAK,CAAO;YAClB,6BAAK,SAAS,EAAC,aAAa,GAAO,CAC9B,CACc,CACrB,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\
|
|
1
|
+
{"version":3,"file":"DashbarItem.js","sourceRoot":"","sources":["../../../../src/components/toolbar/dashbar/DashbarItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,eAAe,EAAa,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E,OAAO,iCAAiC,CAAC;AAezC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,SAAS,EACT,MAAM,EACN,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,oBAAoB,GACF,EAAE,EAAE;IACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5B,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IAEpE,eAAe,CAAC,GAAG,EAAE;QACpB,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,aAAa,EAAE;YAGlD,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;YAE1C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;YAClE,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;SAChC;IACF,CAAC,CAAC,CAAC;IAOH,MAAM,gBAAgB,GAAG,CAAC,KAAmD,EAAE,EAAE;QAChF,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YAE7B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACpD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;IACF,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,0BAA0B,SAAS,IAAI,EAAE,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG;QACjB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,GAAG,kBAAkB,uCAAuC;KACzE,CAAC;IAEF,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,OAAO,CACN,oBAAC,kBAAkB,IAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY;QACrF,6BAAK,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,SAAS;YACvG,iCAAM,KAAK,CAAO;YAClB,6BAAK,SAAS,EAAC,aAAa,GAAO,CAC9B,CACc,CACrB,CAAC;AACH,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { useRef, useLayoutEffect, useEffect } from \"react\";\nimport { FinsembleDraggable } from \"../../legacyControls/FinsembleDraggable\";\nimport { DashbarView } from \"../../../types/dashbarTypes\";\n\nimport \"../../../assets/css/dashbar.css\";\n\ntype DashbarItemProps = {\n\tid?: string;\n\tindex: number;\n\tclassName?: string;\n\theight?: number;\n\twidget: DashbarView;\n\tdashbarHeight?: number;\n\twidgetDividerWidth?: number;\n\tsetTitleHeight: Function;\n\tsetGrabLocation: Function;\n\twidgetTitleGenerator: Function;\n};\n\nexport const DashbarItem = ({\n\tid,\n\tindex,\n\tclassName,\n\twidget,\n\theight,\n\tdashbarHeight,\n\twidgetDividerWidth,\n\tsetTitleHeight,\n\tsetGrabLocation,\n\twidgetTitleGenerator,\n}: DashbarItemProps) => {\n\tconst titleRef = useRef(null);\n\tconst divRef = useRef(null);\n\n\tid = id ? id : `finsemble-draggable-${Date.now()}-${Math.random()}`;\n\n\tuseLayoutEffect(() => {\n\t\tif (titleRef && titleRef.current && dashbarHeight) {\n\t\t\t// The following ignore is safe because we just checked whether titleRef and titleRef.current are defined\n\t\t\t// @ts-ignore: Object is possibly 'null'.\n\t\t\tconst { offsetHeight } = titleRef.current;\n\n\t\t\tconst titleHeight = height ? height + offsetHeight : offsetHeight;\n\t\t\tsetTitleHeight(titleHeight, id);\n\t\t}\n\t});\n\n\t/**\n\t * Sets the location the titlebar of a view is clicked on when a user grabs a dashbar item\n\t *\n\t * @param event\n\t */\n\tconst _setGrabLocation = (event: React.MouseEvent<HTMLDivElement> | undefined) => {\n\t\tif (divRef && divRef.current) {\n\t\t\t//@ts-ignore: Won't access object unless it is defined\n\t\t\tconst rect = divRef.current.getBoundingClientRect();\n\t\t\tsetGrabLocation(rect.left);\n\t\t}\n\t};\n\n\tconst wrapperClass = `finsemble-dashbar-item ${className || \"\"}`;\n\tconst itemStyle = {\n\t\tdisplay: \"flex\",\n\t\twidth: widget.width,\n\t\tborderRight: `${widgetDividerWidth}px solid var(--dashbar-divider-color)`,\n\t};\n\n\tconst title = widgetTitleGenerator(widget, titleRef);\n\n\treturn (\n\t\t<FinsembleDraggable draggableId={id} index={index} key={id} wrapperClass={wrapperClass}>\n\t\t\t<div ref={divRef} id={id} onMouseDown={_setGrabLocation} className=\"dashbar-item-frame\" style={itemStyle}>\n\t\t\t\t<div>{title}</div>\n\t\t\t\t<div className=\"empty-space\"></div>\n\t\t\t</div>\n\t\t</FinsembleDraggable>\n\t);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC","sourcesContent":["export { ToolbarShell } from \"./ToolbarShell\";\
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC","sourcesContent":["export { ToolbarShell } from \"./ToolbarShell\";\nexport { AutoArrange } from \"./AutoArrange\";\nexport { MinimizeAll } from \"./MinimizeAll\";\nexport { NotificationControl } from \"./NotificationControl\";\nexport { RevealAll } from \"./RevealAll\";\nexport { ToolbarSection } from \"./ToolbarSection\";\nexport { AppLauncherMenu } from \"./appLauncher/AppLauncherMenu\";\nexport { AdvancedAppLauncherMenu } from \"./advancedAppLauncher/AdvancedAppLauncherMenu\";\nexport { WorkspaceManagementMenu } from \"./workspaceManagementMenu/WorkspaceManagementMenu\";\nexport { Dashbar } from \"./dashbar/Dashbar\";\nexport { DashbarItem } from \"./dashbar/DashbarItem\";\nexport { Search } from \"../search/Search\";\nexport { DragHandle } from \"./DragHandle\";\nexport { ToolbarIcon } from \"./ToolbarIcon\";\nexport { FavoritesShell } from \"../favorites/FavoritesShell\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceManagementMenu.js","sourceRoot":"","sources":["../../../../src/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.jsx"],"names":[],"mappings":"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","sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"file":"WorkspaceManagementMenu.js","sourceRoot":"","sources":["../../../../src/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.jsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport React from \"react\";\nimport { Actions as WorkspaceManagementMenuActions } from \"./stores/workspaceManagementMenuStore\";\nimport WorkspaceActions from \"./components/WorkspaceActions\";\nimport WorkspaceList from \"./components/WorkspaceList\";\nimport { Menu } from \"../../menu/Menu\";\nimport { storeManager } from \"./stores/workspaceManagementMenuStore\";\n\nimport \"./workspaceManagementMenu.css\";\n\n/**\n * A button that opens the workspace management menu when clicked.\n */\nexport class WorkspaceManagementMenu extends React.Component {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.bindCorrectContext();\n\t\tthis.store = null;\n\t\tthis.state = {\n\t\t\tWorkspaceList: [],\n\t\t\tactiveWorkspace: null,\n\t\t\tinitialized: false,\n\t\t};\n\t}\n\n\tbindCorrectContext() {\n\t\tthis.onStoreChange = this.onStoreChange.bind(this);\n\t\tthis.onInitialized = this.onInitialized.bind(this);\n\t}\n\n\tonInitialized(store) {\n\t\tthis.store = store;\n\t\tthis.store.addListeners([\n\t\t\t{ field: \"WorkspaceList\", listener: this.onStoreChange },\n\t\t\t{ field: \"activeWorkspace\", listener: this.onStoreChange },\n\t\t\t{ field: \"isSwitchingWorkspaces\", listener: this.onStoreChange },\n\t\t]);\n\t\tthis.onStoreChange();\n\t\tthis.setState({\n\t\t\tinitialized: true,\n\t\t});\n\t}\n\n\tonStoreChange() {\n\t\tthis.setState({\n\t\t\tWorkspaceList: WorkspaceManagementMenuActions.getWorkspaceList(),\n\t\t\tactiveWorkspace: WorkspaceManagementMenuActions.getActiveWorkspace(),\n\t\t\tisSwitchingWorksapces: WorkspaceManagementMenuActions.getIsSwitchingWorkspaces(),\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tstoreManager.addInitializedListener(this.onInitialized);\n\t\tstoreManager.initialize();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tstoreManager.removeInitializedListener(this.onInitialized);\n\t\tif (this.state.initialized)\n\t\t\tthis.store.removeListeners([\n\t\t\t\t{ field: \"WorkspaceList\", listener: this.onStoreChange },\n\t\t\t\t{ field: \"activeWorkspace\", listener: this.onStoreChange },\n\t\t\t\t{ field: \"isSwitchingWorkspaces\", listener: this.onStoreChange },\n\t\t\t]);\n\t}\n\n\trender() {\n\t\tlet completeProps = {\n\t\t\t...this.props,\n\t\t\twidth: this.props.width ?? 330,\n\t\t\tclassName: this.props.className ?? \"workspace-management-menu\",\n\t\t\tid: this.props.id ?? \"WorkspaceMenu\",\n\t\t\ttitle: this.state.activeWorkspace?.name,\n\t\t};\n\n\t\treturn (\n\t\t\t<Menu {...completeProps}>\n\t\t\t\t{this.state.initialized ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<WorkspaceActions />\n\t\t\t\t\t\t<WorkspaceList\n\t\t\t\t\t\t\tisSwitchingWorkspaces={this.state.isSwitchingWorksapces}\n\t\t\t\t\t\t\tactiveWorkspace={this.state.activeWorkspace}\n\t\t\t\t\t\t\tworkspaces={this.state.WorkspaceList}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) : null}\n\t\t\t</Menu>\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workspace.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/workspaceManagementMenu/components/Workspace.jsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;IACvD,MAAM,uBAAuB,GAAG,CAAC,CAAC,EAAE,EAAE;QACrC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QAIpB,8BAA8B,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;YACxE,IAAI,UAAU,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC9C,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC/B;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACN,8BAAM,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAC,gBAAgB;QACjE,2BAAG,SAAS,EAAC,sBAAsB,EAAC,KAAK,EAAC,QAAQ,GAAK,CACjD,CACP,CAAC;AACH,CAAC,CAAC;AACF,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAS;IACrD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAOD,OAAO;QACN,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;SAC/B,CAAC,CAAC;IACJ,CAAC;IAQD,MAAM;QACL,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAIvF,MAAM,WAAW,GAAG,qBAAqB,IAAI,iBAAiB,CAAC;QAE/D,IAAI,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAE3G,OAAO,CACN,oBAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO;YAClD,6BAAK,SAAS,EAAC,eAAe;gBAC5B,WAAW,IAAI,8BAAM,SAAS,EAAC,aAAa,iBAAkB;gBAC9D,CAAC,WAAW,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,IAAI,8BAAM,SAAS,EAAE,UAAU,CAAC,SAAS,GAAS;gBACrG,8BAAM,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IACpD,SAAS,CAAC,IAAI,CACT;gBACP,6BAAK,SAAS,EAAC,0BAA0B;oBACvC,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,oBAAC,eAAe,IAAC,SAAS,EAAE,SAAS,GAAI;oBACxF,oBAAC,aAAa,IACb,EAAE,EAAE,SAAS,CAAC,IAAI,EAClB,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAC,gBAAgB,GACzB,CACG,CACD,CACI,CACX,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"file":"Workspace.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/workspaceManagementMenu/components/Workspace.jsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;IACvD,MAAM,uBAAuB,GAAG,CAAC,CAAC,EAAE,EAAE;QACrC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QAIpB,8BAA8B,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;YACxE,IAAI,UAAU,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC9C,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC/B;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACN,8BAAM,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAC,gBAAgB;QACjE,2BAAG,SAAS,EAAC,sBAAsB,EAAC,KAAK,EAAC,QAAQ,GAAK,CACjD,CACP,CAAC;AACH,CAAC,CAAC;AACF,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAS;IACrD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAOD,kBAAkB;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAOD,OAAO;QACN,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;SAC/B,CAAC,CAAC;IACJ,CAAC;IAQD,MAAM;QACL,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAIvF,MAAM,WAAW,GAAG,qBAAqB,IAAI,iBAAiB,CAAC;QAE/D,IAAI,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAE3G,OAAO,CACN,oBAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO;YAClD,6BAAK,SAAS,EAAC,eAAe;gBAC5B,WAAW,IAAI,8BAAM,SAAS,EAAC,aAAa,iBAAkB;gBAC9D,CAAC,WAAW,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,IAAI,8BAAM,SAAS,EAAE,UAAU,CAAC,SAAS,GAAS;gBACrG,8BAAM,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IACpD,SAAS,CAAC,IAAI,CACT;gBACP,6BAAK,SAAS,EAAC,0BAA0B;oBACvC,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,oBAAC,eAAe,IAAC,SAAS,EAAE,SAAS,GAAI;oBACxF,oBAAC,aAAa,IACb,EAAE,EAAE,SAAS,CAAC,IAAI,EAClB,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAC,gBAAgB,GACzB,CACG,CACD,CACI,CACX,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n * This is a single workspace. When clicked, it requests that the app switch to the clicked workspace.\n */\n\nimport React from \"react\";\nimport { MenuItem } from \"../../../menu/MenuItem\";\nimport { Actions as WorkspaceManagementMenuActions } from \"../stores/workspaceManagementMenuStore\";\nimport { FavoriteMaker } from \"../../../favorites/FavoriteMaker\";\nimport { useFavorites } from \"../../../../hooks/useFavorites\";\nconst RemoveWorkspace = (props) => {\n\tconst { workspace } = props;\n\tconst { isFavorited, removeFavorite } = useFavorites();\n\tconst actuallyRemoveWorkspace = (e) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\t// Trigger the remove. This will throw a dialog. It will return a boolean\n\t\t// for whether it was or was not deleted.\n\t\t// If the thing was deleted, remove it from favorites.\n\t\tWorkspaceManagementMenuActions.removeWorkspace(workspace, (wasDeleted) => {\n\t\t\tif (wasDeleted && isFavorited(workspace.name)) {\n\t\t\t\tremoveFavorite(workspace.name);\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t<span onClick={actuallyRemoveWorkspace} className=\"menu-item-icon\">\n\t\t\t<i className=\"ff-adp-trash-outline\" title=\"Delete\"></i>\n\t\t</span>\n\t);\n};\nexport default class Workspace extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.bindCorrectContext();\n\t}\n\n\t/**\n\t * This is necessary to make sure that the `this` inside of the callback is correct.\n\t *\n\t * @memberof LinkerButton\n\t */\n\tbindCorrectContext() {\n\t\tthis.onClick = this.onClick.bind(this);\n\t}\n\n\t/**\n\t * When the main body of the component is clicked, we fire off the mainAction. By default this is to switch workspaces.\n\t *\n\t * @memberof Workspace\n\t */\n\tonClick() {\n\t\tthis.props.mainAction({\n\t\t\tname: this.props.workspace.name,\n\t\t});\n\t}\n\n\t/**\n\t * Render method.\n\t *\n\t * @returns\n\t * @memberof Workspace\n\t */\n\trender() {\n\t\tconst { isSwitchingWorkspaces, workspace, isActiveWorkspace, dragHandle } = this.props;\n\n\t\t// Actions are remove and pin workspace.\n\n\t\tconst showSpinner = isSwitchingWorkspaces && isActiveWorkspace;\n\n\t\tlet classes = isActiveWorkspace ? \"menu-item active-workspace workspace-name\" : \"menu-item workspace-name\";\n\n\t\treturn (\n\t\t\t<MenuItem onClick={this.onClick} className={classes}>\n\t\t\t\t<div className=\"menu-item-row\">\n\t\t\t\t\t{showSpinner && <span className=\"fsbl-loader\">Loading...</span>}\n\t\t\t\t\t{!showSpinner && dragHandle && dragHandle.iconClass && <span className={dragHandle.iconClass}></span>}\n\t\t\t\t\t<span className=\"workspace-name\" title={workspace.name}>\n\t\t\t\t\t\t{workspace.name}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div className=\"menu-item-row-push-right\">\n\t\t\t\t\t\t{!isActiveWorkspace && !workspace.permanent && <RemoveWorkspace workspace={workspace} />}\n\t\t\t\t\t\t<FavoriteMaker\n\t\t\t\t\t\t\tid={workspace.name}\n\t\t\t\t\t\t\tname={workspace.name}\n\t\t\t\t\t\t\tcategory={\"Workspace\"}\n\t\t\t\t\t\t\tclassName=\"menu-item-icon\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</MenuItem>\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceActions.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.jsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAY,OAAO,IAAI,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK,CAAC,SAAS;IAC5D;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG;YAClB;gBACC,MAAM,EAAE,IAAI,CAAC,eAAe;gBAC5B,KAAK,EAAE,eAAe;gBACtB,EAAE,EAAE,cAAc;aAClB;YACD;gBACC,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,KAAK,EAAE,MAAM;gBACb,EAAE,EAAE,eAAe;aACnB;YACD;gBACC,MAAM,EAAE,IAAI,CAAC,eAAe;gBAC5B,KAAK,EAAE,SAAS;gBAChB,EAAE,EAAE,iBAAiB;aACrB;SACD,CAAC;IACH,CAAC;IAOD,eAAe;QACd,8BAA8B,CAAC,UAAU,EAAE,CAAC;QAC5C,8BAA8B,CAAC,YAAY,EAAE,CAAC;IAC/C,CAAC;IAOD,aAAa;QACZ,8BAA8B,CAAC,UAAU,EAAE,CAAC;QAC5C,8BAA8B,CAAC,aAAa,EAAE,CAAC;IAChD,CAAC;IAOD,eAAe;QACd,8BAA8B,CAAC,UAAU,EAAE,CAAC;QAC5C,8BAA8B,CAAC,eAAe,EAAE,CAAC;IAClD,CAAC;IAED,eAAe;QACd,8BAA8B,CAAC,UAAU,EAAE,CAAC;QAC5C,8BAA8B,CAAC,eAAe,EAAE,CAAC;IAClD,CAAC;IAQD,MAAM;QAIL,OAAO,CACN,6BAAK,SAAS,EAAC,kCAAkC,IAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,oBAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,IAC1C,MAAM,CAAC,KAAK,CACH,CACX,CAAC,CACG,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"file":"WorkspaceActions.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.jsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAY,OAAO,IAAI,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK,CAAC,SAAS;IAC5D;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG;YAClB;gBACC,MAAM,EAAE,IAAI,CAAC,eAAe;gBAC5B,KAAK,EAAE,eAAe;gBACtB,EAAE,EAAE,cAAc;aAClB;YACD;gBACC,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,KAAK,EAAE,MAAM;gBACb,EAAE,EAAE,eAAe;aACnB;YACD;gBACC,MAAM,EAAE,IAAI,CAAC,eAAe;gBAC5B,KAAK,EAAE,SAAS;gBAChB,EAAE,EAAE,iBAAiB;aACrB;SACD,CAAC;IACH,CAAC;IAOD,eAAe;QACd,8BAA8B,CAAC,UAAU,EAAE,CAAC;QAC5C,8BAA8B,CAAC,YAAY,EAAE,CAAC;IAC/C,CAAC;IAOD,aAAa;QACZ,8BAA8B,CAAC,UAAU,EAAE,CAAC;QAC5C,8BAA8B,CAAC,aAAa,EAAE,CAAC;IAChD,CAAC;IAOD,eAAe;QACd,8BAA8B,CAAC,UAAU,EAAE,CAAC;QAC5C,8BAA8B,CAAC,eAAe,EAAE,CAAC;IAClD,CAAC;IAED,eAAe;QACd,8BAA8B,CAAC,UAAU,EAAE,CAAC;QAC5C,8BAA8B,CAAC,eAAe,EAAE,CAAC;IAClD,CAAC;IAQD,MAAM;QAIL,OAAO,CACN,6BAAK,SAAS,EAAC,kCAAkC,IAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,oBAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,IAC1C,MAAM,CAAC,KAAK,CACH,CACX,CAAC,CACG,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n * This is the list of actions the user can take; it's placed above the list of workspaces..\n */\nimport React from \"react\";\nimport { getStore, Actions as WorkspaceManagementMenuActions } from \"../stores/workspaceManagementMenuStore\";\nimport { MenuItem } from \"../../../menu/MenuItem\";\nexport default class WorkspaceActions extends React.Component {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.userActions = [\n\t\t\t{\n\t\t\t\tmethod: this.createWorkspace,\n\t\t\t\tlabel: \"New workspace\",\n\t\t\t\tid: \"NewWorkspace\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tmethod: this.saveWorkspace,\n\t\t\t\tlabel: \"Save\",\n\t\t\t\tid: \"SaveWorkspace\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tmethod: this.saveWorkspaceAs,\n\t\t\t\tlabel: \"Save as\",\n\t\t\t\tid: \"SaveWorkspaceAs\",\n\t\t\t},\n\t\t];\n\t}\n\n\t/**\n\t * Blurs window. Pops up a dialog asking for a name for the new workspace.\n\t *\n\t * @memberof WorkspaceActions\n\t */\n\tcreateWorkspace() {\n\t\tWorkspaceManagementMenuActions.blurWindow();\n\t\tWorkspaceManagementMenuActions.newWorkspace();\n\t}\n\n\t/**\n\t * Blurs window. Persists activeWorkspace to the storage.\n\t *\n\t * @memberof WorkspaceActions\n\t */\n\tsaveWorkspace() {\n\t\tWorkspaceManagementMenuActions.blurWindow();\n\t\tWorkspaceManagementMenuActions.saveWorkspace();\n\t}\n\n\t/**\n\t * Blurs window. Pops up a dialog asking for a name for the new workspace.\n\t *\n\t * @memberof WorkspaceActions\n\t */\n\tsaveWorkspaceAs() {\n\t\tWorkspaceManagementMenuActions.blurWindow();\n\t\tWorkspaceManagementMenuActions.saveWorkspaceAs();\n\t}\n\n\tshowPreferences() {\n\t\tWorkspaceManagementMenuActions.blurWindow();\n\t\tWorkspaceManagementMenuActions.showPreferences();\n\t}\n\n\t/**\n\t * Render method.\n\t *\n\t * @returns\n\t * @memberof WorkspaceActions\n\t */\n\trender() {\n\t\t/**\n\t\t * Iterates through the list of actions defined in the constructor, creating an `li` for each.\n\t\t */\n\t\treturn (\n\t\t\t<div className=\"menu-secondary workspace-actions\">\n\t\t\t\t{this.userActions.map((action, index) => (\n\t\t\t\t\t<MenuItem key={index} onClick={action.method}>\n\t\t\t\t\t\t{action.label}\n\t\t\t\t\t</MenuItem>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/workspaceManagementMenu/components/WorkspaceList.jsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAGlF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAS;IACzD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAQD,eAAe,CAAC,aAAa;QAC5B,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;QAC/B,OAAO,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM;QACL,MAAM,EAAE,qBAAqB,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9D,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;YAE3D,IAAI,iBAAiB,GAAG,SAAS,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC;YAChE,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;YAErD,OAAO,CACN,oBAAC,kBAAkB,IAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,IAAI;gBAChE,oBAAC,SAAS,IACT,GAAG,EAAE,CAAC,EACN,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,OAAO,CAAC,iBAAiB,EACrC,qBAAqB,EAAE,qBAAqB,GAC3C,CACkB,CACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CACN,oBAAC,mBAAmB,IAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAC,gBAAgB,IACxE,UAAU,CACU,CACtB,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"file":"WorkspaceList.js","sourceRoot":"","sources":["../../../../../src/components/toolbar/workspaceManagementMenu/components/WorkspaceList.jsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAGlF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAS;IACzD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAQD,eAAe,CAAC,aAAa;QAC5B,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;QAC/B,OAAO,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM;QACL,MAAM,EAAE,qBAAqB,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9D,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;YAE3D,IAAI,iBAAiB,GAAG,SAAS,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC;YAChE,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;YAErD,OAAO,CACN,oBAAC,kBAAkB,IAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,IAAI;gBAChE,oBAAC,SAAS,IACT,GAAG,EAAE,CAAC,EACN,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,OAAO,CAAC,iBAAiB,EACrC,qBAAqB,EAAE,qBAAqB,GAC3C,CACkB,CACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CACN,oBAAC,mBAAmB,IAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAC,gBAAgB,IACxE,UAAU,CACU,CACtB,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n * This is a list of workspaces that the user can click on, loading them.\n */\nimport React from \"react\";\nimport Workspace from \"./Workspace\";\nimport { Actions } from \"../stores/workspaceManagementMenuStore\";\nimport { FinsembleDraggable } from \"../../../legacyControls/FinsembleDraggable\";\nimport { FinsembleDnDContext } from \"../../../legacyControls/FinsembleDnDContext\";\nimport { FinsembleMenuSection } from \"../../../legacyControls/FinsembleMenuSection\";\n\nexport default class WorkspaceList extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.onDragEnd = this.onDragEnd.bind(this);\n\t}\n\n\t/**\n\t * Removes a workspace.\n\t *\n\t * @param {any} workspaceName\n\t * @memberof WorkspaceManagementList\n\t */\n\tremoveWorkspace(workspaceName) {\n\t\tActions.removeWorkspace(workspaceName);\n\t}\n\n\tonDragEnd({ oldIndex, newIndex }) {\n\t\tActions.reorderWorkspaceList({ oldIndex, newIndex });\n\t}\n\n\trender() {\n\t\tconst { isSwitchingWorkspaces, activeWorkspace } = this.props;\n\t\tlet workspaces = this.props.workspaces.map((workspace, i) => {\n\t\t\t// Separate array for each workspace. This way, the activeWorkspace can be rendered without a trashcan.\n\t\t\tlet isActiveWorkspace = workspace.name === activeWorkspace.name;\n\t\t\tconst dragHandle = { iconClass: \"ff-adp-hamburger\" };\n\n\t\t\treturn (\n\t\t\t\t<FinsembleDraggable index={i} key={i} draggableId={workspace.name}>\n\t\t\t\t\t<Workspace\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tisActiveWorkspace={isActiveWorkspace}\n\t\t\t\t\t\tdragHandle={dragHandle}\n\t\t\t\t\t\tworkspace={workspace}\n\t\t\t\t\t\tmainAction={Actions.switchToWorkspace}\n\t\t\t\t\t\tisSwitchingWorkspaces={isSwitchingWorkspaces}\n\t\t\t\t\t/>\n\t\t\t\t</FinsembleDraggable>\n\t\t\t);\n\t\t});\n\n\t\treturn (\n\t\t\t<FinsembleDnDContext onDragEnd={this.onDragEnd} className=\"workspace-list\">\n\t\t\t\t{workspaces}\n\t\t\t</FinsembleDnDContext>\n\t\t);\n\t}\n}\n"]}
|