@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FinsembleProvider.js","sourceRoot":"","sources":["../../src/components/FinsembleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FinsembleProvider.js","sourceRoot":"","sources":["../../src/components/FinsembleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,oDAAoD;AAEpD,2BAA2B;AAE3B,OAAO,EAAE,WAAW,EAAE,CAAC;AAcvB,MAAM,CAAC,MAAM,iBAAiB,GAAoD,CAAC,KAAK,EAAE,EAAE;IAC3F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,KAAK;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAA;YACpC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,IAAG,KAAK,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { store, createStore } from \"../store\";\nimport { Provider } from \"react-redux\";\nimport { useState, useEffect } from \"react\";\n//import { common } from \"@finsemble/finsemble-api\";\n\n//let { Globals } = common;\n\nexport { createStore };\n\n/**\n * The <FinsembleProvider> must be an ancestor of any Finsemble React UI components or hooks.\n * It manages FSBL initialization (ensuring that all components and hooks are operating with a properly initialized API.)\n * It also constructs the UI API's redux store and makes it available through a Context Provider for all descendent components and hooks.\n *\n * The <FinsembleProvider> will render its children.\n */\n\nexport type FinsembleProviderProps = {\n\tstore?: typeof store;\n};\n\nexport const FinsembleProvider: React.FunctionComponent<FinsembleProviderProps> = (props) => {\n\tconst [ready, setReady] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (ready) return;\n\t\tconst release = () => {\n\t\t\tsetReady(true);\n\t\t};\n\t\twindow.FSBL && FSBL?.addEventListener\n\t\t\t? FSBL.addEventListener(\"onReady\", release)\n\t\t\t: window.addEventListener(\"FSBLReady\", release);\n\t}, [ready]);\n\n\treturn ready ? <Provider store={props.store || store}>{props.children}</Provider> : null;\n};\n"]}
|
|
@@ -3,4 +3,8 @@
|
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/// <reference types="react" />
|
|
6
|
+
/**
|
|
7
|
+
* A UI component that stores all the applications and allows the end user to add, remove, browse, or launch an application
|
|
8
|
+
* from the app catalog window.
|
|
9
|
+
*/
|
|
6
10
|
export declare const AppCatalog: () => JSX.Element;
|
|
@@ -6,6 +6,10 @@ import React, { useState, useEffect } from "react";
|
|
|
6
6
|
import { createStore } from "./stores/appStore";
|
|
7
7
|
import { AppCatalogComponent } from "./AppCatalogComponent";
|
|
8
8
|
import storeActions from "./stores/storeActions";
|
|
9
|
+
/**
|
|
10
|
+
* A UI component that stores all the applications and allows the end user to add, remove, browse, or launch an application
|
|
11
|
+
* from the app catalog window.
|
|
12
|
+
*/
|
|
9
13
|
export const AppCatalog = () => {
|
|
10
14
|
const [isReady, setIsReady] = useState(false);
|
|
11
15
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppCatalog.js","sourceRoot":"","sources":["../../../src/components/appCatalog/AppCatalog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,YAAY,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"AppCatalog.js","sourceRoot":"","sources":["../../../src/components/appCatalog/AppCatalog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC9B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,SAAS,CAAC,GAAG,EAAE;QACd,WAAW,CAAC,GAAG,EAAE;YAChB,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC5B,UAAU,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO,0CAAG,OAAO,IAAI,oBAAC,mBAAmB,OAAG,CAAI,CAAC;AAClD,CAAC,CAAC","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { createStore } from \"./stores/appStore\";\nimport { AppCatalogComponent } from \"./AppCatalogComponent\";\nimport storeActions from \"./stores/storeActions\";\n\n/**\n * A UI component that stores all the applications and allows the end user to add, remove, browse, or launch an application\n * from the app catalog window.\n */\nexport const AppCatalog = () => {\n\tconst [isReady, setIsReady] = useState(false);\n\tuseEffect(() => {\n\t\tcreateStore(() => {\n\t\t\tstoreActions.initialize(() => {\n\t\t\t\tsetIsReady(true);\n\t\t\t});\n\t\t});\n\t\treturn () => {};\n\t});\n\treturn <>{isReady && <AppCatalogComponent />}</>;\n};\n"]}
|
|
@@ -2,23 +2,81 @@ export class AppCatalogComponent extends React.Component<any, any, any> {
|
|
|
2
2
|
constructor(props: any);
|
|
3
3
|
bindCorrectContext(): void;
|
|
4
4
|
addedAppsChanged(): void;
|
|
5
|
+
/**
|
|
6
|
+
* Force an update. Used to update from store listeners.
|
|
7
|
+
*
|
|
8
|
+
* @memberof AppMarket
|
|
9
|
+
*/
|
|
5
10
|
update(): void;
|
|
11
|
+
/**
|
|
12
|
+
* Action to take when the back button is clicked (which just goes home)
|
|
13
|
+
*/
|
|
6
14
|
goHome(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Calls the store to add a tag to the activeTag list. Also updates the app view to switch to the AppResults page (since adding a tag implies filtering has begun)
|
|
17
|
+
* @param {string} tag The name of the tag to add
|
|
18
|
+
*/
|
|
7
19
|
addTag(tag: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Calls the store to remove a tag from the activeTag list. Also updates the app view to switch to the homepage if all tags have been removed
|
|
22
|
+
* @param {string} tag The name of the tag to add
|
|
23
|
+
*/
|
|
8
24
|
removeTag(tag: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Performs a search through the catalog
|
|
27
|
+
* @param {string} search The text to search the catalog with
|
|
28
|
+
*/
|
|
9
29
|
changeSearch(search: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Opens the AppShowcase page for the app supplied
|
|
32
|
+
*/
|
|
10
33
|
openAppShowcase(): void;
|
|
34
|
+
/**
|
|
35
|
+
* When the notification for installing/removing an app is shown a timeout is set to call this function to cease showing the notification
|
|
36
|
+
*/
|
|
11
37
|
stopShowingInstalledNotification(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Compiles a list of apps that are installed from the information received back from appd
|
|
40
|
+
* and the information contained on the system
|
|
41
|
+
* @param {boolean} filtered If true, uses the filtered apps array. Otherwise uses all apps
|
|
42
|
+
*/
|
|
12
43
|
compileAddedInfo(filtered: boolean): any;
|
|
13
44
|
getPageContents(): JSX.Element;
|
|
45
|
+
/**
|
|
46
|
+
* Determines the apps page based on the state of the activeTags, search text, etc
|
|
47
|
+
*/
|
|
14
48
|
determineActivePage(): string | undefined;
|
|
15
49
|
navigateToShowcase(id: any): void;
|
|
16
50
|
viewApp(error: any, event: any): void;
|
|
51
|
+
/**
|
|
52
|
+
* Checks if we have an activeApp defined
|
|
53
|
+
*
|
|
54
|
+
* @returns {boolean}
|
|
55
|
+
* @memberof AppMarket
|
|
56
|
+
*/
|
|
17
57
|
isActiveApp(): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Returns the active tags from the store
|
|
60
|
+
*
|
|
61
|
+
* @returns {array} activeTags
|
|
62
|
+
* @memberof AppMarket
|
|
63
|
+
*/
|
|
18
64
|
getActiveTags(): array;
|
|
19
65
|
_asyncAppRequest: Promise<void> | undefined;
|
|
20
66
|
_asyncTagsRequest: Promise<void> | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Returns the activeApp from the Store
|
|
69
|
+
*
|
|
70
|
+
* @returns {string} activeApp
|
|
71
|
+
* @memberof AppMarket
|
|
72
|
+
*/
|
|
21
73
|
getActiveApp(): string;
|
|
74
|
+
/**
|
|
75
|
+
* Returns the filtered list of apps from search
|
|
76
|
+
*
|
|
77
|
+
* @returns {object} filteredApps
|
|
78
|
+
* @memberof AppMarket
|
|
79
|
+
*/
|
|
22
80
|
getFilteredApps(): object;
|
|
23
81
|
}
|
|
24
82
|
import React from "react";
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
// components
|
|
2
3
|
import SearchBar from "./components/SearchBar";
|
|
3
4
|
import Home from "./components/Home";
|
|
4
5
|
import AppResults from "./components/AppResults";
|
|
5
6
|
import AppShowcase from "./components/Showcase/AppShowcase";
|
|
7
|
+
// data
|
|
6
8
|
import { getStore } from "./stores/appStore";
|
|
7
9
|
import storeActions from "./stores/storeActions";
|
|
8
10
|
import "../../assets/css/appCatalog.css";
|
|
@@ -15,7 +17,7 @@ export class AppCatalogComponent extends React.Component {
|
|
|
15
17
|
serverError: false,
|
|
16
18
|
installed: [],
|
|
17
19
|
tags: [],
|
|
18
|
-
installationActionTaken: null,
|
|
20
|
+
installationActionTaken: null, // type: string | null
|
|
19
21
|
};
|
|
20
22
|
this.bindCorrectContext();
|
|
21
23
|
}
|
|
@@ -36,7 +38,10 @@ export class AppCatalogComponent extends React.Component {
|
|
|
36
38
|
this.isActiveApp = this.isActiveApp.bind(this);
|
|
37
39
|
this.getActiveTags = this.getActiveTags.bind(this);
|
|
38
40
|
}
|
|
41
|
+
// eslint-disable-next-line react/no-deprecated
|
|
39
42
|
UNSAFE_componentWillMount() {
|
|
43
|
+
// For more information on async react rendering, see here
|
|
44
|
+
// https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html
|
|
40
45
|
this.setState({
|
|
41
46
|
isLoading: true,
|
|
42
47
|
}, () => {
|
|
@@ -76,6 +81,7 @@ export class AppCatalogComponent extends React.Component {
|
|
|
76
81
|
getStore().addListener({ field: "filteredApps" }, this.update);
|
|
77
82
|
getStore().addListener({ field: "activeTags" }, this.update);
|
|
78
83
|
getStore().addListener({ field: "activeApp" }, this.openAppShowcase);
|
|
84
|
+
// Get notified when user wants to view an app
|
|
79
85
|
FSBL.Clients.RouterClient.addListener("viewApp", this.viewApp);
|
|
80
86
|
let installed = storeActions.getInstalledApps();
|
|
81
87
|
this.setState({
|
|
@@ -87,7 +93,9 @@ export class AppCatalogComponent extends React.Component {
|
|
|
87
93
|
getStore().removeListener({ field: "filteredApps" }, this.update);
|
|
88
94
|
getStore().removeListener({ field: "activeTags" }, this.update);
|
|
89
95
|
getStore().removeListener({ field: "activeApp" }, this.openAppShowcase);
|
|
96
|
+
// Get notified when user wants to view an app
|
|
90
97
|
FSBL.Clients.RouterClient.removeListener("viewApp", this.viewApp);
|
|
98
|
+
// Make sure async requests have finished.
|
|
91
99
|
if (this._asyncAppRequest && this._asyncAppRequest.cancel) {
|
|
92
100
|
this._asyncAppRequest.cancel();
|
|
93
101
|
}
|
|
@@ -101,9 +109,11 @@ export class AppCatalogComponent extends React.Component {
|
|
|
101
109
|
addedAppsChanged() {
|
|
102
110
|
let action;
|
|
103
111
|
if (this.state.installed.length > Object.keys(storeActions.getInstalledApps()).length) {
|
|
112
|
+
// If the components installed apps is greater than that of the store, that means an app was removed
|
|
104
113
|
action = "remove";
|
|
105
114
|
}
|
|
106
115
|
else if (this.state.installed.length < Object.keys(storeActions.getInstalledApps()).length) {
|
|
116
|
+
// If the component's installed apps is less than that of the store, that means an app was added
|
|
107
117
|
action = "add";
|
|
108
118
|
}
|
|
109
119
|
if (action) {
|
|
@@ -116,9 +126,17 @@ export class AppCatalogComponent extends React.Component {
|
|
|
116
126
|
});
|
|
117
127
|
}
|
|
118
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Force an update. Used to update from store listeners.
|
|
131
|
+
*
|
|
132
|
+
* @memberof AppMarket
|
|
133
|
+
*/
|
|
119
134
|
update() {
|
|
120
135
|
this.forceUpdate();
|
|
121
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Determines the apps page based on the state of the activeTags, search text, etc
|
|
139
|
+
*/
|
|
122
140
|
determineActivePage() {
|
|
123
141
|
const activeTags = this.getActiveTags();
|
|
124
142
|
const filteredApps = this.getFilteredApps();
|
|
@@ -136,30 +154,72 @@ export class AppCatalogComponent extends React.Component {
|
|
|
136
154
|
}
|
|
137
155
|
return page;
|
|
138
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Returns the activeApp from the Store
|
|
159
|
+
*
|
|
160
|
+
* @returns {string} activeApp
|
|
161
|
+
* @memberof AppMarket
|
|
162
|
+
*/
|
|
139
163
|
getActiveApp() {
|
|
140
164
|
return storeActions.getActiveApp();
|
|
141
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* Checks if we have an activeApp defined
|
|
168
|
+
*
|
|
169
|
+
* @returns {boolean}
|
|
170
|
+
* @memberof AppMarket
|
|
171
|
+
*/
|
|
142
172
|
isActiveApp() {
|
|
143
173
|
return storeActions.getActiveApp() !== null;
|
|
144
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Returns the active tags from the store
|
|
177
|
+
*
|
|
178
|
+
* @returns {array} activeTags
|
|
179
|
+
* @memberof AppMarket
|
|
180
|
+
*/
|
|
145
181
|
getActiveTags() {
|
|
146
182
|
return storeActions.getActiveTags();
|
|
147
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Returns the filtered list of apps from search
|
|
186
|
+
*
|
|
187
|
+
* @returns {object} filteredApps
|
|
188
|
+
* @memberof AppMarket
|
|
189
|
+
*/
|
|
148
190
|
getFilteredApps() {
|
|
149
191
|
return storeActions.getFilteredApps();
|
|
150
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Calls the store to add a tag to the activeTag list. Also updates the app view to switch to the AppResults page (since adding a tag implies filtering has begun)
|
|
195
|
+
* @param {string} tag The name of the tag to add
|
|
196
|
+
*/
|
|
151
197
|
addTag(tag) {
|
|
152
198
|
storeActions.addTag(tag);
|
|
153
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Calls the store to remove a tag from the activeTag list. Also updates the app view to switch to the homepage if all tags have been removed
|
|
202
|
+
* @param {string} tag The name of the tag to add
|
|
203
|
+
*/
|
|
154
204
|
removeTag(tag) {
|
|
155
205
|
storeActions.removeTag(tag);
|
|
156
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Action to take when the back button is clicked (which just goes home)
|
|
209
|
+
*/
|
|
157
210
|
goHome() {
|
|
158
211
|
storeActions.goHome();
|
|
159
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Performs a search through the catalog
|
|
215
|
+
* @param {string} search The text to search the catalog with
|
|
216
|
+
*/
|
|
160
217
|
changeSearch(search) {
|
|
161
218
|
storeActions.searchApps(search);
|
|
162
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* When the notification for installing/removing an app is shown a timeout is set to call this function to cease showing the notification
|
|
222
|
+
*/
|
|
163
223
|
stopShowingInstalledNotification() {
|
|
164
224
|
this.setState({
|
|
165
225
|
installationActionTaken: null,
|
|
@@ -168,6 +228,9 @@ export class AppCatalogComponent extends React.Component {
|
|
|
168
228
|
navigateToShowcase(id) {
|
|
169
229
|
storeActions.openApp(id);
|
|
170
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Opens the AppShowcase page for the app supplied
|
|
233
|
+
*/
|
|
171
234
|
openAppShowcase() {
|
|
172
235
|
let app = storeActions.getActiveApp();
|
|
173
236
|
if (app !== null) {
|
|
@@ -177,6 +240,11 @@ export class AppCatalogComponent extends React.Component {
|
|
|
177
240
|
}
|
|
178
241
|
this.forceUpdate();
|
|
179
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Compiles a list of apps that are installed from the information received back from appd
|
|
245
|
+
* and the information contained on the system
|
|
246
|
+
* @param {boolean} filtered If true, uses the filtered apps array. Otherwise uses all apps
|
|
247
|
+
*/
|
|
180
248
|
compileAddedInfo(filtered) {
|
|
181
249
|
const { installed } = this.state;
|
|
182
250
|
const forceSearch = storeActions.getForceSearch();
|
|
@@ -196,6 +264,7 @@ export class AppCatalogComponent extends React.Component {
|
|
|
196
264
|
const activeTags = this.getActiveTags();
|
|
197
265
|
const activePage = this.determineActivePage();
|
|
198
266
|
const apps = this.compileAddedInfo(filteredApps.length > 0);
|
|
267
|
+
// Force default case if activepage isn't search and apps.length is 0
|
|
199
268
|
if (apps.length === 0 && activePage !== "appSearch")
|
|
200
269
|
activePage = -1;
|
|
201
270
|
const theApp = this.compileAddedInfo(false).find((app) => this.getActiveApp() === app.appId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppCatalogComponent.js","sourceRoot":"","sources":["../../../src/components/appCatalog/AppCatalogComponent.jsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n// components\nimport SearchBar from \"./components/SearchBar\";\nimport Home from \"./components/Home\";\nimport AppResults from \"./components/AppResults\";\nimport AppShowcase from \"./components/Showcase/AppShowcase\";\n\n// data\nimport { getStore } from \"./stores/appStore\";\nimport storeActions from \"./stores/storeActions\";\n\nimport \"../../assets/css/appCatalog.css\";\n\nexport class AppCatalogComponent extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tapps: [], // type: AppMetadata (from \"../../../types/fdc3\")\n\t\t\tisLoading: false,\n\t\t\tserverError: false,\n\t\t\tinstalled: [],\n\t\t\ttags: [], // type: string[]\n\t\t\tinstallationActionTaken: null, // type: string | null\n\t\t};\n\t\tthis.bindCorrectContext();\n\t}\n\n\tbindCorrectContext() {\n\t\tthis.addedAppsChanged = this.addedAppsChanged.bind(this);\n\t\tthis.update = this.update.bind(this);\n\t\tthis.goHome = this.goHome.bind(this);\n\t\tthis.addTag = this.addTag.bind(this);\n\t\tthis.removeTag = this.removeTag.bind(this);\n\t\tthis.changeSearch = this.changeSearch.bind(this);\n\t\tthis.openAppShowcase = this.openAppShowcase.bind(this);\n\t\tthis.stopShowingInstalledNotification = this.stopShowingInstalledNotification.bind(this);\n\t\tthis.compileAddedInfo = this.compileAddedInfo.bind(this);\n\t\tthis.getPageContents = this.getPageContents.bind(this);\n\t\tthis.determineActivePage = this.determineActivePage.bind(this);\n\t\tthis.navigateToShowcase = this.navigateToShowcase.bind(this);\n\t\tthis.viewApp = this.viewApp.bind(this);\n\t\tthis.isActiveApp = this.isActiveApp.bind(this);\n\t\tthis.getActiveTags = this.getActiveTags.bind(this);\n\t}\n\n\t// eslint-disable-next-line react/no-deprecated\n\tUNSAFE_componentWillMount() {\n\t\t// For more information on async react rendering, see here\n\t\t// https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html\n\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tisLoading: true,\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tthis._asyncAppRequest = storeActions\n\t\t\t\t\t.getApps()\n\t\t\t\t\t.then((apps) => {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tapps,\n\t\t\t\t\t\t\tisLoading: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\tthis.setState(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tserverError: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\tFSBL.Clients.Logger.error(\"Error connecting to FDC3 AppD server.\", err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t}\n\t\t);\n\n\t\tthis._asyncTagsRequest = storeActions\n\t\t\t.getTags()\n\t\t\t.then((tags) => {\n\t\t\t\tthis.setState({\n\t\t\t\t\ttags,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.setState(\n\t\t\t\t\t{\n\t\t\t\t\t\tserverError: true,\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tFSBL.Clients.Logger.error(\"Error retrieving tags from FDC3 AppD server.\", err);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tgetStore().addListener({ field: \"appDefinitions\" }, this.addedAppsChanged);\n\t\tgetStore().addListener({ field: \"filteredApps\" }, this.update);\n\t\tgetStore().addListener({ field: \"activeTags\" }, this.update);\n\t\tgetStore().addListener({ field: \"activeApp\" }, this.openAppShowcase);\n\t\t// Get notified when user wants to view an app\n\t\tFSBL.Clients.RouterClient.addListener(\"viewApp\", this.viewApp);\n\t\tlet installed = storeActions.getInstalledApps();\n\n\t\tthis.setState({\n\t\t\tinstalled: Object.keys(installed),\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tgetStore().removeListener({ field: \"appDefinitions\" }, this.addedAppsChanged);\n\t\tgetStore().removeListener({ field: \"filteredApps\" }, this.update);\n\t\tgetStore().removeListener({ field: \"activeTags\" }, this.update);\n\t\tgetStore().removeListener({ field: \"activeApp\" }, this.openAppShowcase);\n\t\t// Get notified when user wants to view an app\n\t\tFSBL.Clients.RouterClient.removeListener(\"viewApp\", this.viewApp);\n\n\t\t// Make sure async requests have finished.\n\t\tif (this._asyncAppRequest && this._asyncAppRequest.cancel) {\n\t\t\tthis._asyncAppRequest.cancel();\n\t\t}\n\n\t\tif (this._asyncTagsRequest && this._asyncTagsRequest.cancel) {\n\t\t\tthis._asyncTagsRequest.cancel();\n\t\t}\n\t}\n\n\tviewApp(error, event) {\n\t\t!error && this.navigateToShowcase(event.data.app.appID);\n\t}\n\n\taddedAppsChanged() {\n\t\tlet action;\n\t\tif (this.state.installed.length > Object.keys(storeActions.getInstalledApps()).length) {\n\t\t\t// If the components installed apps is greater than that of the store, that means an app was removed\n\t\t\taction = \"remove\";\n\t\t} else if (this.state.installed.length < Object.keys(storeActions.getInstalledApps()).length) {\n\t\t\t// If the component's installed apps is less than that of the store, that means an app was added\n\t\t\taction = \"add\";\n\t\t}\n\n\t\tif (action) {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tinstallationActionTaken: action,\n\t\t\t\t\tinstalled: Object.keys(storeActions.getInstalledApps()),\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tsetTimeout(this.stopShowingInstalledNotification, 1500);\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Force an update. Used to update from store listeners.\n\t *\n\t * @memberof AppMarket\n\t */\n\tupdate() {\n\t\tthis.forceUpdate();\n\t}\n\n\t/**\n\t * Determines the apps page based on the state of the activeTags, search text, etc\n\t */\n\tdetermineActivePage() {\n\t\tconst activeTags = this.getActiveTags();\n\t\tconst filteredApps = this.getFilteredApps();\n\t\tconst activeApp = this.getActiveApp();\n\t\tconst forceSearch = storeActions.getForceSearch();\n\t\tlet page;\n\n\t\tif (activeApp && !forceSearch) {\n\t\t\tpage = \"showcase\";\n\t\t} else if (filteredApps.length > 0 || forceSearch) {\n\t\t\tpage = \"appSearch\";\n\t\t} else if (filteredApps.length === 0 && activeTags.length === 0) {\n\t\t\tpage = \"home\";\n\t\t}\n\n\t\treturn page;\n\t}\n\n\t/**\n\t * Returns the activeApp from the Store\n\t *\n\t * @returns {string} activeApp\n\t * @memberof AppMarket\n\t */\n\tgetActiveApp() {\n\t\treturn storeActions.getActiveApp();\n\t}\n\n\t/**\n\t * Checks if we have an activeApp defined\n\t *\n\t * @returns {boolean}\n\t * @memberof AppMarket\n\t */\n\tisActiveApp() {\n\t\treturn storeActions.getActiveApp() !== null;\n\t}\n\n\t/**\n\t * Returns the active tags from the store\n\t *\n\t * @returns {array} activeTags\n\t * @memberof AppMarket\n\t */\n\tgetActiveTags() {\n\t\treturn storeActions.getActiveTags();\n\t}\n\n\t/**\n\t * Returns the filtered list of apps from search\n\t *\n\t * @returns {object} filteredApps\n\t * @memberof AppMarket\n\t */\n\tgetFilteredApps() {\n\t\treturn storeActions.getFilteredApps();\n\t}\n\n\t/**\n\t * Calls the store to add a tag to the activeTag list. Also updates the app view to switch to the AppResults page (since adding a tag implies filtering has begun)\n\t * @param {string} tag The name of the tag to add\n\t */\n\taddTag(tag) {\n\t\tstoreActions.addTag(tag);\n\t}\n\n\t/**\n\t * Calls the store to remove a tag from the activeTag list. Also updates the app view to switch to the homepage if all tags have been removed\n\t * @param {string} tag The name of the tag to add\n\t */\n\tremoveTag(tag) {\n\t\tstoreActions.removeTag(tag);\n\t}\n\n\t/**\n\t * Action to take when the back button is clicked (which just goes home)\n\t */\n\tgoHome() {\n\t\tstoreActions.goHome();\n\t}\n\n\t/**\n\t * Performs a search through the catalog\n\t * @param {string} search The text to search the catalog with\n\t */\n\tchangeSearch(search) {\n\t\tstoreActions.searchApps(search);\n\t}\n\n\t/**\n\t * When the notification for installing/removing an app is shown a timeout is set to call this function to cease showing the notification\n\t */\n\tstopShowingInstalledNotification() {\n\t\tthis.setState({\n\t\t\tinstallationActionTaken: null,\n\t\t});\n\t}\n\n\tnavigateToShowcase(id) {\n\t\tstoreActions.openApp(id);\n\t}\n\n\t/**\n\t * Opens the AppShowcase page for the app supplied\n\t */\n\topenAppShowcase() {\n\t\tlet app = storeActions.getActiveApp();\n\n\t\tif (app !== null) {\n\t\t\tstoreActions.setForceSearch(false);\n\t\t\tstoreActions.clearTags();\n\t\t\tstoreActions.clearFilteredApps();\n\t\t}\n\n\t\tthis.forceUpdate();\n\t}\n\n\t/**\n\t * Compiles a list of apps that are installed from the information received back from appd\n\t * and the information contained on the system\n\t * @param {boolean} filtered If true, uses the filtered apps array. Otherwise uses all apps\n\t */\n\tcompileAddedInfo(filtered) {\n\t\tconst { installed } = this.state;\n\t\tconst forceSearch = storeActions.getForceSearch();\n\t\tconst apps = filtered || forceSearch ? storeActions.getFilteredApps() : this.state.apps;\n\n\t\treturn apps.map((app) => {\n\t\t\tif (installed.includes(app.appId)) {\n\t\t\t\tapp.installed = true;\n\t\t\t} else {\n\t\t\t\tapp.installed = false;\n\t\t\t}\n\n\t\t\treturn app;\n\t\t});\n\t}\n\n\tgetPageContents() {\n\t\tconst filteredApps = this.getFilteredApps();\n\t\tconst activeTags = this.getActiveTags();\n\t\tconst activePage = this.determineActivePage();\n\t\tconst apps = this.compileAddedInfo(filteredApps.length > 0);\n\t\t// Force default case if activepage isn't search and apps.length is 0\n\t\tif (apps.length === 0 && activePage !== \"appSearch\") activePage = -1;\n\t\tconst theApp = this.compileAddedInfo(false).find((app) => this.getActiveApp() === app.appId);\n\t\tswitch (activePage) {\n\t\t\tcase \"home\":\n\t\t\t\treturn (\n\t\t\t\t\t<Home\n\t\t\t\t\t\ttags={this.state.tags}\n\t\t\t\t\t\tcards={apps}\n\t\t\t\t\t\tseeMore={this.addTag}\n\t\t\t\t\t\taddApp={this.addApp}\n\t\t\t\t\t\tremoveApp={this.removeApp}\n\t\t\t\t\t\taddTag={this.addTag}\n\t\t\t\t\t\tviewAppShowcase={this.navigateToShowcase}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"appSearch\":\n\t\t\t\treturn (\n\t\t\t\t\t<AppResults\n\t\t\t\t\t\tcards={apps}\n\t\t\t\t\t\ttags={activeTags}\n\t\t\t\t\t\taddApp={this.addApp}\n\t\t\t\t\t\tremoveApp={this.removeApp}\n\t\t\t\t\t\tviewAppShowcase={this.navigateToShowcase}\n\t\t\t\t\t\taddTag={this.addTag}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"showcase\":\n\t\t\t\treturn <AppShowcase app={theApp} addApp={this.addApp} removeApp={this.removeApp} addTag={this.addTag} />;\n\t\t\tdefault:\n\t\t\t\treturn <div></div>;\n\t\t}\n\t}\n\n\trender() {\n\t\tlet { tags } = this.state;\n\t\tlet page = this.determineActivePage();\n\t\tlet pageContents = this.getPageContents();\n\n\t\treturn (\n\t\t\t<div className=\"app-catalog\">\n\t\t\t\t{this.state.serverError && (\n\t\t\t\t\t<div className=\"server-error\">\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<span>Catalog contents are currently unavailable.</span>\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<span>Please check your connection or consult your System Admin.</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{this.state.apps.length === 0 && !this.state.isLoading && (\n\t\t\t\t\t<div className=\"server-error\">\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<span>There are no apps available in this catalog.</span>\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<span>Please contact your System Admin.</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{this.state.apps.length > 0 && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<SearchBar\n\t\t\t\t\t\t\thidden={page === \"showcase\"}\n\t\t\t\t\t\t\tbackButton={page !== \"home\"}\n\t\t\t\t\t\t\ttags={tags}\n\t\t\t\t\t\t\tactiveTags={this.getActiveTags}\n\t\t\t\t\t\t\ttagSelected={this.addTag}\n\t\t\t\t\t\t\tremoveTag={this.removeTag}\n\t\t\t\t\t\t\tgoHome={this.goHome}\n\t\t\t\t\t\t\tinstallationActionTaken={this.state.installationActionTaken}\n\t\t\t\t\t\t\tsearch={this.changeSearch}\n\t\t\t\t\t\t\tisViewingApp={this.isActiveApp}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div className=\"market_content\">{pageContents}</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AppCatalogComponent.js","sourceRoot":"","sources":["../../../src/components/appCatalog/AppCatalogComponent.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,aAAa;AACb,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,WAAW,MAAM,mCAAmC,CAAC;AAE5D,OAAO;AACP,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAEjD,OAAO,iCAAiC,CAAC;AAEzC,MAAM,OAAO,mBAAoB,SAAQ,KAAK,CAAC,SAAS;IACvD,YAAY,KAAK;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,uBAAuB,EAAE,IAAI,EAAE,sBAAsB;SACrD,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,+CAA+C;IAC/C,yBAAyB;QACxB,0DAA0D;QAC1D,qEAAqE;QAErE,IAAI,CAAC,QAAQ,CACZ;YACC,SAAS,EAAE,IAAI;SACf,EACD,GAAG,EAAE;YACJ,IAAI,CAAC,gBAAgB,GAAG,YAAY;iBAClC,OAAO,EAAE;iBACT,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACd,IAAI,CAAC,QAAQ,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,KAAK;iBAChB,CAAC,CAAC;YACJ,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,IAAI,CAAC,QAAQ,CACZ;oBACC,WAAW,EAAE,IAAI;iBACjB,EACD,GAAG,EAAE;oBACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;gBACzE,CAAC,CACD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CACD,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,YAAY;aACnC,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC;gBACb,IAAI;aACJ,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,IAAI,CAAC,QAAQ,CACZ;gBACC,WAAW,EAAE,IAAI;aACjB,EACD,GAAG,EAAE;gBACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC,CACD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QAChB,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3E,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACrE,8CAA8C;QAC9C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,SAAS,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAEhD,IAAI,CAAC,QAAQ,CAAC;YACb,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SACjC,CAAC,CAAC;IACJ,CAAC;IAED,oBAAoB;QACnB,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9E,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACxE,8CAA8C;QAC9C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAElE,0CAA0C;QAC1C,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC1D,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC5D,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;SAChC;IACF,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,KAAK;QACnB,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB;QACf,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;YACtF,oGAAoG;YACpG,MAAM,GAAG,QAAQ,CAAC;SAClB;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;YAC7F,gGAAgG;YAChG,MAAM,GAAG,KAAK,CAAC;SACf;QAED,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,QAAQ,CACZ;gBACC,uBAAuB,EAAE,MAAM;gBAC/B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;aACvD,EACD,GAAG,EAAE;gBACJ,UAAU,CAAC,IAAI,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC,CACD,CAAC;SACF;IACF,CAAC;IAED;;;;OAIG;IACH,MAAM;QACL,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,mBAAmB;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC;QAET,IAAI,SAAS,IAAI,CAAC,WAAW,EAAE;YAC9B,IAAI,GAAG,UAAU,CAAC;SAClB;aAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,EAAE;YAClD,IAAI,GAAG,WAAW,CAAC;SACnB;aAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAChE,IAAI,GAAG,MAAM,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACX,OAAO,YAAY,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,WAAW;QACV,OAAO,YAAY,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACZ,OAAO,YAAY,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,eAAe;QACd,OAAO,YAAY,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,GAAG;QACT,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAG;QACZ,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM;QACL,YAAY,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAAM;QAClB,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,gCAAgC;QAC/B,IAAI,CAAC,QAAQ,CAAC;YACb,uBAAuB,EAAE,IAAI;SAC7B,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,EAAE;QACpB,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,eAAe;QACd,IAAI,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAEtC,IAAI,GAAG,KAAK,IAAI,EAAE;YACjB,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnC,YAAY,CAAC,SAAS,EAAE,CAAC;YACzB,YAAY,CAAC,iBAAiB,EAAE,CAAC;SACjC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ;QACxB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAExF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAClC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;aACrB;iBAAM;gBACN,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;aACtB;YAED,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,eAAe;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,qEAAqE;QACrE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,WAAW;YAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7F,QAAQ,UAAU,EAAE;YACnB,KAAK,MAAM;gBACV,OAAO,CACN,oBAAC,IAAI,IACJ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EACrB,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,IAAI,CAAC,MAAM,EACpB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,eAAe,EAAE,IAAI,CAAC,kBAAkB,GACvC,CACF,CAAC;YACH,KAAK,WAAW;gBACf,OAAO,CACN,oBAAC,UAAU,IACV,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,eAAe,EAAE,IAAI,CAAC,kBAAkB,EACxC,MAAM,EAAE,IAAI,CAAC,MAAM,GAClB,CACF,CAAC;YACH,KAAK,UAAU;gBACd,OAAO,oBAAC,WAAW,IAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,GAAI,CAAC;YAC1G;gBACC,OAAO,gCAAW,CAAC;SACpB;IACF,CAAC;IAED,MAAM;QACL,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACtC,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE1C,OAAO,CACN,6BAAK,SAAS,EAAC,aAAa;YAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAC1B,6BAAK,SAAS,EAAC,cAAc;gBAC5B,+BAAM;gBACN,+BAAM;gBACN,gFAAwD;gBACxD,+BAAM;gBACN,+FAAuE,CAClE,CACN;YACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CACzD,6BAAK,SAAS,EAAC,cAAc;gBAC5B,+BAAM;gBACN,+BAAM;gBACN,iFAAyD;gBACzD,+BAAM;gBACN,sEAA8C,CACzC,CACN;YACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B;gBACC,oBAAC,SAAS,IACT,MAAM,EAAE,IAAI,KAAK,UAAU,EAC3B,UAAU,EAAE,IAAI,KAAK,MAAM,EAC3B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,CAAC,aAAa,EAC9B,WAAW,EAAE,IAAI,CAAC,MAAM,EACxB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAC3D,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,YAAY,EAAE,IAAI,CAAC,WAAW,GAC7B;gBACF,6BAAK,SAAS,EAAC,gBAAgB,IAAE,YAAY,CAAO,CAC/C,CACN,CACI,CACN,CAAC;IACH,CAAC;CACD","sourcesContent":["import React from \"react\";\n// components\nimport SearchBar from \"./components/SearchBar\";\nimport Home from \"./components/Home\";\nimport AppResults from \"./components/AppResults\";\nimport AppShowcase from \"./components/Showcase/AppShowcase\";\n\n// data\nimport { getStore } from \"./stores/appStore\";\nimport storeActions from \"./stores/storeActions\";\n\nimport \"../../assets/css/appCatalog.css\";\n\nexport class AppCatalogComponent extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tapps: [], // type: AppMetadata (from \"../../../types/fdc3\")\n\t\t\tisLoading: false,\n\t\t\tserverError: false,\n\t\t\tinstalled: [],\n\t\t\ttags: [], // type: string[]\n\t\t\tinstallationActionTaken: null, // type: string | null\n\t\t};\n\t\tthis.bindCorrectContext();\n\t}\n\n\tbindCorrectContext() {\n\t\tthis.addedAppsChanged = this.addedAppsChanged.bind(this);\n\t\tthis.update = this.update.bind(this);\n\t\tthis.goHome = this.goHome.bind(this);\n\t\tthis.addTag = this.addTag.bind(this);\n\t\tthis.removeTag = this.removeTag.bind(this);\n\t\tthis.changeSearch = this.changeSearch.bind(this);\n\t\tthis.openAppShowcase = this.openAppShowcase.bind(this);\n\t\tthis.stopShowingInstalledNotification = this.stopShowingInstalledNotification.bind(this);\n\t\tthis.compileAddedInfo = this.compileAddedInfo.bind(this);\n\t\tthis.getPageContents = this.getPageContents.bind(this);\n\t\tthis.determineActivePage = this.determineActivePage.bind(this);\n\t\tthis.navigateToShowcase = this.navigateToShowcase.bind(this);\n\t\tthis.viewApp = this.viewApp.bind(this);\n\t\tthis.isActiveApp = this.isActiveApp.bind(this);\n\t\tthis.getActiveTags = this.getActiveTags.bind(this);\n\t}\n\n\t// eslint-disable-next-line react/no-deprecated\n\tUNSAFE_componentWillMount() {\n\t\t// For more information on async react rendering, see here\n\t\t// https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html\n\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tisLoading: true,\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tthis._asyncAppRequest = storeActions\n\t\t\t\t\t.getApps()\n\t\t\t\t\t.then((apps) => {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tapps,\n\t\t\t\t\t\t\tisLoading: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\tthis.setState(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tserverError: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\tFSBL.Clients.Logger.error(\"Error connecting to FDC3 AppD server.\", err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t}\n\t\t);\n\n\t\tthis._asyncTagsRequest = storeActions\n\t\t\t.getTags()\n\t\t\t.then((tags) => {\n\t\t\t\tthis.setState({\n\t\t\t\t\ttags,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tthis.setState(\n\t\t\t\t\t{\n\t\t\t\t\t\tserverError: true,\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tFSBL.Clients.Logger.error(\"Error retrieving tags from FDC3 AppD server.\", err);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tgetStore().addListener({ field: \"appDefinitions\" }, this.addedAppsChanged);\n\t\tgetStore().addListener({ field: \"filteredApps\" }, this.update);\n\t\tgetStore().addListener({ field: \"activeTags\" }, this.update);\n\t\tgetStore().addListener({ field: \"activeApp\" }, this.openAppShowcase);\n\t\t// Get notified when user wants to view an app\n\t\tFSBL.Clients.RouterClient.addListener(\"viewApp\", this.viewApp);\n\t\tlet installed = storeActions.getInstalledApps();\n\n\t\tthis.setState({\n\t\t\tinstalled: Object.keys(installed),\n\t\t});\n\t}\n\n\tcomponentWillUnmount() {\n\t\tgetStore().removeListener({ field: \"appDefinitions\" }, this.addedAppsChanged);\n\t\tgetStore().removeListener({ field: \"filteredApps\" }, this.update);\n\t\tgetStore().removeListener({ field: \"activeTags\" }, this.update);\n\t\tgetStore().removeListener({ field: \"activeApp\" }, this.openAppShowcase);\n\t\t// Get notified when user wants to view an app\n\t\tFSBL.Clients.RouterClient.removeListener(\"viewApp\", this.viewApp);\n\n\t\t// Make sure async requests have finished.\n\t\tif (this._asyncAppRequest && this._asyncAppRequest.cancel) {\n\t\t\tthis._asyncAppRequest.cancel();\n\t\t}\n\n\t\tif (this._asyncTagsRequest && this._asyncTagsRequest.cancel) {\n\t\t\tthis._asyncTagsRequest.cancel();\n\t\t}\n\t}\n\n\tviewApp(error, event) {\n\t\t!error && this.navigateToShowcase(event.data.app.appID);\n\t}\n\n\taddedAppsChanged() {\n\t\tlet action;\n\t\tif (this.state.installed.length > Object.keys(storeActions.getInstalledApps()).length) {\n\t\t\t// If the components installed apps is greater than that of the store, that means an app was removed\n\t\t\taction = \"remove\";\n\t\t} else if (this.state.installed.length < Object.keys(storeActions.getInstalledApps()).length) {\n\t\t\t// If the component's installed apps is less than that of the store, that means an app was added\n\t\t\taction = \"add\";\n\t\t}\n\n\t\tif (action) {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tinstallationActionTaken: action,\n\t\t\t\t\tinstalled: Object.keys(storeActions.getInstalledApps()),\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tsetTimeout(this.stopShowingInstalledNotification, 1500);\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Force an update. Used to update from store listeners.\n\t *\n\t * @memberof AppMarket\n\t */\n\tupdate() {\n\t\tthis.forceUpdate();\n\t}\n\n\t/**\n\t * Determines the apps page based on the state of the activeTags, search text, etc\n\t */\n\tdetermineActivePage() {\n\t\tconst activeTags = this.getActiveTags();\n\t\tconst filteredApps = this.getFilteredApps();\n\t\tconst activeApp = this.getActiveApp();\n\t\tconst forceSearch = storeActions.getForceSearch();\n\t\tlet page;\n\n\t\tif (activeApp && !forceSearch) {\n\t\t\tpage = \"showcase\";\n\t\t} else if (filteredApps.length > 0 || forceSearch) {\n\t\t\tpage = \"appSearch\";\n\t\t} else if (filteredApps.length === 0 && activeTags.length === 0) {\n\t\t\tpage = \"home\";\n\t\t}\n\n\t\treturn page;\n\t}\n\n\t/**\n\t * Returns the activeApp from the Store\n\t *\n\t * @returns {string} activeApp\n\t * @memberof AppMarket\n\t */\n\tgetActiveApp() {\n\t\treturn storeActions.getActiveApp();\n\t}\n\n\t/**\n\t * Checks if we have an activeApp defined\n\t *\n\t * @returns {boolean}\n\t * @memberof AppMarket\n\t */\n\tisActiveApp() {\n\t\treturn storeActions.getActiveApp() !== null;\n\t}\n\n\t/**\n\t * Returns the active tags from the store\n\t *\n\t * @returns {array} activeTags\n\t * @memberof AppMarket\n\t */\n\tgetActiveTags() {\n\t\treturn storeActions.getActiveTags();\n\t}\n\n\t/**\n\t * Returns the filtered list of apps from search\n\t *\n\t * @returns {object} filteredApps\n\t * @memberof AppMarket\n\t */\n\tgetFilteredApps() {\n\t\treturn storeActions.getFilteredApps();\n\t}\n\n\t/**\n\t * Calls the store to add a tag to the activeTag list. Also updates the app view to switch to the AppResults page (since adding a tag implies filtering has begun)\n\t * @param {string} tag The name of the tag to add\n\t */\n\taddTag(tag) {\n\t\tstoreActions.addTag(tag);\n\t}\n\n\t/**\n\t * Calls the store to remove a tag from the activeTag list. Also updates the app view to switch to the homepage if all tags have been removed\n\t * @param {string} tag The name of the tag to add\n\t */\n\tremoveTag(tag) {\n\t\tstoreActions.removeTag(tag);\n\t}\n\n\t/**\n\t * Action to take when the back button is clicked (which just goes home)\n\t */\n\tgoHome() {\n\t\tstoreActions.goHome();\n\t}\n\n\t/**\n\t * Performs a search through the catalog\n\t * @param {string} search The text to search the catalog with\n\t */\n\tchangeSearch(search) {\n\t\tstoreActions.searchApps(search);\n\t}\n\n\t/**\n\t * When the notification for installing/removing an app is shown a timeout is set to call this function to cease showing the notification\n\t */\n\tstopShowingInstalledNotification() {\n\t\tthis.setState({\n\t\t\tinstallationActionTaken: null,\n\t\t});\n\t}\n\n\tnavigateToShowcase(id) {\n\t\tstoreActions.openApp(id);\n\t}\n\n\t/**\n\t * Opens the AppShowcase page for the app supplied\n\t */\n\topenAppShowcase() {\n\t\tlet app = storeActions.getActiveApp();\n\n\t\tif (app !== null) {\n\t\t\tstoreActions.setForceSearch(false);\n\t\t\tstoreActions.clearTags();\n\t\t\tstoreActions.clearFilteredApps();\n\t\t}\n\n\t\tthis.forceUpdate();\n\t}\n\n\t/**\n\t * Compiles a list of apps that are installed from the information received back from appd\n\t * and the information contained on the system\n\t * @param {boolean} filtered If true, uses the filtered apps array. Otherwise uses all apps\n\t */\n\tcompileAddedInfo(filtered) {\n\t\tconst { installed } = this.state;\n\t\tconst forceSearch = storeActions.getForceSearch();\n\t\tconst apps = filtered || forceSearch ? storeActions.getFilteredApps() : this.state.apps;\n\n\t\treturn apps.map((app) => {\n\t\t\tif (installed.includes(app.appId)) {\n\t\t\t\tapp.installed = true;\n\t\t\t} else {\n\t\t\t\tapp.installed = false;\n\t\t\t}\n\n\t\t\treturn app;\n\t\t});\n\t}\n\n\tgetPageContents() {\n\t\tconst filteredApps = this.getFilteredApps();\n\t\tconst activeTags = this.getActiveTags();\n\t\tconst activePage = this.determineActivePage();\n\t\tconst apps = this.compileAddedInfo(filteredApps.length > 0);\n\t\t// Force default case if activepage isn't search and apps.length is 0\n\t\tif (apps.length === 0 && activePage !== \"appSearch\") activePage = -1;\n\t\tconst theApp = this.compileAddedInfo(false).find((app) => this.getActiveApp() === app.appId);\n\t\tswitch (activePage) {\n\t\t\tcase \"home\":\n\t\t\t\treturn (\n\t\t\t\t\t<Home\n\t\t\t\t\t\ttags={this.state.tags}\n\t\t\t\t\t\tcards={apps}\n\t\t\t\t\t\tseeMore={this.addTag}\n\t\t\t\t\t\taddApp={this.addApp}\n\t\t\t\t\t\tremoveApp={this.removeApp}\n\t\t\t\t\t\taddTag={this.addTag}\n\t\t\t\t\t\tviewAppShowcase={this.navigateToShowcase}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"appSearch\":\n\t\t\t\treturn (\n\t\t\t\t\t<AppResults\n\t\t\t\t\t\tcards={apps}\n\t\t\t\t\t\ttags={activeTags}\n\t\t\t\t\t\taddApp={this.addApp}\n\t\t\t\t\t\tremoveApp={this.removeApp}\n\t\t\t\t\t\tviewAppShowcase={this.navigateToShowcase}\n\t\t\t\t\t\taddTag={this.addTag}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"showcase\":\n\t\t\t\treturn <AppShowcase app={theApp} addApp={this.addApp} removeApp={this.removeApp} addTag={this.addTag} />;\n\t\t\tdefault:\n\t\t\t\treturn <div></div>;\n\t\t}\n\t}\n\n\trender() {\n\t\tlet { tags } = this.state;\n\t\tlet page = this.determineActivePage();\n\t\tlet pageContents = this.getPageContents();\n\n\t\treturn (\n\t\t\t<div className=\"app-catalog\">\n\t\t\t\t{this.state.serverError && (\n\t\t\t\t\t<div className=\"server-error\">\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<span>Catalog contents are currently unavailable.</span>\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<span>Please check your connection or consult your System Admin.</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{this.state.apps.length === 0 && !this.state.isLoading && (\n\t\t\t\t\t<div className=\"server-error\">\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<span>There are no apps available in this catalog.</span>\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<span>Please contact your System Admin.</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{this.state.apps.length > 0 && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<SearchBar\n\t\t\t\t\t\t\thidden={page === \"showcase\"}\n\t\t\t\t\t\t\tbackButton={page !== \"home\"}\n\t\t\t\t\t\t\ttags={tags}\n\t\t\t\t\t\t\tactiveTags={this.getActiveTags}\n\t\t\t\t\t\t\ttagSelected={this.addTag}\n\t\t\t\t\t\t\tremoveTag={this.removeTag}\n\t\t\t\t\t\t\tgoHome={this.goHome}\n\t\t\t\t\t\t\tinstallationActionTaken={this.state.installationActionTaken}\n\t\t\t\t\t\t\tsearch={this.changeSearch}\n\t\t\t\t\t\t\tisViewingApp={this.isActiveApp}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div className=\"market_content\">{pageContents}</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1,14 +1,49 @@
|
|
|
1
1
|
export default AppCard;
|
|
2
|
+
/**
|
|
3
|
+
* The card that displays on any page with information about an app. Clicking on it will lead to the AppShowcase or install (if the check is clicked)
|
|
4
|
+
* @param {object} props Component props
|
|
5
|
+
* @param {object} props...card The entire object that belongs to a single app. See FDC app directory.
|
|
6
|
+
* @param {boolean} props.entitled If true, the app cannot be installed by this user, only viewed
|
|
7
|
+
* @param {boolean} props.installed If true the app is installed on this local fsbl
|
|
8
|
+
*/
|
|
2
9
|
declare class AppCard extends React.Component<any, any, any> {
|
|
3
10
|
constructor(props: any);
|
|
4
11
|
bindCorrectContext(): void;
|
|
12
|
+
/**
|
|
13
|
+
* Toggles the highlight state of the check mark for installing an app
|
|
14
|
+
*/
|
|
5
15
|
toggleHighlight(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Toggles the 'highlight' state of the app title. On mouse over, the title is underlined to show that its a link
|
|
18
|
+
*/
|
|
6
19
|
toggleTitleUnderline(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Shows the check mark for adding/removing an app
|
|
22
|
+
*/
|
|
7
23
|
showCheck(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Hides the check mark for adding/removing an app
|
|
26
|
+
*/
|
|
8
27
|
hideCheck(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Calls parent passed function to open the app showcase for the supplied app
|
|
30
|
+
*/
|
|
9
31
|
openAppShowcase(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Prevents bubbling (which would open the app showcase), then calls to add an app
|
|
34
|
+
* @param {object} e React Synthetic event
|
|
35
|
+
*/
|
|
10
36
|
addApp(e: object): void;
|
|
37
|
+
/**
|
|
38
|
+
* Prevents bubbling (which would open the app showcase), then calls to remove an app
|
|
39
|
+
* @param {object} e React Synthetic event
|
|
40
|
+
*/
|
|
11
41
|
removeApp(e: object): void;
|
|
42
|
+
/**
|
|
43
|
+
* Prevents bubbling (which would open the app showcase), then calls to add a filtering tag
|
|
44
|
+
* @param {string} name The tag name to add
|
|
45
|
+
* @param {object} e React Synthetic event
|
|
46
|
+
*/
|
|
12
47
|
addTag(name: string, e: object): void;
|
|
13
48
|
footer: HTMLDivElement | null | undefined;
|
|
14
49
|
tagNamesList: HTMLDivElement | null | undefined;
|
|
@@ -1,6 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2017 by ChartIQ, Inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*/
|
|
1
5
|
import React, { Component } from "react";
|
|
2
6
|
import { getAppNameIconWhenNoImage, getTruncatedStringWithEllipses } from "./helpers";
|
|
7
|
+
// data
|
|
3
8
|
import storeActions from "../stores/storeActions";
|
|
9
|
+
/**
|
|
10
|
+
* The card that displays on any page with information about an app. Clicking on it will lead to the AppShowcase or install (if the check is clicked)
|
|
11
|
+
* @param {object} props Component props
|
|
12
|
+
* @param {object} props...card The entire object that belongs to a single app. See FDC app directory.
|
|
13
|
+
* @param {boolean} props.entitled If true, the app cannot be installed by this user, only viewed
|
|
14
|
+
* @param {boolean} props.installed If true the app is installed on this local fsbl
|
|
15
|
+
*/
|
|
4
16
|
class AppCard extends Component {
|
|
5
17
|
constructor(props) {
|
|
6
18
|
super(props);
|
|
@@ -39,28 +51,42 @@ class AppCard extends Component {
|
|
|
39
51
|
});
|
|
40
52
|
}
|
|
41
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Toggles the highlight state of the check mark for installing an app
|
|
56
|
+
*/
|
|
42
57
|
toggleHighlight() {
|
|
43
58
|
this.setState({
|
|
44
59
|
checkHighlighted: !this.state.checkHighlighted,
|
|
45
60
|
});
|
|
46
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Toggles the 'highlight' state of the app title. On mouse over, the title is underlined to show that its a link
|
|
64
|
+
*/
|
|
47
65
|
toggleTitleUnderline() {
|
|
48
66
|
this.setState({
|
|
49
67
|
titleUnderlined: !this.state.titleUnderlined,
|
|
50
68
|
});
|
|
51
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Shows the check mark for adding/removing an app
|
|
72
|
+
*/
|
|
52
73
|
showCheck() {
|
|
53
74
|
this.setState({
|
|
54
75
|
checkShown: true,
|
|
55
76
|
});
|
|
56
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Hides the check mark for adding/removing an app
|
|
80
|
+
*/
|
|
57
81
|
hideCheck() {
|
|
58
82
|
if (this.state.awaitingInstall) {
|
|
83
|
+
// If an add/remove is taking place and this is called, toggle the check after the action completes
|
|
59
84
|
this.setState({
|
|
60
85
|
toggleCheckAfterAction: true,
|
|
61
86
|
});
|
|
62
87
|
}
|
|
63
88
|
else {
|
|
89
|
+
// Don't hide if installed. Stay green and showing
|
|
64
90
|
if (!this.props.installed) {
|
|
65
91
|
this.setState({
|
|
66
92
|
checkShown: false,
|
|
@@ -68,9 +94,16 @@ class AppCard extends Component {
|
|
|
68
94
|
}
|
|
69
95
|
}
|
|
70
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Calls parent passed function to open the app showcase for the supplied app
|
|
99
|
+
*/
|
|
71
100
|
openAppShowcase() {
|
|
72
101
|
this.props.viewAppShowcase(this.state.id);
|
|
73
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Prevents bubbling (which would open the app showcase), then calls to add an app
|
|
105
|
+
* @param {object} e React Synthetic event
|
|
106
|
+
*/
|
|
74
107
|
addApp(e) {
|
|
75
108
|
e.preventDefault();
|
|
76
109
|
e.stopPropagation();
|
|
@@ -84,6 +117,10 @@ class AppCard extends Component {
|
|
|
84
117
|
});
|
|
85
118
|
});
|
|
86
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Prevents bubbling (which would open the app showcase), then calls to remove an app
|
|
122
|
+
* @param {object} e React Synthetic event
|
|
123
|
+
*/
|
|
87
124
|
removeApp(e) {
|
|
88
125
|
e.preventDefault();
|
|
89
126
|
e.stopPropagation();
|
|
@@ -106,6 +143,11 @@ class AppCard extends Component {
|
|
|
106
143
|
});
|
|
107
144
|
});
|
|
108
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Prevents bubbling (which would open the app showcase), then calls to add a filtering tag
|
|
148
|
+
* @param {string} name The tag name to add
|
|
149
|
+
* @param {object} e React Synthetic event
|
|
150
|
+
*/
|
|
109
151
|
addTag(name, e) {
|
|
110
152
|
e.preventDefault();
|
|
111
153
|
e.stopPropagation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppCard.js","sourceRoot":"","sources":["../../../../src/components/appCatalog/components/AppCard.jsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport React, { Component } from \"react\";\nimport { getAppNameIconWhenNoImage, getTruncatedStringWithEllipses } from \"./helpers\";\n\n// data\nimport storeActions from \"../stores/storeActions\";\n\n/**\n * The card that displays on any page with information about an app. Clicking on it will lead to the AppShowcase or install (if the check is clicked)\n * @param {object} props Component props\n * @param {object} props...card The entire object that belongs to a single app. See FDC app directory.\n * @param {boolean} props.entitled If true, the app cannot be installed by this user, only viewed\n * @param {boolean} props.installed If true the app is installed on this local fsbl\n */\nclass AppCard extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tcheckShown: this.props.installed === true,\n\t\t\tcheckHighlighted: false,\n\t\t\tawaitingInstall: false,\n\t\t\ttoggleCheckAfterAction: false,\n\t\t\ttitleUnderlined: false,\n\t\t\tappName: this.props.title || this.props.name,\n\t\t\tid: this.props.appId,\n\t\t\tentitled: this.props.entitled ? this.props.entitled : false,\n\t\t\ttags: this.props.tags || [],\n\t\t};\n\t\tthis.bindCorrectContext();\n\t}\n\n\tbindCorrectContext() {\n\t\tthis.toggleHighlight = this.toggleHighlight.bind(this);\n\t\tthis.toggleTitleUnderline = this.toggleTitleUnderline.bind(this);\n\t\tthis.showCheck = this.showCheck.bind(this);\n\t\tthis.hideCheck = this.hideCheck.bind(this);\n\t\tthis.openAppShowcase = this.openAppShowcase.bind(this);\n\t\tthis.addApp = this.addApp.bind(this);\n\t\tthis.removeApp = this.removeApp.bind(this);\n\t\tthis.addTag = this.addTag.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tif (!this.props.tags || this.props.tags.length === 0) return;\n\t\tconst list = this.tagNamesList;\n\t\tconst { footer } = this;\n\t\tif (list.offsetHeight >= footer.scrollHeight + 5) {\n\t\t\tlet newTags = this.state.tags.slice(0, 2);\n\t\t\tthis.setState({\n\t\t\t\ttags: newTags,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the highlight state of the check mark for installing an app\n\t */\n\ttoggleHighlight() {\n\t\tthis.setState({\n\t\t\tcheckHighlighted: !this.state.checkHighlighted,\n\t\t});\n\t}\n\n\t/**\n\t * Toggles the 'highlight' state of the app title. On mouse over, the title is underlined to show that its a link\n\t */\n\ttoggleTitleUnderline() {\n\t\tthis.setState({\n\t\t\ttitleUnderlined: !this.state.titleUnderlined,\n\t\t});\n\t}\n\n\t/**\n\t * Shows the check mark for adding/removing an app\n\t */\n\tshowCheck() {\n\t\tthis.setState({\n\t\t\tcheckShown: true,\n\t\t});\n\t}\n\n\t/**\n\t * Hides the check mark for adding/removing an app\n\t */\n\thideCheck() {\n\t\tif (this.state.awaitingInstall) {\n\t\t\t// If an add/remove is taking place and this is called, toggle the check after the action completes\n\t\t\tthis.setState({\n\t\t\t\ttoggleCheckAfterAction: true,\n\t\t\t});\n\t\t} else {\n\t\t\t// Don't hide if installed. Stay green and showing\n\t\t\tif (!this.props.installed) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tcheckShown: false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls parent passed function to open the app showcase for the supplied app\n\t */\n\topenAppShowcase() {\n\t\tthis.props.viewAppShowcase(this.state.id);\n\t}\n\n\t/**\n\t * Prevents bubbling (which would open the app showcase), then calls to add an app\n\t * @param {object} e React Synthetic event\n\t */\n\taddApp(e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tawaitingInstall: true,\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tstoreActions.addApp(this.state.id, (err) => {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tawaitingInstall: false,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Prevents bubbling (which would open the app showcase), then calls to remove an app\n\t * @param {object} e React Synthetic event\n\t */\n\tremoveApp(e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tawaitingInstall: true,\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tstoreActions.removeApp(this.state.id, (err) => {\n\t\t\t\t\tif (this.state.toggleCheckAfterAction) {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tawaitingInstall: false,\n\t\t\t\t\t\t\ttoggleCheckAfterAction: false,\n\t\t\t\t\t\t\tcheckShown: !this.state.checkShown,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tawaitingInstall: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Prevents bubbling (which would open the app showcase), then calls to add a filtering tag\n\t * @param {string} name The tag name to add\n\t * @param {object} e React Synthetic event\n\t */\n\taddTag(name, e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tstoreActions.addTag(name);\n\t}\n\n\trender() {\n\t\tlet imageUrl = this.props.icons !== undefined ? this.props.icons[0].url : null;\n\n\t\tlet { appName, checkShown, checkHighlighted } = this.state;\n\n\t\tlet imageIconClasses = \"ff-check-mark-2\";\n\t\tif (this.props.installed && checkHighlighted) imageIconClasses = `${imageIconClasses} highlighted added`;\n\t\telse if (this.props.installed || checkHighlighted) imageIconClasses = `${imageIconClasses} highlighted`;\n\t\telse imageIconClasses = `${imageIconClasses} faded`;\n\n\t\tlet titleClass = this.state.titleUnderlined ? \"app-title highlighted\" : \"app-title\";\n\n\t\tlet entitled = this.state.entitled ? \" entitled\" : \"\";\n\n\t\tlet imageStyle = `app-image ${entitled}`;\n\n\t\tif (!imageUrl) {\n\t\t\timageUrl = this.props.images !== undefined ? this.props.images[0].url : null;\n\t\t\timageStyle = `${imageStyle} noIcon`;\n\t\t}\n\n\t\tif (!imageUrl) {\n\t\t\timageStyle = `${imageStyle} noImg`;\n\t\t}\n\n\t\tlet cardStyle = this.state.tags.length > 0 ? \"app-card\" : \"app-card no-tags\";\n\n\t\tlet appAction = this.props.installed ? this.removeApp : this.addApp;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cardStyle}\n\t\t\t\tonClick={this.openAppShowcase}\n\t\t\t\tonMouseEnter={this.showCheck}\n\t\t\t\tonMouseLeave={this.hideCheck}\n\t\t\t>\n\t\t\t\t<div className=\"app-image-container\">\n\t\t\t\t\t{imageUrl ? (\n\t\t\t\t\t\t<img className={imageStyle} src={imageUrl} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className={imageStyle}>\n\t\t\t\t\t\t\t<span>{getAppNameIconWhenNoImage(appName)}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={titleClass}\n\t\t\t\t\t\tonMouseEnter={this.toggleTitleUnderline}\n\t\t\t\t\t\tonMouseLeave={this.toggleTitleUnderline}\n\t\t\t\t\t\ttitle={appName}\n\t\t\t\t\t>\n\t\t\t\t\t\t{appName}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"row_description\">\n\t\t\t\t\t<div className=\"status-indicator\">\n\t\t\t\t\t\t{!entitled || !checkShown ? (\n\t\t\t\t\t\t\t<i> </i>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\tclassName={imageIconClasses}\n\t\t\t\t\t\t\t\tonMouseEnter={this.toggleHighlight}\n\t\t\t\t\t\t\t\tonMouseLeave={this.toggleHighlight}\n\t\t\t\t\t\t\t\tonClick={appAction}\n\t\t\t\t\t\t\t></i>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"app-description\">{this.props.description ? this.props.description : \"\"}</div>\n\t\t\t\t</div>\n\t\t\t\t{this.state.tags.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"app-tags\"\n\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\tthis.footer = el;\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<i className=\"ff-tag\"></i>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"app-tag-names\"\n\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\tthis.tagNamesList = el;\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.tags.map((tag, i) => {\n\t\t\t\t\t\t\t\tconst tagName = tag;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<span key={i} className=\"tag-name\" onClick={this.addTag.bind(this, tag)} title={tagName}>\n\t\t\t\t\t\t\t\t\t\t{getTruncatedStringWithEllipses(tagName)}\n\t\t\t\t\t\t\t\t\t\t{i !== this.props.tags.length - 1 ? \", \" : null}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default AppCard;\n"]}
|
|
1
|
+
{"version":3,"file":"AppCard.js","sourceRoot":"","sources":["../../../../src/components/appCatalog/components/AppCard.jsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 by ChartIQ, Inc.\n * All rights reserved.\n */\nimport React, { Component } from \"react\";\nimport { getAppNameIconWhenNoImage, getTruncatedStringWithEllipses } from \"./helpers\";\n\n// data\nimport storeActions from \"../stores/storeActions\";\n\n/**\n * The card that displays on any page with information about an app. Clicking on it will lead to the AppShowcase or install (if the check is clicked)\n * @param {object} props Component props\n * @param {object} props...card The entire object that belongs to a single app. See FDC app directory.\n * @param {boolean} props.entitled If true, the app cannot be installed by this user, only viewed\n * @param {boolean} props.installed If true the app is installed on this local fsbl\n */\nclass AppCard extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tcheckShown: this.props.installed === true,\n\t\t\tcheckHighlighted: false,\n\t\t\tawaitingInstall: false,\n\t\t\ttoggleCheckAfterAction: false,\n\t\t\ttitleUnderlined: false,\n\t\t\tappName: this.props.title || this.props.name,\n\t\t\tid: this.props.appId,\n\t\t\tentitled: this.props.entitled ? this.props.entitled : false,\n\t\t\ttags: this.props.tags || [],\n\t\t};\n\t\tthis.bindCorrectContext();\n\t}\n\n\tbindCorrectContext() {\n\t\tthis.toggleHighlight = this.toggleHighlight.bind(this);\n\t\tthis.toggleTitleUnderline = this.toggleTitleUnderline.bind(this);\n\t\tthis.showCheck = this.showCheck.bind(this);\n\t\tthis.hideCheck = this.hideCheck.bind(this);\n\t\tthis.openAppShowcase = this.openAppShowcase.bind(this);\n\t\tthis.addApp = this.addApp.bind(this);\n\t\tthis.removeApp = this.removeApp.bind(this);\n\t\tthis.addTag = this.addTag.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tif (!this.props.tags || this.props.tags.length === 0) return;\n\t\tconst list = this.tagNamesList;\n\t\tconst { footer } = this;\n\t\tif (list.offsetHeight >= footer.scrollHeight + 5) {\n\t\t\tlet newTags = this.state.tags.slice(0, 2);\n\t\t\tthis.setState({\n\t\t\t\ttags: newTags,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the highlight state of the check mark for installing an app\n\t */\n\ttoggleHighlight() {\n\t\tthis.setState({\n\t\t\tcheckHighlighted: !this.state.checkHighlighted,\n\t\t});\n\t}\n\n\t/**\n\t * Toggles the 'highlight' state of the app title. On mouse over, the title is underlined to show that its a link\n\t */\n\ttoggleTitleUnderline() {\n\t\tthis.setState({\n\t\t\ttitleUnderlined: !this.state.titleUnderlined,\n\t\t});\n\t}\n\n\t/**\n\t * Shows the check mark for adding/removing an app\n\t */\n\tshowCheck() {\n\t\tthis.setState({\n\t\t\tcheckShown: true,\n\t\t});\n\t}\n\n\t/**\n\t * Hides the check mark for adding/removing an app\n\t */\n\thideCheck() {\n\t\tif (this.state.awaitingInstall) {\n\t\t\t// If an add/remove is taking place and this is called, toggle the check after the action completes\n\t\t\tthis.setState({\n\t\t\t\ttoggleCheckAfterAction: true,\n\t\t\t});\n\t\t} else {\n\t\t\t// Don't hide if installed. Stay green and showing\n\t\t\tif (!this.props.installed) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tcheckShown: false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls parent passed function to open the app showcase for the supplied app\n\t */\n\topenAppShowcase() {\n\t\tthis.props.viewAppShowcase(this.state.id);\n\t}\n\n\t/**\n\t * Prevents bubbling (which would open the app showcase), then calls to add an app\n\t * @param {object} e React Synthetic event\n\t */\n\taddApp(e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tawaitingInstall: true,\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tstoreActions.addApp(this.state.id, (err) => {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tawaitingInstall: false,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Prevents bubbling (which would open the app showcase), then calls to remove an app\n\t * @param {object} e React Synthetic event\n\t */\n\tremoveApp(e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tawaitingInstall: true,\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tstoreActions.removeApp(this.state.id, (err) => {\n\t\t\t\t\tif (this.state.toggleCheckAfterAction) {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tawaitingInstall: false,\n\t\t\t\t\t\t\ttoggleCheckAfterAction: false,\n\t\t\t\t\t\t\tcheckShown: !this.state.checkShown,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tawaitingInstall: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Prevents bubbling (which would open the app showcase), then calls to add a filtering tag\n\t * @param {string} name The tag name to add\n\t * @param {object} e React Synthetic event\n\t */\n\taddTag(name, e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tstoreActions.addTag(name);\n\t}\n\n\trender() {\n\t\tlet imageUrl = this.props.icons !== undefined ? this.props.icons[0].url : null;\n\n\t\tlet { appName, checkShown, checkHighlighted } = this.state;\n\n\t\tlet imageIconClasses = \"ff-check-mark-2\";\n\t\tif (this.props.installed && checkHighlighted) imageIconClasses = `${imageIconClasses} highlighted added`;\n\t\telse if (this.props.installed || checkHighlighted) imageIconClasses = `${imageIconClasses} highlighted`;\n\t\telse imageIconClasses = `${imageIconClasses} faded`;\n\n\t\tlet titleClass = this.state.titleUnderlined ? \"app-title highlighted\" : \"app-title\";\n\n\t\tlet entitled = this.state.entitled ? \" entitled\" : \"\";\n\n\t\tlet imageStyle = `app-image ${entitled}`;\n\n\t\tif (!imageUrl) {\n\t\t\timageUrl = this.props.images !== undefined ? this.props.images[0].url : null;\n\t\t\timageStyle = `${imageStyle} noIcon`;\n\t\t}\n\n\t\tif (!imageUrl) {\n\t\t\timageStyle = `${imageStyle} noImg`;\n\t\t}\n\n\t\tlet cardStyle = this.state.tags.length > 0 ? \"app-card\" : \"app-card no-tags\";\n\n\t\tlet appAction = this.props.installed ? this.removeApp : this.addApp;\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cardStyle}\n\t\t\t\tonClick={this.openAppShowcase}\n\t\t\t\tonMouseEnter={this.showCheck}\n\t\t\t\tonMouseLeave={this.hideCheck}\n\t\t\t>\n\t\t\t\t<div className=\"app-image-container\">\n\t\t\t\t\t{imageUrl ? (\n\t\t\t\t\t\t<img className={imageStyle} src={imageUrl} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className={imageStyle}>\n\t\t\t\t\t\t\t<span>{getAppNameIconWhenNoImage(appName)}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={titleClass}\n\t\t\t\t\t\tonMouseEnter={this.toggleTitleUnderline}\n\t\t\t\t\t\tonMouseLeave={this.toggleTitleUnderline}\n\t\t\t\t\t\ttitle={appName}\n\t\t\t\t\t>\n\t\t\t\t\t\t{appName}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"row_description\">\n\t\t\t\t\t<div className=\"status-indicator\">\n\t\t\t\t\t\t{!entitled || !checkShown ? (\n\t\t\t\t\t\t\t<i> </i>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\tclassName={imageIconClasses}\n\t\t\t\t\t\t\t\tonMouseEnter={this.toggleHighlight}\n\t\t\t\t\t\t\t\tonMouseLeave={this.toggleHighlight}\n\t\t\t\t\t\t\t\tonClick={appAction}\n\t\t\t\t\t\t\t></i>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"app-description\">{this.props.description ? this.props.description : \"\"}</div>\n\t\t\t\t</div>\n\t\t\t\t{this.state.tags.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"app-tags\"\n\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\tthis.footer = el;\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<i className=\"ff-tag\"></i>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"app-tag-names\"\n\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\tthis.tagNamesList = el;\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this.state.tags.map((tag, i) => {\n\t\t\t\t\t\t\t\tconst tagName = tag;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<span key={i} className=\"tag-name\" onClick={this.addTag.bind(this, tag)} title={tagName}>\n\t\t\t\t\t\t\t\t\t\t{getTruncatedStringWithEllipses(tagName)}\n\t\t\t\t\t\t\t\t\t\t{i !== this.props.tags.length - 1 ? \", \" : null}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default AppCard;\n"]}
|