@finsemble/finsemble-ui 6.6.3 → 7.0.0-beta-X
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/package.json +31 -43
- package/react/actions/favoriteActions.d.ts +1 -0
- package/react/actions/favoriteActions.js +1 -0
- package/react/actions/favoriteActions.js.map +1 -1
- package/react/actions/menuActions.d.ts +1 -0
- package/react/actions/menuActions.js +1 -0
- package/react/actions/menuActions.js.map +1 -1
- package/react/actions/rootActions.d.ts +1 -0
- package/react/actions/rootActions.js +1 -0
- package/react/actions/rootActions.js.map +1 -1
- package/react/actions/searchActions.d.ts +1 -0
- package/react/actions/searchActions.js +1 -0
- package/react/actions/searchActions.js.map +1 -1
- package/react/actions/toolbarActions.d.ts +34 -0
- package/react/actions/toolbarActions.js +17 -0
- package/react/actions/toolbarActions.js.map +1 -1
- package/react/actions/workspaceActions.d.ts +1 -0
- package/react/actions/workspaceActions.js +1 -0
- package/react/actions/workspaceActions.js.map +1 -1
- package/react/assets/css/advancedAppLauncher.css +22 -19
- package/react/assets/css/appCatalog.css +67 -72
- package/react/assets/css/authentication.css +4 -3
- package/react/assets/css/button.css +4 -11
- package/react/assets/css/core/formElements.css +1 -1
- package/react/assets/css/core/icons.css +3 -2
- package/react/assets/css/core/notifications.css +2 -2
- package/react/assets/css/core/windowFrame.css +9 -9
- package/react/assets/css/dashbar.css +1 -1
- package/react/assets/css/defaultTheme.css +9 -53
- package/react/assets/css/dialogs.css +13 -11
- package/react/assets/css/favorites.css +3 -48
- package/react/assets/css/finsemble.css +6 -2
- package/react/assets/css/font-finance.css +233 -120
- package/react/assets/css/fonts/Open_Sans/OpenSans-Definition.css +10 -10
- package/react/assets/css/linkerWindow.css +15 -3
- package/react/assets/css/menus.css +12 -12
- package/react/assets/css/notificationsCenter.css +49 -33
- package/react/assets/css/processMonitor.css +7 -4
- package/react/assets/css/search.css +1 -1
- package/react/assets/css/shared/animations.css +10 -4
- package/react/assets/css/shared/common.css +40 -0
- package/react/assets/css/tags.css +10 -10
- package/react/assets/css/toolbar.css +22 -19
- package/react/assets/css/userPreferences.css +29 -26
- package/react/assets/css/windowTitleBar.css +86 -40
- package/react/assets/icons/server.svg +26 -0
- package/react/componentTemplateGenerator.js +3 -2
- package/react/componentTemplateGenerator.js.map +1 -1
- package/react/components/FinsembleProvider.d.ts +7 -0
- package/react/components/FinsembleProvider.js +2 -0
- package/react/components/FinsembleProvider.js.map +1 -1
- package/react/components/appCatalog/AppCatalog.d.ts +4 -0
- package/react/components/appCatalog/AppCatalog.js +4 -0
- package/react/components/appCatalog/AppCatalog.js.map +1 -1
- package/react/components/appCatalog/AppCatalogComponent.d.ts +58 -0
- package/react/components/appCatalog/AppCatalogComponent.js +70 -1
- package/react/components/appCatalog/AppCatalogComponent.js.map +1 -1
- package/react/components/appCatalog/components/AppCard.d.ts +35 -0
- package/react/components/appCatalog/components/AppCard.js +42 -0
- package/react/components/appCatalog/components/AppCard.js.map +1 -1
- package/react/components/appCatalog/components/AppResults.d.ts +10 -0
- package/react/components/appCatalog/components/AppResults.js +24 -0
- package/react/components/appCatalog/components/AppResults.js.map +1 -1
- package/react/components/appCatalog/components/Carousel.d.ts +26 -0
- package/react/components/appCatalog/components/Carousel.js +34 -0
- package/react/components/appCatalog/components/Carousel.js.map +1 -1
- package/react/components/appCatalog/components/EmptyResults.d.ts +4 -0
- package/react/components/appCatalog/components/EmptyResults.js +8 -0
- package/react/components/appCatalog/components/EmptyResults.js.map +1 -1
- package/react/components/appCatalog/components/Hero.d.ts +15 -0
- package/react/components/appCatalog/components/Hero.js +15 -0
- package/react/components/appCatalog/components/Hero.js.map +1 -1
- package/react/components/appCatalog/components/Home.d.ts +6 -4
- package/react/components/appCatalog/components/Home.js +10 -0
- package/react/components/appCatalog/components/Home.js.map +1 -1
- package/react/components/appCatalog/components/SearchBar.d.ts +31 -0
- package/react/components/appCatalog/components/SearchBar.js +33 -0
- package/react/components/appCatalog/components/SearchBar.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppDescription.d.ts +5 -0
- package/react/components/appCatalog/components/Showcase/AppDescription.js +9 -0
- package/react/components/appCatalog/components/Showcase/AppDescription.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppDevNotes.d.ts +7 -0
- package/react/components/appCatalog/components/Showcase/AppDevNotes.js +15 -0
- package/react/components/appCatalog/components/Showcase/AppDevNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/AppShowcase.d.ts +17 -0
- package/react/components/appCatalog/components/Showcase/AppShowcase.js +25 -0
- package/react/components/appCatalog/components/Showcase/AppShowcase.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/Header.d.ts +7 -0
- package/react/components/appCatalog/components/Showcase/Header.js +12 -0
- package/react/components/appCatalog/components/Showcase/Header.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/ImageCarousel.d.ts +7 -0
- package/react/components/appCatalog/components/Showcase/ImageCarousel.js +11 -0
- package/react/components/appCatalog/components/Showcase/ImageCarousel.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/Modal.d.ts +10 -0
- package/react/components/appCatalog/components/Showcase/Modal.js +10 -0
- package/react/components/appCatalog/components/Showcase/Modal.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/ReleaseNotes.d.ts +5 -0
- package/react/components/appCatalog/components/Showcase/ReleaseNotes.js +9 -0
- package/react/components/appCatalog/components/Showcase/ReleaseNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/SupportNotes.d.ts +6 -0
- package/react/components/appCatalog/components/Showcase/SupportNotes.js +11 -0
- package/react/components/appCatalog/components/Showcase/SupportNotes.js.map +1 -1
- package/react/components/appCatalog/components/Showcase/VersionNotes.d.ts +5 -0
- package/react/components/appCatalog/components/Showcase/VersionNotes.js +9 -0
- package/react/components/appCatalog/components/Showcase/VersionNotes.js.map +1 -1
- package/react/components/appCatalog/components/Tag.d.ts +6 -0
- package/react/components/appCatalog/components/Tag.js +10 -0
- package/react/components/appCatalog/components/Tag.js.map +1 -1
- package/react/components/appCatalog/components/Toast.d.ts +5 -0
- package/react/components/appCatalog/components/Toast.js +9 -0
- package/react/components/appCatalog/components/Toast.js.map +1 -1
- package/react/components/appCatalog/components/helpers.js +1 -0
- package/react/components/appCatalog/components/helpers.js.map +1 -1
- package/react/components/appCatalog/modules/AppDirectory.d.ts +5 -0
- package/react/components/appCatalog/modules/AppDirectory.js +5 -0
- package/react/components/appCatalog/modules/AppDirectory.js.map +1 -1
- package/react/components/appCatalog/modules/FDC3.d.ts +37 -0
- package/react/components/appCatalog/modules/FDC3.js +40 -0
- package/react/components/appCatalog/modules/FDC3.js.map +1 -1
- package/react/components/appCatalog/stores/appStore.js +1 -0
- package/react/components/appCatalog/stores/appStore.js.map +1 -1
- package/react/components/appCatalog/stores/storeActions.d.ts +91 -0
- package/react/components/appCatalog/stores/storeActions.js +116 -1
- package/react/components/appCatalog/stores/storeActions.js.map +1 -1
- package/react/components/common/ButtonIcon.js +1 -1
- package/react/components/common/ButtonIcon.js.map +1 -1
- package/react/components/common/ButtonRow.js +2 -2
- package/react/components/common/ButtonRow.js.map +1 -1
- package/react/components/common/Checkbox.d.ts +1 -0
- package/react/components/common/Checkbox.js +3 -3
- package/react/components/common/Checkbox.js.map +1 -1
- package/react/components/common/ColorPicker.d.ts +5 -0
- package/react/components/common/ColorPicker.js +56 -15
- package/react/components/common/ColorPicker.js.map +1 -1
- package/react/components/common/DropZone.d.ts +11 -0
- package/react/components/common/DropZone.js +21 -1
- package/react/components/common/DropZone.js.map +1 -1
- package/react/components/common/DropdownButton.d.ts +4 -0
- package/react/components/common/DropdownButton.js +4 -0
- package/react/components/common/DropdownButton.js.map +1 -1
- package/react/components/common/ErrorBoundary.d.ts +34 -0
- package/react/components/common/ErrorBoundary.js +43 -0
- package/react/components/common/ErrorBoundary.js.map +1 -0
- package/react/components/common/FileInput.d.ts +8 -1
- package/react/components/common/FileInput.js +19 -4
- package/react/components/common/FileInput.js.map +1 -1
- package/react/components/common/FinsembleIcon.d.ts +13 -2
- package/react/components/common/FinsembleIcon.js +61 -5
- package/react/components/common/FinsembleIcon.js.map +1 -1
- package/react/components/common/FinsembleLink.d.ts +6 -0
- package/react/components/common/FinsembleLink.js +12 -0
- package/react/components/common/FinsembleLink.js.map +1 -0
- package/react/components/common/FinsembleSelect.js +5 -1
- package/react/components/common/FinsembleSelect.js.map +1 -1
- package/react/components/common/FinsembleToggle.d.ts +1 -2
- package/react/components/common/FinsembleToggle.js +2 -6
- package/react/components/common/FinsembleToggle.js.map +1 -1
- package/react/components/common/FinsembleToggleButtonBar.d.ts +13 -0
- package/react/components/common/FinsembleToggleButtonBar.js +44 -0
- package/react/components/common/FinsembleToggleButtonBar.js.map +1 -0
- package/react/components/common/InputTable.d.ts +10 -3
- package/react/components/common/InputTable.js +20 -13
- package/react/components/common/InputTable.js.map +1 -1
- package/react/components/common/Tab.js +36 -5
- package/react/components/common/Tab.js.map +1 -1
- package/react/components/common/TimeSelect.js +34 -3
- package/react/components/common/TimeSelect.js.map +1 -1
- package/react/components/common/Tooltip.js +2 -0
- package/react/components/common/Tooltip.js.map +1 -1
- package/react/components/common/css/FinsembleToggle.css +22 -0
- package/react/components/common/css/accordion.css +9 -6
- package/react/components/common/css/application-edit-page.css +48 -45
- package/react/components/common/css/button.css +10 -5
- package/react/components/common/css/color-picker.css +3 -3
- package/react/components/common/css/drop-zone.css +2 -6
- package/react/components/common/css/file-input.css +5 -5
- package/react/components/common/css/header.css +3 -2
- package/react/components/common/css/icon.css +1 -1
- package/react/components/common/css/loading-spinner.css +7 -12
- package/react/components/common/css/selector.css +4 -4
- package/react/components/common/css/styles.css +22 -16
- package/react/components/common/css/tab.css +14 -14
- package/react/components/common/css/time-select.css +2 -1
- package/react/components/common/css/toggle.css +4 -12
- package/react/components/common/css/tooltip.css +2 -3
- package/react/components/common/file_helpers.js +2 -0
- package/react/components/common/file_helpers.js.map +1 -1
- package/react/components/common/helpers.js +12 -1
- package/react/components/common/helpers.js.map +1 -1
- package/react/components/common/stories/ColorPicker.stories.js +9 -11
- package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
- package/react/components/common/stories/FileInput.stories.d.ts +3 -1
- package/react/components/common/stories/FileInput.stories.js +12 -0
- package/react/components/common/stories/FileInput.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleToggle.stories.d.ts +1 -2
- package/react/components/common/stories/FinsembleToggle.stories.js +0 -7
- package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.d.ts +14 -0
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.js +97 -0
- package/react/components/common/stories/FinsembleToggleButtonBar.stories.js.map +1 -0
- package/react/components/common/stories/InputTable.stories.d.ts +4 -3
- package/react/components/common/stories/InputTable.stories.js +18 -8
- package/react/components/common/stories/InputTable.stories.js.map +1 -1
- package/react/components/common/tests/Accordion.spec.js +6 -0
- package/react/components/common/tests/Accordion.spec.js.map +1 -1
- package/react/components/common/tests/ButtonRow.spec.js +5 -0
- package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
- package/react/components/common/tests/Checkbox.spec.js +1 -0
- package/react/components/common/tests/Checkbox.spec.js.map +1 -1
- package/react/components/common/tests/ColorPicker.spec.js +6 -0
- package/react/components/common/tests/ColorPicker.spec.js.map +1 -1
- package/react/components/common/tests/DropZone.spec.js +1 -0
- package/react/components/common/tests/DropZone.spec.js.map +1 -1
- package/react/components/common/tests/FileInput.spec.js +22 -0
- package/react/components/common/tests/FileInput.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleSelect.spec.js +1 -0
- package/react/components/common/tests/FinsembleSelect.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggle.spec.js +2 -6
- package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.d.ts +1 -0
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +41 -0
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js.map +1 -0
- package/react/components/common/tests/InputTable.spec.js +3 -3
- package/react/components/common/tests/InputTable.spec.js.map +1 -1
- package/react/components/common/tests/TimeSelect.spec.js +4 -0
- package/react/components/common/tests/TimeSelect.spec.js.map +1 -1
- package/react/components/common/tests/Tooltip.spec.js +16 -0
- package/react/components/common/tests/Tooltip.spec.js.map +1 -1
- package/react/components/favorites/FavoriteMaker.d.ts +8 -0
- package/react/components/favorites/FavoriteMaker.js +10 -1
- package/react/components/favorites/FavoriteMaker.js.map +1 -1
- package/react/components/favorites/FavoritesShell.d.ts +4 -0
- package/react/components/favorites/FavoritesShell.js +13 -1
- package/react/components/favorites/FavoritesShell.js.map +1 -1
- package/react/components/favorites/FavoritesShell.spec.js +3 -0
- package/react/components/favorites/FavoritesShell.spec.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverContainer.js +12 -7
- package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.css +16 -3
- package/react/components/fdc3Resolver/ResolverDialog.js +7 -2
- package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.spec.js +3 -2
- package/react/components/fdc3Resolver/ResolverDialog.spec.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.stories.js +2 -0
- package/react/components/fdc3Resolver/ResolverDialog.stories.js.map +1 -1
- package/react/components/icon/Icon.d.ts +14 -1
- package/react/components/icon/Icon.js +42 -1
- package/react/components/icon/Icon.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialog.d.ts +4 -0
- package/react/components/legacyControls/FinsembleDialog.js +16 -1
- package/react/components/legacyControls/FinsembleDialog.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogButton.d.ts +3 -0
- package/react/components/legacyControls/FinsembleDialogButton.js +6 -1
- package/react/components/legacyControls/FinsembleDialogButton.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogQuestion.d.ts +7 -0
- package/react/components/legacyControls/FinsembleDialogQuestion.js +7 -0
- package/react/components/legacyControls/FinsembleDialogQuestion.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +3 -0
- package/react/components/legacyControls/FinsembleDialogTextInput.js +14 -0
- package/react/components/legacyControls/FinsembleDialogTextInput.js.map +1 -1
- package/react/components/legacyControls/FinsembleDnDContext.d.ts +19 -0
- package/react/components/legacyControls/FinsembleDnDContext.js +133 -8
- package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
- package/react/components/legacyControls/FinsembleDraggable.d.ts +3 -0
- package/react/components/legacyControls/FinsembleDraggable.js +3 -0
- package/react/components/legacyControls/FinsembleDraggable.js.map +1 -1
- package/react/components/legacyControls/FinsembleHoverDetector.d.ts +15 -0
- package/react/components/legacyControls/FinsembleHoverDetector.js +26 -1
- package/react/components/legacyControls/FinsembleHoverDetector.js.map +1 -1
- package/react/components/legacyControls/FinsembleMenuSection.d.ts +4 -0
- package/react/components/legacyControls/FinsembleMenuSection.js +38 -0
- package/react/components/legacyControls/FinsembleMenuSection.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js +1 -0
- package/react/components/legacyControls/tests/FinsembleDialogButton.spec.js.map +1 -1
- package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js +1 -0
- package/react/components/legacyControls/tests/FinsembleDialogTextInput.spec.js.map +1 -1
- package/react/components/linker/LinkerMenu.d.ts +3 -0
- package/react/components/linker/LinkerMenu.js +21 -0
- package/react/components/linker/LinkerMenu.js.map +1 -1
- package/react/components/linker/LinkerMenuDeprecated.d.ts +3 -0
- package/react/components/linker/LinkerMenuDeprecated.js +9 -0
- package/react/components/linker/LinkerMenuDeprecated.js.map +1 -1
- package/react/components/linker/remoteRedux.js +1 -0
- package/react/components/linker/remoteRedux.js.map +1 -1
- package/react/components/menu/Menu.d.ts +15 -0
- package/react/components/menu/Menu.js +15 -0
- package/react/components/menu/Menu.js.map +1 -1
- package/react/components/menu/MenuAutoResizer.d.ts +7 -0
- package/react/components/menu/MenuAutoResizer.js +27 -0
- package/react/components/menu/MenuAutoResizer.js.map +1 -1
- package/react/components/menu/MenuContent.d.ts +4 -0
- package/react/components/menu/MenuContent.js +4 -0
- package/react/components/menu/MenuContent.js.map +1 -1
- package/react/components/menu/MenuHotKey.d.ts +14 -0
- package/react/components/menu/MenuHotKey.js +15 -0
- package/react/components/menu/MenuHotKey.js.map +1 -1
- package/react/components/menu/MenuItem.d.ts +8 -0
- package/react/components/menu/MenuItem.js +13 -2
- package/react/components/menu/MenuItem.js.map +1 -1
- package/react/components/menu/MenuPortal.js +125 -24
- package/react/components/menu/MenuPortal.js.map +1 -1
- package/react/components/menu/MenuShell.d.ts +16 -0
- package/react/components/menu/MenuShell.js +26 -0
- package/react/components/menu/MenuShell.js.map +1 -1
- package/react/components/menu/MenuToggle.d.ts +3 -0
- package/react/components/menu/MenuToggle.js +5 -2
- package/react/components/menu/MenuToggle.js.map +1 -1
- package/react/components/menu/keyboardNavigation.d.ts +13 -22
- package/react/components/menu/keyboardNavigation.js +165 -160
- package/react/components/menu/keyboardNavigation.js.map +1 -1
- package/react/components/menu/menuContext.d.ts +6 -0
- package/react/components/menu/menuContext.js +6 -0
- package/react/components/menu/menuContext.js.map +1 -1
- package/react/components/menu/menuHelpers.d.ts +22 -0
- package/react/components/menu/menuHelpers.js +58 -1
- package/react/components/menu/menuHelpers.js.map +1 -1
- package/react/components/notifications/components/drawer/DrawerControls.js +47 -25
- package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
- package/react/components/notifications/components/drawer/DrawerHeader.js +5 -0
- package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +37 -6
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +3 -0
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
- package/react/components/notifications/components/shared/CheckButton.js +19 -8
- package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
- package/react/components/notifications/components/shared/NotificationCardShell.d.ts +9 -0
- package/react/components/notifications/components/shared/NotificationCardShell.js +15 -7
- package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
- package/react/components/notifications/components/shared/OverflowMenu.d.ts +4 -0
- package/react/components/notifications/components/shared/OverflowMenu.js +16 -2
- package/react/components/notifications/components/shared/OverflowMenu.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +2 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js +2 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
- package/react/components/notifications/components/views/CardView.js +8 -3
- package/react/components/notifications/components/views/CardView.js.map +1 -1
- package/react/components/notifications/components/views/ListView.js +11 -1
- package/react/components/notifications/components/views/ListView.js.map +1 -1
- package/react/components/notifications/notificationsContext.d.ts +4 -0
- package/react/components/notifications/notificationsContext.js +4 -0
- package/react/components/notifications/notificationsContext.js.map +1 -1
- package/react/components/notifications/types.d.ts +6 -0
- package/react/components/notifications/types.js.map +1 -1
- package/react/components/notifications/utils.d.ts +4 -0
- package/react/components/notifications/utils.js +4 -0
- package/react/components/notifications/utils.js.map +1 -1
- package/react/components/processMonitor/ProcessMonitor.d.ts +3 -0
- package/react/components/processMonitor/ProcessMonitor.js +21 -3
- package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
- package/react/components/processMonitor/components/ChildWindow.d.ts +3 -0
- package/react/components/processMonitor/components/ChildWindow.js +5 -0
- package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
- package/react/components/processMonitor/components/ListHeader.d.ts +5 -0
- package/react/components/processMonitor/components/ListHeader.js +7 -0
- package/react/components/processMonitor/components/ListHeader.js.map +1 -1
- package/react/components/processMonitor/components/ProcessStatistics.js +12 -3
- package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
- package/react/components/processMonitor/constants.js +6 -0
- package/react/components/processMonitor/constants.js.map +1 -1
- package/react/components/processMonitor/helpers.d.ts +13 -0
- package/react/components/processMonitor/helpers.js +27 -6
- package/react/components/processMonitor/helpers.js.map +1 -1
- package/react/components/processMonitor/helpers.spec.js +7 -3
- package/react/components/processMonitor/helpers.spec.js.map +1 -1
- package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +39 -0
- package/react/components/processMonitor/stores/ProcessMonitorStore.js +50 -0
- package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
- package/react/components/quickComponentForm/QuickComponentForm.d.ts +3 -0
- package/react/components/quickComponentForm/QuickComponentForm.js +20 -0
- package/react/components/quickComponentForm/QuickComponentForm.js.map +1 -1
- package/react/components/quickComponentForm/quickComponent.css +1 -1
- package/react/components/sdd/AddApp.d.ts +7 -4
- package/react/components/sdd/AddApp.js +144 -34
- package/react/components/sdd/AddApp.js.map +1 -1
- package/react/components/sdd/AppEditAccess.d.ts +4 -3
- package/react/components/sdd/AppEditAccess.js +8 -0
- package/react/components/sdd/AppEditAccess.js.map +1 -1
- package/react/components/sdd/AppEditPage.d.ts +6 -4
- package/react/components/sdd/AppEditPage.js +205 -393
- package/react/components/sdd/AppEditPage.js.map +1 -1
- package/react/components/sdd/Appearance.css +1 -1
- package/react/components/sdd/Appearance.d.ts +2 -1
- package/react/components/sdd/Appearance.js +18 -7
- package/react/components/sdd/Appearance.js.map +1 -1
- package/react/components/sdd/Application.d.ts +5 -4
- package/react/components/sdd/Application.js +94 -44
- package/react/components/sdd/Application.js.map +1 -1
- package/react/components/sdd/Applications.d.ts +12 -11
- package/react/components/sdd/Applications.js +110 -15
- package/react/components/sdd/Applications.js.map +1 -1
- package/react/components/sdd/AssetsPage.css +3 -3
- package/react/components/sdd/Authentication.js +1 -6
- package/react/components/sdd/Authentication.js.map +1 -1
- package/react/components/sdd/AuthenticationProviderConfig.js +5 -3
- package/react/components/sdd/AuthenticationProviderConfig.js.map +1 -1
- package/react/components/sdd/EditPreload.d.ts +4 -3
- package/react/components/sdd/EditPreload.js +49 -22
- package/react/components/sdd/EditPreload.js.map +1 -1
- package/react/components/sdd/Export.d.ts +7 -6
- package/react/components/sdd/Export.js +4 -3
- package/react/components/sdd/Export.js.map +1 -1
- package/react/components/sdd/ExportCloud.js +4 -0
- package/react/components/sdd/ExportCloud.js.map +1 -1
- package/react/components/sdd/GettingStarted.js +3 -3
- package/react/components/sdd/GettingStarted.js.map +1 -1
- package/react/components/sdd/Navigation.js +28 -4
- package/react/components/sdd/Navigation.js.map +1 -1
- package/react/components/sdd/OptionalSettingsView.d.ts +6 -5
- package/react/components/sdd/OptionalSettingsView.js +2 -10
- package/react/components/sdd/OptionalSettingsView.js.map +1 -1
- package/react/components/sdd/ProjectErrors.js +1 -1
- package/react/components/sdd/ProjectErrors.js.map +1 -1
- package/react/components/sdd/Publish.js +4 -2
- package/react/components/sdd/Publish.js.map +1 -1
- package/react/components/sdd/PublishProgress.js +11 -1
- package/react/components/sdd/PublishProgress.js.map +1 -1
- package/react/components/sdd/SmartDesktopDesigner.d.ts +17 -16
- package/react/components/sdd/SmartDesktopDesigner.js +54 -34
- package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
- package/react/components/sdd/ThemePage.css +6 -23
- package/react/components/sdd/ThemePage.js +8 -5
- package/react/components/sdd/ThemePage.js.map +1 -1
- package/react/components/sdd/Themes.d.ts +2 -1
- package/react/components/sdd/Themes.js +4 -2
- package/react/components/sdd/Themes.js.map +1 -1
- package/react/components/sdd/Toolbar.d.ts +5 -4
- package/react/components/sdd/Toolbar.js +18 -9
- package/react/components/sdd/Toolbar.js.map +1 -1
- package/react/components/sdd/appEditPage/Behavior.d.ts +34 -0
- package/react/components/sdd/appEditPage/Behavior.js +134 -0
- package/react/components/sdd/appEditPage/Behavior.js.map +1 -0
- package/react/components/sdd/appEditPage/Component.d.ts +22 -0
- package/react/components/sdd/appEditPage/Component.js +76 -0
- package/react/components/sdd/appEditPage/Component.js.map +1 -0
- package/react/components/sdd/appEditPage/DebugToolkit.d.ts +9 -0
- package/react/components/sdd/appEditPage/DebugToolkit.js +20 -0
- package/react/components/sdd/appEditPage/DebugToolkit.js.map +1 -0
- package/react/components/sdd/appEditPage/Interop.d.ts +10 -0
- package/react/components/sdd/appEditPage/Interop.js +40 -0
- package/react/components/sdd/appEditPage/Interop.js.map +1 -0
- package/react/components/sdd/appEditPage/Position.d.ts +18 -0
- package/react/components/sdd/appEditPage/Position.js +72 -0
- package/react/components/sdd/appEditPage/Position.js.map +1 -0
- package/react/components/sdd/appEditPage/Preloads.d.ts +9 -0
- package/react/components/sdd/appEditPage/Preloads.js +16 -0
- package/react/components/sdd/appEditPage/Preloads.js.map +1 -0
- package/react/components/sdd/appEditPage/SelectConnect.d.ts +15 -0
- package/react/components/sdd/appEditPage/SelectConnect.js +28 -0
- package/react/components/sdd/appEditPage/SelectConnect.js.map +1 -0
- package/react/components/sdd/appEditPage/Workspace.d.ts +12 -0
- package/react/components/sdd/appEditPage/Workspace.js +30 -0
- package/react/components/sdd/appEditPage/Workspace.js.map +1 -0
- package/react/components/sdd/common/getCSSVars.js +7 -2
- package/react/components/sdd/common/getCSSVars.js.map +1 -1
- package/react/components/sdd/common/setPreloadDefaults.d.ts +1 -1
- package/react/components/sdd/common/setPreloadDefaults.js +9 -4
- package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
- package/react/components/sdd/common/views.js +7 -4
- package/react/components/sdd/common/views.js.map +1 -1
- package/react/components/sdd/css/addApp.css +65 -0
- package/react/components/sdd/css/appearance.css +6 -0
- package/react/components/sdd/css/applications.css +27 -34
- package/react/components/sdd/css/authentication.css +7 -6
- package/react/components/sdd/css/buttons.css +1 -1
- package/react/components/sdd/css/export.css +5 -3
- package/react/components/sdd/css/getting-started.css +2 -2
- package/react/components/sdd/css/nav.css +11 -14
- package/react/components/sdd/css/project-header.css +5 -7
- package/react/components/sdd/css/styles.css +29 -23
- package/react/components/sdd/css/views.css +4 -3
- package/react/components/sdd/fixtures/apps.js +12 -0
- package/react/components/sdd/fixtures/apps.js.map +1 -1
- package/react/components/sdd/fixtures/authenticationProps.js +15 -1
- package/react/components/sdd/fixtures/authenticationProps.js.map +1 -1
- package/react/components/sdd/fixtures/configTemplate.js +1 -0
- package/react/components/sdd/fixtures/configTemplate.js.map +1 -1
- package/react/components/sdd/fixtures/preloads.js +14 -12
- package/react/components/sdd/fixtures/preloads.js.map +1 -1
- package/react/components/sdd/fixtures/publishProgress.js +40 -0
- package/react/components/sdd/fixtures/publishProgress.js.map +1 -1
- package/react/components/sdd/sdd_helpers.d.ts +6 -0
- package/react/components/sdd/sdd_helpers.js +6 -0
- package/react/components/sdd/sdd_helpers.js.map +1 -1
- package/react/components/sdd/smartDesktopClient.d.ts +466 -0
- package/react/components/sdd/smartDesktopClient.js +906 -0
- package/react/components/sdd/smartDesktopClient.js.map +1 -0
- package/react/components/sdd/smartDesktopClient.spec.d.ts +1 -0
- package/react/components/sdd/smartDesktopClient.spec.js +64 -0
- package/react/components/sdd/smartDesktopClient.spec.js.map +1 -0
- package/react/components/sdd/stories/AddApp.stories.d.ts +11 -0
- package/react/components/sdd/stories/AddApp.stories.js +26 -0
- package/react/components/sdd/stories/AddApp.stories.js.map +1 -0
- package/react/components/sdd/stories/AppEditPage.stories.d.ts +5 -1
- package/react/components/sdd/stories/AppEditPage.stories.js +5 -0
- package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
- package/react/components/sdd/stories/Appearance.stories.d.ts +1 -1
- package/react/components/sdd/stories/Appearance.stories.js +2 -0
- package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
- package/react/components/sdd/stories/Authentication.stories.js +2 -16
- package/react/components/sdd/stories/Authentication.stories.js.map +1 -1
- package/react/components/sdd/stories/OptionalSettingsView.stories.js +1 -1
- package/react/components/sdd/stories/OptionalSettingsView.stories.js.map +1 -1
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.d.ts +1 -1
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.js +3 -0
- package/react/components/sdd/stories/SmartDesktopDesigner.stories.js.map +1 -1
- package/react/components/sdd/stories/Themes.stories.d.ts +1 -1
- package/react/components/sdd/stories/Themes.stories.js +1 -0
- package/react/components/sdd/stories/Themes.stories.js.map +1 -1
- package/react/components/sdd/tests/AddApp.spec.d.ts +1 -0
- package/react/components/sdd/tests/AddApp.spec.js +133 -0
- package/react/components/sdd/tests/AddApp.spec.js.map +1 -0
- package/react/components/sdd/tests/AppEditPage.spec.js +108 -23
- package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
- package/react/components/sdd/tests/Application.spec.js +351 -369
- package/react/components/sdd/tests/Application.spec.js.map +1 -1
- package/react/components/sdd/tests/Applications.spec.d.ts +1 -1
- package/react/components/sdd/tests/Applications.spec.js +30 -50
- package/react/components/sdd/tests/Applications.spec.js.map +1 -1
- package/react/components/sdd/tests/Authentication.spec.js +8 -1
- package/react/components/sdd/tests/Authentication.spec.js.map +1 -1
- package/react/components/sdd/tests/ContentHeader.spec.js +2 -0
- package/react/components/sdd/tests/ContentHeader.spec.js.map +1 -1
- package/react/components/sdd/tests/EditPreload.spec.js +63 -7
- package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
- package/react/components/sdd/tests/Export.spec.js +8 -1
- package/react/components/sdd/tests/Export.spec.js.map +1 -1
- package/react/components/sdd/tests/ItemList.spec.js +4 -0
- package/react/components/sdd/tests/ItemList.spec.js.map +1 -1
- package/react/components/sdd/tests/Navigation.spec.js +2 -2
- package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
- package/react/components/sdd/tests/OptionalSettingsView.spec.js +264 -0
- package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
- package/react/components/sdd/tests/ProjectErrors.spec.js +3 -1
- package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -1
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +2 -2
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
- package/react/components/sdd/tests/Themes.spec.js +1 -1
- package/react/components/sdd/tests/Themes.spec.js.map +1 -1
- package/react/components/sdd/tests/Toolbar.spec.js +53 -0
- package/react/components/sdd/tests/Toolbar.spec.js.map +1 -1
- package/react/components/sdd/tests/a11y_helper.js +8 -0
- package/react/components/sdd/tests/a11y_helper.js.map +1 -1
- package/react/components/search/Highlight.d.ts +6 -0
- package/react/components/search/Highlight.js +19 -0
- package/react/components/search/Highlight.js.map +1 -1
- package/react/components/search/Highlight.stories.js +1 -1
- package/react/components/search/Highlight.stories.js.map +1 -1
- package/react/components/search/Search.js +1 -1
- package/react/components/search/Search.js.map +1 -1
- package/react/components/search/SearchBestMatch.d.ts +4 -0
- package/react/components/search/SearchBestMatch.js +11 -0
- package/react/components/search/SearchBestMatch.js.map +1 -1
- package/react/components/search/SearchInput.d.ts +5 -0
- package/react/components/search/SearchInput.js +6 -0
- package/react/components/search/SearchInput.js.map +1 -1
- package/react/components/search/SearchProviderResults.js +2 -0
- package/react/components/search/SearchProviderResults.js.map +1 -1
- package/react/components/search/SearchResult.d.ts +5 -0
- package/react/components/search/SearchResult.js +6 -0
- package/react/components/search/SearchResult.js.map +1 -1
- package/react/components/search/SearchResult.spec.d.ts +1 -0
- package/react/components/search/SearchResult.spec.js +46 -0
- package/react/components/search/SearchResult.spec.js.map +1 -0
- package/react/components/search/SearchResult.stories.d.ts +16 -0
- package/react/components/search/SearchResult.stories.js +113 -0
- package/react/components/search/SearchResult.stories.js.map +1 -0
- package/react/components/search/SearchResults.js +5 -1
- package/react/components/search/SearchResults.js.map +1 -1
- package/react/components/search/SearchResults.spec.d.ts +1 -0
- package/react/components/search/SearchResults.spec.js +35 -0
- package/react/components/search/SearchResults.spec.js.map +1 -0
- package/react/components/search/SearchResults.stories.d.ts +11 -0
- package/react/components/search/SearchResults.stories.js +458 -0
- package/react/components/search/SearchResults.stories.js.map +1 -0
- package/react/components/shared/Animate.d.ts +5 -0
- package/react/components/shared/Animate.js +12 -1
- package/react/components/shared/Animate.js.map +1 -1
- package/react/components/shared/DefaultDropdownButton.js +26 -6
- package/react/components/shared/DefaultDropdownButton.js.map +1 -1
- package/react/components/shared/Tag.d.ts +0 -4
- package/react/components/shared/Tag.js +4 -0
- package/react/components/shared/Tag.js.map +1 -1
- package/react/components/shared/TagsMenu.d.ts +6 -0
- package/react/components/shared/TagsMenu.js +7 -0
- package/react/components/shared/TagsMenu.js.map +1 -1
- package/react/components/shared/addProtocolToValidURL.d.ts +6 -0
- package/react/components/shared/addProtocolToValidURL.js +6 -0
- package/react/components/shared/addProtocolToValidURL.js.map +1 -1
- package/react/components/shared/openQuitConfirmationDialog.d.ts +1 -1
- package/react/components/shared/openQuitConfirmationDialog.js +4 -4
- package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
- package/react/components/shared/tests/DefaultDropdownButton.spec.js +12 -0
- package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
- package/react/components/shared/tests/addProtocolToValidURL.spec.js +1 -0
- package/react/components/shared/tests/addProtocolToValidURL.spec.js.map +1 -1
- package/react/components/shared/validateURL.d.ts +18 -0
- package/react/components/shared/validateURL.js +24 -5
- package/react/components/shared/validateURL.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.css +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.d.ts +3 -0
- package/react/components/singleInputDialog/SingleInputDialog.js +46 -0
- package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.stories.js +2 -2
- package/react/components/singleInputDialog/SingleInputDialog.stories.js.map +1 -1
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -16
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +5 -3
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
- package/react/components/system/System.d.ts +22 -0
- package/react/components/system/System.js +23 -1
- package/react/components/system/System.js.map +1 -1
- package/react/components/system/System.stories.js +1 -0
- package/react/components/system/System.stories.js.map +1 -1
- package/react/components/system/SystemTrayComponentShell.d.ts +6 -0
- package/react/components/system/SystemTrayComponentShell.js +9 -0
- package/react/components/system/SystemTrayComponentShell.js.map +1 -1
- package/react/components/toolbar/AutoArrange.d.ts +5 -0
- package/react/components/toolbar/AutoArrange.js +8 -1
- package/react/components/toolbar/AutoArrange.js.map +1 -1
- package/react/components/toolbar/AutoArrange.spec.js +10 -4
- package/react/components/toolbar/AutoArrange.spec.js.map +1 -1
- package/react/components/toolbar/AutoArrange.stories.js +1 -0
- package/react/components/toolbar/AutoArrange.stories.js.map +1 -1
- package/react/components/toolbar/DragHandle.d.ts +4 -0
- package/react/components/toolbar/DragHandle.js +11 -0
- package/react/components/toolbar/DragHandle.js.map +1 -1
- package/react/components/toolbar/DragHandle.spec.js +1 -0
- package/react/components/toolbar/DragHandle.spec.js.map +1 -1
- package/react/components/toolbar/DragHandle.stories.js +1 -0
- package/react/components/toolbar/DragHandle.stories.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.d.ts +4 -0
- package/react/components/toolbar/MinimizeAll.js +7 -1
- package/react/components/toolbar/MinimizeAll.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.spec.js +1 -0
- package/react/components/toolbar/MinimizeAll.spec.js.map +1 -1
- package/react/components/toolbar/MinimizeAll.stories.js +1 -0
- package/react/components/toolbar/MinimizeAll.stories.js.map +1 -1
- package/react/components/toolbar/NotificationControl.d.ts +5 -0
- package/react/components/toolbar/NotificationControl.js +8 -1
- package/react/components/toolbar/NotificationControl.js.map +1 -1
- package/react/components/toolbar/RevealAll.d.ts +4 -0
- package/react/components/toolbar/RevealAll.js +7 -1
- package/react/components/toolbar/RevealAll.js.map +1 -1
- package/react/components/toolbar/RevealAll.spec.js +1 -0
- package/react/components/toolbar/RevealAll.spec.js.map +1 -1
- package/react/components/toolbar/RevealAll.stories.js +1 -0
- package/react/components/toolbar/RevealAll.stories.js.map +1 -1
- package/react/components/toolbar/SddButton.d.ts +4 -0
- package/react/components/toolbar/SddButton.js +4 -0
- package/react/components/toolbar/SddButton.js.map +1 -1
- package/react/components/toolbar/ToolbarIcon.d.ts +4 -0
- package/react/components/toolbar/ToolbarIcon.js +6 -2
- package/react/components/toolbar/ToolbarIcon.js.map +1 -1
- package/react/components/toolbar/ToolbarSection.d.ts +8 -9
- package/react/components/toolbar/ToolbarSection.js +21 -7
- package/react/components/toolbar/ToolbarSection.js.map +1 -1
- package/react/components/toolbar/ToolbarShell.d.ts +5 -0
- package/react/components/toolbar/ToolbarShell.js +7 -0
- package/react/components/toolbar/ToolbarShell.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +16 -0
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +20 -0
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +52 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +58 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +27 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +49 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +13 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +14 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/Content.js +19 -0
- package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +16 -0
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +39 -0
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +9 -0
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +3 -0
- package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +6 -0
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +7 -0
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +37 -0
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js +40 -0
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts +3 -0
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +83 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.d.ts +10 -0
- package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js +12 -3
- package/react/components/toolbar/advancedAppLauncher/utils/sort-functions.js.map +1 -1
- package/react/components/toolbar/appLauncher/AppLauncherMenu.d.ts +18 -0
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js +20 -0
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.d.ts +9 -0
- package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js +12 -0
- package/react/components/toolbar/appLauncher/StaticAppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/appLauncher/appLauncher.css +1 -1
- package/react/components/toolbar/appLauncher/components/componentList.d.ts +3 -0
- package/react/components/toolbar/appLauncher/components/componentList.js +17 -3
- package/react/components/toolbar/appLauncher/components/componentList.js.map +1 -1
- package/react/components/toolbar/appLauncher/stores/appLauncherStore.d.ts +6 -0
- package/react/components/toolbar/appLauncher/stores/appLauncherStore.js +26 -0
- package/react/components/toolbar/appLauncher/stores/appLauncherStore.js.map +1 -1
- package/react/components/toolbar/dashbar/Dashbar.js +91 -15
- package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
- package/react/components/toolbar/dashbar/DashbarItem.js +5 -0
- package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.d.ts +8 -1
- package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js +7 -0
- package/react/components/toolbar/workspaceManagementMenu/WorkspaceManagementMenu.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +17 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +21 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +26 -0
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +29 -0
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.d.ts +6 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js +6 -0
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceList.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.d.ts +78 -2
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +191 -40
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/workspaceManagementMenu.css +8 -18
- package/react/components/userPreferences/NotificationsPreferencesContext.d.ts +4 -0
- package/react/components/userPreferences/NotificationsPreferencesContext.js +4 -0
- package/react/components/userPreferences/NotificationsPreferencesContext.js.map +1 -1
- package/react/components/userPreferences/UserPreferenceTypes.d.ts +3 -0
- package/react/components/userPreferences/UserPreferences.d.ts +8 -0
- package/react/components/userPreferences/UserPreferences.js +8 -0
- package/react/components/userPreferences/UserPreferences.js.map +1 -1
- package/react/components/userPreferences/UserPreferencesBase.js +4 -0
- package/react/components/userPreferences/UserPreferencesBase.js.map +1 -1
- package/react/components/userPreferences/components/ContentSection.d.ts +5 -0
- package/react/components/userPreferences/components/ContentSection.js +1 -1
- package/react/components/userPreferences/components/ContentSection.js.map +1 -1
- package/react/components/userPreferences/components/LeftNav.d.ts +4 -0
- package/react/components/userPreferences/components/content/DashbarEditor.js +3 -0
- package/react/components/userPreferences/components/content/DashbarEditor.js.map +1 -1
- package/react/components/userPreferences/components/content/Notifications.js +3 -0
- package/react/components/userPreferences/components/content/Notifications.js.map +1 -1
- package/react/components/userPreferences/components/content/Workspaces.d.ts +14 -2
- package/react/components/userPreferences/components/content/Workspaces.js +78 -38
- package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +7 -3
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js +3 -0
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourceTypes.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js +3 -0
- package/react/components/userPreferences/components/content/notificationViews/NotificationsSourcesPreferences.js.map +1 -1
- package/react/components/userPreferences/components/general/ScheduledClose.js +26 -5
- package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +20 -10
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
- package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +18 -1
- package/react/components/userPreferences/stores/UserPreferencesStore.js +35 -6
- package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
- package/react/components/userPreferences/tests/LeftNav.spec.js +15 -1
- package/react/components/userPreferences/tests/LeftNav.spec.js.map +1 -1
- package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +1 -0
- package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
- package/react/components/userPreferences/tests/UserPreferencesBase.spec.d.ts +1 -0
- package/react/components/userPreferences/tests/UserPreferencesBase.spec.js +42 -0
- package/react/components/userPreferences/tests/UserPreferencesBase.spec.js.map +1 -0
- package/react/components/userPreferences/tests/Workspace.spec.d.ts +1 -0
- package/react/components/userPreferences/tests/Workspace.spec.js +139 -0
- package/react/components/userPreferences/tests/Workspace.spec.js.map +1 -0
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +130 -2
- package/react/components/windowTitleBar/WindowTitleBarShell.js +386 -27
- package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
- package/react/components/windowTitleBar/components/center/Tab.d.ts +3 -0
- package/react/components/windowTitleBar/components/center/Tab.js +3 -0
- package/react/components/windowTitleBar/components/center/Tab.js.map +1 -1
- package/react/components/windowTitleBar/components/center/TabList.d.ts +90 -0
- package/react/components/windowTitleBar/components/center/TabList.js +170 -4
- package/react/components/windowTitleBar/components/center/TabList.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.d.ts +9 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.js +27 -5
- package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +47 -0
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js +76 -1
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerGroups.d.ts +4 -0
- package/react/components/windowTitleBar/components/left/LinkerGroups.js +5 -0
- package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts +18 -0
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +49 -0
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +1 -1
- package/react/components/windowTitleBar/components/left/ShareButton.d.ts +17 -0
- package/react/components/windowTitleBar/components/left/ShareButton.js +39 -0
- package/react/components/windowTitleBar/components/left/ShareButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js +4 -0
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/CloseButton.d.ts +27 -0
- package/react/components/windowTitleBar/components/right/CloseButton.js +27 -0
- package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +37 -0
- package/react/components/windowTitleBar/components/right/GroupingButton.js +40 -0
- package/react/components/windowTitleBar/components/right/GroupingButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +46 -0
- package/react/components/windowTitleBar/components/right/MaximizeButton.js +54 -0
- package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +1 -1
- package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +26 -0
- package/react/components/windowTitleBar/components/right/MinimizeButton.js +26 -0
- package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +1 -1
- package/react/components/windowTitleBar/components/windowTitle.d.ts +40 -0
- package/react/components/windowTitleBar/components/windowTitle.js +245 -48
- package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +5 -0
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js +81 -6
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.css +1 -1
- package/react/components/yesNoDialog/YesNoDialog.d.ts +3 -0
- package/react/components/yesNoDialog/YesNoDialog.js +64 -1
- package/react/components/yesNoDialog/YesNoDialog.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.spec.js +4 -0
- package/react/components/yesNoDialog/YesNoDialog.spec.js.map +1 -1
- package/react/components/yesNoDialog/YesNoDialog.stories.js +2 -2
- package/react/components/yesNoDialog/YesNoDialog.stories.js.map +1 -1
- package/react/components/yesNoDialog/timer.js +2 -0
- package/react/components/yesNoDialog/timer.js.map +1 -1
- package/react/enzymeSetup.js +10 -0
- package/react/enzymeSetup.js.map +1 -1
- package/react/hooks/useDashbar.js +10 -0
- package/react/hooks/useDashbar.js.map +1 -1
- package/react/hooks/useDeepEffect.d.ts +4 -0
- package/react/hooks/useDeepEffect.js +21 -0
- package/react/hooks/useDeepEffect.js.map +1 -1
- package/react/hooks/useFavorites.d.ts +15 -0
- package/react/hooks/useFavorites.js +3 -0
- package/react/hooks/useFavorites.js.map +1 -1
- package/react/hooks/useFavoritesShell.d.ts +4 -0
- package/react/hooks/useFavoritesShell.js +23 -0
- package/react/hooks/useFavoritesShell.js.map +1 -1
- package/react/hooks/useHotkey.d.ts +6 -0
- package/react/hooks/useHotkey.js +9 -0
- package/react/hooks/useHotkey.js.map +1 -1
- package/react/hooks/useLinker.js +14 -0
- package/react/hooks/useLinker.js.map +1 -1
- package/react/hooks/useMenu.d.ts +29 -0
- package/react/hooks/useMenu.js +12 -1
- package/react/hooks/useMenu.js.map +1 -1
- package/react/hooks/useNotifications.d.ts +44 -0
- package/react/hooks/useNotifications.js +104 -12
- package/react/hooks/useNotifications.js.map +1 -1
- package/react/hooks/useOutsideClickDetector.d.ts +3 -0
- package/react/hooks/useOutsideClickDetector.js +3 -0
- package/react/hooks/useOutsideClickDetector.js.map +1 -1
- package/react/hooks/usePubSub.d.ts +17 -0
- package/react/hooks/usePubSub.js +18 -0
- package/react/hooks/usePubSub.js.map +1 -1
- package/react/hooks/useSearch.d.ts +5 -0
- package/react/hooks/useSearch.js +30 -0
- package/react/hooks/useSearch.js.map +1 -1
- package/react/hooks/useToolbar.d.ts +1 -1
- package/react/hooks/useToolbar.js +54 -2
- package/react/hooks/useToolbar.js.map +1 -1
- package/react/reducers/favoriteReducer.d.ts +3 -0
- package/react/reducers/linkerReducer.d.ts +3 -0
- package/react/reducers/linkerReducer.js +4 -0
- package/react/reducers/linkerReducer.js.map +1 -1
- package/react/reducers/menuReducer.d.ts +28 -0
- package/react/reducers/menuReducer.js +34 -0
- package/react/reducers/menuReducer.js.map +1 -1
- package/react/reducers/rootReducer.d.ts +2 -2
- package/react/reducers/rootReducer.js +3 -0
- package/react/reducers/rootReducer.js.map +1 -1
- package/react/reducers/searchReducer.d.ts +7 -0
- package/react/reducers/searchReducer.js +6 -0
- package/react/reducers/searchReducer.js.map +1 -1
- package/react/reducers/workspaceReducer.js +1 -0
- package/react/reducers/workspaceReducer.js.map +1 -1
- package/react/store.d.ts +8 -4
- package/react/store.js +11 -0
- package/react/store.js.map +1 -1
- package/react/tsconfig.tsbuildinfo +1 -0
- package/react/types/fdc3.d.ts +2 -0
- package/react/types/linkerTypes.d.ts +13 -0
- package/react/types/linkerTypes.js +1 -0
- package/react/types/linkerTypes.js.map +1 -1
- package/react/types/smartDesktopDesignerTypes.d.ts +8 -0
- package/react/types/smartDesktopDesignerTypes.js.map +1 -1
- package/react/types/workspaceTypes.d.ts +8 -0
package/react/hooks/usePubSub.js
CHANGED
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
const { useState, useEffect } = React;
|
|
3
|
+
/**
|
|
4
|
+
* A generic effect for getting and setting state dynamically from a Router pubsub channel.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} topic The pubsub topic (i.e. channel) to subscribe
|
|
7
|
+
* @param {object} initialMessage The initial state (defaults to empty object)
|
|
8
|
+
* @returns [object, function] The current state of the pubsub channel (or initialMessage if no state exists).
|
|
9
|
+
* The second returned array parameter is a publish function which can be used to update state.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* // Inside a React functional component
|
|
13
|
+
* const [currentState, publish] = usePubSub("topic", {});
|
|
14
|
+
* console.log(currentState);
|
|
15
|
+
*
|
|
16
|
+
* onClick = () => {
|
|
17
|
+
* publish(someNewState);
|
|
18
|
+
* }
|
|
19
|
+
*/
|
|
3
20
|
function usePubSub(topic, initialMessage = {}) {
|
|
4
21
|
const [message, setMessage] = useState(initialMessage);
|
|
5
22
|
const pub = (value) => FSBL.Clients.RouterClient.publish(topic, value);
|
|
6
23
|
useEffect(() => {
|
|
7
24
|
const subscribeId = FSBL.Clients.RouterClient.subscribe(topic, (err, res) => {
|
|
8
25
|
if (err) {
|
|
26
|
+
// Use Finsemble Logger?
|
|
9
27
|
console.error(err);
|
|
10
28
|
}
|
|
11
29
|
setMessage(res.data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePubSub.js","sourceRoot":"","sources":["../../src/hooks/usePubSub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"usePubSub.js","sourceRoot":"","sources":["../../src/hooks/usePubSub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AAEtC;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,SAAS,CAAC,KAAa,EAAE,iBAAyB,EAAE;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE5E,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3E,IAAI,GAAG,EAAE;gBACR,wBAAwB;gBACxB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACnB;YACD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC","sourcesContent":["import * as React from \"react\";\n\nconst { useState, useEffect } = React;\n\n/**\n * A generic effect for getting and setting state dynamically from a Router pubsub channel.\n *\n * @param {string} topic The pubsub topic (i.e. channel) to subscribe\n * @param {object} initialMessage The initial state (defaults to empty object)\n * @returns [object, function] The current state of the pubsub channel (or initialMessage if no state exists).\n * The second returned array parameter is a publish function which can be used to update state.\n *\n * @example\n * // Inside a React functional component\n * const [currentState, publish] = usePubSub(\"topic\", {});\n * console.log(currentState);\n *\n * onClick = () => {\n * publish(someNewState);\n * }\n */\nfunction usePubSub(topic: string, initialMessage: object = {}): [{ [key: string]: any }, Function] {\n\tconst [message, setMessage] = useState(initialMessage);\n\n\tconst pub = (value: any) => FSBL.Clients.RouterClient.publish(topic, value);\n\n\tuseEffect(() => {\n\t\tconst subscribeId = FSBL.Clients.RouterClient.subscribe(topic, (err, res) => {\n\t\t\tif (err) {\n\t\t\t\t// Use Finsemble Logger?\n\t\t\t\tconsole.error(err);\n\t\t\t}\n\t\t\tsetMessage(res.data);\n\t\t});\n\t\treturn () => {\n\t\t\tFSBL.Clients.RouterClient.unsubscribe(subscribeId);\n\t\t};\n\t}, []);\n\n\treturn [message, pub];\n}\n\nexport { usePubSub };\n"]}
|
|
@@ -6,5 +6,10 @@ declare type SearchHook = {
|
|
|
6
6
|
updateQuery: (query: string) => void;
|
|
7
7
|
resetSearch: () => void;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* A hook for working with search. Search results stream back, and this hook will relay those through
|
|
11
|
+
* a reducer. Note that the reducer implementation is a singleton (if you have multiple search) inputs
|
|
12
|
+
* across a component then they will all be synchronized to query and results.
|
|
13
|
+
*/
|
|
9
14
|
declare const useSearch: () => SearchHook;
|
|
10
15
|
export { useSearch };
|
package/react/hooks/useSearch.js
CHANGED
|
@@ -3,6 +3,11 @@ import { useDispatch, useSelector } from "../store";
|
|
|
3
3
|
import { SearchActions } from "../actions/searchActions";
|
|
4
4
|
import { debounce } from "lodash";
|
|
5
5
|
const { SearchClient } = FSBL.Clients;
|
|
6
|
+
/**
|
|
7
|
+
* A hook for working with search. Search results stream back, and this hook will relay those through
|
|
8
|
+
* a reducer. Note that the reducer implementation is a singleton (if you have multiple search) inputs
|
|
9
|
+
* across a component then they will all be synchronized to query and results.
|
|
10
|
+
*/
|
|
6
11
|
const useSearch = () => {
|
|
7
12
|
const dispatch = useDispatch();
|
|
8
13
|
const { searchQuery, searchResults } = useSelector((state) => state.search);
|
|
@@ -11,8 +16,14 @@ const useSearch = () => {
|
|
|
11
16
|
dispatch(SearchActions.UPDATE_RESULTS(results));
|
|
12
17
|
}, [dispatch]);
|
|
13
18
|
const onSearchClientResponse = (searchError, responses, query) => {
|
|
19
|
+
// If we get a response back from an older query then drop the results
|
|
14
20
|
if (query !== currentQuery.current)
|
|
15
21
|
return;
|
|
22
|
+
/**
|
|
23
|
+
* The callback from `SearchClient.search` can return *multiple times*, and it uses a single global array
|
|
24
|
+
* that it is constantly mutating. React isn't doing a deep comparison, so it never updates the results, we
|
|
25
|
+
* therefore force an update by cloning the array into a new reference.
|
|
26
|
+
*/
|
|
16
27
|
const clonedProviderResponses = JSON.parse(JSON.stringify(responses));
|
|
17
28
|
if (!clonedProviderResponses)
|
|
18
29
|
return updateResults([]);
|
|
@@ -21,10 +32,29 @@ const useSearch = () => {
|
|
|
21
32
|
providersWithData = [];
|
|
22
33
|
updateResults(providersWithData);
|
|
23
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* The seach client callback procedure is a little strange. In order to prevent a hangup for slow search
|
|
37
|
+
* providers, your callback to searchClient.search is invoked multiple times -- one time per search provider.
|
|
38
|
+
*
|
|
39
|
+
* Your search goes out for "De", you get a response from the WindowService saying "No components match".
|
|
40
|
+
* Then you get a response from the WorkspaceService saying "Hey DefaultWorkspace matches!". Your callback
|
|
41
|
+
* has been hit twice. On the 2nd time, you get all of the data you would've gotten the first time.
|
|
42
|
+
*
|
|
43
|
+
* Without debouncing the search client response, we end up setting intermediary state, which forces the DOM to
|
|
44
|
+
* render, which forces the window size to change to fit the DOM. Imagine the situation above.
|
|
45
|
+
*
|
|
46
|
+
* We send out a search for "DE", and the WindowService comes back at us first saying 'no components'. There's no data,
|
|
47
|
+
* so there's no results. So there's no DOM spit out for the search results. This causes the window to size down
|
|
48
|
+
* to its minimum. Miliseconds later, the workspace service comes at us saying "Hey I have workspaces!", which
|
|
49
|
+
* causes the search menu to expand to fit the results in the DOM. By setting the intermediary
|
|
50
|
+
* state, we cause unnecessary renders and we end up resizing resizing the window in a very jarring manner.
|
|
51
|
+
* By waiting until they've had a chance to come at us in a burst, we make the menu resizing smoother and less prone to jitter.
|
|
52
|
+
*/
|
|
24
53
|
const debouncedSearchResponse = debounce(onSearchClientResponse, 100);
|
|
25
54
|
const updateQuery = useCallback((query) => {
|
|
26
55
|
dispatch(SearchActions.UPDATE_QUERY(query));
|
|
27
56
|
currentQuery.current = query;
|
|
57
|
+
// Run the search() effect. One day, move this to effects middleware.
|
|
28
58
|
SearchClient.search({ text: query }, (e, responses) => {
|
|
29
59
|
debouncedSearchResponse(e, responses, query);
|
|
30
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearch.js","sourceRoot":"","sources":["../../src/hooks/useSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKlC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useSearch.js","sourceRoot":"","sources":["../../src/hooks/useSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKlC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;AAStC;;;;GAIG;AACH,MAAM,SAAS,GAAG,GAAe,EAAE;IAClC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAEhC,MAAM,aAAa,GAAG,WAAW,CAChC,CAAC,OAAmB,EAAE,EAAE;QACvB,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC,EACD,CAAC,QAAQ,CAAC,CACV,CAAC;IACF,MAAM,sBAAsB,GAAG,CAAC,WAAgB,EAAE,SAAmC,EAAE,KAAa,EAAE,EAAE;QACvG,sEAAsE;QACtE,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO;YAAE,OAAO;QAC3C;;;;WAIG;QACH,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,uBAAuB;YAAE,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;QAEvD,IAAI,iBAAiB,GAAG,uBAAuB,CAAC,MAAM,CACrD,CAAC,QAAgC,EAAE,EAAE,WAAC,OAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,CAAA,EAAA,CAC5D,CAAC;QACF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;YAAE,iBAAiB,GAAG,EAAE,CAAC;QAE3D,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,uBAAuB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,WAAW,CAC9B,CAAC,KAAa,EAAE,EAAE;QACjB,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,qEAAqE;QACrE,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAM,EAAE,SAAmC,EAAE,EAAE;YACpF,uBAAuB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,QAAQ,EAAE,aAAa,CAAC,CACzB,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO;QACN,aAAa;QACb,WAAW;QACX,WAAW;QACX,WAAW;KACX,CAAC;AACH,CAAC,CAAC;AACF,OAAO,EAAE,SAAS,EAAE,CAAC","sourcesContent":["import { useRef, useCallback } from \"react\";\nimport { useDispatch, useSelector } from \"../store\";\nimport { SearchActions } from \"../actions/searchActions\";\nimport { debounce } from \"lodash\";\nimport { services } from \"@finsemble/finsemble-api\";\n\ntype SearchProviderResponse = services.search.types.SearchProviderResponse;\n\nconst { SearchClient } = FSBL.Clients;\n\ntype SearchHook = {\n\tsearchResults: Array<SearchProviderResponse>;\n\tsearchQuery: string;\n\tupdateQuery: (query: string) => void;\n\tresetSearch: () => void;\n};\n\n/**\n * A hook for working with search. Search results stream back, and this hook will relay those through\n * a reducer. Note that the reducer implementation is a singleton (if you have multiple search) inputs\n * across a component then they will all be synchronized to query and results.\n */\nconst useSearch = (): SearchHook => {\n\tconst dispatch = useDispatch();\n\tconst { searchQuery, searchResults } = useSelector((state) => state.search);\n\tconst currentQuery = useRef({});\n\n\tconst updateResults = useCallback(\n\t\t(results: Array<any>) => {\n\t\t\tdispatch(SearchActions.UPDATE_RESULTS(results));\n\t\t},\n\t\t[dispatch]\n\t);\n\tconst onSearchClientResponse = (searchError: any, responses: SearchProviderResponse[], query: string) => {\n\t\t// If we get a response back from an older query then drop the results\n\t\tif (query !== currentQuery.current) return;\n\t\t/**\n\t\t * The callback from `SearchClient.search` can return *multiple times*, and it uses a single global array\n\t\t * that it is constantly mutating. React isn't doing a deep comparison, so it never updates the results, we\n\t\t * therefore force an update by cloning the array into a new reference.\n\t\t */\n\t\tconst clonedProviderResponses = JSON.parse(JSON.stringify(responses));\n\n\t\tif (!clonedProviderResponses) return updateResults([]);\n\n\t\tlet providersWithData = clonedProviderResponses.filter(\n\t\t\t(provider: SearchProviderResponse) => provider?.data?.length\n\t\t);\n\t\tif (providersWithData.length === 0) providersWithData = [];\n\n\t\tupdateResults(providersWithData);\n\t};\n\n\t/**\n\t * The seach client callback procedure is a little strange. In order to prevent a hangup for slow search\n\t * providers, your callback to searchClient.search is invoked multiple times -- one time per search provider.\n\t *\n\t * Your search goes out for \"De\", you get a response from the WindowService saying \"No components match\".\n\t * Then you get a response from the WorkspaceService saying \"Hey DefaultWorkspace matches!\". Your callback\n\t * has been hit twice. On the 2nd time, you get all of the data you would've gotten the first time.\n\t *\n\t * Without debouncing the search client response, we end up setting intermediary state, which forces the DOM to\n\t * render, which forces the window size to change to fit the DOM. Imagine the situation above.\n\t *\n\t * We send out a search for \"DE\", and the WindowService comes back at us first saying 'no components'. There's no data,\n\t * so there's no results. So there's no DOM spit out for the search results. This causes the window to size down\n\t * to its minimum. Miliseconds later, the workspace service comes at us saying \"Hey I have workspaces!\", which\n\t * causes the search menu to expand to fit the results in the DOM. By setting the intermediary\n\t * state, we cause unnecessary renders and we end up resizing resizing the window in a very jarring manner.\n\t * By waiting until they've had a chance to come at us in a burst, we make the menu resizing smoother and less prone to jitter.\n\t */\n\tconst debouncedSearchResponse = debounce(onSearchClientResponse, 100);\n\n\tconst updateQuery = useCallback(\n\t\t(query: string) => {\n\t\t\tdispatch(SearchActions.UPDATE_QUERY(query));\n\t\t\tcurrentQuery.current = query;\n\t\t\t// Run the search() effect. One day, move this to effects middleware.\n\t\t\tSearchClient.search({ text: query }, (e: any, responses: SearchProviderResponse[]) => {\n\t\t\t\tdebouncedSearchResponse(e, responses, query);\n\t\t\t});\n\t\t},\n\t\t[dispatch, updateResults]\n\t);\n\n\tconst resetSearch = useCallback(() => {\n\t\tdispatch(SearchActions.RESET_SEARCH());\n\t}, [dispatch]);\n\n\treturn {\n\t\tsearchResults,\n\t\tupdateQuery,\n\t\tsearchQuery,\n\t\tresetSearch,\n\t};\n};\nexport { useSearch };\n"]}
|
|
@@ -3,7 +3,7 @@ export declare const useToolbar: () => {
|
|
|
3
3
|
preventSystemClose: () => void;
|
|
4
4
|
minimizeAllWindows: () => void;
|
|
5
5
|
revealAllWindows: () => void;
|
|
6
|
-
toggleAutoArrange: () => void
|
|
6
|
+
toggleAutoArrange: () => Promise<void>;
|
|
7
7
|
showToolbar: () => void;
|
|
8
8
|
hideToolbar: () => void;
|
|
9
9
|
launchPreferences: (tabName: string) => void;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { openQuitConfirmationDialog } from "../components/shared/openQuitConfirmationDialog";
|
|
3
|
+
/**
|
|
4
|
+
* Function to bring toolbar to front (since dockable toolbar can be hidden)
|
|
5
|
+
* @param {boolean} focus If true, will also focus the toolbar
|
|
6
|
+
*/
|
|
3
7
|
const bringToolbarToFront = ({ focus }) => {
|
|
4
8
|
finsembleWindow.bringToFront(null, (err) => {
|
|
5
9
|
if (err) {
|
|
@@ -10,10 +14,16 @@ const bringToolbarToFront = ({ focus }) => {
|
|
|
10
14
|
}
|
|
11
15
|
});
|
|
12
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Hides the toolbar
|
|
19
|
+
*/
|
|
13
20
|
const hideToolbar = () => {
|
|
14
21
|
finsembleWindow.blur();
|
|
15
22
|
finsembleWindow.hide();
|
|
16
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Shows the toolbar left-aligned to the user's mouse.
|
|
26
|
+
*/
|
|
17
27
|
const showToolbar = () => {
|
|
18
28
|
FSBL.Clients.RouterClient.transmit("DockingService.showAtMousePosition", {
|
|
19
29
|
windowName: finsembleWindow.name,
|
|
@@ -21,28 +31,57 @@ const showToolbar = () => {
|
|
|
21
31
|
});
|
|
22
32
|
bringToolbarToFront({ focus: true });
|
|
23
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Mimimizes all windows.
|
|
36
|
+
*/
|
|
24
37
|
const minimizeAllWindows = () => {
|
|
25
38
|
FSBL.Clients.WorkspaceClient.minimizeAll();
|
|
26
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Brings all windows to front.
|
|
42
|
+
*/
|
|
27
43
|
const revealAllWindows = () => {
|
|
28
44
|
FSBL.Clients.WorkspaceClient.bringWindowsToFront();
|
|
29
45
|
};
|
|
30
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Toggles Auto Arrange for all windows on the same monitor as the toolbar
|
|
48
|
+
*/
|
|
49
|
+
const toggleAutoArrange = async () => {
|
|
50
|
+
/**
|
|
51
|
+
* Bring windows to front before auto arranging them to ensure maximised windows are included in the action
|
|
52
|
+
* This is relies on bringWindowsToFront() restoring maximised and minimised windows
|
|
53
|
+
*/
|
|
54
|
+
await FSBL.Clients.WorkspaceClient.bringWindowsToFront();
|
|
31
55
|
FSBL.Clients.WorkspaceClient.autoArrange({}, () => {
|
|
56
|
+
// This is legacy and we're not sure if it's still required or not.
|
|
57
|
+
// We can try eliminating this once core auto arrange is refactored.
|
|
32
58
|
bringToolbarToFront({ focus: false });
|
|
33
|
-
revealAllWindows();
|
|
34
59
|
});
|
|
35
60
|
};
|
|
61
|
+
/**
|
|
62
|
+
* It's a requirement that the toolbar not be minimized.
|
|
63
|
+
* the minimizable option does not work.
|
|
64
|
+
* Instead, we just listen for this event and restore the window.
|
|
65
|
+
*/
|
|
36
66
|
const preventMinimize = () => {
|
|
37
67
|
finsembleWindow.addEventListener("minimized", () => {
|
|
38
68
|
finsembleWindow.restore();
|
|
39
69
|
});
|
|
40
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Required to let the system know that the toolbar is up and ready.
|
|
73
|
+
* Other pieces of the UI key off of this.
|
|
74
|
+
*/
|
|
41
75
|
const publishSystemCheckpoint = () => {
|
|
42
76
|
FSBL.SystemManagerClient.publishCheckpointState("Toolbar", "initialize", "completed");
|
|
43
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* Prevents closing of the window.
|
|
80
|
+
*/
|
|
44
81
|
const onBeforeToolbarUnload = () => {
|
|
45
82
|
openQuitConfirmationDialog();
|
|
83
|
+
// Return of a non-void value (in this `onbeforeunload` handler) is what tells Electron not to close the window.
|
|
84
|
+
// Don't delete this!
|
|
46
85
|
return false;
|
|
47
86
|
};
|
|
48
87
|
const removeSystemClosePrevention = () => {
|
|
@@ -62,14 +101,27 @@ const launchPreferences = (tabName) => {
|
|
|
62
101
|
top: "center",
|
|
63
102
|
});
|
|
64
103
|
};
|
|
104
|
+
/**
|
|
105
|
+
* Prevents the window from going down on alt+f4 or closing from taskbar.
|
|
106
|
+
* Pops up a dialog asking if the user meant to shut down the system.
|
|
107
|
+
*/
|
|
65
108
|
const preventSystemClose = () => {
|
|
109
|
+
// This function was already called, so no need to run it again.
|
|
66
110
|
if (window.onbeforeunload === onBeforeToolbarUnload)
|
|
67
111
|
return;
|
|
112
|
+
// Bypass system close prevention if for some reason the toolbar has been customized with an alternative onbeforeunload handler
|
|
68
113
|
if (window.onbeforeunload) {
|
|
69
114
|
console.error(`Finsemble toolbar was configured to prevent system closes, however, there is already a function assigned to window.onbeforeunload. In order to prevent the OS from closing your window, we need to overwrite this handler. Users will be able to close your toolbar from the windows taskbar. Please remove your onbeforeunload handler or set the toolbar property 'allowSystemToCloseWindow' to true to get rid of this error message.`);
|
|
70
115
|
return;
|
|
71
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* From the electron docs:
|
|
119
|
+
* Note: There is a subtle difference between the behaviors of window.onbeforeunload = handler and window.addEventListener('beforeunload', handler). It is recommended to always set the event.returnValue explicitly, instead of only returning a value, as the former works more consistently within Electron.
|
|
120
|
+
*
|
|
121
|
+
* Tried addEventListener, and it wouldn't work.
|
|
122
|
+
*/
|
|
72
123
|
window.onbeforeunload = onBeforeToolbarUnload;
|
|
124
|
+
// Detect when the system is being shutdown or restarted to remove the close prevention.
|
|
73
125
|
FSBL.Clients.RouterClient.addListener("Application.shutdown", () => {
|
|
74
126
|
removeSystemClosePrevention();
|
|
75
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolbar.js","sourceRoot":"","sources":["../../src/hooks/useToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"useToolbar.js","sourceRoot":"","sources":["../../src/hooks/useToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAE7F;;;GAGG;AACH,MAAM,mBAAmB,GAAG,CAAC,EAAE,KAAK,EAAsB,EAAE,EAAE;IAC7D,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;QAC/C,IAAI,GAAG,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;SAC5E;QAED,IAAI,KAAK,EAAE;YACV,eAAe,CAAC,KAAK,EAAE,CAAC;SACxB;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,GAAG,GAAG,EAAE;IACxB,eAAe,CAAC,IAAI,EAAE,CAAC;IACvB,eAAe,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,GAAG,GAAG,EAAE;IACxB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,oCAAoC,EAAE;QACxE,UAAU,EAAE,eAAe,CAAC,IAAI;QAChC,IAAI,EAAE,eAAe,CAAC,IAAI;KAC1B,CAAC,CAAC;IACH,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC/B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;AAC5C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC7B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IACpC;;;OAGG;IACH,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;IACzD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE;QACjD,mEAAmE;QACnE,oEAAoE;QACpE,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,eAAe,GAAG,GAAG,EAAE;IAC5B,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;QAClD,eAAe,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACpC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG,GAAG,EAAE;IAClC,0BAA0B,EAAE,CAAC;IAC7B,gHAAgH;IAChH,qBAAqB;IACrB,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,GAAG,EAAE;IACxC,IAAI,MAAM,CAAC,cAAc,KAAK,qBAAqB,EAAE;QACpD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;KAC7B;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE;IAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,iCAAiC,EAAE;QACrE,cAAc,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CACrC;QACC,aAAa,EAAE,iBAAiB;KAChC,EACD;QACC,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,QAAQ;KACb,CACD,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC/B,gEAAgE;IAChE,IAAI,MAAM,CAAC,cAAc,KAAK,qBAAqB;QAAE,OAAO;IAE5D,+HAA+H;IAC/H,IAAI,MAAM,CAAC,cAAc,EAAE;QAC1B,OAAO,CAAC,KAAK,CACZ,0aAA0a,CAC1a,CAAC;QACF,OAAO;KACP;IAED;;;;;OAKG;IACH,MAAM,CAAC,cAAc,GAAG,qBAAqB,CAAC;IAE9C,wFAAwF;IACxF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAClE,2BAA2B,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjE,2BAA2B,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC9B,SAAS,CAAC,GAAG,EAAE;QACd,eAAe,EAAE,CAAC;QAClB,uBAAuB,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACxB,kBAAkB,EAAE,CAAC;SACrB;IACF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACN,2BAA2B;QAC3B,kBAAkB;QAClB,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,WAAW;QACX,WAAW;QACX,iBAAiB;KACjB,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { useEffect } from \"react\";\nimport { openQuitConfirmationDialog } from \"../components/shared/openQuitConfirmationDialog\";\n\n/**\n * Function to bring toolbar to front (since dockable toolbar can be hidden)\n * @param {boolean} focus If true, will also focus the toolbar\n */\nconst bringToolbarToFront = ({ focus }: { focus: boolean }) => {\n\tfinsembleWindow.bringToFront(null, (err: any) => {\n\t\tif (err) {\n\t\t\tFSBL.Clients.Logger.system.error(\"bringToolbarToFront failed, error:\", err);\n\t\t}\n\n\t\tif (focus) {\n\t\t\tfinsembleWindow.focus();\n\t\t}\n\t});\n};\n\n/**\n * Hides the toolbar\n */\nconst hideToolbar = () => {\n\tfinsembleWindow.blur();\n\tfinsembleWindow.hide();\n};\n\n/**\n * Shows the toolbar left-aligned to the user's mouse.\n */\nconst showToolbar = () => {\n\tFSBL.Clients.RouterClient.transmit(\"DockingService.showAtMousePosition\", {\n\t\twindowName: finsembleWindow.name,\n\t\tuuid: finsembleWindow.uuid,\n\t});\n\tbringToolbarToFront({ focus: true });\n};\n\n/**\n * Mimimizes all windows.\n */\nconst minimizeAllWindows = () => {\n\tFSBL.Clients.WorkspaceClient.minimizeAll();\n};\n\n/**\n * Brings all windows to front.\n */\nconst revealAllWindows = () => {\n\tFSBL.Clients.WorkspaceClient.bringWindowsToFront();\n};\n\n/**\n * Toggles Auto Arrange for all windows on the same monitor as the toolbar\n */\nconst toggleAutoArrange = async () => {\n\t/**\n\t * Bring windows to front before auto arranging them to ensure maximised windows are included in the action\n\t * This is relies on bringWindowsToFront() restoring maximised and minimised windows\n\t */\n\tawait FSBL.Clients.WorkspaceClient.bringWindowsToFront();\n\tFSBL.Clients.WorkspaceClient.autoArrange({}, () => {\n\t\t// This is legacy and we're not sure if it's still required or not.\n\t\t// We can try eliminating this once core auto arrange is refactored.\n\t\tbringToolbarToFront({ focus: false });\n\t});\n};\n\n/**\n * It's a requirement that the toolbar not be minimized.\n * the minimizable option does not work.\n * Instead, we just listen for this event and restore the window.\n */\nconst preventMinimize = () => {\n\tfinsembleWindow.addEventListener(\"minimized\", () => {\n\t\tfinsembleWindow.restore();\n\t});\n};\n\n/**\n * Required to let the system know that the toolbar is up and ready.\n * Other pieces of the UI key off of this.\n */\nconst publishSystemCheckpoint = () => {\n\tFSBL.SystemManagerClient.publishCheckpointState(\"Toolbar\", \"initialize\", \"completed\");\n};\n\n/**\n * Prevents closing of the window.\n */\nconst onBeforeToolbarUnload = () => {\n\topenQuitConfirmationDialog();\n\t// Return of a non-void value (in this `onbeforeunload` handler) is what tells Electron not to close the window.\n\t// Don't delete this!\n\treturn false;\n};\n\nconst removeSystemClosePrevention = () => {\n\tif (window.onbeforeunload === onBeforeToolbarUnload) {\n\t\twindow.onbeforeunload = null;\n\t}\n};\n\nconst launchPreferences = (tabName: string) => {\n\tFSBL.Clients.RouterClient.transmit(\"FinsembleUserPreferencesChannel\", {\n\t\tpreferencesTab: tabName,\n\t});\n\tFSBL.Clients.LauncherClient.showWindow(\n\t\t{\n\t\t\tcomponentType: \"UserPreferences\",\n\t\t},\n\t\t{\n\t\t\tmonitor: \"mine\",\n\t\t\tleft: \"center\",\n\t\t\ttop: \"center\",\n\t\t}\n\t);\n};\n\n/**\n * Prevents the window from going down on alt+f4 or closing from taskbar.\n * Pops up a dialog asking if the user meant to shut down the system.\n */\nconst preventSystemClose = () => {\n\t// This function was already called, so no need to run it again.\n\tif (window.onbeforeunload === onBeforeToolbarUnload) return;\n\n\t// Bypass system close prevention if for some reason the toolbar has been customized with an alternative onbeforeunload handler\n\tif (window.onbeforeunload) {\n\t\tconsole.error(\n\t\t\t`Finsemble toolbar was configured to prevent system closes, however, there is already a function assigned to window.onbeforeunload. In order to prevent the OS from closing your window, we need to overwrite this handler. Users will be able to close your toolbar from the windows taskbar. Please remove your onbeforeunload handler or set the toolbar property 'allowSystemToCloseWindow' to true to get rid of this error message.`\n\t\t);\n\t\treturn;\n\t}\n\n\t/**\n\t * From the electron docs:\n\t * Note: There is a subtle difference between the behaviors of window.onbeforeunload = handler and window.addEventListener('beforeunload', handler). It is recommended to always set the event.returnValue explicitly, instead of only returning a value, as the former works more consistently within Electron.\n\t *\n\t * Tried addEventListener, and it wouldn't work.\n\t */\n\twindow.onbeforeunload = onBeforeToolbarUnload;\n\n\t// Detect when the system is being shutdown or restarted to remove the close prevention.\n\tFSBL.Clients.RouterClient.addListener(\"Application.shutdown\", () => {\n\t\tremoveSystemClosePrevention();\n\t});\n\n\tFSBL.Clients.RouterClient.addListener(\"Application.restart\", () => {\n\t\tremoveSystemClosePrevention();\n\t});\n};\n\nexport const useToolbar = () => {\n\tuseEffect(() => {\n\t\tpreventMinimize();\n\t\tpublishSystemCheckpoint();\n\n\t\tif (FSBL.debug !== true) {\n\t\t\tpreventSystemClose();\n\t\t}\n\t}, []);\n\n\treturn {\n\t\tremoveSystemClosePrevention,\n\t\tpreventSystemClose,\n\t\tminimizeAllWindows,\n\t\trevealAllWindows,\n\t\ttoggleAutoArrange,\n\t\tshowToolbar,\n\t\thideToolbar,\n\t\tlaunchPreferences,\n\t};\n};\n"]}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { FavoriteActionTypes } from "../actions/favoriteActions";
|
|
2
2
|
import { Favorite } from "../types/favoriteTypes";
|
|
3
3
|
import { Reducer } from "react";
|
|
4
|
+
/**
|
|
5
|
+
* Favorite state definition.
|
|
6
|
+
*/
|
|
4
7
|
export declare type FavoriteState = {
|
|
5
8
|
favorites: Favorite[];
|
|
6
9
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Channel, WindowIdentifier } from "../types/linkerTypes";
|
|
2
2
|
import { LinkerActionTypes } from "../actions/linkerActions";
|
|
3
3
|
import { Reducer } from "react";
|
|
4
|
+
/**
|
|
5
|
+
* Linker component type definition
|
|
6
|
+
*/
|
|
4
7
|
export declare type LinkerState = {
|
|
5
8
|
channels: Record<number, Channel | undefined>;
|
|
6
9
|
isAccessibleLinker: boolean;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import produce from "immer";
|
|
2
2
|
import { LinkerActions } from "../actions/linkerActions";
|
|
3
|
+
// The linker state before we initialize the linker. The initialize linker function will
|
|
4
|
+
// make calls to the LinkerClient and
|
|
5
|
+
// fill in the state with the relevant linker information.
|
|
3
6
|
export const initialState = {
|
|
4
7
|
channels: {},
|
|
5
8
|
isAccessibleLinker: true,
|
|
6
9
|
};
|
|
10
|
+
// The linker's reducer
|
|
7
11
|
export const linkerReducer = produce((state, action) => {
|
|
8
12
|
LinkerActions.match(action, {
|
|
9
13
|
UPDATE_CHANNEL_STATUS: ({ channelId, active }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkerReducer.js","sourceRoot":"","sources":["../../src/reducers/linkerReducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAqB,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"linkerReducer.js","sourceRoot":"","sources":["../../src/reducers/linkerReducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAqB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAe5E,wFAAwF;AACxF,qCAAqC;AACrC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAgB;IACxC,QAAQ,EAAE,EAAE;IACZ,kBAAkB,EAAE,IAAI;CACxB,CAAC;AACF,uBAAuB;AACvB,MAAM,CAAC,MAAM,aAAa,GAA4C,OAAO,CAC5E,CAAC,KAAkB,EAAE,MAAyB,EAAE,EAAE;IACjD,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;QAC3B,qBAAqB,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;YAChD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,aAAa;gBAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;QAClD,CAAC;QACD,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC9B,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;gBACjE,OAAO;oBACN,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,MAAM,EAAE,KAAK;iBACb,CAAC;YACH,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,sBAAsB,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,EAAE;YAC9D,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5E,KAAK,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;YAC1C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACpD,IAAI,OAAO,EAAE;oBACZ,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACzD;aACD;QACF,CAAC;QACD,iBAAiB,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE;YAC7C,KAAK,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK;KACpB,CAAC,CAAC;AACJ,CAAC,EACD,YAAY,CACZ,CAAC","sourcesContent":["import produce from \"immer\";\nimport { Channel, WindowIdentifier } from \"../types/linkerTypes\";\nimport { LinkerActionTypes, LinkerActions } from \"../actions/linkerActions\";\nimport { Reducer } from \"react\";\n\n/**\n * Linker component type definition\n */\nexport type LinkerState = {\n\t/* The linker channels */\n\tchannels: Record<number, Channel | undefined>;\n\t/* Default to true. If the linker is an accessible linker, its channel labels will be shown along with the color indicators */\n\tisAccessibleLinker: boolean;\n\t/* The window identifier for the window that the linker component is on. They have one to one matching relationship */\n\twindowIdentifier?: WindowIdentifier;\n};\n\n// The linker state before we initialize the linker. The initialize linker function will\n// make calls to the LinkerClient and\n// fill in the state with the relevant linker information.\nexport const initialState: LinkerState = {\n\tchannels: {},\n\tisAccessibleLinker: true,\n};\n// The linker's reducer\nexport const linkerReducer: Reducer<LinkerState, LinkerActionTypes> = produce(\n\t(state: LinkerState, action: LinkerActionTypes) => {\n\t\tLinkerActions.match(action, {\n\t\t\tUPDATE_CHANNEL_STATUS: ({ channelId, active }) => {\n\t\t\t\tconst targetChannel = state.channels[channelId];\n\t\t\t\tif (targetChannel) targetChannel.active = active;\n\t\t\t},\n\t\t\tSET_CHANNELS: ({ channels }) => {\n\t\t\t\tstate.channels = channels.map((channel: Channel, index: number) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: index,\n\t\t\t\t\t\tname: channel.name,\n\t\t\t\t\t\tcolor: channel.color,\n\t\t\t\t\t\tborder: channel.border,\n\t\t\t\t\t\tactive: false,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tUPDATE_ACTIVE_CHANNELS: ({ channelNames, windowIdentifier }) => {\n\t\t\t\tconst channelNameArray = Object.values(channelNames).map((obj) => obj.name);\n\t\t\t\tstate.windowIdentifier = windowIdentifier;\n\t\t\t\tfor (const channel of Object.values(state.channels)) {\n\t\t\t\t\tif (channel) {\n\t\t\t\t\t\tchannel.active = channelNameArray.includes(channel.name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tSET_ACCESSIBILITY: ({ isAccessibleLinker }) => {\n\t\t\t\tstate.isAccessibleLinker = isAccessibleLinker;\n\t\t\t},\n\t\t\tdefault: () => state,\n\t\t});\n\t},\n\tinitialState\n);\n"]}
|
|
@@ -1,8 +1,36 @@
|
|
|
1
1
|
import { MenuActionTypes } from "../actions/menuActions";
|
|
2
2
|
import { Reducer } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Menu state definition.
|
|
5
|
+
*/
|
|
3
6
|
export declare type MenuState = {
|
|
7
|
+
/**
|
|
8
|
+
* Contains the id of the currently open menu
|
|
9
|
+
*/
|
|
4
10
|
openMenuId: string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Contains the id of a menu that has been blurred but not yet closed. See menuReducer for algorithm.
|
|
13
|
+
*/
|
|
5
14
|
pendingBlurId: string | null;
|
|
6
15
|
};
|
|
7
16
|
export declare const initialState: MenuState;
|
|
17
|
+
/**
|
|
18
|
+
* Algorithm for managing "toggle/blur" race condition
|
|
19
|
+
*
|
|
20
|
+
* When a user clicks the for an open window it triggers two events which end up in a race.
|
|
21
|
+
* A blur event will close the menu. A toggle event will also close the menu.
|
|
22
|
+
* However, if the blur event arrives *before* the toggle event then the menu would (1) close, (2) toggle back open
|
|
23
|
+
*
|
|
24
|
+
* The algorithm to address this race condition is to instead use three events. These are the two races
|
|
25
|
+
* (1) BLUR_MENU - sets pendingBlurId to the id of the menu
|
|
26
|
+
* (2) TOGGLE_MENU - closes the menu if it is open (true), and clears pendingBlurId
|
|
27
|
+
* (3) CLOSE_IF_PENDING - closes the menu only if pendingBlurId is still set, and clears pendingBlurId
|
|
28
|
+
*
|
|
29
|
+
* (1) TOGGLE_MENU - closes the menu if it is open (pendingBlurId will not be set)
|
|
30
|
+
* (2) BLUR_MENU - sets pendingBlurId to the id of the menu
|
|
31
|
+
* (3) CLOSE_IF_PENDING - menu is already closed. clears pendingBlurId.
|
|
32
|
+
*
|
|
33
|
+
* menuHook() is responsible for triggering each of these events.
|
|
34
|
+
* This algorithm depends on the time delay between BLUR_MENU and CLOSE_IF_PENDING to be long enough that TOGGLE_MENU is assured to trigger.
|
|
35
|
+
*/
|
|
8
36
|
export declare const menuReducer: Reducer<MenuState, MenuActionTypes>;
|
|
@@ -4,23 +4,57 @@ export const initialState = {
|
|
|
4
4
|
openMenuId: null,
|
|
5
5
|
pendingBlurId: null,
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Algorithm for managing "toggle/blur" race condition
|
|
9
|
+
*
|
|
10
|
+
* When a user clicks the for an open window it triggers two events which end up in a race.
|
|
11
|
+
* A blur event will close the menu. A toggle event will also close the menu.
|
|
12
|
+
* However, if the blur event arrives *before* the toggle event then the menu would (1) close, (2) toggle back open
|
|
13
|
+
*
|
|
14
|
+
* The algorithm to address this race condition is to instead use three events. These are the two races
|
|
15
|
+
* (1) BLUR_MENU - sets pendingBlurId to the id of the menu
|
|
16
|
+
* (2) TOGGLE_MENU - closes the menu if it is open (true), and clears pendingBlurId
|
|
17
|
+
* (3) CLOSE_IF_PENDING - closes the menu only if pendingBlurId is still set, and clears pendingBlurId
|
|
18
|
+
*
|
|
19
|
+
* (1) TOGGLE_MENU - closes the menu if it is open (pendingBlurId will not be set)
|
|
20
|
+
* (2) BLUR_MENU - sets pendingBlurId to the id of the menu
|
|
21
|
+
* (3) CLOSE_IF_PENDING - menu is already closed. clears pendingBlurId.
|
|
22
|
+
*
|
|
23
|
+
* menuHook() is responsible for triggering each of these events.
|
|
24
|
+
* This algorithm depends on the time delay between BLUR_MENU and CLOSE_IF_PENDING to be long enough that TOGGLE_MENU is assured to trigger.
|
|
25
|
+
*/
|
|
7
26
|
export const menuReducer = produce((state, action) => {
|
|
8
27
|
MenuActions.match(action, {
|
|
28
|
+
/**
|
|
29
|
+
* If the menu is open then close it. If it's closed then open it.
|
|
30
|
+
*/
|
|
9
31
|
TOGGLE_MENU: (id) => {
|
|
10
32
|
state.pendingBlurId = null;
|
|
11
33
|
state.openMenuId = state.openMenuId === id ? null : id;
|
|
12
34
|
},
|
|
35
|
+
/**
|
|
36
|
+
* Opens the menu. If it is already open then state won't actually change.
|
|
37
|
+
*/
|
|
13
38
|
OPEN_MENU: (id) => {
|
|
14
39
|
state.pendingBlurId = null;
|
|
15
40
|
state.openMenuId = id;
|
|
16
41
|
},
|
|
42
|
+
/**
|
|
43
|
+
* Closes the menu iff it is open
|
|
44
|
+
*/
|
|
17
45
|
CLOSE_MENU: (id) => {
|
|
18
46
|
state.pendingBlurId = null;
|
|
19
47
|
state.openMenuId = state.openMenuId === id ? null : state.openMenuId;
|
|
20
48
|
},
|
|
49
|
+
/**
|
|
50
|
+
* Sets the menu to be pending close
|
|
51
|
+
*/
|
|
21
52
|
BLUR_MENU: (id) => {
|
|
22
53
|
state.pendingBlurId = id;
|
|
23
54
|
},
|
|
55
|
+
/**
|
|
56
|
+
* Closes the menu iff it is open and pending close
|
|
57
|
+
*/
|
|
24
58
|
CLOSE_MENU_IF_PENDING: (id) => {
|
|
25
59
|
if (state.pendingBlurId === id && state.openMenuId === id)
|
|
26
60
|
state.openMenuId = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menuReducer.js","sourceRoot":"","sources":["../../src/reducers/menuReducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAmB,MAAM,wBAAwB,CAAC;AAiBtE,MAAM,CAAC,MAAM,YAAY,GAAc;IACtC,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"menuReducer.js","sourceRoot":"","sources":["../../src/reducers/menuReducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAmB,MAAM,wBAAwB,CAAC;AAiBtE,MAAM,CAAC,MAAM,YAAY,GAAc;IACtC,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAwC,OAAO,CAAC,CAAC,KAAgB,EAAE,MAAuB,EAAE,EAAE;IACrH,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;QACzB;;WAEG;QACH,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YACnB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC;QACD;;WAEG;QACH,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE;YACjB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,CAAC;QACD;;WAEG;QACH,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;YAClB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QACtE,CAAC;QACD;;WAEG;QACH,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE;YACjB,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD;;WAEG;QACH,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE;YAC7B,IAAI,KAAK,CAAC,aAAa,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE;gBAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YACnF,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK;KACpB,CAAC,CAAC;AACJ,CAAC,EAAE,YAAY,CAAC,CAAC","sourcesContent":["import produce from \"immer\";\nimport { MenuActions, MenuActionTypes } from \"../actions/menuActions\";\nimport { Reducer } from \"react\";\n\n/**\n * Menu state definition.\n */\nexport type MenuState = {\n\t/**\n\t * Contains the id of the currently open menu\n\t */\n\topenMenuId: string | null;\n\t/**\n\t * Contains the id of a menu that has been blurred but not yet closed. See menuReducer for algorithm.\n\t */\n\tpendingBlurId: string | null;\n};\n\nexport const initialState: MenuState = {\n\topenMenuId: null,\n\tpendingBlurId: null,\n};\n\n/**\n * Algorithm for managing \"toggle/blur\" race condition\n *\n * When a user clicks the for an open window it triggers two events which end up in a race.\n * A blur event will close the menu. A toggle event will also close the menu.\n * However, if the blur event arrives *before* the toggle event then the menu would (1) close, (2) toggle back open\n *\n * The algorithm to address this race condition is to instead use three events. These are the two races\n * (1) BLUR_MENU - sets pendingBlurId to the id of the menu\n * (2) TOGGLE_MENU - closes the menu if it is open (true), and clears pendingBlurId\n * (3) CLOSE_IF_PENDING - closes the menu only if pendingBlurId is still set, and clears pendingBlurId\n *\n * (1) TOGGLE_MENU - closes the menu if it is open (pendingBlurId will not be set)\n * (2) BLUR_MENU - sets pendingBlurId to the id of the menu\n * (3) CLOSE_IF_PENDING - menu is already closed. clears pendingBlurId.\n *\n * menuHook() is responsible for triggering each of these events.\n * This algorithm depends on the time delay between BLUR_MENU and CLOSE_IF_PENDING to be long enough that TOGGLE_MENU is assured to trigger.\n */\nexport const menuReducer: Reducer<MenuState, MenuActionTypes> = produce((state: MenuState, action: MenuActionTypes) => {\n\tMenuActions.match(action, {\n\t\t/**\n\t\t * If the menu is open then close it. If it's closed then open it.\n\t\t */\n\t\tTOGGLE_MENU: (id) => {\n\t\t\tstate.pendingBlurId = null;\n\t\t\tstate.openMenuId = state.openMenuId === id ? null : id;\n\t\t},\n\t\t/**\n\t\t * Opens the menu. If it is already open then state won't actually change.\n\t\t */\n\t\tOPEN_MENU: (id) => {\n\t\t\tstate.pendingBlurId = null;\n\t\t\tstate.openMenuId = id;\n\t\t},\n\t\t/**\n\t\t * Closes the menu iff it is open\n\t\t */\n\t\tCLOSE_MENU: (id) => {\n\t\t\tstate.pendingBlurId = null;\n\t\t\tstate.openMenuId = state.openMenuId === id ? null : state.openMenuId;\n\t\t},\n\t\t/**\n\t\t * Sets the menu to be pending close\n\t\t */\n\t\tBLUR_MENU: (id) => {\n\t\t\tstate.pendingBlurId = id;\n\t\t},\n\t\t/**\n\t\t * Closes the menu iff it is open and pending close\n\t\t */\n\t\tCLOSE_MENU_IF_PENDING: (id) => {\n\t\t\tif (state.pendingBlurId === id && state.openMenuId === id) state.openMenuId = null;\n\t\t\tstate.pendingBlurId = null;\n\t\t},\n\t\tdefault: () => state,\n\t});\n}, initialState);\n"]}
|
|
@@ -147,7 +147,7 @@ export declare const rootReducer: import("redux").Reducer<import("redux").Combin
|
|
|
147
147
|
}) | ({
|
|
148
148
|
type: "update_apps";
|
|
149
149
|
} & {
|
|
150
|
-
payload: import("@finsemble/finsemble-api
|
|
150
|
+
payload: import("@finsemble/finsemble-api").AppDefinition[];
|
|
151
151
|
}) | ({
|
|
152
152
|
type: "new_app";
|
|
153
153
|
} & {
|
|
@@ -159,7 +159,7 @@ export declare const rootReducer: import("redux").Reducer<import("redux").Combin
|
|
|
159
159
|
}) | ({
|
|
160
160
|
type: "update_app";
|
|
161
161
|
} & {
|
|
162
|
-
payload: import("@finsemble/finsemble-api
|
|
162
|
+
payload: import("@finsemble/finsemble-api").AppDefinition;
|
|
163
163
|
}) | ({
|
|
164
164
|
type: "delete_app";
|
|
165
165
|
} & {
|
|
@@ -14,5 +14,8 @@ export const rootReducer = combineReducers({
|
|
|
14
14
|
menu: menuReducer,
|
|
15
15
|
search: searchReducer,
|
|
16
16
|
smartDesktopDesigner: smartDesktopDesignerReducer,
|
|
17
|
+
// Before adding your reducer, be sure to add the correct action
|
|
18
|
+
// types to ../actions/rootActions.ts. Otherwise you will get a deeply
|
|
19
|
+
// nested type error like "YOUR_ACTION_TYPE is not assignable to OTHER_ACTION_TYPE".
|
|
17
20
|
});
|
|
18
21
|
//# sourceMappingURL=rootReducer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rootReducer.js","sourceRoot":"","sources":["../../src/reducers/rootReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAe,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAkB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAa,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,aAAa,EAAe,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAe5E,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;IAC1C,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,aAAa;IACrB,oBAAoB,EAAE,2BAA2B;
|
|
1
|
+
{"version":3,"file":"rootReducer.js","sourceRoot":"","sources":["../../src/reducers/rootReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAe,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAkB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAa,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,aAAa,EAAe,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAe5E,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;IAC1C,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,aAAa;IACrB,oBAAoB,EAAE,2BAA2B;IACjD,gEAAgE;IAChE,sEAAsE;IACtE,oFAAoF;CACpF,CAAC,CAAC","sourcesContent":["import { ToolbarState, toolbarReducer } from \"./toolbarReducer\";\nimport { LinkerState, linkerReducer } from \"./linkerReducer\";\nimport { combineReducers } from \"redux\";\nimport { workspaceReducer, WorkspaceState } from \"./workspaceReducer\";\nimport { favoriteReducer, FavoriteState } from \"./favoriteReducer\";\nimport { menuReducer, MenuState } from \"./menuReducer\";\nimport { searchReducer, SearchState } from \"./searchReducer\";\nimport { smartDesktopDesignerReducer } from \"./smartDesktopDesignerReducer\";\nimport { SmartDesktopDesignerState } from \"../types/smartDesktopDesignerTypes\";\n\n// DH 2/11/2019 - This should be auto-inferred from `typeof rootReducer`, but\n// I can't get it working, so we'll write it manually.\nexport type RootState = {\n\ttoolbar: ToolbarState;\n\tlinker: LinkerState;\n\tworkspace: WorkspaceState;\n\tmenu: MenuState;\n\tfavorite: FavoriteState;\n\tsearch: SearchState;\n\tsmartDesktopDesigner: SmartDesktopDesignerState;\n};\n\nexport const rootReducer = combineReducers({\n\ttoolbar: toolbarReducer,\n\tlinker: linkerReducer,\n\tworkspace: workspaceReducer,\n\tfavorite: favoriteReducer,\n\tmenu: menuReducer,\n\tsearch: searchReducer,\n\tsmartDesktopDesigner: smartDesktopDesignerReducer,\n\t// Before adding your reducer, be sure to add the correct action\n\t// types to ../actions/rootActions.ts. Otherwise you will get a deeply\n\t// nested type error like \"YOUR_ACTION_TYPE is not assignable to OTHER_ACTION_TYPE\".\n});\n"]}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { SearchActionTypes } from "../actions/searchActions";
|
|
2
2
|
import { Reducer } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Search state definition.
|
|
5
|
+
*/
|
|
3
6
|
export declare type SearchState = {
|
|
7
|
+
/**
|
|
8
|
+
*/
|
|
4
9
|
searchQuery: string;
|
|
10
|
+
/**
|
|
11
|
+
*/
|
|
5
12
|
searchResults: Array<any>;
|
|
6
13
|
};
|
|
7
14
|
export declare const initialState: SearchState;
|
|
@@ -6,12 +6,18 @@ export const initialState = {
|
|
|
6
6
|
};
|
|
7
7
|
export const searchReducer = produce((state, action) => {
|
|
8
8
|
SearchActions.match(action, {
|
|
9
|
+
/**
|
|
10
|
+
*/
|
|
9
11
|
UPDATE_QUERY: (query) => {
|
|
10
12
|
state.searchQuery = query;
|
|
11
13
|
},
|
|
14
|
+
/**
|
|
15
|
+
*/
|
|
12
16
|
UPDATE_RESULTS: (results) => {
|
|
13
17
|
state.searchResults = results;
|
|
14
18
|
},
|
|
19
|
+
/**
|
|
20
|
+
*/
|
|
15
21
|
RESET_SEARCH: () => {
|
|
16
22
|
state.searchResults = [];
|
|
17
23
|
state.searchQuery = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchReducer.js","sourceRoot":"","sources":["../../src/reducers/searchReducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAqB,MAAM,0BAA0B,CAAC;AAe5E,MAAM,CAAC,MAAM,YAAY,GAAgB;IACxC,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA4C,OAAO,CAC5E,CAAC,KAAkB,EAAE,MAAyB,EAAE,EAAE;IACjD,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"searchReducer.js","sourceRoot":"","sources":["../../src/reducers/searchReducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAqB,MAAM,0BAA0B,CAAC;AAe5E,MAAM,CAAC,MAAM,YAAY,GAAgB;IACxC,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA4C,OAAO,CAC5E,CAAC,KAAkB,EAAE,MAAyB,EAAE,EAAE;IACjD,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;QAC3B;WACG;QACH,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD;WACG;QACH,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3B,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC;QAC/B,CAAC;QACD;WACG;QACH,YAAY,EAAE,GAAG,EAAE;YAClB,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;YACzB,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK;KACpB,CAAC,CAAC;AACJ,CAAC,EACD,YAAY,CACZ,CAAC","sourcesContent":["import produce from \"immer\";\nimport { SearchActions, SearchActionTypes } from \"../actions/searchActions\";\nimport { Reducer } from \"react\";\n\n/**\n * Search state definition.\n */\nexport type SearchState = {\n\t/**\n\t */\n\tsearchQuery: string;\n\t/**\n\t */\n\tsearchResults: Array<any>;\n};\n\nexport const initialState: SearchState = {\n\tsearchQuery: \"\",\n\tsearchResults: [],\n};\n\nexport const searchReducer: Reducer<SearchState, SearchActionTypes> = produce(\n\t(state: SearchState, action: SearchActionTypes) => {\n\t\tSearchActions.match(action, {\n\t\t\t/**\n\t\t\t */\n\t\t\tUPDATE_QUERY: (query) => {\n\t\t\t\tstate.searchQuery = query;\n\t\t\t},\n\t\t\t/**\n\t\t\t */\n\t\t\tUPDATE_RESULTS: (results) => {\n\t\t\t\tstate.searchResults = results;\n\t\t\t},\n\t\t\t/**\n\t\t\t */\n\t\t\tRESET_SEARCH: () => {\n\t\t\t\tstate.searchResults = [];\n\t\t\t\tstate.searchQuery = \"\";\n\t\t\t},\n\t\t\tdefault: () => state,\n\t\t});\n\t},\n\tinitialState\n);\n"]}
|
|
@@ -12,6 +12,7 @@ export const workspaceReducer = produce((state, action) => {
|
|
|
12
12
|
UPDATE_ALL_WORKSPACES: ({ activeWorkspace, workspaces }) => {
|
|
13
13
|
state.activeWorkspace = activeWorkspace;
|
|
14
14
|
if (workspaces) {
|
|
15
|
+
// We only care about the name returned by the workspaceService updates
|
|
15
16
|
state.workspaces = workspaces.map(({ name }) => {
|
|
16
17
|
return { name };
|
|
17
18
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceReducer.js","sourceRoot":"","sources":["../../src/reducers/workspaceReducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAwB,MAAM,6BAA6B,CAAC;AAUrF,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC3C,eAAe,EAAE;QAChB,IAAI,EAAE,EAAE;KACR;IACD,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,KAAK;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAkD,OAAO,CACrF,CAAC,KAAqB,EAAE,MAA4B,EAAE,EAAE;IACvD,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE;QAC9B,qBAAqB,EAAE,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EAAE;YAC1D,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;YAExC,IAAI,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"workspaceReducer.js","sourceRoot":"","sources":["../../src/reducers/workspaceReducer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAwB,MAAM,6BAA6B,CAAC;AAUrF,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC3C,eAAe,EAAE;QAChB,IAAI,EAAE,EAAE;KACR;IACD,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,KAAK;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAkD,OAAO,CACrF,CAAC,KAAqB,EAAE,MAA4B,EAAE,EAAE;IACvD,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE;QAC9B,qBAAqB,EAAE,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,EAAE;YAC1D,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;YAExC,IAAI,UAAU,EAAE;gBACf,uEAAuE;gBACvE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;oBAC9C,OAAO,EAAE,IAAI,EAAE,CAAC;gBACjB,CAAC,CAAC,CAAC;aACH;QACF,CAAC;QACD,0CAA0C,EAAE,CAAC,YAAY,EAAE,EAAE;YAC5D,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QACnC,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK;KACpB,CAAC,CAAC;AACJ,CAAC,EACD,YAAY,CACZ,CAAC","sourcesContent":["import produce from \"immer\";\nimport { WorkspaceActions, WorkspaceActionTypes } from \"../actions/workspaceActions\";\nimport { Workspace } from \"../types/workspaceTypes\";\nimport { Reducer } from \"react\";\n\nexport type WorkspaceState = {\n\tactiveWorkspace: Workspace;\n\tworkspaces: Workspace[];\n\tpromptOnSave: boolean;\n};\n\nexport const initialState: WorkspaceState = {\n\tactiveWorkspace: {\n\t\tname: \"\",\n\t},\n\tworkspaces: [],\n\tpromptOnSave: false,\n};\n\nexport const workspaceReducer: Reducer<WorkspaceState, WorkspaceActionTypes> = produce(\n\t(state: WorkspaceState, action: WorkspaceActionTypes) => {\n\t\tWorkspaceActions.match(action, {\n\t\t\tUPDATE_ALL_WORKSPACES: ({ activeWorkspace, workspaces }) => {\n\t\t\t\tstate.activeWorkspace = activeWorkspace;\n\n\t\t\t\tif (workspaces) {\n\t\t\t\t\t// We only care about the name returned by the workspaceService updates\n\t\t\t\t\tstate.workspaces = workspaces.map(({ name }) => {\n\t\t\t\t\t\treturn { name };\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tUPDATE_PROMPT_ON_SAVE_WORKSPACE_PREFERENCE: (promptOnSave) => {\n\t\t\t\tstate.promptOnSave = promptOnSave;\n\t\t\t},\n\t\t\tdefault: () => state,\n\t\t});\n\t},\n\tinitialState\n);\n"]}
|