@finsemble/finsemble-ui 7.0.1 → 7.1.0
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 +13 -11
- 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 +3 -10
- 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 -1
- package/react/assets/css/finsemble.css +3 -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 +2 -2
- package/react/assets/css/menus.css +10 -10
- package/react/assets/css/notificationsCenter.css +16 -31
- 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 +2 -2
- package/react/assets/css/tags.css +10 -10
- package/react/assets/css/toolbar.css +22 -19
- package/react/assets/css/userPreferences.css +12 -14
- package/react/assets/css/windowTitleBar.css +75 -36
- 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/Checkbox.d.ts +1 -0
- package/react/components/common/Checkbox.js +2 -2
- package/react/components/common/Checkbox.js.map +1 -1
- package/react/components/common/ColorPicker.d.ts +5 -0
- package/react/components/common/ColorPicker.js +40 -0
- 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 +18 -0
- package/react/components/common/ErrorBoundary.js +21 -0
- package/react/components/common/ErrorBoundary.js.map +1 -1
- 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 +10 -0
- package/react/components/common/FinsembleIcon.js +51 -2
- package/react/components/common/FinsembleIcon.js.map +1 -1
- package/react/components/common/FinsembleSelect.js +5 -1
- package/react/components/common/FinsembleSelect.js.map +1 -1
- package/react/components/common/FinsembleToggleButtonBar.js +1 -1
- package/react/components/common/FinsembleToggleButtonBar.js.map +1 -1
- package/react/components/common/InputTable.d.ts +7 -0
- package/react/components/common/InputTable.js +7 -0
- package/react/components/common/InputTable.js.map +1 -1
- package/react/components/common/Tab.js +3 -0
- package/react/components/common/Tab.js.map +1 -1
- package/react/components/common/TimeSelect.js +24 -0
- 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/accordion.css +9 -6
- package/react/components/common/css/application-edit-page.css +39 -44
- 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 +8 -8
- package/react/components/common/css/time-select.css +1 -0
- package/react/components/common/css/toggle.css +4 -4
- 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 +1 -0
- package/react/components/common/helpers.js.map +1 -1
- package/react/components/common/stories/ColorPicker.stories.js +3 -0
- 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/tests/Accordion.spec.js +6 -0
- package/react/components/common/tests/Accordion.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 +1 -0
- package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
- package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +1 -0
- package/react/components/common/tests/FinsembleToggleButtonBar.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 +9 -0
- 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 +8 -0
- 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 +13 -0
- package/react/components/icon/Icon.js +34 -0
- package/react/components/icon/Icon.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialog.d.ts +4 -0
- package/react/components/legacyControls/FinsembleDialog.js +15 -0
- 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 +126 -1
- 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/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 +112 -2
- 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 +3 -0
- package/react/components/menu/MenuToggle.js.map +1 -1
- package/react/components/menu/keyboardNavigation.d.ts +12 -0
- package/react/components/menu/keyboardNavigation.js +55 -0
- 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 +8 -0
- 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 +18 -0
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +3 -0
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
- package/react/components/notifications/components/shared/CheckButton.js +1 -1
- 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 +13 -6
- 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/views/CardView.js +3 -0
- package/react/components/notifications/components/views/CardView.js.map +1 -1
- package/react/components/notifications/components/views/ListView.js +8 -0
- 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 +3 -0
- 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 +17 -2
- 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 -1
- 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 +23 -3
- package/react/components/processMonitor/helpers.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 +4 -2
- package/react/components/sdd/AddApp.js +57 -49
- package/react/components/sdd/AddApp.js.map +1 -1
- package/react/components/sdd/AppEditAccess.js +8 -0
- package/react/components/sdd/AppEditAccess.js.map +1 -1
- package/react/components/sdd/AppEditPage.d.ts +2 -1
- package/react/components/sdd/AppEditPage.js +148 -361
- package/react/components/sdd/AppEditPage.js.map +1 -1
- package/react/components/sdd/Appearance.css +1 -1
- package/react/components/sdd/Appearance.js +3 -0
- package/react/components/sdd/Appearance.js.map +1 -1
- package/react/components/sdd/Application.js +39 -7
- package/react/components/sdd/Application.js.map +1 -1
- package/react/components/sdd/Applications.js +89 -13
- package/react/components/sdd/Applications.js.map +1 -1
- package/react/components/sdd/AssetsPage.css +3 -3
- package/react/components/sdd/EditPreload.js +10 -0
- package/react/components/sdd/EditPreload.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/Publish.js +2 -0
- 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.js +17 -0
- package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
- package/react/components/sdd/ThemePage.css +6 -23
- package/react/components/sdd/ThemePage.js +1 -1
- package/react/components/sdd/ThemePage.js.map +1 -1
- package/react/components/sdd/Themes.js +2 -0
- package/react/components/sdd/Themes.js.map +1 -1
- package/react/components/sdd/Toolbar.js +7 -0
- 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.js +4 -0
- package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
- package/react/components/sdd/css/addApp.css +18 -5
- package/react/components/sdd/css/appearance.css +6 -0
- package/react/components/sdd/css/applications.css +27 -14
- 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 +8 -11
- 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/configTemplate.js +1 -0
- package/react/components/sdd/fixtures/configTemplate.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 +303 -0
- package/react/components/sdd/smartDesktopClient.js +334 -1
- package/react/components/sdd/smartDesktopClient.js.map +1 -1
- package/react/components/sdd/smartDesktopClient.spec.js +5 -2
- package/react/components/sdd/smartDesktopClient.spec.js.map +1 -1
- package/react/components/sdd/stories/AddApp.stories.d.ts +2 -1
- package/react/components/sdd/stories/AddApp.stories.js +8 -0
- package/react/components/sdd/stories/AddApp.stories.js.map +1 -1
- package/react/components/sdd/stories/AppEditPage.stories.d.ts +3 -1
- package/react/components/sdd/stories/AppEditPage.stories.js +3 -0
- package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
- package/react/components/sdd/stories/Appearance.stories.js +1 -0
- package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
- package/react/components/sdd/tests/AddApp.spec.js +40 -3
- package/react/components/sdd/tests/AddApp.spec.js.map +1 -1
- package/react/components/sdd/tests/AppEditPage.spec.js +16 -0
- package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
- package/react/components/sdd/tests/Application.spec.js +33 -438
- 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 +29 -5
- package/react/components/sdd/tests/Applications.spec.js.map +1 -1
- package/react/components/sdd/tests/Authentication.spec.js +7 -0
- 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 +13 -0
- package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
- package/react/components/sdd/tests/Export.spec.js +2 -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/OptionalSettingsView.spec.js +29 -0
- package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
- package/react/components/sdd/tests/ProjectErrors.spec.js +2 -0
- package/react/components/sdd/tests/ProjectErrors.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/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.js +6 -0
- package/react/components/search/SearchResult.js.map +1 -1
- package/react/components/search/SearchResult.spec.js +7 -0
- package/react/components/search/SearchResult.spec.js.map +1 -1
- package/react/components/search/SearchResult.stories.js +4 -0
- package/react/components/search/SearchResult.stories.js.map +1 -1
- package/react/components/search/SearchResults.js +5 -1
- package/react/components/search/SearchResults.js.map +1 -1
- package/react/components/search/SearchResults.spec.js +7 -0
- package/react/components/search/SearchResults.spec.js.map +1 -1
- 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 +9 -0
- 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/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 +44 -0
- package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
- package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +6 -0
- 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 +1 -0
- 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 +4 -0
- package/react/components/toolbar/ToolbarIcon.js.map +1 -1
- package/react/components/toolbar/ToolbarSection.d.ts +7 -0
- package/react/components/toolbar/ToolbarSection.js +19 -1
- package/react/components/toolbar/ToolbarSection.js.map +1 -1
- package/react/components/toolbar/ToolbarShell.d.ts +5 -0
- package/react/components/toolbar/ToolbarShell.js +7 -0
- package/react/components/toolbar/ToolbarShell.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.d.ts +16 -0
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js +20 -0
- package/react/components/toolbar/advancedAppLauncher/AdvancedAppLauncher.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.d.ts +52 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js +58 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewAppForm.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/AddNewFolder.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.d.ts +27 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js +49 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppActionsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.d.ts +13 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js +14 -0
- package/react/components/toolbar/advancedAppLauncher/components/AppDefinition.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/Content.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/Content.js +19 -0
- package/react/components/toolbar/advancedAppLauncher/components/Content.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.d.ts +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/FilterSort.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.d.ts +16 -0
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js +39 -0
- package/react/components/toolbar/advancedAppLauncher/components/FoldersList.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.d.ts +4 -0
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js +9 -0
- package/react/components/toolbar/advancedAppLauncher/components/LeftNavBottomLinks.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js +3 -0
- package/react/components/toolbar/advancedAppLauncher/components/SearchBox.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.d.ts +6 -0
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js +7 -0
- package/react/components/toolbar/advancedAppLauncher/components/TagsMenu.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/components/ToggleFavoriteDropdown.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.d.ts +5 -0
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js +5 -0
- package/react/components/toolbar/advancedAppLauncher/modules/AppDirectory.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.d.ts +37 -0
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js +40 -0
- package/react/components/toolbar/advancedAppLauncher/modules/FDC3.js.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts +3 -0
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +82 -0
- 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 +11 -0
- 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 +70 -3
- 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 +7 -0
- 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 +16 -0
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +20 -0
- 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 +5 -0
- 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 +76 -0
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +140 -1
- 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/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 +12 -0
- package/react/components/userPreferences/components/content/Workspaces.js +36 -3
- package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
- package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +3 -0
- 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 +11 -0
- package/react/components/userPreferences/components/general/ScheduledClose.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 +17 -0
- package/react/components/userPreferences/stores/UserPreferencesStore.js +27 -0
- package/react/components/userPreferences/stores/UserPreferencesStore.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/Workspace.spec.js +20 -0
- package/react/components/userPreferences/tests/Workspace.spec.js.map +1 -1
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +111 -0
- package/react/components/windowTitleBar/WindowTitleBarShell.js +218 -47
- 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 +25 -9
- 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 +172 -10
- 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 +72 -1
- 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 +63 -0
- 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/timer.js +2 -0
- package/react/components/yesNoDialog/timer.js.map +1 -1
- package/react/enzymeSetup.js +5 -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 +100 -4
- 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.js +52 -0
- 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.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 +4 -0
- package/react/store.js +11 -0
- package/react/store.js.map +1 -1
- package/react/tsconfig.tsbuildinfo +1 -1
- 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 +5 -0
- package/react/types/smartDesktopDesignerTypes.js.map +1 -1
- package/react/types/workspaceTypes.d.ts +8 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../../../src/components/sdd/Application.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React from \"react\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { CircularLoadingSpinner } from \"../common/LoadingSpinner\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport * as Types from \"../../types/smartDesktopDesignerTypes\";\nimport { services } from \"@finsemble/finsemble-api\";\nimport { View } from \"./View\";\nimport { Header } from \"../common/Header\";\nimport { Content } from \"./Content\";\nimport { AppEditPage } from \"./AppEditPage\";\nimport { generateDefaultConfig } from \"./sdd_helpers\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\nimport { AppEditPageProps } from \"./AppEditPage\";\nimport { PositionTypes } from \"@finsemble/finsemble-api/types/services/window/types\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\n\nexport type AppDefinition = services.Interop.types.AppDefinition;\n// Get the type of the window object within an AppD manifest. Use Required<> to resolve the ?:\nexport type ManifestWindow = Required<AppDefinition>[\"manifest\"][\"window\"];\n\nconst abstractPositionLookup = [\n\t// `${top}-${left}-${bottom}-${right}`\n\t\"\",\n\t\"0-0-undefined-undefined\",\n\t\"0-center-undefined-undefined\",\n\t\"0-undefined-undefined-0\",\n\t\"center-0-undefined-undefined\",\n\t\"center-center-undefined-undefined\",\n\t\"center-undefined-undefined-0\",\n\t\"undefined-0-0-undefined\",\n\t\"undefined-center-0-undefined\",\n\t\"undefined-undefined-0-0\",\n];\n\nexport const genAbstractPositionFromAppConfig = (appConfig: AppDefinition): number => {\n\tconst position = appConfig.manifest?.window?.position;\n\tconst left = appConfig.manifest?.window?.left;\n\tconst right = appConfig.manifest?.window?.right;\n\tconst top = appConfig.manifest?.window?.top;\n\tconst bottom = appConfig.manifest?.window?.bottom;\n\n\t// No position is defined\n\tif (position === undefined) {\n\t\treturn 0;\n\t}\n\n\treturn abstractPositionLookup.indexOf(`${top}-${left}-${bottom}-${right}`);\n};\nexport const genWindowParamsFromAbstractPosition = (abstractPosition: number): ManifestWindow => {\n\tif (abstractPosition <= 0) {\n\t\treturn {};\n\t}\n\tconst [top, left, bottom, right] = abstractPositionLookup[abstractPosition].split(\"-\");\n\tconst params = {\n\t\tposition: \"monitor\" as PositionTypes,\n\t\ttop,\n\t\tleft,\n\t\tbottom,\n\t\tright,\n\t};\n\n\tfor (let key in params) {\n\t\tif (params[key as keyof typeof params] === \"undefined\") {\n\t\t\tdelete params[key as keyof typeof params];\n\t\t}\n\t}\n\n\treturn params;\n};\n\n/* eslint-disable sonarjs/cognitive-complexity */\nexport function appConfigToAppData(appConfig: AppDefinition): Types.ApplicationSaveData {\n\treturn {\n\t\tname: appConfig.name || appConfig.manifest?.component?.displayName,\n\t\tdescription: appConfig.description || \"\",\n\t\turl: appConfig.manifest?.window?.url ?? \"\",\n\t\tpath: appConfig.manifest?.window?.path ?? \"\",\n\t\tappArguments: appConfig.manifest?.window?.arguments ?? \"\",\n\t\tappType: appConfig.manifest?.window?.windowType ?? \"\",\n\t\twidth: appConfig.manifest?.window?.width ?? \"\",\n\t\theight: appConfig.manifest?.window?.height ?? \"\",\n\t\t// SDD only works with the first icon in the AppD array\n\t\ticonURL: appConfig.icons?.[0] ? appConfig.icons[0].src : \"\",\n\t\trules: appConfig.manifest?.interop?.selectConnect ?? [],\n\t\tintents: appConfig.intents ?? [],\n\t\tpersistPath: appConfig.manifest?.foreign?.services?.workspace?.persistPath ?? false,\n\t\tpersistURL: appConfig.manifest?.foreign?.services?.workspace?.persistURL ?? false,\n\t\taddToWorkspace: appConfig.manifest?.window?.addToWorkspace ?? true,\n\t\talias: appConfig.manifest?.window?.alias ?? \"\",\n\t\tallowAutoArrange: appConfig.manifest?.foreign?.services?.windowService?.allowAutoArrange ?? true,\n\t\tallowGrouping: appConfig.manifest?.foreign?.services?.windowService?.allowGrouping ?? true,\n\t\tallowMaximize: appConfig.manifest?.foreign?.services?.windowService?.allowMaximize ?? true,\n\t\tallowMinimize: appConfig.manifest?.foreign?.services?.windowService?.allowMinimize ?? true,\n\t\tallowSnapping: appConfig.manifest?.foreign?.services?.windowService?.allowSnapping ?? true,\n\t\tallowTabbing: appConfig.manifest?.foreign?.services?.windowService?.allowTabbing ?? true,\n\t\tallowTiling: appConfig.manifest?.foreign?.services?.windowService?.allowTiling ?? true,\n\t\tenableAffinity: appConfig.manifest?.window?.affinity !== \"false\",\n\t\tenableAOT: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.alwaysOnTopIcon ?? false,\n\t\tenableTitleBar: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader !== false,\n\t\thideClose: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideClose ?? false,\n\t\thideMaximize: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideMaximize ?? false,\n\t\thideMinimize: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideMinimize ?? false,\n\t\tautoConnect: appConfig.manifest?.interop?.autoConnect ?? true,\n\t\tabstractPosition: genAbstractPositionFromAppConfig(appConfig),\n\t\talwaysOnTop: appConfig.manifest?.window?.options?.alwaysOnTop ?? false,\n\t\topacity: appConfig.manifest?.window?.options?.opacity ?? 1,\n\t\tresizable: appConfig.manifest?.window?.options?.resizable ?? true,\n\t\tsingleton: appConfig.manifest?.component?.singleton ?? false,\n\t\tspawnOnStartup: appConfig.manifest?.component?.spawnOnStartup ?? false,\n\t\tlaunchableByUser: appConfig.manifest?.foreign?.components?.[\"App Launcher\"]?.launchableByUser ?? true,\n\t\tsecurity: appConfig.manifest?.window?.options?.securityPolicy ?? \"trusted\",\n\t\tisEvergreen: appConfig.manifest?.window?.options?.isEvergreen ?? false,\n\t\tnative_windowSpawnTimeout: appConfig.manifest?.window?.options?.windowSpawnTimeout ?? 30,\n\t\tpreloads: appConfig.manifest?.component?.preload ?? [],\n\t\ttitlebarType: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.titlebarType ?? \"injected\",\n\t};\n}\n\nexport function appDataToAppConfig(\n\tcurrentAppConfig: AppDefinition,\n\tdata: Types.ApplicationSaveData,\n\tappId: string\n): AppDefinition {\n\tlet windowParams: ManifestWindow = currentAppConfig.manifest\n\t\t? {\n\t\t\t\t...currentAppConfig.manifest.window,\n\t\t\t\toptions: {\n\t\t\t\t\t...currentAppConfig.manifest.window?.options,\n\t\t\t\t\tsecurityPolicy: data.security,\n\t\t\t\t\tisEvergreen: data.isEvergreen,\n\t\t\t\t\twindowSpawnTimeout: data.native_windowSpawnTimeout,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n\n\tif (data.appType === \"native\" || data.appType === \"assimilation\" || data.appType === \"application\") {\n\t\twindowParams.windowType = data.appType == \"native\" ? data.appType : \"assimilation\";\n\t\twindowParams.path = data.path;\n\t\twindowParams.arguments = data.appArguments?.trim();\n\t\tdelete windowParams.url;\n\t} else if (data.appType === \"Citrix\") {\n\t\tconsole.log(\"Citrix stuff...\");\n\t\t// @ts-ignore\n\t\twindowParams.windowType = data.appType;\n\t\twindowParams.arguments = data.appArguments?.trim();\n\t\tdelete windowParams.path;\n\t\tdelete windowParams.url;\n\t} else {\n\t\tdelete windowParams.windowType;\n\t\tdelete windowParams.path;\n\t\tdelete windowParams.arguments;\n\t\twindowParams.url = data.url;\n\t}\n\n\tif (data.enableAffinity) {\n\t\tif (windowParams.affinity === \"false\") {\n\t\t\tdelete windowParams.affinity;\n\t\t}\n\t} else {\n\t\twindowParams.affinity = \"false\";\n\t}\n\n\twindowParams.width = data.width;\n\twindowParams.height = data.height;\n\twindowParams.addToWorkspace = data.addToWorkspace;\n\n\tdelete windowParams.position;\n\tdelete windowParams.left;\n\tdelete windowParams.right;\n\tdelete windowParams.top;\n\tdelete windowParams.bottom;\n\n\t// Creates an AppDIcon array from a url. If url is the empty string then we delete the icons\n\tconst appDIconsFromURL = (src: string) => (src === \"\" ? [] : [{ src }]);\n\tconst icons = data.iconURL || data.iconURL === \"\" ? appDIconsFromURL(data.iconURL) : currentAppConfig.icons;\n\n\tlet appConfig: AppDefinition = {\n\t\t...currentAppConfig,\n\t\tappId,\n\t\tname: data.name,\n\t\tdescription: data.description,\n\t\tmanifest: {\n\t\t\t...currentAppConfig.manifest,\n\t\t\twindow: {\n\t\t\t\t...windowParams,\n\t\t\t\t...genWindowParamsFromAbstractPosition(data.abstractPosition),\n\t\t\t\toptions: {\n\t\t\t\t\t...windowParams?.options,\n\t\t\t\t\talwaysOnTop: data.alwaysOnTop,\n\t\t\t\t\topacity: data.opacity,\n\t\t\t\t\tresizable: data.resizable,\n\t\t\t\t},\n\t\t\t},\n\t\t\tcomponent: {\n\t\t\t\t...currentAppConfig.manifest?.component,\n\t\t\t\tsingleton: data.singleton,\n\t\t\t\tspawnOnStartup: data.spawnOnStartup,\n\t\t\t\tpreload: data.preloads,\n\t\t\t},\n\t\t\tinterop: {\n\t\t\t\t...currentAppConfig.manifest?.interop,\n\t\t\t\tselectConnect: data.rules,\n\t\t\t\tautoConnect: data.autoConnect,\n\t\t\t},\n\t\t\tforeign: {\n\t\t\t\t...currentAppConfig.manifest?.foreign,\n\t\t\t\tcomponents: {\n\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components,\n\t\t\t\t\t\"App Launcher\": {\n\t\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components?.[\"App Launcher\"],\n\t\t\t\t\t\tlaunchableByUser: data.launchableByUser,\n\t\t\t\t\t},\n\t\t\t\t\t\"Window Manager\": {\n\t\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components?.[\"Window Manager\"],\n\t\t\t\t\t\talwaysOnTopIcon: data.enableAOT || !data.alwaysOnTop,\n\t\t\t\t\t\ttitlebarType: data.titlebarType,\n\t\t\t\t\t\tFSBLHeader: data.enableTitleBar\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\thideClose: data.hideClose,\n\t\t\t\t\t\t\t\t\thideMaximize: data.hideMaximize || !data.allowMaximize,\n\t\t\t\t\t\t\t\t\thideMinimize: data.hideMinimize || !data.allowMinimize,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tservices: {\n\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services,\n\t\t\t\t\tworkspace: {\n\t\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services?.workspace,\n\t\t\t\t\t\tpersistPath: data.persistPath,\n\t\t\t\t\t\tpersistURL: data.persistURL,\n\t\t\t\t\t},\n\t\t\t\t\twindowService: {\n\t\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services?.windowService,\n\t\t\t\t\t\tallowAutoArrange: data.allowAutoArrange,\n\t\t\t\t\t\tallowGrouping: data.allowGrouping,\n\t\t\t\t\t\tallowMinimize: data.allowMinimize,\n\t\t\t\t\t\tallowMaximize: data.allowMaximize,\n\t\t\t\t\t\tallowSnapping: data.allowSnapping,\n\t\t\t\t\t\tallowTabbing: data.allowTabbing,\n\t\t\t\t\t\tallowTiling: data.allowTiling,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tintents: data.intents,\n\t\ticons,\n\t};\n\n\tdelete appConfig.manifest?.temporary;\n\treturn appConfig;\n}\n\nexport enum ApplicationCloseReason {\n\tSUCCESS,\n\tCANCEL,\n\tNEW,\n}\n\nexport type ApplicationProps = {\n\tid: string;\n\tapps: AppDefinition[];\n\taddApp: (appId: string, config: AppDefinition) => Promise<{ err: null }>;\n\tupdateApp: (appId: string, config: AppDefinition) => Promise<{ err: null }>;\n\tdeleteApp: typeof SmartDesktopClient.deleteApp;\n\tgetAppConfigTemplate: typeof SmartDesktopClient.getAppConfigTemplate;\n\tonClose: (reason: ApplicationCloseReason) => void;\n\tsetCurrentAppID: (id: string | null) => void;\n\tisInboundInteropAuthorized: typeof SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof SmartDesktopClient.isOutboundInteropAuthorized;\n\tpreloads: Types.PreloadMap;\n};\n\nconst validateURL = (url: string) => SmartDesktopClient.checkValidURL(url);\n\nconst helpFunction = () => {\n\tlaunchTutorialLink(\"SDD-02-ManageApps\");\n};\n\nexport const Application = (props: ApplicationProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst currentAppID = props.id;\n\n\tconst currentAppConfig = useSelector((state: RootState) =>\n\t\tstate.smartDesktopDesigner.apps.find((app: AppDefinition) => app.appId === currentAppID)\n\t);\n\n\tif (!currentAppConfig) {\n\t\tprops.getAppConfigTemplate().then((response: any) => {\n\t\t\tprops.deleteApp(currentAppID).then(() => {\n\t\t\t\tconst config: AppDefinition = {\n\t\t\t\t\t...response.config,\n\t\t\t\t\tappId: currentAppID,\n\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t...response.config.manifest,\n\t\t\t\t\t\t// Apps that are flagged temporary will be removed if the user cancels out of adding an app\n\t\t\t\t\t\ttemporary: true,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tprops.addApp(currentAppID, config).then(() => {\n\t\t\t\t\tdispatch(SmartDesktopDesignerActions.update_app(config));\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div style={{ overflow: \"hidden\" }}>\n\t\t\t\t\t<div style={{ marginTop: \"43vh\" }}>\n\t\t\t\t\t\t<CircularLoadingSpinner />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst onSaveData = (data: Types.ApplicationSaveData) =>\n\t\tnew Promise<any>((resolve, reject) => {\n\t\t\tif (!currentAppID) {\n\t\t\t\treturn reject(new Error(\"no app ID specified\"));\n\t\t\t}\n\n\t\t\tconst appConfig = appDataToAppConfig(currentAppConfig, data, currentAppID);\n\t\t\tprops.updateApp(currentAppID, appConfig).then(({ err }) => {\n\t\t\t\tif (err === null) {\n\t\t\t\t\tprops.onClose(ApplicationCloseReason.SUCCESS);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\tconst setCurrentComponentID = (id: string | null) => {\n\t\tif (id === \"new\") {\n\t\t\tprops.onClose(ApplicationCloseReason.NEW);\n\t\t} else {\n\t\t\tprops.onClose(ApplicationCloseReason.SUCCESS);\n\t\t}\n\t};\n\n\tconst removeApplicationFn = () => {\n\t\tprops.deleteApp(currentAppID);\n\t\tsetCurrentComponentID(\"\");\n\t};\n\n\tconst appData = appConfigToAppData(currentAppConfig) as Types.ApplicationSaveData;\n\tconst { displayName, windowURL, nativePath, currentAppType } = generateDefaultConfig(appData);\n\n\tconst appEditPageProps: AppEditPageProps = {\n\t\tstartingDisplayName: displayName,\n\t\tstartingAppType: currentAppType,\n\t\tstartingWindowURL: windowURL,\n\t\tstartingNativePath: nativePath,\n\t\tappData,\n\t\tvalidateURL,\n\t\tremoveApplicationFn,\n\t\tcancelFn: () => {\n\t\t\tsetCurrentComponentID(null);\n\t\t},\n\t\tsubmitFn: (data: Types.ApplicationSaveData) => {\n\t\t\tonSaveData?.({\n\t\t\t\t...data,\n\t\t\t\ttags: appData.tags,\n\t\t\t});\n\t\t},\n\t\taddApp: props.addApp,\n\t\tisInboundInteropAuthorized: props.isInboundInteropAuthorized,\n\t\tisOutboundInteropAuthorized: props.isOutboundInteropAuthorized,\n\t\tpreloadAliasList: Object.keys(props.preloads),\n\t};\n\n\treturn (\n\t\t<div className=\"app-edit\">\n\t\t\t<View>\n\t\t\t\t<div>\n\t\t\t\t\t<form onSubmit={(e) => e.preventDefault()}>\n\t\t\t\t\t\t<fieldset className=\"app-edit-fieldset\">\n\t\t\t\t\t\t\t<legend>\n\t\t\t\t\t\t\t\t<Header helpFunction={helpFunction}>Edit app</Header>\n\t\t\t\t\t\t\t</legend>\n\n\t\t\t\t\t\t\t<Content>\n\t\t\t\t\t\t\t\t<AppEditPage {...appEditPageProps} />\n\t\t\t\t\t\t\t</Content>\n\t\t\t\t\t\t</fieldset>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t</View>\n\t\t</div>\n\t);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../../../src/components/sdd/Application.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React from \"react\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { CircularLoadingSpinner } from \"../common/LoadingSpinner\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport * as Types from \"../../types/smartDesktopDesignerTypes\";\nimport { services } from \"@finsemble/finsemble-api\";\nimport { View } from \"./View\";\nimport { Header } from \"../common/Header\";\nimport { Content } from \"./Content\";\nimport { AppEditPage } from \"./AppEditPage\";\nimport { generateDefaultConfig } from \"./sdd_helpers\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\nimport { AppEditPageProps } from \"./AppEditPage\";\nimport { PositionTypes } from \"@finsemble/finsemble-api/types/services/window/types\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\n\nexport type AppDefinition = services.Interop.types.AppDefinition;\n// Get the type of the window object within an AppD manifest. Use Required<> to resolve the ?:\nexport type ManifestWindow = Required<AppDefinition>[\"manifest\"][\"window\"];\n\nconst abstractPositionLookup = [\n\t// `${top}-${left}-${bottom}-${right}`\n\t\"\",\n\t\"0-0-undefined-undefined\",\n\t\"0-center-undefined-undefined\",\n\t\"0-undefined-undefined-0\",\n\t\"center-0-undefined-undefined\",\n\t\"center-center-undefined-undefined\",\n\t\"center-undefined-undefined-0\",\n\t\"undefined-0-0-undefined\",\n\t\"undefined-center-0-undefined\",\n\t\"undefined-undefined-0-0\",\n];\n\nexport const genAbstractPositionFromAppConfig = (appConfig: AppDefinition): number => {\n\tconst position = appConfig.manifest?.window?.position;\n\tconst left = appConfig.manifest?.window?.left;\n\tconst right = appConfig.manifest?.window?.right;\n\tconst top = appConfig.manifest?.window?.top;\n\tconst bottom = appConfig.manifest?.window?.bottom;\n\n\t// No position is defined\n\tif (position === undefined) {\n\t\treturn 0;\n\t}\n\n\treturn abstractPositionLookup.indexOf(`${top}-${left}-${bottom}-${right}`);\n};\nexport const genWindowParamsFromAbstractPosition = (abstractPosition: number): ManifestWindow => {\n\tif (abstractPosition <= 0) {\n\t\treturn {};\n\t}\n\tconst [top, left, bottom, right] = abstractPositionLookup[abstractPosition].split(\"-\");\n\tconst params = {\n\t\tposition: \"monitor\" as PositionTypes,\n\t\ttop,\n\t\tleft,\n\t\tbottom,\n\t\tright,\n\t};\n\n\tfor (let key in params) {\n\t\tif (params[key as keyof typeof params] === \"undefined\") {\n\t\t\tdelete params[key as keyof typeof params];\n\t\t}\n\t}\n\n\treturn params;\n};\n\n/* eslint-disable sonarjs/cognitive-complexity */\nexport function appConfigToAppData(appConfig: AppDefinition): Types.ApplicationSaveData {\n\treturn {\n\t\tname: appConfig.name || appConfig.manifest?.component?.displayName,\n\t\tdescription: appConfig.description || \"\",\n\t\turl: appConfig.manifest?.window?.url ?? \"\",\n\t\tpath: appConfig.manifest?.window?.path ?? \"\",\n\t\tappArguments: appConfig.manifest?.window?.arguments ?? \"\",\n\t\tappType: appConfig.manifest?.window?.windowType ?? \"\",\n\t\twidth: appConfig.manifest?.window?.width ?? \"\",\n\t\theight: appConfig.manifest?.window?.height ?? \"\",\n\t\t// SDD only works with the first icon in the AppD array\n\t\ticonURL: appConfig.icons?.[0] ? appConfig.icons[0].src : \"\",\n\t\trules: appConfig.manifest?.interop?.selectConnect ?? [],\n\t\tintents: appConfig.intents ?? [],\n\t\tpersistPath: appConfig.manifest?.foreign?.services?.workspace?.persistPath ?? false,\n\t\tpersistURL: appConfig.manifest?.foreign?.services?.workspace?.persistURL ?? false,\n\t\taddToWorkspace: appConfig.manifest?.window?.addToWorkspace ?? true,\n\t\talias: appConfig.manifest?.window?.alias ?? \"\",\n\t\tallowAutoArrange: appConfig.manifest?.foreign?.services?.windowService?.allowAutoArrange ?? true,\n\t\tallowGrouping: appConfig.manifest?.foreign?.services?.windowService?.allowGrouping ?? true,\n\t\tallowMaximize: appConfig.manifest?.foreign?.services?.windowService?.allowMaximize ?? true,\n\t\tallowMinimize: appConfig.manifest?.foreign?.services?.windowService?.allowMinimize ?? true,\n\t\tallowSnapping: appConfig.manifest?.foreign?.services?.windowService?.allowSnapping ?? true,\n\t\tallowTabbing: appConfig.manifest?.foreign?.services?.windowService?.allowTabbing ?? true,\n\t\tallowTiling: appConfig.manifest?.foreign?.services?.windowService?.allowTiling ?? true,\n\t\tenableAffinity: appConfig.manifest?.window?.affinity !== \"false\",\n\t\tenableAOT: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.alwaysOnTopIcon ?? false,\n\t\tenableTitleBar: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader !== false,\n\t\thideClose: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideClose ?? false,\n\t\thideMaximize: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideMaximize ?? false,\n\t\thideMinimize: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.FSBLHeader?.hideMinimize ?? false,\n\t\tautoConnect: appConfig.manifest?.interop?.autoConnect ?? true,\n\t\tabstractPosition: genAbstractPositionFromAppConfig(appConfig),\n\t\talwaysOnTop: appConfig.manifest?.window?.options?.alwaysOnTop ?? false,\n\t\topacity: appConfig.manifest?.window?.options?.opacity ?? 1,\n\t\tresizable: appConfig.manifest?.window?.options?.resizable ?? true,\n\t\tsingleton: appConfig.manifest?.component?.singleton ?? false,\n\t\tspawnOnStartup: appConfig.manifest?.component?.spawnOnStartup ?? false,\n\t\tlaunchableByUser: appConfig.manifest?.foreign?.components?.[\"App Launcher\"]?.launchableByUser ?? true,\n\t\tsecurity: appConfig.manifest?.window?.options?.securityPolicy ?? \"trusted\",\n\t\tisEvergreen: appConfig.manifest?.window?.options?.isEvergreen ?? false,\n\t\tnative_windowSpawnTimeout: appConfig.manifest?.window?.options?.windowSpawnTimeout ?? 30,\n\t\tpreloads: appConfig.manifest?.component?.preload ?? [],\n\t\ttitlebarType: appConfig.manifest?.foreign?.components?.[\"Window Manager\"]?.titlebarType ?? \"injected\",\n\t\tbootPhase: appConfig.manifest?.bootParams?.stage ?? \"preuser\",\n\t\twaitForInitialization: appConfig.manifest?.waitForInitialization ?? false,\n\t\tserviceVisible: appConfig.manifest?.component?.window?.options?.autoShow ?? false,\n\t\tdevConsole: appConfig.manifest?.component?.showDevConsoleOnVisible ?? false,\n\t};\n}\n\nexport function appDataToAppConfig(\n\tcurrentAppConfig: AppDefinition,\n\tdata: Types.ApplicationSaveData,\n\tappId: string\n): AppDefinition {\n\tlet windowParams: ManifestWindow = currentAppConfig.manifest\n\t\t? {\n\t\t\t\t...currentAppConfig.manifest.window,\n\t\t\t\toptions: {\n\t\t\t\t\t...currentAppConfig.manifest.window?.options,\n\t\t\t\t\tsecurityPolicy: data.security,\n\t\t\t\t\tisEvergreen: data.isEvergreen,\n\t\t\t\t\twindowSpawnTimeout: data.native_windowSpawnTimeout,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n\n\tif (data.appType === \"native\" || data.appType === \"assimilation\" || data.appType === \"application\") {\n\t\twindowParams.windowType = data.appType == \"native\" ? data.appType : \"assimilation\";\n\t\twindowParams.path = data.path;\n\t\twindowParams.arguments = data.appArguments?.trim();\n\t\tdelete windowParams.url;\n\t} else if (data.appType === \"Citrix\") {\n\t\tconsole.log(\"Citrix stuff...\");\n\t\t// @ts-ignore\n\t\twindowParams.windowType = data.appType;\n\t\twindowParams.arguments = data.appArguments?.trim();\n\t\tdelete windowParams.path;\n\t\tdelete windowParams.url;\n\t} else {\n\t\tdelete windowParams.windowType;\n\t\tdelete windowParams.path;\n\t\tdelete windowParams.arguments;\n\t\twindowParams.url = data.url;\n\t}\n\n\tif (data.enableAffinity) {\n\t\tif (windowParams.affinity === \"false\") {\n\t\t\tdelete windowParams.affinity;\n\t\t}\n\t} else {\n\t\twindowParams.affinity = \"false\";\n\t}\n\n\twindowParams.width = data.width;\n\twindowParams.height = data.height;\n\twindowParams.addToWorkspace = data.addToWorkspace;\n\n\tdelete windowParams.position;\n\tdelete windowParams.left;\n\tdelete windowParams.right;\n\tdelete windowParams.top;\n\tdelete windowParams.bottom;\n\n\t// Creates an AppDIcon array from a url. If url is the empty string then we delete the icons\n\tconst appDIconsFromURL = (src: string) => (src === \"\" ? [] : [{ src }]);\n\tconst icons = data.iconURL || data.iconURL === \"\" ? appDIconsFromURL(data.iconURL) : currentAppConfig.icons;\n\n\t// devConsole: appConfig.manifest?.component?.component?.showDevConsoleOnVisible ?? false,\n\n\tlet appConfig: AppDefinition = {\n\t\t...currentAppConfig,\n\t\tappId,\n\t\tname: data.name,\n\t\tdescription: data.description,\n\t\tmanifest: {\n\t\t\t...currentAppConfig.manifest,\n\t\t\t...(currentAppConfig.manifest?.appService\n\t\t\t\t? {\n\t\t\t\t\t\tbootParams: {\n\t\t\t\t\t\t\t...currentAppConfig.manifest?.bootParams,\n\t\t\t\t\t\t\tstage: data.bootPhase,\n\t\t\t\t\t\t},\n\t\t\t\t\t\twaitForInitialization: data.waitForInitialization,\n\t\t\t\t }\n\t\t\t\t: {}),\n\t\t\twindow: {\n\t\t\t\t...windowParams,\n\t\t\t\t...genWindowParamsFromAbstractPosition(data.abstractPosition),\n\t\t\t\t...(currentAppConfig.manifest?.appService\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tframe: data.serviceVisible,\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\toptions: {\n\t\t\t\t\t...windowParams?.options,\n\t\t\t\t\talwaysOnTop: data.alwaysOnTop,\n\t\t\t\t\topacity: data.opacity,\n\t\t\t\t\tresizable: data.resizable,\n\t\t\t\t\t...(currentAppConfig.manifest?.appService\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tautoShow: data.serviceVisible,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {}),\n\t\t\t\t},\n\t\t\t},\n\t\t\tcomponent: {\n\t\t\t\t...currentAppConfig.manifest?.component,\n\t\t\t\tsingleton: data.singleton,\n\t\t\t\tspawnOnStartup: data.spawnOnStartup,\n\t\t\t\tpreload: data.preloads,\n\t\t\t\t...(currentAppConfig.manifest?.appService\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tshowDevConsoleOnVisible: data.devConsole,\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t},\n\t\t\tinterop: {\n\t\t\t\t...currentAppConfig.manifest?.interop,\n\t\t\t\tselectConnect: data.rules,\n\t\t\t\tautoConnect: data.autoConnect,\n\t\t\t},\n\t\t\tforeign: {\n\t\t\t\t...currentAppConfig.manifest?.foreign,\n\t\t\t\tcomponents: {\n\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components,\n\t\t\t\t\t\"App Launcher\": {\n\t\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components?.[\"App Launcher\"],\n\t\t\t\t\t\tlaunchableByUser: data.launchableByUser,\n\t\t\t\t\t},\n\t\t\t\t\t\"Window Manager\": {\n\t\t\t\t\t\t...currentAppConfig?.manifest?.foreign?.components?.[\"Window Manager\"],\n\t\t\t\t\t\talwaysOnTopIcon: data.enableAOT || !data.alwaysOnTop,\n\t\t\t\t\t\ttitlebarType: data.titlebarType,\n\t\t\t\t\t\tFSBLHeader: data.enableTitleBar\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\thideClose: data.hideClose,\n\t\t\t\t\t\t\t\t\thideMaximize: data.hideMaximize || !data.allowMaximize,\n\t\t\t\t\t\t\t\t\thideMinimize: data.hideMinimize || !data.allowMinimize,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tservices: {\n\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services,\n\t\t\t\t\tworkspace: {\n\t\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services?.workspace,\n\t\t\t\t\t\tpersistPath: data.persistPath,\n\t\t\t\t\t\tpersistURL: data.persistURL,\n\t\t\t\t\t},\n\t\t\t\t\twindowService: {\n\t\t\t\t\t\t...currentAppConfig.manifest?.foreign?.services?.windowService,\n\t\t\t\t\t\tallowAutoArrange: data.allowAutoArrange,\n\t\t\t\t\t\tallowGrouping: data.allowGrouping,\n\t\t\t\t\t\tallowMinimize: data.allowMinimize,\n\t\t\t\t\t\tallowMaximize: data.allowMaximize,\n\t\t\t\t\t\tallowSnapping: data.allowSnapping,\n\t\t\t\t\t\tallowTabbing: data.allowTabbing,\n\t\t\t\t\t\tallowTiling: data.allowTiling,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tintents: data.intents,\n\t\ticons,\n\t};\n\n\tdelete appConfig.manifest?.temporary;\n\treturn appConfig;\n}\n\nexport enum ApplicationCloseReason {\n\tSUCCESS,\n\tCANCEL,\n\tNEW,\n}\n\nexport type ApplicationProps = {\n\tid: string;\n\tapps: AppDefinition[];\n\taddApp: (appId: string, config: AppDefinition) => Promise<{ err: null }>;\n\tupdateApp: (appId: string, config: AppDefinition) => Promise<{ err: null }>;\n\tdeleteApp: typeof SmartDesktopClient.deleteApp;\n\tgetAppConfigTemplate: typeof SmartDesktopClient.getAppConfigTemplate;\n\tonClose: (reason: ApplicationCloseReason) => void;\n\tsetCurrentAppID: (id: string | null) => void;\n\tisInboundInteropAuthorized: typeof SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof SmartDesktopClient.isOutboundInteropAuthorized;\n\tpreloads: Types.PreloadMap;\n};\n\nconst validateURL = (url: string) => SmartDesktopClient.checkValidURL(url);\n\nconst helpFunction = () => {\n\tlaunchTutorialLink(\"SDD-02-ManageApps\");\n};\n\nexport const Application = (props: ApplicationProps) => {\n\tconst dispatch = useDispatch();\n\n\tconst currentAppID = props.id;\n\n\tconst currentAppConfig = useSelector((state: RootState) =>\n\t\tstate.smartDesktopDesigner.apps.find((app: AppDefinition) => app.appId === currentAppID)\n\t);\n\n\tif (!currentAppConfig) {\n\t\tprops.getAppConfigTemplate().then((response: any) => {\n\t\t\tprops.deleteApp(currentAppID).then(() => {\n\t\t\t\tconst config: AppDefinition = {\n\t\t\t\t\t...response.config,\n\t\t\t\t\tappId: currentAppID,\n\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t...response.config.manifest,\n\t\t\t\t\t\t// Apps that are flagged temporary will be removed if the user cancels out of adding an app\n\t\t\t\t\t\ttemporary: true,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tprops.addApp(currentAppID, config).then(() => {\n\t\t\t\t\tdispatch(SmartDesktopDesignerActions.update_app(config));\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div style={{ overflow: \"hidden\" }}>\n\t\t\t\t\t<div style={{ marginTop: \"43vh\" }}>\n\t\t\t\t\t\t<CircularLoadingSpinner />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst onSaveData = (data: Types.ApplicationSaveData) =>\n\t\tnew Promise<any>((resolve, reject) => {\n\t\t\tif (!currentAppID) {\n\t\t\t\treturn reject(new Error(\"no app ID specified\"));\n\t\t\t}\n\n\t\t\tconst appConfig = appDataToAppConfig(currentAppConfig, data, currentAppID);\n\t\t\tprops.updateApp(currentAppID, appConfig).then(({ err }) => {\n\t\t\t\tif (err === null) {\n\t\t\t\t\tprops.onClose(ApplicationCloseReason.SUCCESS);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\tconst setCurrentComponentID = (id: string | null) => {\n\t\tif (id === \"new\") {\n\t\t\tprops.onClose(ApplicationCloseReason.NEW);\n\t\t} else {\n\t\t\tprops.onClose(ApplicationCloseReason.SUCCESS);\n\t\t}\n\t};\n\n\tconst removeApplicationFn = () => {\n\t\tprops.deleteApp(currentAppID);\n\t\tsetCurrentComponentID(\"\");\n\t};\n\n\tconst appData = appConfigToAppData(currentAppConfig) as Types.ApplicationSaveData;\n\tconst { displayName, windowURL, nativePath, currentAppType } = generateDefaultConfig(appData);\n\n\tconst appEditPageProps: AppEditPageProps = {\n\t\tstartingDisplayName: displayName,\n\t\tstartingAppType: currentAppType,\n\t\tstartingWindowURL: windowURL,\n\t\tstartingNativePath: nativePath,\n\t\tappData,\n\t\tvalidateURL,\n\t\tremoveApplicationFn,\n\t\tcancelFn: () => {\n\t\t\tsetCurrentComponentID(null);\n\t\t},\n\t\tsubmitFn: (data: Types.ApplicationSaveData) => {\n\t\t\tonSaveData?.({\n\t\t\t\t...data,\n\t\t\t\ttags: appData.tags,\n\t\t\t});\n\t\t},\n\t\taddApp: props.addApp,\n\t\tisInboundInteropAuthorized: props.isInboundInteropAuthorized,\n\t\tisOutboundInteropAuthorized: props.isOutboundInteropAuthorized,\n\t\tpreloadAliasList: Object.keys(props.preloads),\n\t\tappService: currentAppConfig?.manifest?.appService ?? false,\n\t};\n\n\treturn (\n\t\t<div className=\"app-edit\">\n\t\t\t<View>\n\t\t\t\t<div>\n\t\t\t\t\t<form onSubmit={(e) => e.preventDefault()}>\n\t\t\t\t\t\t<fieldset className=\"app-edit-fieldset\">\n\t\t\t\t\t\t\t<legend>\n\t\t\t\t\t\t\t\t<Header helpFunction={helpFunction}>\n\t\t\t\t\t\t\t\t\t{currentAppConfig?.manifest?.appService ? \"Edit app service\" : \"Edit app\"}\n\t\t\t\t\t\t\t\t</Header>\n\t\t\t\t\t\t\t</legend>\n\n\t\t\t\t\t\t\t<Content>\n\t\t\t\t\t\t\t\t<AppEditPage {...appEditPageProps} />\n\t\t\t\t\t\t\t</Content>\n\t\t\t\t\t\t</fieldset>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t</View>\n\t\t</div>\n\t);\n};\n"]}
|
|
@@ -17,13 +17,19 @@ import { launchTutorialLink } from "./common/fsbl_functions";
|
|
|
17
17
|
import { validateFilename, VALID_APP_EXTENSIONS } from "../common/file_helpers";
|
|
18
18
|
import { AddApp } from "./AddApp";
|
|
19
19
|
import { SmartDesktopClient } from "./smartDesktopClient";
|
|
20
|
+
import { Tab } from "../common/Tab";
|
|
20
21
|
const EMPTY_MENU_ERROR = {
|
|
21
22
|
viewId: "applications",
|
|
22
23
|
message: "One or more of your app menus is empty",
|
|
23
24
|
};
|
|
25
|
+
const handleAppService = (config) => {
|
|
26
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
27
|
+
return (Object.assign(Object.assign({}, config), { manifest: Object.assign(Object.assign({}, config.manifest), { appService: true, foreign: Object.assign(Object.assign({}, ((_b = (_a = config.manifest) === null || _a === void 0 ? void 0 : _a.foreign) !== null && _b !== void 0 ? _b : {})), { components: Object.assign(Object.assign({}, ((_e = (_d = (_c = config.manifest) === null || _c === void 0 ? void 0 : _c.foreign) === null || _d === void 0 ? void 0 : _d.components) !== null && _e !== void 0 ? _e : {})), { "App Launcher": Object.assign(Object.assign({}, ((_h = (_g = (_f = config.manifest) === null || _f === void 0 ? void 0 : _f.foreign) === null || _g === void 0 ? void 0 : _g.components["App Launcher"]) !== null && _h !== void 0 ? _h : {})), { launchableByUser: false }), "Window Manager": Object.assign(Object.assign({}, ((_l = (_k = (_j = config.manifest) === null || _j === void 0 ? void 0 : _j.foreign) === null || _k === void 0 ? void 0 : _k.components["Window Manager"]) !== null && _l !== void 0 ? _l : {})), { FSBLHeader: false }) }) }) }) }));
|
|
28
|
+
};
|
|
24
29
|
export const Applications = (props) => {
|
|
25
30
|
const dispatch = useDispatch();
|
|
26
31
|
const [editMode, setEditMode] = useState(false);
|
|
32
|
+
const [tabAutoFocus, setTabAutoFocus] = useState(0);
|
|
27
33
|
const apps = useSelector((state) => state.smartDesktopDesigner.apps);
|
|
28
34
|
const menus = useSelector((state) => state.smartDesktopDesigner.menus);
|
|
29
35
|
const preloads = useSelector((state) => state.smartDesktopDesigner.preloads);
|
|
@@ -52,11 +58,13 @@ export const Applications = (props) => {
|
|
|
52
58
|
updateAppList();
|
|
53
59
|
}
|
|
54
60
|
const removeAppID = (id) => {
|
|
61
|
+
// Delete app from list of apps
|
|
55
62
|
props.deleteApp(id).then(({ err }) => {
|
|
56
63
|
if (err) {
|
|
57
64
|
alert(err);
|
|
58
65
|
}
|
|
59
66
|
updateAppList();
|
|
67
|
+
// Remove reference to app from all menus
|
|
60
68
|
props.getMenus().then(({ menus: grabbedMenus }) => {
|
|
61
69
|
Object.keys(grabbedMenus).forEach((menuId) => {
|
|
62
70
|
if (!grabbedMenus[menuId].applications.includes(id)) {
|
|
@@ -70,87 +78,147 @@ export const Applications = (props) => {
|
|
|
70
78
|
});
|
|
71
79
|
});
|
|
72
80
|
};
|
|
81
|
+
/********* Lifecycle effects *********/
|
|
82
|
+
// Call updateAppList once the component has mounted
|
|
83
|
+
// Can't call out of an effect, or it will cause an endless loop
|
|
73
84
|
useEffect(() => {
|
|
74
85
|
updateAppList();
|
|
75
86
|
updatePreloadList();
|
|
76
87
|
}, []);
|
|
77
|
-
const
|
|
88
|
+
const serviceWasUpdated = () => {
|
|
89
|
+
FSBL.Clients.DialogManager.open("yesNo", {
|
|
90
|
+
title: `Restart Finsemble?`,
|
|
91
|
+
question: `The changes to app services won’t take effect until you restart Finsemble. Do you want to restart now?`,
|
|
92
|
+
hideModalOnClose: true,
|
|
93
|
+
showCancelButton: false,
|
|
94
|
+
negativeResponseLabel: "Later",
|
|
95
|
+
}, (err, response) => {
|
|
96
|
+
if ((response === null || response === void 0 ? void 0 : response.choice) === "affirmative") {
|
|
97
|
+
FSBL.restartApplication();
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
const addDroppedApp = (file, index, service = false) => {
|
|
78
102
|
const appId = String(new Date().getTime() + index);
|
|
79
103
|
const { path } = file;
|
|
104
|
+
// Confirm that the file is an executable
|
|
80
105
|
if (path !== undefined && validateFilename(VALID_APP_EXTENSIONS, path)) {
|
|
81
106
|
return;
|
|
82
107
|
}
|
|
108
|
+
// Generate defaults and then add app with those defaults
|
|
83
109
|
props.getAppConfigTemplate().then((response) => {
|
|
84
110
|
var _a, _b;
|
|
85
111
|
const { config } = response;
|
|
112
|
+
// Get generated displayName
|
|
86
113
|
const { displayName } = generateDefaultConfig(Object.assign(Object.assign({}, config), { path }));
|
|
87
114
|
config.name = displayName;
|
|
115
|
+
// We generated appId above
|
|
88
116
|
config.appId = appId;
|
|
117
|
+
// A file was dropped, so we know this was a file, not a URL
|
|
89
118
|
config.manifest = (_a = config.manifest) !== null && _a !== void 0 ? _a : {};
|
|
90
119
|
config.manifest.window = (_b = config.manifest.window) !== null && _b !== void 0 ? _b : {};
|
|
91
120
|
config.manifest.window.windowType = "assimilation";
|
|
92
121
|
config.manifest.window.path = path;
|
|
93
122
|
delete config.manifest.window.url;
|
|
123
|
+
if (service) {
|
|
124
|
+
config.manifest.appService = true;
|
|
125
|
+
}
|
|
126
|
+
// Add app with defaults
|
|
94
127
|
props.addApp(appId, config).then(() => {
|
|
95
128
|
updateAppList();
|
|
96
129
|
});
|
|
97
130
|
});
|
|
98
131
|
};
|
|
99
|
-
const
|
|
132
|
+
const addDroppedAppService = (file, index) => {
|
|
133
|
+
addDroppedApp(file, index, true);
|
|
134
|
+
serviceWasUpdated();
|
|
135
|
+
};
|
|
136
|
+
const addAppByUrl = (url, displayName, service = false) => {
|
|
100
137
|
const appId = String(new Date().getTime());
|
|
101
138
|
setEditMode(false);
|
|
139
|
+
// @todo: show loading spinner
|
|
102
140
|
props.getAppConfigTemplate().then((response) => {
|
|
103
141
|
var _a, _b;
|
|
104
|
-
|
|
142
|
+
let { config } = response;
|
|
105
143
|
config.name = displayName;
|
|
106
144
|
config.appId = appId;
|
|
145
|
+
// A file was dropped, so we know this was a file, not a URL
|
|
107
146
|
config.manifest = (_a = config.manifest) !== null && _a !== void 0 ? _a : {};
|
|
108
147
|
config.manifest.window = (_b = config.manifest.window) !== null && _b !== void 0 ? _b : {};
|
|
109
148
|
delete config.manifest.window.windowType;
|
|
110
149
|
delete config.manifest.window.path;
|
|
111
150
|
config.manifest.window.url = url;
|
|
151
|
+
if (service) {
|
|
152
|
+
config = handleAppService(config);
|
|
153
|
+
}
|
|
154
|
+
// Add app with defaults
|
|
112
155
|
props.addApp(appId, config).then(() => {
|
|
113
156
|
updateAppList();
|
|
114
157
|
});
|
|
115
158
|
});
|
|
116
159
|
};
|
|
117
|
-
const
|
|
160
|
+
const addAppServiceByUrl = (url, displayName) => {
|
|
161
|
+
addAppByUrl(url, displayName, true);
|
|
162
|
+
serviceWasUpdated();
|
|
163
|
+
};
|
|
164
|
+
const addAppByPath = (path, displayName, apiAccess, service = false) => {
|
|
118
165
|
const appId = String(new Date().getTime());
|
|
119
166
|
setEditMode(false);
|
|
167
|
+
// @todo: show loading spinner
|
|
120
168
|
props.getAppConfigTemplate().then((response) => {
|
|
121
169
|
var _a, _b;
|
|
122
|
-
|
|
170
|
+
let { config } = response;
|
|
123
171
|
config.name = displayName;
|
|
124
172
|
config.appId = appId;
|
|
173
|
+
// A file was dropped, so we know this was a file, not a URL
|
|
125
174
|
config.manifest = (_a = config.manifest) !== null && _a !== void 0 ? _a : {};
|
|
126
175
|
config.manifest.window = (_b = config.manifest.window) !== null && _b !== void 0 ? _b : {};
|
|
127
176
|
config.manifest.window.windowType = apiAccess ? "native" : "assimilation";
|
|
128
177
|
config.manifest.window.path = path;
|
|
129
178
|
delete config.manifest.window.url;
|
|
179
|
+
if (service) {
|
|
180
|
+
config = handleAppService(config);
|
|
181
|
+
}
|
|
182
|
+
// Add app with defaults
|
|
130
183
|
props.addApp(appId, config).then(() => {
|
|
131
184
|
updateAppList();
|
|
132
185
|
});
|
|
133
186
|
});
|
|
134
187
|
};
|
|
188
|
+
const addAppServiceByPath = (url, displayName) => {
|
|
189
|
+
addAppByPath(url, displayName, true);
|
|
190
|
+
serviceWasUpdated();
|
|
191
|
+
};
|
|
135
192
|
const addAppCitrix = (aliasName, displayName) => {
|
|
136
193
|
const appId = String(new Date().getTime());
|
|
137
194
|
setEditMode(false);
|
|
195
|
+
// @todo: show loading spinner
|
|
138
196
|
props.getAppConfigTemplate().then((response) => {
|
|
139
197
|
var _a, _b;
|
|
140
198
|
const { config } = response;
|
|
141
199
|
config.name = displayName;
|
|
142
200
|
config.appId = appId;
|
|
201
|
+
// A file was dropped, so we know this was a file, not a URL
|
|
143
202
|
config.manifest = (_a = config.manifest) !== null && _a !== void 0 ? _a : {};
|
|
144
203
|
config.manifest.window = (_b = config.manifest.window) !== null && _b !== void 0 ? _b : {};
|
|
145
204
|
config.manifest.window.alias = aliasName;
|
|
205
|
+
// @ts-ignore
|
|
146
206
|
config.manifest.window.windowType = "Citrix";
|
|
147
207
|
delete config.manifest.window.url;
|
|
208
|
+
// Unlike URL and Path, there will be no handling for service, because
|
|
209
|
+
// we assume that no Citrix/Virtual app will be used as an app service
|
|
210
|
+
// Add app with defaults
|
|
148
211
|
props.addApp(appId, config).then(() => {
|
|
149
212
|
updateAppList();
|
|
150
213
|
});
|
|
151
214
|
});
|
|
152
215
|
};
|
|
153
216
|
const onClose = (reason) => {
|
|
217
|
+
var _a;
|
|
218
|
+
// If you've closed the AppEditPage from App Services, make sure to return to the Services tab
|
|
219
|
+
const currentApp = apps.find((app) => app.appId === currentAppID);
|
|
220
|
+
// If the closed app was an app service, set autofocus to tab 1. Otherwise, tab 0.
|
|
221
|
+
setTabAutoFocus(((_a = currentApp === null || currentApp === void 0 ? void 0 : currentApp.manifest) === null || _a === void 0 ? void 0 : _a.appService) === true ? 1 : 0);
|
|
154
222
|
if (reason === ApplicationCloseReason.NEW) {
|
|
155
223
|
dispatch(SmartDesktopDesignerActions.new_app(new Date().getTime().toString()));
|
|
156
224
|
}
|
|
@@ -176,8 +244,8 @@ export const Applications = (props) => {
|
|
|
176
244
|
isOutboundInteropAuthorized: props.isOutboundInteropAuthorized,
|
|
177
245
|
preloads,
|
|
178
246
|
};
|
|
179
|
-
const
|
|
180
|
-
items: apps.filter((app) => { var _a; return !((_a = app === null || app === void 0 ? void 0 : app.manifest) === null || _a === void 0 ? void 0 : _a.temporary); }),
|
|
247
|
+
const appsDropZoneProps = {
|
|
248
|
+
items: apps.filter((app) => { var _a, _b; return !((_a = app === null || app === void 0 ? void 0 : app.manifest) === null || _a === void 0 ? void 0 : _a.temporary) && !((_b = app === null || app === void 0 ? void 0 : app.manifest) === null || _b === void 0 ? void 0 : _b.appService); }),
|
|
181
249
|
clickItem: (appID) => {
|
|
182
250
|
FSBL.Clients.LauncherClient.showWindow({ componentType: appID }, { spawnIfNotFound: true }, () => { });
|
|
183
251
|
},
|
|
@@ -186,6 +254,7 @@ export const Applications = (props) => {
|
|
|
186
254
|
},
|
|
187
255
|
deleteItem: removeAppID,
|
|
188
256
|
};
|
|
257
|
+
const servicesDropZoneProps = Object.assign(Object.assign({}, appsDropZoneProps), { items: apps.filter((app) => { var _a, _b; return !((_a = app === null || app === void 0 ? void 0 : app.manifest) === null || _a === void 0 ? void 0 : _a.temporary) && ((_b = app === null || app === void 0 ? void 0 : app.manifest) === null || _b === void 0 ? void 0 : _b.appService); }) });
|
|
189
258
|
const helpFunction = () => {
|
|
190
259
|
launchTutorialLink("SDD-02-ManageApps");
|
|
191
260
|
};
|
|
@@ -195,11 +264,18 @@ export const Applications = (props) => {
|
|
|
195
264
|
return (React.createElement(React.Fragment, null, currentAppID ? (React.createElement(Application, Object.assign({}, applicationProps))) : (React.createElement(View, null,
|
|
196
265
|
React.createElement(Header, { helpFunction: helpFunction }, "Manage apps"),
|
|
197
266
|
React.createElement(Content, null,
|
|
198
|
-
React.createElement(
|
|
199
|
-
React.createElement("div", {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
React.createElement(
|
|
267
|
+
React.createElement(Tab, { autofocus: tabAutoFocus },
|
|
268
|
+
React.createElement("div", { "data-label": "Apps" },
|
|
269
|
+
React.createElement("div", { className: "frontmatter" }, "Click Add or drag your apps into the list."),
|
|
270
|
+
React.createElement(Button, { className: "icon-before-add", fashion: "primary", iconBefore: "plus", text: "Add", onClick: addApp }),
|
|
271
|
+
React.createElement(AddApp, { show: editMode, checkValidURL: SmartDesktopClient.checkValidURL, addAppByUrl: addAppByUrl, addAppByPath: addAppByPath, addAppCitrix: addAppCitrix, close: addApp, idKey: "app" }),
|
|
272
|
+
React.createElement(DropZone, { processFile: addDroppedApp },
|
|
273
|
+
React.createElement(ItemList, Object.assign({}, appsDropZoneProps)))),
|
|
274
|
+
React.createElement("div", { "data-label": "Services" },
|
|
275
|
+
React.createElement("div", { className: "frontmatter" }),
|
|
276
|
+
React.createElement(Button, { className: "icon-before-add", fashion: "primary", iconBefore: "plus", text: "Add", onClick: addApp }),
|
|
277
|
+
React.createElement(AddApp, { show: editMode, checkValidURL: SmartDesktopClient.checkValidURL, addAppByUrl: addAppServiceByUrl, addAppByPath: addAppServiceByPath, includeCitrix: false, close: addApp, idKey: "service" }),
|
|
278
|
+
React.createElement(DropZone, { processFile: addDroppedAppService },
|
|
279
|
+
React.createElement(ItemList, Object.assign({}, servicesDropZoneProps))))))))));
|
|
204
280
|
};
|
|
205
281
|
//# sourceMappingURL=Applications.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Applications.js","sourceRoot":"","sources":["../../../src/components/sdd/Applications.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { View } from \"./View\";\nimport { Header } from \"../common/Header\";\nimport { Button } from \"../common/Button\";\nimport { Content } from \"./Content\";\nimport { Application, ApplicationCloseReason } from \"./Application\";\nimport { ItemList, ItemListProps } from \"./ItemList\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { DropZone, FileWithPath } from \"../common/DropZone\";\nimport { generateDefaultConfig } from \"./sdd_helpers\";\nimport { MenuType, ProjectError, PreloadMap } from \"../../types/smartDesktopDesignerTypes\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\nimport { validateFilename, VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { ApplicationProps } from \"./Application\";\nimport { services } from \"@finsemble/finsemble-api/\";\nimport { AddApp } from \"./AddApp\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\n\ntype AppDefinition = services.Interop.types.AppDefinition;\n\nexport type ApplicationsProps = {\n\tgetApps: typeof SmartDesktopClient.getApps;\n\taddApp: typeof SmartDesktopClient.addApp;\n\tdeleteApp: typeof SmartDesktopClient.deleteApp;\n\tupdateApp: typeof SmartDesktopClient.updateApp;\n\tgetAppConfigTemplate: typeof SmartDesktopClient.getAppConfigTemplate;\n\tgetMenus: typeof SmartDesktopClient.getMenus;\n\taddMenu: typeof SmartDesktopClient.addMenu;\n\tupdateMenu: typeof SmartDesktopClient.updateMenu;\n\tgetPreloads: typeof SmartDesktopClient.getPreloads;\n\tisInboundInteropAuthorized: typeof SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof SmartDesktopClient.isOutboundInteropAuthorized;\n};\n\nconst EMPTY_MENU_ERROR: ProjectError = {\n\tviewId: \"applications\",\n\tmessage: \"One or more of your app menus is empty\",\n};\n\nexport const Applications = (props: ApplicationsProps) => {\n\tconst dispatch = useDispatch();\n\tconst [editMode, setEditMode] = useState(false);\n\n\tconst apps = useSelector((state: RootState) => state.smartDesktopDesigner.apps);\n\tconst menus = useSelector<MenuType>((state: RootState) => state.smartDesktopDesigner.menus);\n\tconst preloads = useSelector<PreloadMap>((state: RootState) => state.smartDesktopDesigner.preloads);\n\n\tconst newAppID = useSelector((state: RootState) => state.smartDesktopDesigner.newAppId);\n\n\tconst currentAppID = useSelector((state: RootState) => state.smartDesktopDesigner.currentAppId);\n\n\tif (Object.values(menus).every((menu) => menu.applications.length > 0)) {\n\t\tdispatch(SmartDesktopDesignerActions.delete_project_error(EMPTY_MENU_ERROR));\n\t} else {\n\t\tdispatch(SmartDesktopDesignerActions.set_project_error(EMPTY_MENU_ERROR));\n\t}\n\n\tfunction updateAppList() {\n\t\tprops.getApps().then((response: any) => {\n\t\t\tdispatch(SmartDesktopDesignerActions.update_apps(response.apps));\n\t\t});\n\t}\n\n\tconst updatePreloadList = async () => {\n\t\tconst { data } = await props.getPreloads();\n\t\tdispatch(SmartDesktopDesignerActions.update_preloads(data));\n\t};\n\n\tfunction setCurrentAppID(id: string | null) {\n\t\tif (id === null) {\n\t\t\tdispatch(SmartDesktopDesignerActions.new_app(null));\n\t\t}\n\n\t\tdispatch(SmartDesktopDesignerActions.set_current_app_id(id));\n\t\tupdateAppList();\n\t}\n\n\tconst removeAppID = (id: string) => {\n\t\t// Delete app from list of apps\n\t\tprops.deleteApp(id).then(({ err }: { err: string }) => {\n\t\t\tif (err) {\n\t\t\t\talert(err);\n\t\t\t}\n\t\t\tupdateAppList();\n\n\t\t\t// Remove reference to app from all menus\n\t\t\tprops.getMenus().then(({ menus: grabbedMenus }: { menus: MenuType }) => {\n\t\t\t\tObject.keys(grabbedMenus).forEach((menuId) => {\n\t\t\t\t\tif (!grabbedMenus[menuId].applications.includes(id)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tgrabbedMenus[menuId].applications.splice(grabbedMenus[menuId].applications.indexOf(id), 1);\n\t\t\t\t\tprops.updateMenu(menuId, grabbedMenus[menuId]).then(() => {\n\t\t\t\t\t\tupdateAppList();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t};\n\n\t/********* Lifecycle effects *********/\n\n\t// Call updateAppList once the component has mounted\n\t// Can't call out of an effect, or it will cause an endless loop\n\tuseEffect(() => {\n\t\tupdateAppList();\n\t\tupdatePreloadList();\n\t}, []);\n\n\tconst addDroppedApp = (file: FileWithPath, index: number) => {\n\t\tconst appId = String(new Date().getTime() + index);\n\t\tconst { path } = file;\n\n\t\t// Confirm that the file is an executable\n\t\tif (path !== undefined && validateFilename(VALID_APP_EXTENSIONS, path)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Generate defaults and then add app with those defaults\n\t\tprops.getAppConfigTemplate().then((response: any) => {\n\t\t\tconst { config }: { config: AppDefinition } = response;\n\t\t\t// Get generated displayName\n\t\t\tconst { displayName } = generateDefaultConfig({\n\t\t\t\t...config,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tconfig.name = displayName;\n\n\t\t\t// We generated appId above\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.windowType = \"assimilation\";\n\t\t\tconfig.manifest.window.path = path;\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst addAppByUrl = (url: string, displayName: string) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tconst { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tdelete config.manifest.window.windowType;\n\t\t\tdelete config.manifest.window.path;\n\t\t\tconfig.manifest.window.url = url;\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\tconst addAppByPath = (path: string, displayName: string, apiAccess: boolean) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tconst { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.windowType = apiAccess ? \"native\" : \"assimilation\";\n\t\t\tconfig.manifest.window.path = path;\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst addAppCitrix = (aliasName: string, displayName: string) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tconst { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.alias = aliasName;\n\t\t\t// @ts-ignore\n\t\t\tconfig.manifest.window.windowType = \"Citrix\";\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst onClose = (reason: ApplicationCloseReason) => {\n\t\tif (reason === ApplicationCloseReason.NEW) {\n\t\t\tdispatch(SmartDesktopDesignerActions.new_app(new Date().getTime().toString()));\n\t\t} else if (reason === ApplicationCloseReason.CANCEL && currentAppID === newAppID) {\n\t\t\tif (currentAppID) props.deleteApp(currentAppID);\n\t\t\tsetCurrentAppID(null);\n\t\t} else {\n\t\t\tsetCurrentAppID(null);\n\t\t}\n\t};\n\n\tconst applicationProps: ApplicationProps = {\n\t\tid: currentAppID ?? \"\",\n\t\tapps,\n\t\taddApp: props.addApp,\n\t\tdeleteApp: props.deleteApp,\n\t\tupdateApp: props.updateApp,\n\t\tgetAppConfigTemplate: props.getAppConfigTemplate,\n\t\tsetCurrentAppID,\n\t\tonClose,\n\t\tisInboundInteropAuthorized: props.isInboundInteropAuthorized,\n\t\tisOutboundInteropAuthorized: props.isOutboundInteropAuthorized,\n\t\tpreloads,\n\t};\n\n\tconst dropZoneProps: ItemListProps = {\n\t\titems: apps.filter((app) => !app?.manifest?.temporary),\n\t\tclickItem: (appID: string) => {\n\t\t\tFSBL.Clients.LauncherClient.showWindow({ componentType: appID }, { spawnIfNotFound: true }, () => {});\n\t\t},\n\t\teditItem: (appID: string) => {\n\t\t\tsetCurrentAppID(appID);\n\t\t},\n\t\tdeleteItem: removeAppID,\n\t};\n\n\tconst helpFunction = () => {\n\t\tlaunchTutorialLink(\"SDD-02-ManageApps\");\n\t};\n\n\tconst addApp = () => {\n\t\tsetEditMode(!editMode);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{currentAppID ? (\n\t\t\t\t<Application {...applicationProps} />\n\t\t\t) : (\n\t\t\t\t<View>\n\t\t\t\t\t<Header helpFunction={helpFunction}>Manage apps</Header>\n\t\t\t\t\t<Content>\n\t\t\t\t\t\t{/* <Tab> */}\n\t\t\t\t\t\t<div data-label=\"Apps\">\n\t\t\t\t\t\t\t<div className=\"frontmatter\">Click Add or drag your apps into the list.</div>\n\t\t\t\t\t\t\t<Button className=\"icon-before-add\" fashion=\"primary\" iconBefore=\"plus\" text=\"Add\" onClick={addApp} />\n\n\t\t\t\t\t\t\t<AddApp\n\t\t\t\t\t\t\t\tshow={editMode}\n\t\t\t\t\t\t\t\tcheckValidURL={SmartDesktopClient.checkValidURL}\n\t\t\t\t\t\t\t\taddAppByUrl={addAppByUrl}\n\t\t\t\t\t\t\t\taddAppByPath={addAppByPath}\n\t\t\t\t\t\t\t\taddAppCitrix={addAppCitrix}\n\t\t\t\t\t\t\t\tclose={addApp}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<DropZone processFile={addDroppedApp}>\n\t\t\t\t\t\t\t\t<ItemList {...dropZoneProps} />\n\t\t\t\t\t\t\t</DropZone>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{/* </Tab> */}\n\t\t\t\t\t</Content>\n\t\t\t\t</View>\n\t\t\t)}\n\t\t</>\n\t);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Applications.js","sourceRoot":"","sources":["../../../src/components/sdd/Applications.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright 2017 - 2020 by ChartIQ, Inc.\n * All rights reserved.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector, useDispatch } from \"../../store\";\nimport { View } from \"./View\";\nimport { Header } from \"../common/Header\";\nimport { Button } from \"../common/Button\";\nimport { Content } from \"./Content\";\nimport { Application, ApplicationCloseReason } from \"./Application\";\nimport { ItemList, ItemListProps } from \"./ItemList\";\nimport { SmartDesktopDesignerActions } from \"../../actions/smartDesktopDesignerActions\";\nimport { RootState } from \"../../reducers/rootReducer\";\nimport { DropZone, FileWithPath } from \"../common/DropZone\";\nimport { generateDefaultConfig } from \"./sdd_helpers\";\nimport { MenuType, ProjectError, PreloadMap } from \"../../types/smartDesktopDesignerTypes\";\nimport { launchTutorialLink } from \"./common/fsbl_functions\";\nimport { validateFilename, VALID_APP_EXTENSIONS } from \"../common/file_helpers\";\nimport { ApplicationProps } from \"./Application\";\nimport { services } from \"@finsemble/finsemble-api/\";\nimport { AddApp } from \"./AddApp\";\nimport { SmartDesktopClient } from \"./smartDesktopClient\";\nimport { Tab } from \"../common/Tab\";\n\ntype AppDefinition = services.Interop.types.AppDefinition;\n\nexport type ApplicationsProps = {\n\tgetApps: typeof SmartDesktopClient.getApps;\n\taddApp: typeof SmartDesktopClient.addApp;\n\tdeleteApp: typeof SmartDesktopClient.deleteApp;\n\tupdateApp: typeof SmartDesktopClient.updateApp;\n\tgetAppConfigTemplate: typeof SmartDesktopClient.getAppConfigTemplate;\n\tgetMenus: typeof SmartDesktopClient.getMenus;\n\taddMenu: typeof SmartDesktopClient.addMenu;\n\tupdateMenu: typeof SmartDesktopClient.updateMenu;\n\tgetPreloads: typeof SmartDesktopClient.getPreloads;\n\tisInboundInteropAuthorized: typeof SmartDesktopClient.isInboundInteropAuthorized;\n\tisOutboundInteropAuthorized: typeof SmartDesktopClient.isOutboundInteropAuthorized;\n};\n\nconst EMPTY_MENU_ERROR: ProjectError = {\n\tviewId: \"applications\",\n\tmessage: \"One or more of your app menus is empty\",\n};\n\nconst handleAppService = (config: AppDefinition) =>\n\t({\n\t\t...config,\n\t\tmanifest: {\n\t\t\t...config.manifest,\n\t\t\tappService: true,\n\t\t\tforeign: {\n\t\t\t\t...(config.manifest?.foreign ?? {}),\n\t\t\t\tcomponents: {\n\t\t\t\t\t...(config.manifest?.foreign?.components ?? {}),\n\t\t\t\t\t\"App Launcher\": {\n\t\t\t\t\t\t...(config.manifest?.foreign?.components[\"App Launcher\"] ?? {}),\n\t\t\t\t\t\tlaunchableByUser: false,\n\t\t\t\t\t},\n\t\t\t\t\t\"Window Manager\": {\n\t\t\t\t\t\t...(config.manifest?.foreign?.components[\"Window Manager\"] ?? {}),\n\t\t\t\t\t\tFSBLHeader: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t} as AppDefinition);\n\nexport const Applications = (props: ApplicationsProps) => {\n\tconst dispatch = useDispatch();\n\tconst [editMode, setEditMode] = useState(false);\n\tconst [tabAutoFocus, setTabAutoFocus] = useState(0);\n\n\tconst apps = useSelector((state: RootState) => state.smartDesktopDesigner.apps);\n\tconst menus = useSelector<MenuType>((state: RootState) => state.smartDesktopDesigner.menus);\n\tconst preloads = useSelector<PreloadMap>((state: RootState) => state.smartDesktopDesigner.preloads);\n\n\tconst newAppID = useSelector((state: RootState) => state.smartDesktopDesigner.newAppId);\n\n\tconst currentAppID = useSelector((state: RootState) => state.smartDesktopDesigner.currentAppId);\n\n\tif (Object.values(menus).every((menu) => menu.applications.length > 0)) {\n\t\tdispatch(SmartDesktopDesignerActions.delete_project_error(EMPTY_MENU_ERROR));\n\t} else {\n\t\tdispatch(SmartDesktopDesignerActions.set_project_error(EMPTY_MENU_ERROR));\n\t}\n\n\tfunction updateAppList() {\n\t\tprops.getApps().then((response: any) => {\n\t\t\tdispatch(SmartDesktopDesignerActions.update_apps(response.apps));\n\t\t});\n\t}\n\n\tconst updatePreloadList = async () => {\n\t\tconst { data } = await props.getPreloads();\n\t\tdispatch(SmartDesktopDesignerActions.update_preloads(data));\n\t};\n\n\tfunction setCurrentAppID(id: string | null) {\n\t\tif (id === null) {\n\t\t\tdispatch(SmartDesktopDesignerActions.new_app(null));\n\t\t}\n\n\t\tdispatch(SmartDesktopDesignerActions.set_current_app_id(id));\n\t\tupdateAppList();\n\t}\n\n\tconst removeAppID = (id: string) => {\n\t\t// Delete app from list of apps\n\t\tprops.deleteApp(id).then(({ err }: { err: string }) => {\n\t\t\tif (err) {\n\t\t\t\talert(err);\n\t\t\t}\n\t\t\tupdateAppList();\n\n\t\t\t// Remove reference to app from all menus\n\t\t\tprops.getMenus().then(({ menus: grabbedMenus }: { menus: MenuType }) => {\n\t\t\t\tObject.keys(grabbedMenus).forEach((menuId) => {\n\t\t\t\t\tif (!grabbedMenus[menuId].applications.includes(id)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tgrabbedMenus[menuId].applications.splice(grabbedMenus[menuId].applications.indexOf(id), 1);\n\t\t\t\t\tprops.updateMenu(menuId, grabbedMenus[menuId]).then(() => {\n\t\t\t\t\t\tupdateAppList();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t};\n\n\t/********* Lifecycle effects *********/\n\n\t// Call updateAppList once the component has mounted\n\t// Can't call out of an effect, or it will cause an endless loop\n\tuseEffect(() => {\n\t\tupdateAppList();\n\t\tupdatePreloadList();\n\t}, []);\n\n\tconst serviceWasUpdated = () => {\n\t\tFSBL.Clients.DialogManager.open(\n\t\t\t\"yesNo\",\n\t\t\t{\n\t\t\t\ttitle: `Restart Finsemble?`,\n\t\t\t\tquestion: `The changes to app services won’t take effect until you restart Finsemble. Do you want to restart now?`,\n\t\t\t\thideModalOnClose: true,\n\t\t\t\tshowCancelButton: false,\n\t\t\t\tnegativeResponseLabel: \"Later\",\n\t\t\t},\n\t\t\t(err: any, response: { choice: string }) => {\n\t\t\t\tif (response?.choice === \"affirmative\") {\n\t\t\t\t\tFSBL.restartApplication();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t};\n\n\tconst addDroppedApp = (file: FileWithPath, index: number, service = false) => {\n\t\tconst appId = String(new Date().getTime() + index);\n\t\tconst { path } = file;\n\n\t\t// Confirm that the file is an executable\n\t\tif (path !== undefined && validateFilename(VALID_APP_EXTENSIONS, path)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Generate defaults and then add app with those defaults\n\t\tprops.getAppConfigTemplate().then((response: any) => {\n\t\t\tconst { config }: { config: AppDefinition } = response;\n\t\t\t// Get generated displayName\n\t\t\tconst { displayName } = generateDefaultConfig({\n\t\t\t\t...config,\n\t\t\t\tpath,\n\t\t\t});\n\t\t\tconfig.name = displayName;\n\n\t\t\t// We generated appId above\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.windowType = \"assimilation\";\n\t\t\tconfig.manifest.window.path = path;\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig.manifest.appService = true;\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst addDroppedAppService = (file: FileWithPath, index: number) => {\n\t\taddDroppedApp(file, index, true);\n\t\tserviceWasUpdated();\n\t};\n\n\tconst addAppByUrl = (url: string, displayName: string, service = false) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tlet { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tdelete config.manifest.window.windowType;\n\t\t\tdelete config.manifest.window.path;\n\t\t\tconfig.manifest.window.url = url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig = handleAppService(config);\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\tconst addAppServiceByUrl = (url: string, displayName: string) => {\n\t\taddAppByUrl(url, displayName, true);\n\t\tserviceWasUpdated();\n\t};\n\tconst addAppByPath = (path: string, displayName: string, apiAccess: boolean, service = false) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tlet { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.windowType = apiAccess ? \"native\" : \"assimilation\";\n\t\t\tconfig.manifest.window.path = path;\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\tif (service) {\n\t\t\t\tconfig = handleAppService(config);\n\t\t\t}\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\tconst addAppServiceByPath = (url: string, displayName: string) => {\n\t\taddAppByPath(url, displayName, true);\n\t\tserviceWasUpdated();\n\t};\n\n\tconst addAppCitrix = (aliasName: string, displayName: string) => {\n\t\tconst appId = String(new Date().getTime());\n\t\tsetEditMode(false);\n\t\t// @todo: show loading spinner\n\n\t\tprops.getAppConfigTemplate().then((response: { config: AppDefinition }) => {\n\t\t\tconst { config } = response;\n\t\t\tconfig.name = displayName;\n\t\t\tconfig.appId = appId;\n\n\t\t\t// A file was dropped, so we know this was a file, not a URL\n\t\t\tconfig.manifest = config.manifest ?? {};\n\t\t\tconfig.manifest.window = config.manifest.window ?? {};\n\t\t\tconfig.manifest.window.alias = aliasName;\n\t\t\t// @ts-ignore\n\t\t\tconfig.manifest.window.windowType = \"Citrix\";\n\t\t\tdelete config.manifest.window.url;\n\n\t\t\t// Unlike URL and Path, there will be no handling for service, because\n\t\t\t// we assume that no Citrix/Virtual app will be used as an app service\n\n\t\t\t// Add app with defaults\n\t\t\tprops.addApp(appId, config).then(() => {\n\t\t\t\tupdateAppList();\n\t\t\t});\n\t\t});\n\t};\n\n\tconst onClose = (reason: ApplicationCloseReason) => {\n\t\t// If you've closed the AppEditPage from App Services, make sure to return to the Services tab\n\t\tconst currentApp = apps.find((app: AppDefinition) => app.appId === currentAppID);\n\t\t// If the closed app was an app service, set autofocus to tab 1. Otherwise, tab 0.\n\t\tsetTabAutoFocus(currentApp?.manifest?.appService === true ? 1 : 0);\n\n\t\tif (reason === ApplicationCloseReason.NEW) {\n\t\t\tdispatch(SmartDesktopDesignerActions.new_app(new Date().getTime().toString()));\n\t\t} else if (reason === ApplicationCloseReason.CANCEL && currentAppID === newAppID) {\n\t\t\tif (currentAppID) props.deleteApp(currentAppID);\n\t\t\tsetCurrentAppID(null);\n\t\t} else {\n\t\t\tsetCurrentAppID(null);\n\t\t}\n\t};\n\n\tconst applicationProps: ApplicationProps = {\n\t\tid: currentAppID ?? \"\",\n\t\tapps,\n\t\taddApp: props.addApp,\n\t\tdeleteApp: props.deleteApp,\n\t\tupdateApp: props.updateApp,\n\t\tgetAppConfigTemplate: props.getAppConfigTemplate,\n\t\tsetCurrentAppID,\n\t\tonClose,\n\t\tisInboundInteropAuthorized: props.isInboundInteropAuthorized,\n\t\tisOutboundInteropAuthorized: props.isOutboundInteropAuthorized,\n\t\tpreloads,\n\t};\n\n\tconst appsDropZoneProps: ItemListProps = {\n\t\titems: apps.filter((app) => !app?.manifest?.temporary && !app?.manifest?.appService),\n\t\tclickItem: (appID: string) => {\n\t\t\tFSBL.Clients.LauncherClient.showWindow({ componentType: appID }, { spawnIfNotFound: true }, () => {});\n\t\t},\n\t\teditItem: (appID: string) => {\n\t\t\tsetCurrentAppID(appID);\n\t\t},\n\t\tdeleteItem: removeAppID,\n\t};\n\n\tconst servicesDropZoneProps: ItemListProps = {\n\t\t...appsDropZoneProps,\n\t\titems: apps.filter((app) => !app?.manifest?.temporary && app?.manifest?.appService),\n\t};\n\n\tconst helpFunction = () => {\n\t\tlaunchTutorialLink(\"SDD-02-ManageApps\");\n\t};\n\n\tconst addApp = () => {\n\t\tsetEditMode(!editMode);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{currentAppID ? (\n\t\t\t\t<Application {...applicationProps} />\n\t\t\t) : (\n\t\t\t\t<View>\n\t\t\t\t\t<Header helpFunction={helpFunction}>Manage apps</Header>\n\t\t\t\t\t<Content>\n\t\t\t\t\t\t<Tab autofocus={tabAutoFocus}>\n\t\t\t\t\t\t\t<div data-label=\"Apps\">\n\t\t\t\t\t\t\t\t<div className=\"frontmatter\">Click Add or drag your apps into the list.</div>\n\t\t\t\t\t\t\t\t<Button className=\"icon-before-add\" fashion=\"primary\" iconBefore=\"plus\" text=\"Add\" onClick={addApp} />\n\n\t\t\t\t\t\t\t\t<AddApp\n\t\t\t\t\t\t\t\t\tshow={editMode}\n\t\t\t\t\t\t\t\t\tcheckValidURL={SmartDesktopClient.checkValidURL}\n\t\t\t\t\t\t\t\t\taddAppByUrl={addAppByUrl}\n\t\t\t\t\t\t\t\t\taddAppByPath={addAppByPath}\n\t\t\t\t\t\t\t\t\taddAppCitrix={addAppCitrix}\n\t\t\t\t\t\t\t\t\tclose={addApp}\n\t\t\t\t\t\t\t\t\tidKey=\"app\"\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<DropZone processFile={addDroppedApp}>\n\t\t\t\t\t\t\t\t\t<ItemList {...appsDropZoneProps} />\n\t\t\t\t\t\t\t\t</DropZone>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div data-label=\"Services\">\n\t\t\t\t\t\t\t\t<div className=\"frontmatter\"></div>\n\t\t\t\t\t\t\t\t<Button className=\"icon-before-add\" fashion=\"primary\" iconBefore=\"plus\" text=\"Add\" onClick={addApp} />\n\n\t\t\t\t\t\t\t\t<AddApp\n\t\t\t\t\t\t\t\t\tshow={editMode}\n\t\t\t\t\t\t\t\t\tcheckValidURL={SmartDesktopClient.checkValidURL}\n\t\t\t\t\t\t\t\t\taddAppByUrl={addAppServiceByUrl}\n\t\t\t\t\t\t\t\t\taddAppByPath={addAppServiceByPath}\n\t\t\t\t\t\t\t\t\tincludeCitrix={false}\n\t\t\t\t\t\t\t\t\tclose={addApp}\n\t\t\t\t\t\t\t\t\tidKey=\"service\"\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<DropZone processFile={addDroppedAppService}>\n\t\t\t\t\t\t\t\t\t<ItemList {...servicesDropZoneProps} />\n\t\t\t\t\t\t\t\t</DropZone>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Tab>\n\t\t\t\t\t</Content>\n\t\t\t\t</View>\n\t\t\t)}\n\t\t</>\n\t);\n};\n"]}
|
|
@@ -38,6 +38,10 @@ const breakOut = (apps) => {
|
|
|
38
38
|
appNameValues,
|
|
39
39
|
};
|
|
40
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* Preloads can be set in config as a string, array of strings or a boolean.
|
|
43
|
+
* This function converts any valid format to an array of string.
|
|
44
|
+
*/
|
|
41
45
|
const preloadAsArray = (currentPreload) => {
|
|
42
46
|
if (typeof currentPreload === "string") {
|
|
43
47
|
return [currentPreload];
|
|
@@ -86,19 +90,23 @@ export const EditPreload = (props) => {
|
|
|
86
90
|
const index = app.manifest.component.preload.indexOf(props.alias);
|
|
87
91
|
const wasPreloadInThisApp = index >= 0;
|
|
88
92
|
const isPreloadInThisApp = selectedApps.includes(app.appId);
|
|
93
|
+
// This preload was assigned to this app, but is no longer
|
|
89
94
|
if (wasPreloadInThisApp && !isPreloadInThisApp) {
|
|
90
95
|
app.manifest.component.preload.splice(index, 1);
|
|
91
96
|
return props.updateApp(app.appId, app);
|
|
92
97
|
}
|
|
98
|
+
// This preload was not assigned to this app, but now is
|
|
93
99
|
if (!wasPreloadInThisApp && isPreloadInThisApp) {
|
|
94
100
|
app.manifest.component.preload.push(alias);
|
|
95
101
|
return props.updateApp(app.appId, app);
|
|
96
102
|
}
|
|
103
|
+
// This preload continues to be assigned, but has been renamed
|
|
97
104
|
if (wasPreloadInThisApp && isPreloadInThisApp && isRenaming) {
|
|
98
105
|
app.manifest.component.preload.splice(index, 1);
|
|
99
106
|
app.manifest.component.preload.push(alias);
|
|
100
107
|
return props.updateApp(app.appId, app);
|
|
101
108
|
}
|
|
109
|
+
// No change to this app
|
|
102
110
|
return new Promise((resolve) => {
|
|
103
111
|
resolve({ err: null });
|
|
104
112
|
});
|
|
@@ -108,6 +116,8 @@ export const EditPreload = (props) => {
|
|
|
108
116
|
useEffect(() => {
|
|
109
117
|
updateAppList();
|
|
110
118
|
}, []);
|
|
119
|
+
// Using `key` is a sort of hack to help re-generate FinsembleSelect, after updating appList
|
|
120
|
+
// @todo - Get FinsembleSelect to respect props changes. At that point, this key hack will be unnecessary
|
|
111
121
|
useEffect(() => {
|
|
112
122
|
setKey(`${Date.now()}.${Math.random()}`);
|
|
113
123
|
}, [appList, selectedApps]);
|