@finsemble/finsemble-ui 6.6.1 → 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 +17 -10
- 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 +21 -10
- 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/useMenu.d.ts
CHANGED
|
@@ -1,10 +1,39 @@
|
|
|
1
1
|
declare type MenuHook = {
|
|
2
|
+
/**
|
|
3
|
+
* The Id of the menu that is currently open
|
|
4
|
+
*
|
|
5
|
+
* @type {string | null}
|
|
6
|
+
*/
|
|
2
7
|
openMenuId: string | null;
|
|
8
|
+
/**
|
|
9
|
+
* Dispatches a TOGGLE_MENU action, which should cause the menu to close if it is open, or to open if it is closed.
|
|
10
|
+
*/
|
|
3
11
|
toggleMenu: () => void;
|
|
12
|
+
/**
|
|
13
|
+
* Dispatches a CLOSE_MENU action, which should cause the menu to close if it is open.
|
|
14
|
+
*/
|
|
4
15
|
closeMenu: () => void;
|
|
16
|
+
/**
|
|
17
|
+
* Dispatches a CLOSE_MENU action after a timeout (DURATION in ms). See description in useMenu comments.
|
|
18
|
+
*/
|
|
5
19
|
blurMenu: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* Dispatches a OPEN_MENU action, which should cause the menu to open if it is closed.
|
|
22
|
+
*/
|
|
6
23
|
openMenu: () => void;
|
|
24
|
+
/**
|
|
25
|
+
* Returns true if the id of the menu matches the currently active menu
|
|
26
|
+
* @return boolean - Returns true if the menu is active
|
|
27
|
+
*/
|
|
7
28
|
isMenuActive: () => boolean;
|
|
8
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* A hook for working with menus. It gets its implicit menu "id" from React context.
|
|
32
|
+
* It dispatches actions to the reducer to modify menu state across MenuShell instances.
|
|
33
|
+
*
|
|
34
|
+
* See menuReducer.ts for "toggle/blur" race condition algorithm
|
|
35
|
+
*
|
|
36
|
+
* Setting window.FSBL.debug=true will override menu close on blur, to make it easier to debug windows
|
|
37
|
+
*/
|
|
9
38
|
export declare const useMenu: () => MenuHook;
|
|
10
39
|
export {};
|
package/react/hooks/useMenu.js
CHANGED
|
@@ -2,6 +2,14 @@ import { useDispatch, useSelector } from "../store";
|
|
|
2
2
|
import { MenuActions } from "../actions/menuActions";
|
|
3
3
|
import { useCallback, useContext } from "react";
|
|
4
4
|
import { MenuContext } from "../components/menu/menuContext";
|
|
5
|
+
/**
|
|
6
|
+
* A hook for working with menus. It gets its implicit menu "id" from React context.
|
|
7
|
+
* It dispatches actions to the reducer to modify menu state across MenuShell instances.
|
|
8
|
+
*
|
|
9
|
+
* See menuReducer.ts for "toggle/blur" race condition algorithm
|
|
10
|
+
*
|
|
11
|
+
* Setting window.FSBL.debug=true will override menu close on blur, to make it easier to debug windows
|
|
12
|
+
*/
|
|
5
13
|
export const useMenu = () => {
|
|
6
14
|
const DURATION = 120;
|
|
7
15
|
const dispatch = useDispatch();
|
|
@@ -11,6 +19,7 @@ export const useMenu = () => {
|
|
|
11
19
|
dispatch(MenuActions.TOGGLE_MENU(thisMenuId));
|
|
12
20
|
}, [dispatch, thisMenuId]);
|
|
13
21
|
const openMenu = useCallback(() => {
|
|
22
|
+
// without this call, the toolbar will stay hidden behind other content, and the menus will not be visible
|
|
14
23
|
FSBL.Clients.WindowClient.bringToFront();
|
|
15
24
|
dispatch(MenuActions.OPEN_MENU(thisMenuId));
|
|
16
25
|
}, [dispatch, thisMenuId]);
|
|
@@ -19,11 +28,13 @@ export const useMenu = () => {
|
|
|
19
28
|
}, [dispatch, thisMenuId]);
|
|
20
29
|
const blurMenu = useCallback(() => {
|
|
21
30
|
if (FSBL === null || FSBL === void 0 ? void 0 : FSBL.debug)
|
|
22
|
-
return;
|
|
31
|
+
return; // If we're debugging then don't blur menus
|
|
32
|
+
// This is a purposeful closure. There is no need to update it with new state.
|
|
23
33
|
const closeIfPending = () => {
|
|
24
34
|
dispatch(MenuActions.CLOSE_MENU_IF_PENDING(thisMenuId));
|
|
25
35
|
};
|
|
26
36
|
dispatch(MenuActions.BLUR_MENU(thisMenuId));
|
|
37
|
+
// See menuReducer.ts for how this timeout is used. Removing the timeout will cause a race condition.
|
|
27
38
|
setTimeout(closeIfPending, DURATION);
|
|
28
39
|
}, [dispatch, thisMenuId]);
|
|
29
40
|
const isMenuActive = () => openMenuId === thisMenuId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMenu.js","sourceRoot":"","sources":["../../src/hooks/useMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"useMenu.js","sourceRoot":"","sources":["../../src/hooks/useMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAgC7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAa,EAAE;IACrC,MAAM,QAAQ,GAAW,GAAG,CAAC;IAC7B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,0GAA0G;QAC1G,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QACzC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK;YAAE,OAAO,CAAC,2CAA2C;QAEpE,8EAA8E;QAC9E,MAAM,cAAc,GAAG,GAAG,EAAE;YAC3B,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAE5C,qGAAqG;QACrG,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG,GAAY,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC;IAE9D,OAAO;QACN,UAAU;QACV,UAAU;QACV,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,YAAY;KACZ,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { useDispatch, useSelector } from \"../store\";\nimport { MenuActions } from \"../actions/menuActions\";\nimport { useCallback, useContext } from \"react\";\nimport { MenuContext } from \"../components/menu/menuContext\";\n\ntype MenuHook = {\n\t/**\n\t * The Id of the menu that is currently open\n\t *\n\t * @type {string | null}\n\t */\n\topenMenuId: string | null;\n\t/**\n\t * Dispatches a TOGGLE_MENU action, which should cause the menu to close if it is open, or to open if it is closed.\n\t */\n\ttoggleMenu: () => void;\n\t/**\n\t * Dispatches a CLOSE_MENU action, which should cause the menu to close if it is open.\n\t */\n\tcloseMenu: () => void;\n\t/**\n\t * Dispatches a CLOSE_MENU action after a timeout (DURATION in ms). See description in useMenu comments.\n\t */\n\tblurMenu: () => void;\n\t/**\n\t * Dispatches a OPEN_MENU action, which should cause the menu to open if it is closed.\n\t */\n\topenMenu: () => void;\n\t/**\n\t * Returns true if the id of the menu matches the currently active menu\n\t * @return boolean - Returns true if the menu is active\n\t */\n\tisMenuActive: () => boolean;\n};\n\n/**\n * A hook for working with menus. It gets its implicit menu \"id\" from React context.\n * It dispatches actions to the reducer to modify menu state across MenuShell instances.\n *\n * See menuReducer.ts for \"toggle/blur\" race condition algorithm\n *\n * Setting window.FSBL.debug=true will override menu close on blur, to make it easier to debug windows\n */\nexport const useMenu = (): MenuHook => {\n\tconst DURATION: number = 120;\n\tconst dispatch = useDispatch();\n\tconst { openMenuId } = useSelector((state) => state.menu);\n\tconst { thisMenuId } = useContext(MenuContext);\n\n\tconst toggleMenu = useCallback(() => {\n\t\tdispatch(MenuActions.TOGGLE_MENU(thisMenuId));\n\t}, [dispatch, thisMenuId]);\n\n\tconst openMenu = useCallback(() => {\n\t\t// without this call, the toolbar will stay hidden behind other content, and the menus will not be visible\n\t\tFSBL.Clients.WindowClient.bringToFront();\n\t\tdispatch(MenuActions.OPEN_MENU(thisMenuId));\n\t}, [dispatch, thisMenuId]);\n\n\tconst closeMenu = useCallback(() => {\n\t\tdispatch(MenuActions.CLOSE_MENU(thisMenuId));\n\t}, [dispatch, thisMenuId]);\n\n\tconst blurMenu = useCallback(() => {\n\t\tif (FSBL?.debug) return; // If we're debugging then don't blur menus\n\n\t\t// This is a purposeful closure. There is no need to update it with new state.\n\t\tconst closeIfPending = () => {\n\t\t\tdispatch(MenuActions.CLOSE_MENU_IF_PENDING(thisMenuId));\n\t\t};\n\n\t\tdispatch(MenuActions.BLUR_MENU(thisMenuId));\n\n\t\t// See menuReducer.ts for how this timeout is used. Removing the timeout will cause a race condition.\n\t\tsetTimeout(closeIfPending, DURATION);\n\t}, [dispatch, thisMenuId]);\n\n\tconst isMenuActive = (): boolean => openMenuId === thisMenuId;\n\n\treturn {\n\t\topenMenuId,\n\t\ttoggleMenu,\n\t\tcloseMenu,\n\t\topenMenu,\n\t\tblurMenu,\n\t\tisMenuActive,\n\t};\n};\n"]}
|
|
@@ -6,19 +6,63 @@ declare type IMuteFilter = services.notification.types.IMuteFilter;
|
|
|
6
6
|
declare type INotification = services.notification.types.INotification;
|
|
7
7
|
declare type INotificationHistoryOptions = services.notification.types.INotificationHistoryOptions;
|
|
8
8
|
declare type NotificationUIStatePublish = (state: NotificationServiceState) => void;
|
|
9
|
+
/**
|
|
10
|
+
* Thin wrapper around usePubSub to give us typesafety for the notification service's UI state.
|
|
11
|
+
* Automatically appends this client's windowName which is used by the notification service to
|
|
12
|
+
* display the notification center on an appropriate monitor.
|
|
13
|
+
*/
|
|
9
14
|
export declare const useNotificationUI: () => [state: services.notification.types.NotificationServiceState, setState: NotificationUIStatePublish];
|
|
10
15
|
export declare const moveToToolbarMonitor: () => Promise<void>;
|
|
11
16
|
export declare const getOS: () => "Windows" | "Linux" | "Mac" | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Example for setting up button clicks
|
|
19
|
+
*
|
|
20
|
+
* @param notification
|
|
21
|
+
* @param action
|
|
22
|
+
*/
|
|
12
23
|
export declare const doAction: (notification: INotification, action: any) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Example for setting up button clicks
|
|
26
|
+
*
|
|
27
|
+
* @param filter
|
|
28
|
+
*/
|
|
13
29
|
export declare const mute: (filter: IMuteFilter) => Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Example for setting up button clicks
|
|
32
|
+
*
|
|
33
|
+
* @param filter
|
|
34
|
+
*/
|
|
14
35
|
export declare const unmute: (filter: IMuteFilter) => Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Snooze a notification
|
|
38
|
+
*
|
|
39
|
+
* @param {INotification[]} notifications
|
|
40
|
+
*/
|
|
15
41
|
export declare const snoozeNotifications: (notifications: INotification[]) => Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Marks a notification as read
|
|
44
|
+
*
|
|
45
|
+
* @param {INotification[]} notifications
|
|
46
|
+
*/
|
|
16
47
|
export declare const markNotificationsUnread: (notifications: INotification[]) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Marks a notification as read
|
|
50
|
+
*
|
|
51
|
+
* @param {INotification[]} notifications
|
|
52
|
+
*/
|
|
17
53
|
export declare const markNotificationsRead: (notifications: INotification[]) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Dismisses a notification
|
|
56
|
+
*
|
|
57
|
+
* @param {INotification[]} notifications
|
|
58
|
+
*/
|
|
18
59
|
export declare const dismissNotification: (notifications: INotification[]) => void;
|
|
19
60
|
export declare const initializeCenterToggle: () => {
|
|
20
61
|
toggleCenter: () => void;
|
|
21
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* Get Notification's config from
|
|
65
|
+
*/
|
|
22
66
|
export declare const getNotificationConfig: () => NotificationsConfig;
|
|
23
67
|
export declare const getFetchHistoryParams: (config: any, params: any) => any[];
|
|
24
68
|
export default function useNotifications(params?: any): {
|
|
@@ -3,9 +3,15 @@ import { usePubSub } from "./usePubSub";
|
|
|
3
3
|
import { NOTIFICATIONS_PUBSUB_TOPIC } from "../components/notifications/constants";
|
|
4
4
|
const { WindowClient, NotificationClient } = FSBL.Clients;
|
|
5
5
|
const initialState = { notifications: [] };
|
|
6
|
+
/*
|
|
7
|
+
Action Types
|
|
8
|
+
*/
|
|
6
9
|
const CREATE_MULTIPLE = "CREATE_MULTIPLE";
|
|
7
10
|
const UPDATE = "UPDATE";
|
|
8
11
|
const REMOVE = "REMOVE";
|
|
12
|
+
/*
|
|
13
|
+
Reducer
|
|
14
|
+
*/
|
|
9
15
|
function reducer(state, action) {
|
|
10
16
|
switch (action.type) {
|
|
11
17
|
case CREATE_MULTIPLE:
|
|
@@ -13,7 +19,9 @@ function reducer(state, action) {
|
|
|
13
19
|
notifications: [...state.notifications, ...action.payload],
|
|
14
20
|
};
|
|
15
21
|
case UPDATE: {
|
|
22
|
+
// check to see if the notification exists if so update the values
|
|
16
23
|
const notificationExistsInArray = state.notifications.find((notification) => notification.id === action.payload.id);
|
|
24
|
+
//if the notification exists then do nothing and return the current state else add the the new notification to the state
|
|
17
25
|
const notifications = notificationExistsInArray
|
|
18
26
|
? state.notifications.map((notification) => notification.id === action.payload.id ? action.payload : notification)
|
|
19
27
|
: [action.payload, ...state.notifications];
|
|
@@ -27,6 +35,11 @@ function reducer(state, action) {
|
|
|
27
35
|
throw new Error();
|
|
28
36
|
}
|
|
29
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Thin wrapper around usePubSub to give us typesafety for the notification service's UI state.
|
|
40
|
+
* Automatically appends this client's windowName which is used by the notification service to
|
|
41
|
+
* display the notification center on an appropriate monitor.
|
|
42
|
+
*/
|
|
30
43
|
export const useNotificationUI = () => {
|
|
31
44
|
const [state, setState] = usePubSub(NOTIFICATIONS_PUBSUB_TOPIC);
|
|
32
45
|
const setStateAndAddWindowName = (newState) => {
|
|
@@ -60,9 +73,9 @@ export const moveToToolbarMonitor = async () => {
|
|
|
60
73
|
const activeDescriptors = await getActiveDescriptorsByType("Toolbar");
|
|
61
74
|
toolbarWindowName = (_a = activeDescriptors[0]) === null || _a === void 0 ? void 0 : _a.name;
|
|
62
75
|
}
|
|
63
|
-
const { err, data } =
|
|
76
|
+
const { err, data } = await FSBL.Clients.LauncherClient.getMonitorInfo({
|
|
64
77
|
windowIdentifier: { windowName: toolbarWindowName },
|
|
65
|
-
})
|
|
78
|
+
});
|
|
66
79
|
if (err) {
|
|
67
80
|
FSBL.Clients.Logger.system.error("Could not get Monitor info", err);
|
|
68
81
|
reject(err);
|
|
@@ -70,9 +83,15 @@ export const moveToToolbarMonitor = async () => {
|
|
|
70
83
|
}
|
|
71
84
|
resolve(data);
|
|
72
85
|
});
|
|
73
|
-
const data =
|
|
86
|
+
const data = await getToolbarMonitorData();
|
|
74
87
|
const { data: bounds } = await finsembleWindow.getBounds();
|
|
75
88
|
const width = ((_a = bounds === null || bounds === void 0 ? void 0 : bounds.right) !== null && _a !== void 0 ? _a : 0) - ((_b = bounds === null || bounds === void 0 ? void 0 : bounds.left) !== null && _b !== void 0 ? _b : 0);
|
|
89
|
+
/**
|
|
90
|
+
* It's been reported that on docked laptops and some curved monitors that getMonitorInfo returns undefined.
|
|
91
|
+
* The root cause of this has not been determined.
|
|
92
|
+
*/
|
|
93
|
+
if (!data)
|
|
94
|
+
return;
|
|
76
95
|
finsembleWindow.setBounds({
|
|
77
96
|
bounds: {
|
|
78
97
|
top: data["availableRect"]["top"],
|
|
@@ -97,34 +116,61 @@ export const getOS = () => {
|
|
|
97
116
|
return "Mac";
|
|
98
117
|
}
|
|
99
118
|
};
|
|
119
|
+
/**
|
|
120
|
+
* Example for setting up button clicks
|
|
121
|
+
*
|
|
122
|
+
* @param notification
|
|
123
|
+
* @param action
|
|
124
|
+
*/
|
|
100
125
|
export const doAction = (notification, action) => {
|
|
101
126
|
try {
|
|
102
127
|
NotificationClient.performAction([notification], action).then(() => {
|
|
128
|
+
// NOTE: The request to perform the action has be sent to the notifications service successfully
|
|
129
|
+
// The action itself has not necessarily been perform successfully
|
|
130
|
+
// 1) alert user notification has been sent (action may not have completed)
|
|
103
131
|
});
|
|
104
132
|
}
|
|
105
133
|
catch (e) {
|
|
134
|
+
// NOTE: The request to perform the action has failed
|
|
106
135
|
console.error("could not create a notification client", e);
|
|
107
136
|
FSBL.Clients.Logger.system.error("could not create a notification client", e);
|
|
108
137
|
}
|
|
109
138
|
};
|
|
139
|
+
/**
|
|
140
|
+
* Example for setting up button clicks
|
|
141
|
+
*
|
|
142
|
+
* @param filter
|
|
143
|
+
*/
|
|
110
144
|
export const mute = async (filter) => {
|
|
111
145
|
try {
|
|
112
146
|
await NotificationClient.mute(filter);
|
|
113
147
|
}
|
|
114
148
|
catch (e) {
|
|
149
|
+
// NOTE: The request to perform the action has failed
|
|
115
150
|
console.error("Could not save mute preferences", e);
|
|
116
151
|
FSBL.Clients.Logger.system.error("Could not save mute preferences", e);
|
|
117
152
|
}
|
|
118
153
|
};
|
|
154
|
+
/**
|
|
155
|
+
* Example for setting up button clicks
|
|
156
|
+
*
|
|
157
|
+
* @param filter
|
|
158
|
+
*/
|
|
119
159
|
export const unmute = async (filter) => {
|
|
120
160
|
try {
|
|
121
161
|
await NotificationClient.unmute(filter);
|
|
122
162
|
}
|
|
123
163
|
catch (e) {
|
|
164
|
+
// NOTE: The request to perform the action has failed
|
|
124
165
|
console.error("Could not save mute preferences", e);
|
|
125
166
|
FSBL.Clients.Logger.system.error("Could not save mute preferences", e);
|
|
126
167
|
}
|
|
127
168
|
};
|
|
169
|
+
/**
|
|
170
|
+
* Snooze a notification
|
|
171
|
+
*
|
|
172
|
+
* @param {INotification[]} notifications
|
|
173
|
+
*/
|
|
128
174
|
export const snoozeNotifications = async (notifications) => {
|
|
129
175
|
const preferences = await FSBL.Clients.NotificationClient.getPreferences();
|
|
130
176
|
const snoozeAction = new FSBL.Clients.NotificationClient.Action();
|
|
@@ -137,9 +183,16 @@ export const snoozeNotifications = async (notifications) => {
|
|
|
137
183
|
doAction(notifications[i], snoozeAction);
|
|
138
184
|
}
|
|
139
185
|
};
|
|
186
|
+
/**
|
|
187
|
+
* Marks a notification as read
|
|
188
|
+
*
|
|
189
|
+
* @param {INotification[]} notifications
|
|
190
|
+
*/
|
|
140
191
|
export const markNotificationsUnread = (notifications) => {
|
|
141
192
|
try {
|
|
142
193
|
NotificationClient.markUnread(notifications).then(() => {
|
|
194
|
+
// NOTE: The request to perform the action has be sent to the notifications service successfully
|
|
195
|
+
// The action itself has not necessarily been perform successfully
|
|
143
196
|
});
|
|
144
197
|
}
|
|
145
198
|
catch (e) {
|
|
@@ -147,9 +200,16 @@ export const markNotificationsUnread = (notifications) => {
|
|
|
147
200
|
FSBL.Clients.Logger.system.error("Could not mark notification as unread", e);
|
|
148
201
|
}
|
|
149
202
|
};
|
|
203
|
+
/**
|
|
204
|
+
* Marks a notification as read
|
|
205
|
+
*
|
|
206
|
+
* @param {INotification[]} notifications
|
|
207
|
+
*/
|
|
150
208
|
export const markNotificationsRead = (notifications) => {
|
|
151
209
|
try {
|
|
152
210
|
NotificationClient.markRead(notifications).then(() => {
|
|
211
|
+
// NOTE: The request to perform the action has be sent to the notifications service successfully
|
|
212
|
+
// The action itself has not necessarily been perform successfully
|
|
153
213
|
});
|
|
154
214
|
}
|
|
155
215
|
catch (e) {
|
|
@@ -157,9 +217,16 @@ export const markNotificationsRead = (notifications) => {
|
|
|
157
217
|
FSBL.Clients.Logger.system.error("Could not mark notification as read", e);
|
|
158
218
|
}
|
|
159
219
|
};
|
|
220
|
+
/**
|
|
221
|
+
* Dismisses a notification
|
|
222
|
+
*
|
|
223
|
+
* @param {INotification[]} notifications
|
|
224
|
+
*/
|
|
160
225
|
export const dismissNotification = (notifications) => {
|
|
161
226
|
try {
|
|
162
227
|
NotificationClient.deleteNotifications(notifications).then(() => {
|
|
228
|
+
// NOTE: The request to perform the action has be sent to the notifications service successfully
|
|
229
|
+
// The action itself has not necessarily been perform successfully
|
|
163
230
|
});
|
|
164
231
|
}
|
|
165
232
|
catch (e) {
|
|
@@ -176,6 +243,9 @@ export const initializeCenterToggle = () => {
|
|
|
176
243
|
toggleCenter,
|
|
177
244
|
};
|
|
178
245
|
};
|
|
246
|
+
/**
|
|
247
|
+
* Get Notification's config from
|
|
248
|
+
*/
|
|
179
249
|
export const getNotificationConfig = () => {
|
|
180
250
|
var _a, _b, _c, _d;
|
|
181
251
|
const config = WindowClient.options.customData;
|
|
@@ -186,10 +256,13 @@ export const getNotificationConfig = () => {
|
|
|
186
256
|
export const getFetchHistoryParams = (config, params) => {
|
|
187
257
|
var _a, _b;
|
|
188
258
|
const notificationsHistory = (config === null || config === void 0 ? void 0 : config.notificationsHistory) || ((_a = params === null || params === void 0 ? void 0 : params.config) === null || _a === void 0 ? void 0 : _a.notificationsHistory);
|
|
259
|
+
// Backwards compatibility - `since` replaced with `options` object
|
|
189
260
|
let options = notificationsHistory.since ? notificationsHistory.since : null;
|
|
261
|
+
// Use options object if it's been set in the component config
|
|
190
262
|
if (!options) {
|
|
191
263
|
options = notificationsHistory === null || notificationsHistory === void 0 ? void 0 : notificationsHistory.options;
|
|
192
264
|
}
|
|
265
|
+
// If no options object set and notificationsHistory is true set in config, use the params
|
|
193
266
|
if (!options && typeof notificationsHistory === "boolean" && notificationsHistory) {
|
|
194
267
|
options = (_b = params === null || params === void 0 ? void 0 : params.config) === null || _b === void 0 ? void 0 : _b.notificationsHistory.options;
|
|
195
268
|
}
|
|
@@ -198,6 +271,9 @@ export const getFetchHistoryParams = (config, params) => {
|
|
|
198
271
|
};
|
|
199
272
|
export default function useNotifications(params = {}) {
|
|
200
273
|
const [state, dispatch] = useReducer(reducer, initialState);
|
|
274
|
+
/*
|
|
275
|
+
Action Creators
|
|
276
|
+
*/
|
|
201
277
|
const removeNotification = (notification) => {
|
|
202
278
|
dispatch({ type: REMOVE, payload: notification });
|
|
203
279
|
};
|
|
@@ -207,6 +283,10 @@ export default function useNotifications(params = {}) {
|
|
|
207
283
|
const addMultipleNotifications = (notifications) => {
|
|
208
284
|
dispatch({ type: CREATE_MULTIPLE, payload: notifications });
|
|
209
285
|
};
|
|
286
|
+
/**
|
|
287
|
+
* Group Notifications by Type
|
|
288
|
+
* @param notifications
|
|
289
|
+
*/
|
|
210
290
|
const groupNotificationsByType = (notifications) => {
|
|
211
291
|
const groupBy = (arr) => arr
|
|
212
292
|
.map((notification) => { var _a; return (_a = notification.type) !== null && _a !== void 0 ? _a : "unknown"; })
|
|
@@ -216,6 +296,12 @@ export default function useNotifications(params = {}) {
|
|
|
216
296
|
}, {});
|
|
217
297
|
return groupBy(notifications);
|
|
218
298
|
};
|
|
299
|
+
/**
|
|
300
|
+
* * get the past notifications
|
|
301
|
+
* WARNING - The default will get all notifications all the way back from 1969!!!
|
|
302
|
+
* @param since
|
|
303
|
+
* @param filter
|
|
304
|
+
*/
|
|
219
305
|
const getNotificationHistory = (since = { sentAfter: "1969-12-31T23:59:59.999Z" }, filter = null) => NotificationClient.fetchHistory(since, filter);
|
|
220
306
|
const notificationIsActive = (notification, applyMuteFilterOverride) => {
|
|
221
307
|
let applyMuteFilters = applyMuteFilterOverride;
|
|
@@ -229,28 +315,29 @@ export default function useNotifications(params = {}) {
|
|
|
229
315
|
(applyMuteFilters ? !notification.isMuted : true));
|
|
230
316
|
};
|
|
231
317
|
const activeNotifications = (notifications, applyMuteFilterOverride) => notifications.filter((notification) => notificationIsActive(notification, applyMuteFilterOverride));
|
|
318
|
+
/**
|
|
319
|
+
* Main init function to start the subscription
|
|
320
|
+
*/
|
|
232
321
|
async function init() {
|
|
233
|
-
var _a;
|
|
322
|
+
var _a, _b, _c, _d, _e;
|
|
234
323
|
try {
|
|
235
324
|
const subscription = new NotificationClient.Subscription();
|
|
236
325
|
const notificationConfig = getNotificationConfig();
|
|
237
326
|
const filter = new NotificationClient.Filter();
|
|
327
|
+
// make filters from the config
|
|
238
328
|
if (notificationConfig) {
|
|
239
|
-
notificationConfig.filter &&
|
|
240
|
-
|
|
241
|
-
filter.include.push(...notificationConfig.filter.include);
|
|
242
|
-
notificationConfig.filter &&
|
|
243
|
-
notificationConfig.filter.exclude &&
|
|
244
|
-
filter.exclude.push(...notificationConfig.filter.exclude);
|
|
329
|
+
((_a = notificationConfig.filter) === null || _a === void 0 ? void 0 : _a.include) && ((_b = filter.include) === null || _b === void 0 ? void 0 : _b.push(...notificationConfig.filter.include));
|
|
330
|
+
((_c = notificationConfig.filter) === null || _c === void 0 ? void 0 : _c.exclude) && ((_d = filter.exclude) === null || _d === void 0 ? void 0 : _d.push(...notificationConfig.filter.exclude));
|
|
245
331
|
}
|
|
246
332
|
subscription.filter = filter;
|
|
247
|
-
const notificationsHistory = (notificationConfig === null || notificationConfig === void 0 ? void 0 : notificationConfig.notificationsHistory) || ((
|
|
333
|
+
const notificationsHistory = (notificationConfig === null || notificationConfig === void 0 ? void 0 : notificationConfig.notificationsHistory) || ((_e = params === null || params === void 0 ? void 0 : params.config) === null || _e === void 0 ? void 0 : _e.notificationsHistory);
|
|
248
334
|
if (notificationsHistory) {
|
|
249
335
|
const [options, historyFilter] = getFetchHistoryParams(notificationConfig, params);
|
|
250
336
|
const pastNotifications = await getNotificationHistory(options, historyFilter);
|
|
251
337
|
addMultipleNotifications(pastNotifications);
|
|
252
338
|
}
|
|
253
339
|
const onNotification = function (notification) {
|
|
340
|
+
// This function will be called when a notification arrives
|
|
254
341
|
if (notification.isDeleted) {
|
|
255
342
|
removeNotification(notification);
|
|
256
343
|
}
|
|
@@ -264,6 +351,9 @@ export default function useNotifications(params = {}) {
|
|
|
264
351
|
console.error(error);
|
|
265
352
|
}
|
|
266
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Set opaque class to html element
|
|
356
|
+
*/
|
|
267
357
|
function setOpaqueClassName(isOpaque) {
|
|
268
358
|
if (isOpaque) {
|
|
269
359
|
const htmlElement = document.getElementsByTagName("html")[0];
|
|
@@ -272,11 +362,13 @@ export default function useNotifications(params = {}) {
|
|
|
272
362
|
}
|
|
273
363
|
}
|
|
274
364
|
}
|
|
365
|
+
// start receiving Notifications and putting them in state
|
|
275
366
|
useEffect(() => {
|
|
276
367
|
const subscribe = init();
|
|
277
368
|
return () => {
|
|
369
|
+
// Unsubscribe using the subscription ID
|
|
278
370
|
(async () => {
|
|
279
|
-
const subscribeObject =
|
|
371
|
+
const subscribeObject = await subscribe;
|
|
280
372
|
if (subscribeObject) {
|
|
281
373
|
await NotificationClient.unsubscribe(subscribeObject.id);
|
|
282
374
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotifications.js","sourceRoot":"","sources":["../../src/hooks/useNotifications.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useReducer } from \"react\";\nimport { WindowConfig, NotificationsConfig } from \"../components/notifications/types\";\nimport { usePubSub } from \"./usePubSub\";\nimport { NOTIFICATIONS_PUBSUB_TOPIC } from \"../components/notifications/constants\";\nimport { services } from \"@finsemble/finsemble-api\";\ntype NotificationServiceState = services.notification.types.NotificationServiceState;\n\ntype IFilter = services.notification.types.IFilter;\ntype IMuteFilter = services.notification.types.IMuteFilter;\ntype INotification = services.notification.types.INotification;\ntype INotificationHistoryOptions = services.notification.types.INotificationHistoryOptions;\n\nconst { WindowClient, NotificationClient } = FSBL.Clients;\n\nconst initialState: any = { notifications: [] };\n\n/*\nAction Types\n*/\nconst CREATE_MULTIPLE = \"CREATE_MULTIPLE\";\nconst UPDATE = \"UPDATE\";\nconst REMOVE = \"REMOVE\";\n\n/*\n\tReducer\n\t*/\nfunction reducer(state: { notifications: INotification[] }, action: { type: string; payload: any }) {\n\tswitch (action.type) {\n\t\tcase CREATE_MULTIPLE:\n\t\t\treturn {\n\t\t\t\tnotifications: [...state.notifications, ...action.payload],\n\t\t\t};\n\t\tcase UPDATE: {\n\t\t\t// check to see if the notification exists if so update the values\n\t\t\tconst notificationExistsInArray = state.notifications.find(\n\t\t\t\t(notification: INotification) => notification.id === action.payload.id\n\t\t\t);\n\n\t\t\t//if the notification exists then do nothing and return the current state else add the the new notification to the state\n\t\t\tconst notifications = notificationExistsInArray\n\t\t\t\t? state.notifications.map((notification: INotification) =>\n\t\t\t\t\t\tnotification.id === action.payload.id ? action.payload : notification\n\t\t\t\t )\n\t\t\t\t: [action.payload, ...state.notifications];\n\n\t\t\treturn { notifications };\n\t\t}\n\t\tcase REMOVE:\n\t\t\treturn {\n\t\t\t\tnotifications: state.notifications.filter((notification) => notification.id !== action.payload.id),\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error();\n\t}\n}\n\ntype NotificationUIStatePublish = (state: NotificationServiceState) => void;\n\n/**\n * Thin wrapper around usePubSub to give us typesafety for the notification service's UI state.\n * Automatically appends this client's windowName which is used by the notification service to\n * display the notification center on an appropriate monitor.\n */\nexport const useNotificationUI = (): [state: NotificationServiceState, setState: NotificationUIStatePublish] => {\n\tconst [state, setState] = usePubSub(NOTIFICATIONS_PUBSUB_TOPIC);\n\n\tconst setStateAndAddWindowName = (newState: NotificationServiceState) => {\n\t\tsetState({\n\t\t\t...newState,\n\t\t\tmostRecentWindowName: finsembleWindow.name,\n\t\t});\n\t};\n\treturn [state as NotificationServiceState, setStateAndAddWindowName];\n};\n\nconst getActiveDescriptorsByType = (componentType: string): Promise<any[]> =>\n\tnew Promise(async (resolve, reject) => {\n\t\tFSBL.Clients.LauncherClient.getActiveDescriptors((err: any, data: any) => {\n\t\t\tconst activeDescriptors: any[] = [];\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tfor (const key in data) {\n\t\t\t\t\tif (data.hasOwnProperty(key) && data[key]?.componentType === componentType) {\n\t\t\t\t\t\tactiveDescriptors.push(data[key]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tresolve(activeDescriptors);\n\t\t});\n\t});\n\nlet toolbarWindowName: string;\n\nexport const moveToToolbarMonitor = async () => {\n\tconst getToolbarMonitorData = async () =>\n\t\tnew Promise(async (resolve, reject) => {\n\t\t\tif (!toolbarWindowName) {\n\t\t\t\tconst activeDescriptors = await getActiveDescriptorsByType(\"Toolbar\");\n\t\t\t\ttoolbarWindowName = activeDescriptors[0]?.name;\n\t\t\t}\n\t\t\tconst { err, data } = (await FSBL.Clients.LauncherClient.getMonitorInfo({\n\t\t\t\twindowIdentifier: { windowName: toolbarWindowName },\n\t\t\t})) as any;\n\n\t\t\tif (err) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\"Could not get Monitor info\", err);\n\t\t\t\treject(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolve(data);\n\t\t});\n\n\tconst data = (await getToolbarMonitorData()) as any;\n\tconst { data: bounds } = await finsembleWindow.getBounds();\n\tconst width = (bounds?.right ?? 0) - (bounds?.left ?? 0);\n\n\tfinsembleWindow.setBounds(\n\t\t{\n\t\t\tbounds: {\n\t\t\t\ttop: data[\"availableRect\"][\"top\"],\n\t\t\t\tleft: data[\"availableRect\"][\"right\"] - width,\n\t\t\t\theight: data[\"availableRect\"][\"height\"],\n\t\t\t\twidth: width,\n\t\t\t},\n\t\t},\n\t\t(err: any) => {\n\t\t\tif (err) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\"Could not update position\", err);\n\t\t\t}\n\t\t}\n\t);\n};\n\nexport const getOS = () => {\n\tif (navigator.platform.indexOf(\"Win\") != -1) {\n\t\treturn \"Windows\";\n\t} else if (navigator.platform.indexOf(\"Linux\") != -1) {\n\t\treturn \"Linux\";\n\t} else if (navigator.platform.indexOf(\"Mac\") != -1) {\n\t\treturn \"Mac\";\n\t}\n};\n\n/**\n * Example for setting up button clicks\n *\n * @param notification\n * @param action\n */\nexport const doAction = (notification: INotification, action: any) => {\n\ttry {\n\t\tNotificationClient.performAction([notification], action).then(() => {\n\t\t\t// NOTE: The request to perform the action has be sent to the notifications service successfully\n\t\t\t// The action itself has not necessarily been perform successfully\n\t\t\t// 1) alert user notification has been sent (action may not have completed)\n\t\t});\n\t} catch (e) {\n\t\t// NOTE: The request to perform the action has failed\n\t\tconsole.error(\"could not create a notification client\", e);\n\t\tFSBL.Clients.Logger.system.error(\"could not create a notification client\", e);\n\t}\n};\n\n/**\n * Example for setting up button clicks\n *\n * @param filter\n */\nexport const mute = async (filter: IMuteFilter) => {\n\ttry {\n\t\tawait NotificationClient.mute(filter);\n\t} catch (e) {\n\t\t// NOTE: The request to perform the action has failed\n\t\tconsole.error(\"Could not save mute preferences\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not save mute preferences\", e);\n\t}\n};\n\n/**\n * Example for setting up button clicks\n *\n * @param filter\n */\nexport const unmute = async (filter: IMuteFilter) => {\n\ttry {\n\t\tawait NotificationClient.unmute(filter);\n\t} catch (e) {\n\t\t// NOTE: The request to perform the action has failed\n\t\tconsole.error(\"Could not save mute preferences\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not save mute preferences\", e);\n\t}\n};\n\n/**\n * Snooze a notification\n *\n * @param {INotification[]} notifications\n */\nexport const snoozeNotifications = async (notifications: INotification[]) => {\n\tconst preferences: any = await FSBL.Clients.NotificationClient.getPreferences();\n\tconst snoozeAction = new FSBL.Clients.NotificationClient.Action();\n\tsnoozeAction.type = FSBL.Clients.NotificationClient.ActionTypes.SNOOZE;\n\tif (preferences && preferences.defaultSnoozePeriodSeconds) {\n\t\tsnoozeAction.milliseconds = preferences.defaultSnoozePeriodSeconds * 1000;\n\t}\n\tsnoozeAction.buttonText = \"Snooze\";\n\n\tfor (let i = 0; i < notifications.length; i++) {\n\t\tdoAction(notifications[i], snoozeAction);\n\t}\n};\n\n/**\n * Marks a notification as read\n *\n * @param {INotification[]} notifications\n */\nexport const markNotificationsUnread = (notifications: INotification[]) => {\n\ttry {\n\t\tNotificationClient.markUnread(notifications).then(() => {\n\t\t\t// NOTE: The request to perform the action has be sent to the notifications service successfully\n\t\t\t// The action itself has not necessarily been perform successfully\n\t\t});\n\t} catch (e) {\n\t\tconsole.error(\"Error marking messages as unread\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not mark notification as unread\", e);\n\t}\n};\n\n/**\n * Marks a notification as read\n *\n * @param {INotification[]} notifications\n */\nexport const markNotificationsRead = (notifications: INotification[]) => {\n\ttry {\n\t\tNotificationClient.markRead(notifications).then(() => {\n\t\t\t// NOTE: The request to perform the action has be sent to the notifications service successfully\n\t\t\t// The action itself has not necessarily been perform successfully\n\t\t});\n\t} catch (e) {\n\t\tconsole.error(\"Error marking messages as read\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not mark notification as read\", e);\n\t}\n};\n\n/**\n * Dismisses a notification\n *\n * @param {INotification[]} notifications\n */\nexport const dismissNotification = (notifications: INotification[]) => {\n\ttry {\n\t\tNotificationClient.deleteNotifications(notifications).then(() => {\n\t\t\t// NOTE: The request to perform the action has be sent to the notifications service successfully\n\t\t\t// The action itself has not necessarily been perform successfully\n\t\t});\n\t} catch (e) {\n\t\tconsole.error(\"Error marking messages as read\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not mark notification as read\", e);\n\t}\n};\n\nexport const initializeCenterToggle = () => {\n\tconst [uiState, setUIState] = useNotificationUI();\n\n\tconst toggleCenter = () => {\n\t\tsetUIState({\n\t\t\t...uiState,\n\t\t\tshowCenter: !uiState.showCenter,\n\t\t});\n\t};\n\n\treturn {\n\t\ttoggleCenter,\n\t};\n};\n\n/**\n * Get Notification's config from\n */\nexport const getNotificationConfig = (): NotificationsConfig => {\n\tconst config: WindowConfig = WindowClient.options.customData;\n\n\treturn Object.assign(config?.window?.data?.notifications || {}, {\n\t\tisTransparent: config?.window?.options?.transparent || false,\n\t});\n};\n\nexport const getFetchHistoryParams = (config: any, params: any) => {\n\tconst notificationsHistory = config?.notificationsHistory || params?.config?.notificationsHistory;\n\n\t// Backwards compatibility - `since` replaced with `options` object\n\tlet options = notificationsHistory.since ? notificationsHistory.since : null;\n\n\t// Use options object if it's been set in the component config\n\tif (!options) {\n\t\toptions = notificationsHistory?.options;\n\t}\n\n\t// If no options object set and notificationsHistory is true set in config, use the params\n\tif (!options && typeof notificationsHistory === \"boolean\" && notificationsHistory) {\n\t\toptions = params?.config?.notificationsHistory.options;\n\t}\n\n\tconst filter = notificationsHistory.filter ? notificationsHistory.filter : null;\n\n\treturn [options, filter];\n};\n\nexport default function useNotifications(params: any = {}) {\n\tconst [state, dispatch] = useReducer(reducer, initialState);\n\n\t/*\n\t\tAction Creators\n\t*/\n\tconst removeNotification = (notification: INotification) => {\n\t\tdispatch({ type: REMOVE, payload: notification });\n\t};\n\n\tconst addNotification = (notification: INotification) => {\n\t\tdispatch({ type: UPDATE, payload: notification });\n\t};\n\n\tconst addMultipleNotifications = (notifications: INotification[]) => {\n\t\tdispatch({ type: CREATE_MULTIPLE, payload: notifications });\n\t};\n\n\t/**\n\t * Group Notifications by Type\n\t * @param notifications\n\t */\n\tconst groupNotificationsByType = (notifications: INotification[]) => {\n\t\tconst groupBy = (arr: INotification[]) =>\n\t\t\tarr\n\t\t\t\t.map((notification: INotification): string => notification.type ?? \"unknown\")\n\t\t\t\t.reduce((acc: { [x: string]: any }, notificationType: string, index: number) => {\n\t\t\t\t\tacc[notificationType] = [...(acc[notificationType] || []), arr[index]];\n\t\t\t\t\treturn acc;\n\t\t\t\t}, {});\n\n\t\treturn groupBy(notifications);\n\t};\n\n\t/**\n\t * \t * get the past notifications\n\t * WARNING - The default will get all notifications all the way back from 1969!!!\n\t * @param since\n\t * @param filter\n\t */\n\tconst getNotificationHistory = (\n\t\tsince: INotificationHistoryOptions = { sentAfter: \"1969-12-31T23:59:59.999Z\" },\n\t\tfilter: null | IFilter = null\n\t): Promise<INotification[]> => NotificationClient.fetchHistory(since, filter as IFilter);\n\n\tconst notificationIsActive = (notification: INotification, applyMuteFilterOverride?: boolean | undefined) => {\n\t\tlet applyMuteFilters = applyMuteFilterOverride;\n\n\t\tif (typeof applyMuteFilterOverride === \"undefined\") {\n\t\t\tconst config = getNotificationConfig();\n\t\t\tapplyMuteFilters = config?.applyMuteFilters ? config.applyMuteFilters : false;\n\t\t}\n\n\t\treturn (\n\t\t\t!notification.isSnoozed &&\n\t\t\t!notification.isRead &&\n\t\t\t!notification.isDeleted &&\n\t\t\t(applyMuteFilters ? !notification.isMuted : true)\n\t\t);\n\t};\n\n\tconst activeNotifications = (notifications: INotification[], applyMuteFilterOverride?: boolean | undefined) =>\n\t\tnotifications.filter((notification) => notificationIsActive(notification, applyMuteFilterOverride));\n\n\t/**\n\t * Main init function to start the subscription\n\t */\n\tasync function init() {\n\t\ttry {\n\t\t\tconst subscription = new NotificationClient.Subscription();\n\n\t\t\tconst notificationConfig: NotificationsConfig = getNotificationConfig();\n\n\t\t\tconst filter: IFilter = new NotificationClient.Filter();\n\n\t\t\t// make filters from the config\n\t\t\tif (notificationConfig) {\n\t\t\t\tnotificationConfig.filter &&\n\t\t\t\t\tnotificationConfig.filter.include &&\n\t\t\t\t\tfilter.include.push(...notificationConfig.filter.include);\n\n\t\t\t\tnotificationConfig.filter &&\n\t\t\t\t\tnotificationConfig.filter.exclude &&\n\t\t\t\t\tfilter.exclude.push(...notificationConfig.filter.exclude);\n\t\t\t}\n\n\t\t\tsubscription.filter = filter;\n\n\t\t\tconst notificationsHistory = notificationConfig?.notificationsHistory || params?.config?.notificationsHistory;\n\n\t\t\tif (notificationsHistory) {\n\t\t\t\tconst [options, historyFilter] = getFetchHistoryParams(notificationConfig, params);\n\n\t\t\t\tconst pastNotifications = await getNotificationHistory(options, historyFilter);\n\t\t\t\taddMultipleNotifications(pastNotifications);\n\t\t\t}\n\t\t\tconst onNotification = function (notification: INotification) {\n\t\t\t\t// This function will be called when a notification arrives\n\t\t\t\tif (notification.isDeleted) {\n\t\t\t\t\tremoveNotification(notification);\n\t\t\t\t} else {\n\t\t\t\t\taddNotification(notification);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn NotificationClient.subscribe(subscription, onNotification);\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\n\t/**\n\t * Set opaque class to html element\n\t */\n\tfunction setOpaqueClassName(isOpaque: boolean) {\n\t\tif (isOpaque) {\n\t\t\tconst htmlElement = document.getElementsByTagName(\"html\")[0];\n\t\t\tif (!htmlElement.className.includes(\"opaque\")) {\n\t\t\t\thtmlElement.className = `${htmlElement.className} opaque`;\n\t\t\t}\n\t\t}\n\t}\n\n\t// start receiving Notifications and putting them in state\n\tuseEffect(() => {\n\t\tconst subscribe = init();\n\t\treturn () => {\n\t\t\t// Unsubscribe using the subscription ID\n\t\t\t(async () => {\n\t\t\t\tconst subscribeObject = (await subscribe) as any;\n\t\t\t\tif (subscribeObject) {\n\t\t\t\t\tawait NotificationClient.unsubscribe(subscribeObject.id);\n\t\t\t\t}\n\t\t\t})();\n\t\t};\n\t}, []);\n\n\treturn {\n\t\tactiveNotifications,\n\t\taddNotification,\n\t\tnotificationIsActive,\n\t\tgetNotificationHistory,\n\t\tgroupNotificationsByType,\n\t\tnotifications: state.notifications,\n\t\tremoveNotification,\n\t\tsetOpaqueClassName,\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useNotifications.js","sourceRoot":"","sources":["../../src/hooks/useNotifications.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useReducer } from \"react\";\nimport { WindowConfig, NotificationsConfig } from \"../components/notifications/types\";\nimport { usePubSub } from \"./usePubSub\";\nimport { NOTIFICATIONS_PUBSUB_TOPIC } from \"../components/notifications/constants\";\nimport { services } from \"@finsemble/finsemble-api\";\nimport { FEA } from \"@finsemble/finsemble-api\";\ntype NotificationServiceState = services.notification.types.NotificationServiceState;\n\ntype IFilter = services.notification.types.IFilter;\ntype IMuteFilter = services.notification.types.IMuteFilter;\ntype INotification = services.notification.types.INotification;\ntype INotificationHistoryOptions = services.notification.types.INotificationHistoryOptions;\ntype MonitorInfoDetail = FEA.MonitorInfoDetail;\n\nconst { WindowClient, NotificationClient } = FSBL.Clients;\n\nconst initialState: any = { notifications: [] };\n\n/*\nAction Types\n*/\nconst CREATE_MULTIPLE = \"CREATE_MULTIPLE\";\nconst UPDATE = \"UPDATE\";\nconst REMOVE = \"REMOVE\";\n\n/*\n\tReducer\n\t*/\nfunction reducer(state: { notifications: INotification[] }, action: { type: string; payload: any }) {\n\tswitch (action.type) {\n\t\tcase CREATE_MULTIPLE:\n\t\t\treturn {\n\t\t\t\tnotifications: [...state.notifications, ...action.payload],\n\t\t\t};\n\t\tcase UPDATE: {\n\t\t\t// check to see if the notification exists if so update the values\n\t\t\tconst notificationExistsInArray = state.notifications.find(\n\t\t\t\t(notification: INotification) => notification.id === action.payload.id\n\t\t\t);\n\n\t\t\t//if the notification exists then do nothing and return the current state else add the the new notification to the state\n\t\t\tconst notifications = notificationExistsInArray\n\t\t\t\t? state.notifications.map((notification: INotification) =>\n\t\t\t\t\t\tnotification.id === action.payload.id ? action.payload : notification\n\t\t\t\t )\n\t\t\t\t: [action.payload, ...state.notifications];\n\n\t\t\treturn { notifications };\n\t\t}\n\t\tcase REMOVE:\n\t\t\treturn {\n\t\t\t\tnotifications: state.notifications.filter((notification) => notification.id !== action.payload.id),\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error();\n\t}\n}\n\ntype NotificationUIStatePublish = (state: NotificationServiceState) => void;\n\n/**\n * Thin wrapper around usePubSub to give us typesafety for the notification service's UI state.\n * Automatically appends this client's windowName which is used by the notification service to\n * display the notification center on an appropriate monitor.\n */\nexport const useNotificationUI = (): [state: NotificationServiceState, setState: NotificationUIStatePublish] => {\n\tconst [state, setState] = usePubSub(NOTIFICATIONS_PUBSUB_TOPIC);\n\n\tconst setStateAndAddWindowName = (newState: NotificationServiceState) => {\n\t\tsetState({\n\t\t\t...newState,\n\t\t\tmostRecentWindowName: finsembleWindow.name,\n\t\t});\n\t};\n\treturn [state as NotificationServiceState, setStateAndAddWindowName];\n};\n\nconst getActiveDescriptorsByType = (componentType: string): Promise<any[]> =>\n\tnew Promise(async (resolve, reject) => {\n\t\tFSBL.Clients.LauncherClient.getActiveDescriptors((err: any, data: any) => {\n\t\t\tconst activeDescriptors: any[] = [];\n\t\t\tif (err) {\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\tfor (const key in data) {\n\t\t\t\t\tif (data.hasOwnProperty(key) && data[key]?.componentType === componentType) {\n\t\t\t\t\t\tactiveDescriptors.push(data[key]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tresolve(activeDescriptors);\n\t\t});\n\t});\n\nlet toolbarWindowName: string;\n\nexport const moveToToolbarMonitor = async () => {\n\tconst getToolbarMonitorData = async () =>\n\t\tnew Promise<MonitorInfoDetail | undefined>(async (resolve, reject) => {\n\t\t\tif (!toolbarWindowName) {\n\t\t\t\tconst activeDescriptors = await getActiveDescriptorsByType(\"Toolbar\");\n\t\t\t\ttoolbarWindowName = activeDescriptors[0]?.name;\n\t\t\t}\n\t\t\tconst { err, data } = await FSBL.Clients.LauncherClient.getMonitorInfo({\n\t\t\t\twindowIdentifier: { windowName: toolbarWindowName },\n\t\t\t});\n\n\t\t\tif (err) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\"Could not get Monitor info\", err);\n\t\t\t\treject(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolve(data);\n\t\t});\n\n\tconst data = await getToolbarMonitorData();\n\tconst { data: bounds } = await finsembleWindow.getBounds();\n\tconst width = (bounds?.right ?? 0) - (bounds?.left ?? 0);\n\n\t/**\n\t * It's been reported that on docked laptops and some curved monitors that getMonitorInfo returns undefined.\n\t * The root cause of this has not been determined.\n\t */\n\tif (!data) return;\n\tfinsembleWindow.setBounds(\n\t\t{\n\t\t\tbounds: {\n\t\t\t\ttop: data[\"availableRect\"][\"top\"],\n\t\t\t\tleft: data[\"availableRect\"][\"right\"] - width,\n\t\t\t\theight: data[\"availableRect\"][\"height\"],\n\t\t\t\twidth: width,\n\t\t\t},\n\t\t},\n\t\t(err: any) => {\n\t\t\tif (err) {\n\t\t\t\tFSBL.Clients.Logger.system.error(\"Could not update position\", err);\n\t\t\t}\n\t\t}\n\t);\n};\n\nexport const getOS = () => {\n\tif (navigator.platform.indexOf(\"Win\") != -1) {\n\t\treturn \"Windows\";\n\t} else if (navigator.platform.indexOf(\"Linux\") != -1) {\n\t\treturn \"Linux\";\n\t} else if (navigator.platform.indexOf(\"Mac\") != -1) {\n\t\treturn \"Mac\";\n\t}\n};\n\n/**\n * Example for setting up button clicks\n *\n * @param notification\n * @param action\n */\nexport const doAction = (notification: INotification, action: any) => {\n\ttry {\n\t\tNotificationClient.performAction([notification], action).then(() => {\n\t\t\t// NOTE: The request to perform the action has be sent to the notifications service successfully\n\t\t\t// The action itself has not necessarily been perform successfully\n\t\t\t// 1) alert user notification has been sent (action may not have completed)\n\t\t});\n\t} catch (e) {\n\t\t// NOTE: The request to perform the action has failed\n\t\tconsole.error(\"could not create a notification client\", e);\n\t\tFSBL.Clients.Logger.system.error(\"could not create a notification client\", e);\n\t}\n};\n\n/**\n * Example for setting up button clicks\n *\n * @param filter\n */\nexport const mute = async (filter: IMuteFilter) => {\n\ttry {\n\t\tawait NotificationClient.mute(filter);\n\t} catch (e) {\n\t\t// NOTE: The request to perform the action has failed\n\t\tconsole.error(\"Could not save mute preferences\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not save mute preferences\", e);\n\t}\n};\n\n/**\n * Example for setting up button clicks\n *\n * @param filter\n */\nexport const unmute = async (filter: IMuteFilter) => {\n\ttry {\n\t\tawait NotificationClient.unmute(filter);\n\t} catch (e) {\n\t\t// NOTE: The request to perform the action has failed\n\t\tconsole.error(\"Could not save mute preferences\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not save mute preferences\", e);\n\t}\n};\n\n/**\n * Snooze a notification\n *\n * @param {INotification[]} notifications\n */\nexport const snoozeNotifications = async (notifications: INotification[]) => {\n\tconst preferences: any = await FSBL.Clients.NotificationClient.getPreferences();\n\tconst snoozeAction = new FSBL.Clients.NotificationClient.Action();\n\tsnoozeAction.type = FSBL.Clients.NotificationClient.ActionTypes.SNOOZE;\n\tif (preferences && preferences.defaultSnoozePeriodSeconds) {\n\t\tsnoozeAction.milliseconds = preferences.defaultSnoozePeriodSeconds * 1000;\n\t}\n\tsnoozeAction.buttonText = \"Snooze\";\n\n\tfor (let i = 0; i < notifications.length; i++) {\n\t\tdoAction(notifications[i], snoozeAction);\n\t}\n};\n\n/**\n * Marks a notification as read\n *\n * @param {INotification[]} notifications\n */\nexport const markNotificationsUnread = (notifications: INotification[]) => {\n\ttry {\n\t\tNotificationClient.markUnread(notifications).then(() => {\n\t\t\t// NOTE: The request to perform the action has be sent to the notifications service successfully\n\t\t\t// The action itself has not necessarily been perform successfully\n\t\t});\n\t} catch (e) {\n\t\tconsole.error(\"Error marking messages as unread\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not mark notification as unread\", e);\n\t}\n};\n\n/**\n * Marks a notification as read\n *\n * @param {INotification[]} notifications\n */\nexport const markNotificationsRead = (notifications: INotification[]) => {\n\ttry {\n\t\tNotificationClient.markRead(notifications).then(() => {\n\t\t\t// NOTE: The request to perform the action has be sent to the notifications service successfully\n\t\t\t// The action itself has not necessarily been perform successfully\n\t\t});\n\t} catch (e) {\n\t\tconsole.error(\"Error marking messages as read\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not mark notification as read\", e);\n\t}\n};\n\n/**\n * Dismisses a notification\n *\n * @param {INotification[]} notifications\n */\nexport const dismissNotification = (notifications: INotification[]) => {\n\ttry {\n\t\tNotificationClient.deleteNotifications(notifications).then(() => {\n\t\t\t// NOTE: The request to perform the action has be sent to the notifications service successfully\n\t\t\t// The action itself has not necessarily been perform successfully\n\t\t});\n\t} catch (e) {\n\t\tconsole.error(\"Error marking messages as read\", e);\n\t\tFSBL.Clients.Logger.system.error(\"Could not mark notification as read\", e);\n\t}\n};\n\nexport const initializeCenterToggle = () => {\n\tconst [uiState, setUIState] = useNotificationUI();\n\n\tconst toggleCenter = () => {\n\t\tsetUIState({\n\t\t\t...uiState,\n\t\t\tshowCenter: !uiState.showCenter,\n\t\t});\n\t};\n\n\treturn {\n\t\ttoggleCenter,\n\t};\n};\n\n/**\n * Get Notification's config from\n */\nexport const getNotificationConfig = (): NotificationsConfig => {\n\tconst config: WindowConfig = WindowClient.options.customData;\n\n\treturn Object.assign(config?.window?.data?.notifications || {}, {\n\t\tisTransparent: config?.window?.options?.transparent || false,\n\t});\n};\n\nexport const getFetchHistoryParams = (config: any, params: any) => {\n\tconst notificationsHistory = config?.notificationsHistory || params?.config?.notificationsHistory;\n\n\t// Backwards compatibility - `since` replaced with `options` object\n\tlet options = notificationsHistory.since ? notificationsHistory.since : null;\n\n\t// Use options object if it's been set in the component config\n\tif (!options) {\n\t\toptions = notificationsHistory?.options;\n\t}\n\n\t// If no options object set and notificationsHistory is true set in config, use the params\n\tif (!options && typeof notificationsHistory === \"boolean\" && notificationsHistory) {\n\t\toptions = params?.config?.notificationsHistory.options;\n\t}\n\n\tconst filter = notificationsHistory.filter ? notificationsHistory.filter : null;\n\n\treturn [options, filter];\n};\n\nexport default function useNotifications(params: any = {}) {\n\tconst [state, dispatch] = useReducer(reducer, initialState);\n\n\t/*\n\t\tAction Creators\n\t*/\n\tconst removeNotification = (notification: INotification) => {\n\t\tdispatch({ type: REMOVE, payload: notification });\n\t};\n\n\tconst addNotification = (notification: INotification) => {\n\t\tdispatch({ type: UPDATE, payload: notification });\n\t};\n\n\tconst addMultipleNotifications = (notifications: INotification[]) => {\n\t\tdispatch({ type: CREATE_MULTIPLE, payload: notifications });\n\t};\n\n\t/**\n\t * Group Notifications by Type\n\t * @param notifications\n\t */\n\tconst groupNotificationsByType = (notifications: INotification[]) => {\n\t\tconst groupBy = (arr: INotification[]) =>\n\t\t\tarr\n\t\t\t\t.map((notification: INotification): string => notification.type ?? \"unknown\")\n\t\t\t\t.reduce((acc: { [x: string]: any }, notificationType: string, index: number) => {\n\t\t\t\t\tacc[notificationType] = [...(acc[notificationType] || []), arr[index]];\n\t\t\t\t\treturn acc;\n\t\t\t\t}, {});\n\n\t\treturn groupBy(notifications);\n\t};\n\n\t/**\n\t * \t * get the past notifications\n\t * WARNING - The default will get all notifications all the way back from 1969!!!\n\t * @param since\n\t * @param filter\n\t */\n\tconst getNotificationHistory = (\n\t\tsince: INotificationHistoryOptions = { sentAfter: \"1969-12-31T23:59:59.999Z\" },\n\t\tfilter: null | IFilter = null\n\t): Promise<INotification[]> => NotificationClient.fetchHistory(since, filter as IFilter);\n\n\tconst notificationIsActive = (notification: INotification, applyMuteFilterOverride?: boolean | undefined) => {\n\t\tlet applyMuteFilters = applyMuteFilterOverride;\n\n\t\tif (typeof applyMuteFilterOverride === \"undefined\") {\n\t\t\tconst config = getNotificationConfig();\n\t\t\tapplyMuteFilters = config?.applyMuteFilters ? config.applyMuteFilters : false;\n\t\t}\n\n\t\treturn (\n\t\t\t!notification.isSnoozed &&\n\t\t\t!notification.isRead &&\n\t\t\t!notification.isDeleted &&\n\t\t\t(applyMuteFilters ? !notification.isMuted : true)\n\t\t);\n\t};\n\n\tconst activeNotifications = (notifications: INotification[], applyMuteFilterOverride?: boolean | undefined) =>\n\t\tnotifications.filter((notification) => notificationIsActive(notification, applyMuteFilterOverride));\n\n\t/**\n\t * Main init function to start the subscription\n\t */\n\tasync function init() {\n\t\ttry {\n\t\t\tconst subscription = new NotificationClient.Subscription();\n\n\t\t\tconst notificationConfig: NotificationsConfig = getNotificationConfig();\n\n\t\t\tconst filter: IFilter = new NotificationClient.Filter();\n\n\t\t\t// make filters from the config\n\t\t\tif (notificationConfig) {\n\t\t\t\tnotificationConfig.filter?.include && filter.include?.push(...notificationConfig.filter.include);\n\t\t\t\tnotificationConfig.filter?.exclude && filter.exclude?.push(...notificationConfig.filter.exclude);\n\t\t\t}\n\n\t\t\tsubscription.filter = filter;\n\n\t\t\tconst notificationsHistory = notificationConfig?.notificationsHistory || params?.config?.notificationsHistory;\n\n\t\t\tif (notificationsHistory) {\n\t\t\t\tconst [options, historyFilter] = getFetchHistoryParams(notificationConfig, params);\n\n\t\t\t\tconst pastNotifications = await getNotificationHistory(options, historyFilter);\n\t\t\t\taddMultipleNotifications(pastNotifications);\n\t\t\t}\n\t\t\tconst onNotification = function (notification: INotification) {\n\t\t\t\t// This function will be called when a notification arrives\n\t\t\t\tif (notification.isDeleted) {\n\t\t\t\t\tremoveNotification(notification);\n\t\t\t\t} else {\n\t\t\t\t\taddNotification(notification);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn NotificationClient.subscribe(subscription, onNotification);\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\n\t/**\n\t * Set opaque class to html element\n\t */\n\tfunction setOpaqueClassName(isOpaque: boolean) {\n\t\tif (isOpaque) {\n\t\t\tconst htmlElement = document.getElementsByTagName(\"html\")[0];\n\t\t\tif (!htmlElement.className.includes(\"opaque\")) {\n\t\t\t\thtmlElement.className = `${htmlElement.className} opaque`;\n\t\t\t}\n\t\t}\n\t}\n\n\t// start receiving Notifications and putting them in state\n\tuseEffect(() => {\n\t\tconst subscribe = init();\n\t\treturn () => {\n\t\t\t// Unsubscribe using the subscription ID\n\t\t\t(async () => {\n\t\t\t\tconst subscribeObject = await subscribe;\n\t\t\t\tif (subscribeObject) {\n\t\t\t\t\tawait NotificationClient.unsubscribe(subscribeObject.id);\n\t\t\t\t}\n\t\t\t})();\n\t\t};\n\t}, []);\n\n\treturn {\n\t\tactiveNotifications,\n\t\taddNotification,\n\t\tnotificationIsActive,\n\t\tgetNotificationHistory,\n\t\tgroupNotificationsByType,\n\t\tnotifications: state.notifications,\n\t\tremoveNotification,\n\t\tsetOpaqueClassName,\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOutsideClickDetector.js","sourceRoot":"","sources":["../../src/hooks/useOutsideClickDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useOutsideClickDetector.js","sourceRoot":"","sources":["../../src/hooks/useOutsideClickDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAA4C,EAAE,EAAY,EAAE,EAAE;IACrG,SAAS,CAAC,GAAG,EAAE;QACd,SAAS,kBAAkB,CAAC,KAAiB;YAC5C,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC/D,EAAE,EAAE,CAAC;aACL;QACF,CAAC;QACD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE;YACX,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC/D,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,CAAC,CAAC","sourcesContent":["import { MutableRefObject, useEffect } from \"react\";\n\n/**\n * Hook that detects clicks outside of the passed ref and executes a function\n */\nexport const useOutsideClickDetector = (ref: MutableRefObject<null | HTMLDivElement>, fn: Function) => {\n\tuseEffect(() => {\n\t\tfunction handleClickOutside(event: MouseEvent) {\n\t\t\tif (ref.current && !ref.current.contains(event.target as Node)) {\n\t\t\t\tfn();\n\t\t\t}\n\t\t}\n\t\tdocument.addEventListener(\"mousedown\", handleClickOutside);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"mousedown\", handleClickOutside);\n\t\t};\n\t}, [ref]);\n};\n"]}
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A generic effect for getting and setting state dynamically from a Router pubsub channel.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} topic The pubsub topic (i.e. channel) to subscribe
|
|
5
|
+
* @param {object} initialMessage The initial state (defaults to empty object)
|
|
6
|
+
* @returns [object, function] The current state of the pubsub channel (or initialMessage if no state exists).
|
|
7
|
+
* The second returned array parameter is a publish function which can be used to update state.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* // Inside a React functional component
|
|
11
|
+
* const [currentState, publish] = usePubSub("topic", {});
|
|
12
|
+
* console.log(currentState);
|
|
13
|
+
*
|
|
14
|
+
* onClick = () => {
|
|
15
|
+
* publish(someNewState);
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
1
18
|
declare function usePubSub(topic: string, initialMessage?: object): [{
|
|
2
19
|
[key: string]: any;
|
|
3
20
|
}, Function];
|