@finsemble/finsemble-ui 8.3.0 → 8.4.0-beta.1
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/FEA.d.ts +54 -24
- package/FEA.d.ts.map +1 -1
- package/FEA.js.map +1 -1
- package/clients/Interop/FinsembleDesktopAgent.js +2 -2
- package/clients/Interop/FinsembleDesktopAgent.js.map +1 -1
- package/clients/Startup/FSBLDesktop.d.ts +2 -8
- package/clients/Startup/FSBLDesktop.d.ts.map +1 -1
- package/clients/Startup/FSBLDesktop.js +2 -4
- package/clients/Startup/FSBLDesktop.js.map +1 -1
- package/clients/Startup/unhandledErrors.d.ts.map +1 -1
- package/clients/Startup/unhandledErrors.js +6 -4
- package/clients/Startup/unhandledErrors.js.map +1 -1
- package/clients/Startup/windowStartup.d.ts.map +1 -1
- package/clients/Startup/windowStartup.js +77 -116
- package/clients/Startup/windowStartup.js.map +1 -1
- package/clients/StoreModel.d.ts +8 -8
- package/clients/StoreModel.js +8 -8
- package/clients/appsClient.d.ts +90 -0
- package/clients/appsClient.d.ts.map +1 -0
- package/clients/appsClient.js +51 -0
- package/clients/appsClient.js.map +1 -0
- package/clients/authenticationClient.d.ts +29 -27
- package/clients/authenticationClient.d.ts.map +1 -1
- package/clients/authenticationClient.js +11 -15
- package/clients/authenticationClient.js.map +1 -1
- package/clients/configClient.d.ts +134 -70
- package/clients/configClient.d.ts.map +1 -1
- package/clients/configClient.js +129 -112
- package/clients/configClient.js.map +1 -1
- package/clients/controller/DialogManagerClientController.d.ts +78 -0
- package/clients/controller/DialogManagerClientController.d.ts.map +1 -0
- package/clients/controller/DialogManagerClientController.js +213 -0
- package/clients/controller/DialogManagerClientController.js.map +1 -0
- package/clients/dialogManagerClient.d.ts +1 -75
- package/clients/dialogManagerClient.d.ts.map +1 -1
- package/clients/dialogManagerClient.js +1 -208
- package/clients/dialogManagerClient.js.map +1 -1
- package/clients/distributedStoreClient.d.ts +1 -0
- package/clients/distributedStoreClient.d.ts.map +1 -1
- package/clients/distributedStoreClient.js +1 -0
- package/clients/distributedStoreClient.js.map +1 -1
- package/clients/hotkeyClient.d.ts +18 -9
- package/clients/hotkeyClient.d.ts.map +1 -1
- package/clients/hotkeyClient.js +30 -14
- package/clients/hotkeyClient.js.map +1 -1
- package/clients/index.d.ts +2 -0
- package/clients/index.d.ts.map +1 -1
- package/clients/index.js +2 -0
- package/clients/index.js.map +1 -1
- package/clients/launcherClient.d.ts +157 -47
- package/clients/launcherClient.d.ts.map +1 -1
- package/clients/launcherClient.js +201 -22
- package/clients/launcherClient.js.map +1 -1
- package/clients/logger.d.ts.map +1 -1
- package/clients/logger.js +43 -41
- package/clients/logger.js.map +1 -1
- package/clients/notificationClient.d.ts +2 -2
- package/clients/notificationClient.d.ts.map +1 -1
- package/clients/notificationClient.js +2 -2
- package/clients/notificationClient.js.map +1 -1
- package/clients/routerClient.d.ts +25 -21
- package/clients/routerClient.d.ts.map +1 -1
- package/clients/routerClient.js +24 -20
- package/clients/routerClient.js.map +1 -1
- package/clients/searchClient.d.ts +2 -2
- package/clients/searchClient.js +2 -2
- package/clients/storageClient.d.ts +8 -5
- package/clients/storageClient.d.ts.map +1 -1
- package/clients/storageClient.js +7 -5
- package/clients/storageClient.js.map +1 -1
- package/clients/windowClient.d.ts +160 -79
- package/clients/windowClient.d.ts.map +1 -1
- package/clients/windowClient.js +244 -138
- package/clients/windowClient.js.map +1 -1
- package/clients/workspaceClient.d.ts +19 -14
- package/clients/workspaceClient.d.ts.map +1 -1
- package/clients/workspaceClient.js +15 -9
- package/clients/workspaceClient.js.map +1 -1
- package/common/Desktop.d.ts +9 -50
- package/common/Desktop.d.ts.map +1 -1
- package/common/Desktop.js +11 -64
- package/common/Desktop.js.map +1 -1
- package/common/FinsembleWindow.d.ts +4 -107
- package/common/FinsembleWindow.d.ts.map +1 -1
- package/common/FinsembleWindow.js +21 -342
- package/common/FinsembleWindow.js.map +1 -1
- package/common/Monitors.d.ts +30 -18
- package/common/Monitors.d.ts.map +1 -1
- package/common/Monitors.js +45 -80
- package/common/Monitors.js.map +1 -1
- package/common/Singleton.d.ts +7 -1
- package/common/Singleton.d.ts.map +1 -1
- package/common/Singleton.js +24 -11
- package/common/Singleton.js.map +1 -1
- package/common/constants.d.ts +3 -9
- package/common/constants.d.ts.map +1 -1
- package/common/constants.js +3 -14
- package/common/constants.js.map +1 -1
- package/common/events/FinsembleEvent.d.ts +1 -1
- package/common/events/FinsembleEvent.d.ts.map +1 -1
- package/common/redux/getRemoteStore.d.ts +53 -0
- package/common/redux/getRemoteStore.d.ts.map +1 -0
- package/common/redux/getRemoteStore.js +50 -0
- package/common/redux/getRemoteStore.js.map +1 -0
- package/common/redux/remoteReduxEnhancer.d.ts +7 -7
- package/common/redux/remoteReduxEnhancer.d.ts.map +1 -1
- package/common/redux/remoteReduxEnhancer.js +35 -20
- package/common/redux/remoteReduxEnhancer.js.map +1 -1
- package/common/redux/types.d.ts +14 -1
- package/common/redux/types.d.ts.map +1 -1
- package/common/systemManagerClient.d.ts +11 -5
- package/common/systemManagerClient.d.ts.map +1 -1
- package/common/systemManagerClient.js +25 -8
- package/common/systemManagerClient.js.map +1 -1
- package/common/util.d.ts +1 -7
- package/common/util.d.ts.map +1 -1
- package/common/util.js +1 -14
- package/common/util.js.map +1 -1
- package/deprecated/deprecatedFunctions.d.ts +1 -1
- package/deprecated/deprecatedFunctions.d.ts.map +1 -1
- package/deprecated/deprecatedFunctions.js +1 -2
- package/deprecated/deprecatedFunctions.js.map +1 -1
- package/deprecated/dragAndDropClient.d.ts +3 -3
- package/deprecated/dragAndDropClient.d.ts.map +1 -1
- package/deprecated/dragAndDropClient.js.map +1 -1
- package/deprecated/linkerClient.d.ts +1 -1
- package/deprecated/linkerClient.d.ts.map +1 -1
- package/main.d.ts +289 -190
- package/main.d.ts.map +1 -1
- package/main.js +3 -1
- package/main.js.map +1 -1
- package/package.json +3 -3
- package/platform/services/Interop/types.d.ts +2 -1
- package/platform/services/Interop/types.d.ts.map +1 -1
- package/platform/services/router/types.d.ts +5 -6
- package/platform/services/router/types.d.ts.map +1 -1
- package/platform/services/systemManager/_constants.d.ts +1 -0
- package/platform/services/systemManager/_constants.d.ts.map +1 -1
- package/platform/services/systemManager/_constants.js +1 -0
- package/platform/services/systemManager/_constants.js.map +1 -1
- package/platform/services/window/modules/actions.d.ts +59 -0
- package/platform/services/window/modules/actions.d.ts.map +1 -0
- package/platform/services/window/modules/actions.js +57 -0
- package/platform/services/window/modules/actions.js.map +1 -0
- package/platform/services/window/types.d.ts +257 -50
- package/platform/services/window/types.d.ts.map +1 -1
- package/platform/services/workspace/types.d.ts +4 -3
- package/platform/services/workspace/types.d.ts.map +1 -1
- package/react/assets/css/core/icons.css +0 -5
- package/react/assets/css/processMonitor.css +9 -4
- package/react/assets/css/windowTitleBar.css +98 -285
- package/react/assets/icons/chevron-down.svg +1 -0
- package/react/assets/icons/chevron-up.svg +1 -0
- package/react/components/common/ButtonRow.d.ts.map +1 -1
- package/react/components/common/ButtonRow.js +4 -9
- package/react/components/common/ButtonRow.js.map +1 -1
- package/react/components/common/ContextMenu.d.ts.map +1 -1
- package/react/components/common/ContextMenu.js +2 -10
- package/react/components/common/ContextMenu.js.map +1 -1
- package/react/components/common/DropdownButton.d.ts.map +1 -1
- package/react/components/common/DropdownButton.js +11 -24
- package/react/components/common/DropdownButton.js.map +1 -1
- package/react/components/common/FinsembleIcon.d.ts +1 -1
- package/react/components/common/FinsembleIcon.d.ts.map +1 -1
- package/react/components/common/FinsembleIcon.js +6 -4
- package/react/components/common/FinsembleIcon.js.map +1 -1
- package/react/components/common/css/accordion.css +9 -21
- package/react/components/common/css/application-edit-page.css +0 -4
- package/react/components/common/css/selector.css +3 -1
- package/react/components/downloadManager/DownloadManager.d.ts +1 -1
- package/react/components/downloadManager/DownloadManager.d.ts.map +1 -1
- package/react/components/downloadManager/DownloadManager.js +2 -4
- package/react/components/downloadManager/DownloadManager.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverContainer.d.ts +6 -0
- package/react/components/fdc3Resolver/ResolverContainer.d.ts.map +1 -1
- package/react/components/fdc3Resolver/ResolverContainer.js +37 -89
- package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.d.ts +10 -1
- package/react/components/fdc3Resolver/ResolverDialog.d.ts.map +1 -1
- package/react/components/fdc3Resolver/ResolverDialog.js +78 -66
- package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
- package/react/components/legacyControls/FinsembleDialogTextInput.d.ts +1 -1
- package/react/components/legacyControls/FinsembleDialogTextInput.d.ts.map +1 -1
- package/react/components/linker/remoteRedux.d.ts +2 -9
- package/react/components/linker/remoteRedux.d.ts.map +1 -1
- package/react/components/linker/remoteRedux.js +2 -22
- package/react/components/linker/remoteRedux.js.map +1 -1
- package/react/components/notifications/css/notification-center.css +2 -0
- package/react/components/processMonitor/ProcessMonitor.d.ts.map +1 -1
- package/react/components/processMonitor/ProcessMonitor.js +14 -36
- package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
- package/react/components/processMonitor/ProcessMonitorTypes.d.ts +0 -4
- package/react/components/processMonitor/ProcessMonitorTypes.d.ts.map +1 -1
- package/react/components/processMonitor/ProcessMonitorTypes.js +1 -5
- package/react/components/processMonitor/ProcessMonitorTypes.js.map +1 -1
- package/react/components/processMonitor/components/ChildWindow.d.ts +2 -3
- package/react/components/processMonitor/components/ChildWindow.d.ts.map +1 -1
- package/react/components/processMonitor/components/ChildWindow.js +5 -9
- package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
- package/react/components/processMonitor/components/ListHeader.d.ts +1 -5
- package/react/components/processMonitor/components/ListHeader.d.ts.map +1 -1
- package/react/components/processMonitor/components/ListHeader.js +3 -2
- package/react/components/processMonitor/components/ListHeader.js.map +1 -1
- package/react/components/processMonitor/components/Process.d.ts +10 -0
- package/react/components/processMonitor/components/Process.d.ts.map +1 -0
- package/react/components/processMonitor/components/Process.js +11 -0
- package/react/components/processMonitor/components/Process.js.map +1 -0
- package/react/components/processMonitor/components/ProcessStatistics.d.ts +5 -4
- package/react/components/processMonitor/components/ProcessStatistics.d.ts.map +1 -1
- package/react/components/processMonitor/components/ProcessStatistics.js +10 -7
- package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
- package/react/components/processMonitor/constants.d.ts +1 -2
- package/react/components/processMonitor/constants.d.ts.map +1 -1
- package/react/components/processMonitor/constants.js +2 -8
- package/react/components/processMonitor/constants.js.map +1 -1
- package/react/components/processMonitor/helpers.d.ts +0 -1
- package/react/components/processMonitor/helpers.d.ts.map +1 -1
- package/react/components/processMonitor/helpers.js +2 -9
- package/react/components/processMonitor/helpers.js.map +1 -1
- package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts +0 -4
- package/react/components/processMonitor/stores/ProcessMonitorStore.d.ts.map +1 -1
- package/react/components/processMonitor/stores/ProcessMonitorStore.js +0 -29
- package/react/components/processMonitor/stores/ProcessMonitorStore.js.map +1 -1
- package/react/components/search/SearchInput.d.ts +1 -2
- package/react/components/search/SearchInput.d.ts.map +1 -1
- package/react/components/search/SearchInput.js +11 -13
- package/react/components/search/SearchInput.js.map +1 -1
- package/react/components/shared/openQuitConfirmationDialog.d.ts.map +1 -1
- package/react/components/shared/openQuitConfirmationDialog.js +31 -4
- package/react/components/shared/openQuitConfirmationDialog.js.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.d.ts.map +1 -1
- package/react/components/singleInputDialog/SingleInputDialog.js +81 -100
- package/react/components/singleInputDialog/SingleInputDialog.js.map +1 -1
- package/react/components/toolbar/ToolbarShell.d.ts +1 -0
- package/react/components/toolbar/ToolbarShell.d.ts.map +1 -1
- package/react/components/toolbar/ToolbarShell.js +3 -2
- package/react/components/toolbar/ToolbarShell.js.map +1 -1
- package/react/components/utils.d.ts +50 -0
- package/react/components/utils.d.ts.map +1 -0
- package/react/components/utils.js +60 -0
- package/react/components/utils.js.map +1 -0
- package/react/components/windowTitleBar/AlwaysOnTopButton.d.ts +9 -0
- package/react/components/windowTitleBar/AlwaysOnTopButton.d.ts.map +1 -0
- package/react/components/windowTitleBar/AlwaysOnTopButton.js +29 -0
- package/react/components/windowTitleBar/AlwaysOnTopButton.js.map +1 -0
- package/react/components/windowTitleBar/{components/right/CloseButton.d.ts → CloseButton.d.ts} +0 -0
- package/react/components/windowTitleBar/CloseButton.d.ts.map +1 -0
- package/react/components/windowTitleBar/CloseButton.js +22 -0
- package/react/components/windowTitleBar/CloseButton.js.map +1 -0
- package/react/components/windowTitleBar/GroupingButton.d.ts +3 -0
- package/react/components/windowTitleBar/GroupingButton.d.ts.map +1 -0
- package/react/components/windowTitleBar/GroupingButton.js +25 -0
- package/react/components/windowTitleBar/GroupingButton.js.map +1 -0
- package/react/components/windowTitleBar/{components/left/LinkerButton.d.ts → LinkerButton.d.ts} +0 -0
- package/react/components/windowTitleBar/LinkerButton.d.ts.map +1 -0
- package/react/components/windowTitleBar/{components/left/LinkerButton.js → LinkerButton.js} +4 -4
- package/react/components/windowTitleBar/LinkerButton.js.map +1 -0
- package/react/components/windowTitleBar/LinkerButtonDeprecated.d.ts +11 -0
- package/react/components/windowTitleBar/LinkerButtonDeprecated.d.ts.map +1 -0
- package/react/components/windowTitleBar/LinkerButtonDeprecated.js +63 -0
- package/react/components/windowTitleBar/LinkerButtonDeprecated.js.map +1 -0
- package/react/components/windowTitleBar/{components/left/LinkerGroups.d.ts → LinkerGroups.d.ts} +0 -0
- package/react/components/windowTitleBar/LinkerGroups.d.ts.map +1 -0
- package/react/components/windowTitleBar/{components/left/LinkerGroups.js → LinkerGroups.js} +2 -3
- package/react/components/windowTitleBar/LinkerGroups.js.map +1 -0
- package/react/components/windowTitleBar/LinkerGroupsDeprecated.d.ts +7 -0
- package/react/components/windowTitleBar/LinkerGroupsDeprecated.d.ts.map +1 -0
- package/react/components/windowTitleBar/LinkerGroupsDeprecated.js +35 -0
- package/react/components/windowTitleBar/LinkerGroupsDeprecated.js.map +1 -0
- package/react/components/windowTitleBar/MaximizeButton.d.ts +3 -0
- package/react/components/windowTitleBar/MaximizeButton.d.ts.map +1 -0
- package/react/components/windowTitleBar/MaximizeButton.js +18 -0
- package/react/components/windowTitleBar/MaximizeButton.js.map +1 -0
- package/react/components/windowTitleBar/MinimizeButton.d.ts +3 -0
- package/react/components/windowTitleBar/MinimizeButton.d.ts.map +1 -0
- package/react/components/windowTitleBar/MinimizeButton.js +21 -0
- package/react/components/windowTitleBar/MinimizeButton.js.map +1 -0
- package/react/components/windowTitleBar/ShareButton.d.ts +3 -0
- package/react/components/windowTitleBar/ShareButton.d.ts.map +1 -0
- package/react/components/windowTitleBar/ShareButton.js +24 -0
- package/react/components/windowTitleBar/ShareButton.js.map +1 -0
- package/react/components/windowTitleBar/TabRegion.d.ts +7 -0
- package/react/components/windowTitleBar/TabRegion.d.ts.map +1 -0
- package/react/components/windowTitleBar/TabRegion.js +453 -0
- package/react/components/windowTitleBar/TabRegion.js.map +1 -0
- package/react/components/windowTitleBar/TabTitle.d.ts +8 -0
- package/react/components/windowTitleBar/TabTitle.d.ts.map +1 -0
- package/react/components/windowTitleBar/TabTitle.js +17 -0
- package/react/components/windowTitleBar/TabTitle.js.map +1 -0
- package/react/components/windowTitleBar/TitleEdit.d.ts +10 -0
- package/react/components/windowTitleBar/TitleEdit.d.ts.map +1 -0
- package/react/components/windowTitleBar/TitleEdit.js +30 -0
- package/react/components/windowTitleBar/TitleEdit.js.map +1 -0
- package/react/components/windowTitleBar/WindowTitleBarContext.d.ts +12 -0
- package/react/components/windowTitleBar/WindowTitleBarContext.d.ts.map +1 -0
- package/react/components/windowTitleBar/WindowTitleBarContext.js +3 -0
- package/react/components/windowTitleBar/WindowTitleBarContext.js.map +1 -0
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +14 -272
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts.map +1 -1
- package/react/components/windowTitleBar/WindowTitleBarShell.js +41 -929
- package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
- package/react/components/windowTitleBar/index.d.ts +9 -8
- package/react/components/windowTitleBar/index.d.ts.map +1 -1
- package/react/components/windowTitleBar/index.js +9 -8
- package/react/components/windowTitleBar/index.js.map +1 -1
- package/react/components/windowTitleBar/useKeyboardNavigation.d.ts +7 -0
- package/react/components/windowTitleBar/useKeyboardNavigation.d.ts.map +1 -0
- package/react/components/windowTitleBar/useKeyboardNavigation.js +57 -0
- package/react/components/windowTitleBar/useKeyboardNavigation.js.map +1 -0
- package/react/components/windowTitleBar/useMaximize.d.ts +5 -0
- package/react/components/windowTitleBar/useMaximize.d.ts.map +1 -0
- package/react/components/windowTitleBar/useMaximize.js +23 -0
- package/react/components/windowTitleBar/useMaximize.js.map +1 -0
- package/react/components/yesNoDialog/timer.js +2 -1
- package/react/components/yesNoDialog/timer.js.map +1 -1
- package/react/hooks/useDashbar.d.ts.map +1 -1
- package/react/hooks/useDashbar.js.map +1 -1
- package/react/hooks/useDragRegion.d.ts +27 -0
- package/react/hooks/useDragRegion.d.ts.map +1 -0
- package/react/hooks/useDragRegion.js +74 -0
- package/react/hooks/useDragRegion.js.map +1 -0
- package/react/hooks/useInjectedTitleBar.d.ts +3 -0
- package/react/hooks/useInjectedTitleBar.d.ts.map +1 -0
- package/react/hooks/useInjectedTitleBar.js +365 -0
- package/react/hooks/useInjectedTitleBar.js.map +1 -0
- package/react/hooks/useNotifications.d.ts +1 -1
- package/react/hooks/useToolbar.d.ts +1 -0
- package/react/hooks/useToolbar.d.ts.map +1 -1
- package/react/hooks/useToolbar.js +13 -3
- package/react/hooks/useToolbar.js.map +1 -1
- package/typedoc-types.d.ts +9 -0
- package/typedoc-types.d.ts.map +1 -0
- package/typedoc-types.js +6 -0
- package/typedoc-types.js.map +1 -0
- package/types.d.ts +5 -11
- package/types.d.ts.map +1 -1
- package/types.js +2 -0
- package/types.js.map +1 -1
- package/common/events/PrivateEventManager.d.ts +0 -95
- package/common/events/PrivateEventManager.d.ts.map +0 -1
- package/common/events/PrivateEventManager.js +0 -295
- package/common/events/PrivateEventManager.js.map +0 -1
- package/common/events/PrivateFinsembleEvent.d.ts +0 -30
- package/common/events/PrivateFinsembleEvent.d.ts.map +0 -1
- package/common/events/PrivateFinsembleEvent.js +0 -65
- package/common/events/PrivateFinsembleEvent.js.map +0 -1
- package/common/redux/createReducer.d.ts +0 -128
- package/common/redux/createReducer.d.ts.map +0 -1
- package/common/redux/createReducer.js +0 -298
- package/common/redux/createReducer.js.map +0 -1
- package/common/redux/index.d.ts +0 -3
- package/common/redux/index.d.ts.map +0 -1
- package/common/redux/index.js +0 -3
- package/common/redux/index.js.map +0 -1
- package/platform/services/window/Common/Pools/ObjectPool.d.ts +0 -11
- package/platform/services/window/Common/Pools/ObjectPool.d.ts.map +0 -1
- package/platform/services/window/Common/Pools/ObjectPool.js +0 -43
- package/platform/services/window/Common/Pools/ObjectPool.js.map +0 -1
- package/platform/services/window/Common/Pools/PoolSingletons.d.ts +0 -10
- package/platform/services/window/Common/Pools/PoolSingletons.d.ts.map +0 -1
- package/platform/services/window/Common/Pools/PoolSingletons.js +0 -10
- package/platform/services/window/Common/Pools/PoolSingletons.js.map +0 -1
- package/platform/services/window/Common/Pools/WindowPool.d.ts +0 -7
- package/platform/services/window/Common/Pools/WindowPool.d.ts.map +0 -1
- package/platform/services/window/Common/Pools/WindowPool.js +0 -16
- package/platform/services/window/Common/Pools/WindowPool.js.map +0 -1
- package/platform/services/window/Docking/boxMath.d.ts +0 -144
- package/platform/services/window/Docking/boxMath.d.ts.map +0 -1
- package/platform/services/window/Docking/boxMath.js +0 -511
- package/platform/services/window/Docking/boxMath.js.map +0 -1
- package/platform/services/window/Docking/constants.d.ts +0 -29
- package/platform/services/window/Docking/constants.d.ts.map +0 -1
- package/platform/services/window/Docking/constants.js +0 -29
- package/platform/services/window/Docking/constants.js.map +0 -1
- package/platform/services/window/Docking/dockableBox.d.ts +0 -117
- package/platform/services/window/Docking/dockableBox.d.ts.map +0 -1
- package/platform/services/window/Docking/dockableBox.js +0 -525
- package/platform/services/window/Docking/dockableBox.js.map +0 -1
- package/platform/services/window/Docking/dockableGroup.d.ts +0 -252
- package/platform/services/window/Docking/dockableGroup.d.ts.map +0 -1
- package/platform/services/window/Docking/dockableGroup.js +0 -1054
- package/platform/services/window/Docking/dockableGroup.js.map +0 -1
- package/platform/services/window/Docking/dockableMonitor.d.ts +0 -99
- package/platform/services/window/Docking/dockableMonitor.d.ts.map +0 -1
- package/platform/services/window/Docking/dockableMonitor.js +0 -427
- package/platform/services/window/Docking/dockableMonitor.js.map +0 -1
- package/platform/services/window/Docking/dockableWindow.d.ts +0 -272
- package/platform/services/window/Docking/dockableWindow.d.ts.map +0 -1
- package/platform/services/window/Docking/dockableWindow.js +0 -1239
- package/platform/services/window/Docking/dockableWindow.js.map +0 -1
- package/platform/services/window/Docking/dockingCalculator.d.ts +0 -741
- package/platform/services/window/Docking/dockingCalculator.d.ts.map +0 -1
- package/platform/services/window/Docking/dockingCalculator.js +0 -3438
- package/platform/services/window/Docking/dockingCalculator.js.map +0 -1
- package/platform/services/window/Docking/dockingMain.d.ts +0 -349
- package/platform/services/window/Docking/dockingMain.d.ts.map +0 -1
- package/platform/services/window/Docking/dockingMain.js +0 -2541
- package/platform/services/window/Docking/dockingMain.js.map +0 -1
- package/platform/services/window/Docking/maskBoundsCalculator.d.ts +0 -28
- package/platform/services/window/Docking/maskBoundsCalculator.d.ts.map +0 -1
- package/platform/services/window/Docking/maskBoundsCalculator.js +0 -67
- package/platform/services/window/Docking/maskBoundsCalculator.js.map +0 -1
- package/platform/services/window/Docking/monitorUpdateHandler.d.ts +0 -32
- package/platform/services/window/Docking/monitorUpdateHandler.d.ts.map +0 -1
- package/platform/services/window/Docking/monitorUpdateHandler.js +0 -117
- package/platform/services/window/Docking/monitorUpdateHandler.js.map +0 -1
- package/platform/services/window/Docking/types.d.ts +0 -334
- package/platform/services/window/Docking/types.d.ts.map +0 -1
- package/platform/services/window/Docking/types.js +0 -12
- package/platform/services/window/Docking/types.js.map +0 -1
- package/platform/services/window/MultiWindowFeatures/autoArrange.d.ts +0 -90
- package/platform/services/window/MultiWindowFeatures/autoArrange.d.ts.map +0 -1
- package/platform/services/window/MultiWindowFeatures/autoArrange.js +0 -510
- package/platform/services/window/MultiWindowFeatures/autoArrange.js.map +0 -1
- package/platform/services/window/StackedWindowManager/stackedWindowManager.d.ts +0 -411
- package/platform/services/window/StackedWindowManager/stackedWindowManager.d.ts.map +0 -1
- package/platform/services/window/StackedWindowManager/stackedWindowManager.js +0 -1641
- package/platform/services/window/StackedWindowManager/stackedWindowManager.js.map +0 -1
- package/platform/services/window/WindowAbstractions/BaseWindow.d.ts +0 -469
- package/platform/services/window/WindowAbstractions/BaseWindow.d.ts.map +0 -1
- package/platform/services/window/WindowAbstractions/BaseWindow.js +0 -1347
- package/platform/services/window/WindowAbstractions/BaseWindow.js.map +0 -1
- package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.d.ts +0 -9
- package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.d.ts.map +0 -1
- package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.js +0 -23
- package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.js.map +0 -1
- package/platform/services/window/WindowAbstractions/WebWindowWrapper.d.ts +0 -227
- package/platform/services/window/WindowAbstractions/WebWindowWrapper.d.ts.map +0 -1
- package/platform/services/window/WindowAbstractions/WebWindowWrapper.js +0 -1168
- package/platform/services/window/WindowAbstractions/WebWindowWrapper.js.map +0 -1
- package/platform/services/window/WindowAbstractions/externalWindowWrapper.d.ts +0 -121
- package/platform/services/window/WindowAbstractions/externalWindowWrapper.d.ts.map +0 -1
- package/platform/services/window/WindowAbstractions/externalWindowWrapper.js +0 -591
- package/platform/services/window/WindowAbstractions/externalWindowWrapper.js.map +0 -1
- package/platform/services/window/WindowAbstractions/stackedWindowWrapper.d.ts +0 -194
- package/platform/services/window/WindowAbstractions/stackedWindowWrapper.d.ts.map +0 -1
- package/platform/services/window/WindowAbstractions/stackedWindowWrapper.js +0 -680
- package/platform/services/window/WindowAbstractions/stackedWindowWrapper.js.map +0 -1
- package/platform/services/window/windowGroup.d.ts +0 -86
- package/platform/services/window/windowGroup.d.ts.map +0 -1
- package/platform/services/window/windowGroup.js +0 -323
- package/platform/services/window/windowGroup.js.map +0 -1
- package/platform/services/workspace/windowStorageManager.d.ts +0 -180
- package/platform/services/workspace/windowStorageManager.d.ts.map +0 -1
- package/platform/services/workspace/windowStorageManager.js +0 -195
- package/platform/services/workspace/windowStorageManager.js.map +0 -1
- package/react/assets/icons/question-circle.svg +0 -6
- package/react/components/legacyControls/FinsembleHoverDetector.d.ts +0 -23
- package/react/components/legacyControls/FinsembleHoverDetector.d.ts.map +0 -1
- package/react/components/legacyControls/FinsembleHoverDetector.js +0 -57
- package/react/components/legacyControls/FinsembleHoverDetector.js.map +0 -1
- package/react/components/sdd/Appearance.helpers.d.ts +0 -2
- package/react/components/sdd/Appearance.helpers.d.ts.map +0 -1
- package/react/components/sdd/Appearance.helpers.js +0 -2
- package/react/components/sdd/Appearance.helpers.js.map +0 -1
- package/react/components/shared/linkerUtil.d.ts +0 -4
- package/react/components/shared/linkerUtil.d.ts.map +0 -1
- package/react/components/shared/linkerUtil.js +0 -10
- package/react/components/shared/linkerUtil.js.map +0 -1
- package/react/components/windowTitleBar/components/center/Tab.d.ts +0 -31
- package/react/components/windowTitleBar/components/center/Tab.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/center/Tab.js +0 -58
- package/react/components/windowTitleBar/components/center/Tab.js.map +0 -1
- package/react/components/windowTitleBar/components/center/TabList.d.ts +0 -138
- package/react/components/windowTitleBar/components/center/TabList.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/center/TabList.js +0 -614
- package/react/components/windowTitleBar/components/center/TabList.js.map +0 -1
- package/react/components/windowTitleBar/components/center/TabRegion.d.ts +0 -3
- package/react/components/windowTitleBar/components/center/TabRegion.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/center/TabRegion.js +0 -13
- package/react/components/windowTitleBar/components/center/TabRegion.js.map +0 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.js.map +0 -1
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts +0 -85
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js +0 -172
- package/react/components/windowTitleBar/components/left/LinkerButtonDeprecated.js.map +0 -1
- package/react/components/windowTitleBar/components/left/LinkerGroups.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/left/LinkerGroups.js.map +0 -1
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts +0 -50
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js +0 -120
- package/react/components/windowTitleBar/components/left/LinkerGroupsDeprecated.js.map +0 -1
- package/react/components/windowTitleBar/components/left/ShareButton.d.ts +0 -42
- package/react/components/windowTitleBar/components/left/ShareButton.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/left/ShareButton.js +0 -82
- package/react/components/windowTitleBar/components/left/ShareButton.js.map +0 -1
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.d.ts +0 -3
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js +0 -15
- package/react/components/windowTitleBar/components/right/AlwaysOnTopButton.js.map +0 -1
- package/react/components/windowTitleBar/components/right/CloseButton.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/right/CloseButton.js +0 -16
- package/react/components/windowTitleBar/components/right/CloseButton.js.map +0 -1
- package/react/components/windowTitleBar/components/right/GroupingButton.d.ts +0 -50
- package/react/components/windowTitleBar/components/right/GroupingButton.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/right/GroupingButton.js +0 -82
- package/react/components/windowTitleBar/components/right/GroupingButton.js.map +0 -1
- package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts +0 -59
- package/react/components/windowTitleBar/components/right/MaximizeButton.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/right/MaximizeButton.js +0 -96
- package/react/components/windowTitleBar/components/right/MaximizeButton.js.map +0 -1
- package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts +0 -26
- package/react/components/windowTitleBar/components/right/MinimizeButton.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/right/MinimizeButton.js +0 -32
- package/react/components/windowTitleBar/components/right/MinimizeButton.js.map +0 -1
- package/react/components/windowTitleBar/components/windowTitle.d.ts +0 -67
- package/react/components/windowTitleBar/components/windowTitle.d.ts.map +0 -1
- package/react/components/windowTitleBar/components/windowTitle.js +0 -382
- package/react/components/windowTitleBar/components/windowTitle.js.map +0 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts +0 -69
- package/react/components/windowTitleBar/stores/windowTitleBarStore.d.ts.map +0 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js +0 -610
- package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +0 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.d.ts +0 -44
- package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.d.ts.map +0 -1
- package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js +0 -43
- package/react/components/windowTitleBar/stores/windowTitleBarStoreDefaults.js.map +0 -1
- package/react/components/windowTitleBar/windowTitleBarContext.d.ts +0 -23
- package/react/components/windowTitleBar/windowTitleBarContext.d.ts.map +0 -1
- package/react/components/windowTitleBar/windowTitleBarContext.js +0 -22
- package/react/components/windowTitleBar/windowTitleBarContext.js.map +0 -1
- package/react/types/windowTitleBar.d.ts +0 -49
- package/react/types/windowTitleBar.d.ts.map +0 -1
- package/react/types/windowTitleBar.js +0 -2
- package/react/types/windowTitleBar.js.map +0 -1
|
@@ -1,510 +0,0 @@
|
|
|
1
|
-
import { BaseWindow } from "../WindowAbstractions/BaseWindow";
|
|
2
|
-
import { RouterClient } from "../../../../clients/routerClient";
|
|
3
|
-
import { Logger } from "../../../../clients/logger";
|
|
4
|
-
import { WorkspaceClient } from "../../../../clients/workspaceClient";
|
|
5
|
-
import { WindowStorageManager } from "../../workspace/windowStorageManager";
|
|
6
|
-
import { isStackedWindow, fastClone } from "../../../../common/util";
|
|
7
|
-
import { findKey } from "lodash";
|
|
8
|
-
import async from "async";
|
|
9
|
-
Logger.start();
|
|
10
|
-
class AutoArrange {
|
|
11
|
-
constructor(params) {
|
|
12
|
-
this.isArranged = {};
|
|
13
|
-
this.DockingCalculator = params.DockingCalculator;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* For more, see {@link https://medium.com/@jtreitz/the-algorithm-for-a-perfectly-balanced-photo-gallery-914c94a5d8af#.c09v4fn1e}. This is a javascript port of a python solution to the linear partition problem.
|
|
18
|
-
* @param {Array} aspectRatios An array of numbers; in this case, aspect ratios.
|
|
19
|
-
* @param {Number} rows Number of rows to distribute aspectRatios across.
|
|
20
|
-
* @returns {Array} ans Returns an array of arrays. Each internal array represents a row.
|
|
21
|
-
* @private
|
|
22
|
-
*/
|
|
23
|
-
linearPartition(aspectRatios, rows) {
|
|
24
|
-
let numWindows = aspectRatios.length;
|
|
25
|
-
if (rows <= 0) {
|
|
26
|
-
return [];
|
|
27
|
-
}
|
|
28
|
-
if (rows > numWindows) {
|
|
29
|
-
return aspectRatios.map((x) => [x]);
|
|
30
|
-
}
|
|
31
|
-
// Make some two dimensional arrays filled with zeros
|
|
32
|
-
const table = Array.from({ length: numWindows }, () => Array.from({ length: rows }, () => 0));
|
|
33
|
-
const solution = Array.from({ length: numWindows - 1 }, () => Array.from({ length: rows - 1 }, () => 0));
|
|
34
|
-
for (let i = 0; i < numWindows; i++) {
|
|
35
|
-
const prevValue = i ? table[i - 1][0] : 0;
|
|
36
|
-
table[i][0] = aspectRatios[i].aspectRatio + prevValue;
|
|
37
|
-
}
|
|
38
|
-
for (let j = 0; j < rows; j++) {
|
|
39
|
-
table[0][j] = aspectRatios[0].aspectRatio;
|
|
40
|
-
}
|
|
41
|
-
const computeAspects = (i, j) => {
|
|
42
|
-
let list_of_pairs = [];
|
|
43
|
-
for (var x = 0; x < i; x++) {
|
|
44
|
-
list_of_pairs = [];
|
|
45
|
-
for (let y = 0; y < i; y++) {
|
|
46
|
-
const max = Math.max(table[y][j - 1], table[i][0] - table[y][0]);
|
|
47
|
-
list_of_pairs.push([max, y]);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const m = list_of_pairs.reduce((previous, current) => (current[0] < previous[0] ? current : previous), [Infinity]);
|
|
51
|
-
table[i][j] = m[0];
|
|
52
|
-
solution[i - 1][j - 1] = m[1];
|
|
53
|
-
};
|
|
54
|
-
for (let i = 1; i < numWindows; i++) {
|
|
55
|
-
for (let j = 1; j < rows; j++) {
|
|
56
|
-
computeAspects(i, j);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
numWindows = numWindows - 1;
|
|
60
|
-
rows = rows - 2;
|
|
61
|
-
let ans = [];
|
|
62
|
-
while (rows >= 0) {
|
|
63
|
-
const sub_list = [];
|
|
64
|
-
for (let i = solution[numWindows - 1][rows] + 1; i < numWindows + 1; i++) {
|
|
65
|
-
sub_list.push(aspectRatios[i]);
|
|
66
|
-
}
|
|
67
|
-
ans = [sub_list].concat(ans);
|
|
68
|
-
numWindows = solution[numWindows - 1][rows];
|
|
69
|
-
rows--;
|
|
70
|
-
}
|
|
71
|
-
const beginning_list = [];
|
|
72
|
-
for (let i = 0; i < numWindows + 1; i++) {
|
|
73
|
-
beginning_list.push(aspectRatios[i]);
|
|
74
|
-
}
|
|
75
|
-
return [beginning_list].concat(ans);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* @private
|
|
79
|
-
* @param {LauncherClient~windowDescriptor} win
|
|
80
|
-
* @param {monitorDimensions} monitorDimensions
|
|
81
|
-
* @returns {boolean} Whether window is on the current monitor.
|
|
82
|
-
*/
|
|
83
|
-
windowOnMonitor(windowDescriptor, monitorDimensions) {
|
|
84
|
-
// if right or left edge is within the window's bounds.
|
|
85
|
-
return windowDescriptor.monitor.name === monitorDimensions.name;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Takes a list of windows and returns only the ones that are subject to being auto-arranged
|
|
89
|
-
*
|
|
90
|
-
*/
|
|
91
|
-
getArrangableWindows(windowDescriptorList) {
|
|
92
|
-
return windowDescriptorList.filter((obj) => {
|
|
93
|
-
var _a;
|
|
94
|
-
// filter result is true if window is auto-arrangeable; result is false if not arrangeable
|
|
95
|
-
if (!obj) {
|
|
96
|
-
Logger.system.warn("autoArrange.getWindowsOnMonitor: unexpected null object");
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
else if (!this.DockingCalculator.getWindow(obj.name, false)) {
|
|
100
|
-
Logger.system.warn("autoArrange.getWindowsOnMonitor: window unknown");
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
return (_a = obj === null || obj === void 0 ? void 0 : obj.allowAutoArrange) !== null && _a !== void 0 ? _a : true;
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
// returns the windows on the monitor that will be auto arranged
|
|
109
|
-
getWindowsOnMonitor(windowDescriptorList, monitorDimensions) {
|
|
110
|
-
// first filter out windows that are not auto arrangeable
|
|
111
|
-
const descriptors = this.getArrangableWindows(windowDescriptorList);
|
|
112
|
-
const windowsOnMonitor = [];
|
|
113
|
-
// only capture the arrangeable windows that are on the monitor
|
|
114
|
-
for (let i = 0; i < descriptors.length; i++) {
|
|
115
|
-
const descriptor = descriptors[i];
|
|
116
|
-
const win = this.DockingCalculator.getWindow(descriptor.name);
|
|
117
|
-
win.monitor = this.DockingCalculator.getMonitorForWindow(win);
|
|
118
|
-
const noCachedPositionYet = !this.DockingCalculator.cachedPositions[win.monitor.name][win.name];
|
|
119
|
-
const isOnMonitor = this.windowOnMonitor(win, monitorDimensions);
|
|
120
|
-
if (noCachedPositionYet && isOnMonitor) {
|
|
121
|
-
this.DockingCalculator.cachedPositions[win.monitor.name][win.name] = {
|
|
122
|
-
left: win.left,
|
|
123
|
-
right: win.right,
|
|
124
|
-
bottom: win.bottom,
|
|
125
|
-
top: win.top,
|
|
126
|
-
height: win.height,
|
|
127
|
-
width: win.width,
|
|
128
|
-
};
|
|
129
|
-
windowsOnMonitor.push({
|
|
130
|
-
aspectRatio: win.width / win.height,
|
|
131
|
-
top: win.top,
|
|
132
|
-
bottom: win.bottom,
|
|
133
|
-
left: win.left,
|
|
134
|
-
right: win.right,
|
|
135
|
-
dockableWindow: win,
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
// before arranging, sort window list based on location to influence final arrangement;
|
|
140
|
-
// note the comparison function is not transitive, so results aren't always what expected;
|
|
141
|
-
// however, they are usually intuitive when moving a single window.
|
|
142
|
-
windowsOnMonitor.sort((a, b) => {
|
|
143
|
-
if (a.top === b.top && a.left === b.left) {
|
|
144
|
-
return 0; // a == b
|
|
145
|
-
}
|
|
146
|
-
else if (a.top < b.top && a.left < b.left) {
|
|
147
|
-
return -1; // a < b
|
|
148
|
-
}
|
|
149
|
-
else if (a.top < b.bottom && a.left < b.left) {
|
|
150
|
-
return -1; // a < b
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
return 1; // a > b
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
windowsOnMonitor.forEach((finWin) => {
|
|
157
|
-
const wrap = this.DockingCalculator.getWindow(finWin.dockableWindow.name);
|
|
158
|
-
// only restore minimized windows
|
|
159
|
-
if (wrap.win.windowState === BaseWindow.WINDOWSTATE.MINIMIZED_WAS_MAXIMIZED ||
|
|
160
|
-
wrap.win.windowState === BaseWindow.WINDOWSTATE.MINIMIZED_WAS_NORMAL) {
|
|
161
|
-
wrap.restore();
|
|
162
|
-
wrap.bringToFront();
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
return windowsOnMonitor;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Get windowData for all windows in the active workspace
|
|
169
|
-
*/
|
|
170
|
-
async getAllWindowsInActiveWorkspace() {
|
|
171
|
-
const windowNamesFromActiveWorkspace = (await WorkspaceClient.getActiveWorkspace()).data.windows;
|
|
172
|
-
return await WindowStorageManager.getManyStates("windowData", windowNamesFromActiveWorkspace);
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Retrieves information about the passed in StackedWindow
|
|
176
|
-
* @param {*} win
|
|
177
|
-
*/
|
|
178
|
-
async retrieveInformationForStackReconciliation(win) {
|
|
179
|
-
if (!isStackedWindow(win) && !win.name.includes("StackedWindow")) {
|
|
180
|
-
// Skip reconciliation logic if registering/deregistering window is not a stack
|
|
181
|
-
return { stack: null, stackName: "undefined" };
|
|
182
|
-
}
|
|
183
|
-
const stackName = win.windowName || win.name;
|
|
184
|
-
if (!stackName) {
|
|
185
|
-
// The rest of this function will error if the passed in object is missing a name
|
|
186
|
-
return { stack: null, stackName: "undefined" };
|
|
187
|
-
}
|
|
188
|
-
// Get all the windows in the active workspace
|
|
189
|
-
const allWindowsInWorkspace = await this.getAllWindowsInActiveWorkspace();
|
|
190
|
-
// From all windows, determine the parent stack window of this window
|
|
191
|
-
const parentStack = allWindowsInWorkspace.find((windowData) => windowData.name === stackName);
|
|
192
|
-
return {
|
|
193
|
-
stack: parentStack,
|
|
194
|
-
stackName,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Given a window, if its a StackedWindow, this will search the monitor's auto arrange cache for any children of the stack
|
|
199
|
-
* and replace the cache representation with the StackedWindow
|
|
200
|
-
* @param {*} win
|
|
201
|
-
*/
|
|
202
|
-
async reconcileStackCreationWithAutoArrangedWindows(win) {
|
|
203
|
-
const reconciliationInformation = await this.retrieveInformationForStackReconciliation(win);
|
|
204
|
-
const { stack: parentStack, stackName } = reconciliationInformation;
|
|
205
|
-
if (!parentStack)
|
|
206
|
-
return;
|
|
207
|
-
let stackReconciled = false;
|
|
208
|
-
const children = parentStack.childWindowIdentifiers;
|
|
209
|
-
if (!children)
|
|
210
|
-
return;
|
|
211
|
-
for (let i = 0; i < children.length; i++) {
|
|
212
|
-
if (stackReconciled)
|
|
213
|
-
break;
|
|
214
|
-
const childWindowIdentifierName = children[i].windowName || children[i].name;
|
|
215
|
-
const stackWindow = this.DockingCalculator.getWindow(stackName);
|
|
216
|
-
// If stackWindow and the cachedPosition exists make the swap
|
|
217
|
-
if (stackWindow && this.DockingCalculator.cachedPositions[stackWindow.monitor.name][childWindowIdentifierName]) {
|
|
218
|
-
const newWindowBounds = fastClone(this.DockingCalculator.cachedPositions[stackWindow.monitor.name][childWindowIdentifierName]);
|
|
219
|
-
delete this.DockingCalculator.cachedPositions[stackWindow.monitor.name][childWindowIdentifierName];
|
|
220
|
-
this.DockingCalculator.cachedPositions[stackWindow.monitor.name][stackName] = newWindowBounds;
|
|
221
|
-
stackReconciled = true;
|
|
222
|
-
break;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Given a window, if its a StackedWindow, this will search the monitor's auto arrange cache for the remaining window
|
|
228
|
-
* in that stack and will replace the auto arrange cache with the remaining window
|
|
229
|
-
* @param {*} win
|
|
230
|
-
*/
|
|
231
|
-
async reconcileStackDeletionWithAutoArrangedWindows(win) {
|
|
232
|
-
const self = this;
|
|
233
|
-
const reconciliationInformation = await this.retrieveInformationForStackReconciliation(win);
|
|
234
|
-
const { stack: parentStack, stackName } = reconciliationInformation;
|
|
235
|
-
if (parentStack) {
|
|
236
|
-
const children = parentStack.childWindowIdentifiers;
|
|
237
|
-
if (children && children.length === 1) {
|
|
238
|
-
// If there is only one child remaining this stack window will be destroyed. Replace
|
|
239
|
-
// the auto arrange cache of the stacked window with the window that remains
|
|
240
|
-
const childIdentifier = children[0];
|
|
241
|
-
const childWindow = self.DockingCalculator.getWindow(childIdentifier.name);
|
|
242
|
-
// If the cachedPosition exists make the swap
|
|
243
|
-
if (self.DockingCalculator.cachedPositions[childWindow.monitor.name][stackName]) {
|
|
244
|
-
const newWindowBounds = fastClone(self.DockingCalculator.cachedPositions[childWindow.monitor.name][stackName]);
|
|
245
|
-
delete self.DockingCalculator.cachedPositions[childWindow.monitor.name][stackName];
|
|
246
|
-
self.DockingCalculator.cachedPositions[childWindow.monitor.name][childIdentifier.name] = newWindowBounds;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* boxesToArrange is a concatenation of windows and groups built into singular objects
|
|
253
|
-
* so they can be treated as 'boxes to rearrange' wrather than individual windows
|
|
254
|
-
*
|
|
255
|
-
* groupBoxes is an array of 'windows' that are actually a group of windows.
|
|
256
|
-
* Built into a single object that looks like a 'window' by the arrangement code
|
|
257
|
-
*/
|
|
258
|
-
getBoxesToArrange({ windowsFromActiveWorkspaceFiltered, monitorDimensions, }) {
|
|
259
|
-
let boxesToArrange = [];
|
|
260
|
-
let groupBoxes = [];
|
|
261
|
-
// get groups of windows
|
|
262
|
-
const groupsFromWorkspace = this.DockingCalculator.getGroups();
|
|
263
|
-
// get individual windows
|
|
264
|
-
const windowsOnMonitor = this.getWindowsOnMonitor(windowsFromActiveWorkspaceFiltered, monitorDimensions);
|
|
265
|
-
// Map through each individual window to determine if it is part of a group
|
|
266
|
-
windowsOnMonitor.forEach((win) => {
|
|
267
|
-
var _a;
|
|
268
|
-
// Uses lodash to search through the workspaces to see if this win
|
|
269
|
-
// is contained in the group's 'windows' array
|
|
270
|
-
const currentWindowsGroupBoxName = findKey(groupsFromWorkspace, (thisGroup) => {
|
|
271
|
-
if (!thisGroup.isMovable)
|
|
272
|
-
return false;
|
|
273
|
-
// The array returned by DockingCalculator.getMovableGroups and getGroups has a length of 0 with the windows attached to the object.
|
|
274
|
-
// That doesn't seem ideal, but for now handle that case
|
|
275
|
-
const result = Object.values(thisGroup.windows).findIndex((windowInsideGroup) => windowInsideGroup.name === win.dockableWindow.name);
|
|
276
|
-
//findIndex returns a -1 for false which does not work as a falsey value. Since findKey expects a bool we must translate the result.
|
|
277
|
-
return result !== -1;
|
|
278
|
-
});
|
|
279
|
-
// See if a 'win' has already been built for this group. Retrieve it if so, otherwise
|
|
280
|
-
// one will be created.
|
|
281
|
-
const groupBox = groupBoxes.length > 0
|
|
282
|
-
? groupBoxes.find((thisGroupBox) => thisGroupBox.name === currentWindowsGroupBoxName)
|
|
283
|
-
: null;
|
|
284
|
-
if (!currentWindowsGroupBoxName) {
|
|
285
|
-
// There is no group that this win belongs to, add it to the final array
|
|
286
|
-
boxesToArrange.push(win);
|
|
287
|
-
}
|
|
288
|
-
else if (groupBox) {
|
|
289
|
-
// There is already a 'win' for this group in windowsGroups, we need to
|
|
290
|
-
// average the win aspect ratios. This may have to change
|
|
291
|
-
const groupIndex = groupBoxes.length > 0
|
|
292
|
-
? groupBoxes.findIndex((thisGroupBox) => thisGroupBox.name === groupsFromWorkspace[currentWindowsGroupBoxName].name)
|
|
293
|
-
: null;
|
|
294
|
-
groupBox.aspectRatio =
|
|
295
|
-
groupsFromWorkspace[currentWindowsGroupBoxName].width /
|
|
296
|
-
groupsFromWorkspace[currentWindowsGroupBoxName].height;
|
|
297
|
-
// Add the new win to the groups windows array
|
|
298
|
-
(_a = groupBox.windows) === null || _a === void 0 ? void 0 : _a.push(win);
|
|
299
|
-
//Both -1 and null are possible failure options when defining group index depending on which ternary statement was hit
|
|
300
|
-
if (groupIndex !== null && groupIndex !== -1) {
|
|
301
|
-
groupBoxes.splice(groupIndex, 1);
|
|
302
|
-
groupBoxes.push(groupBox);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
// There is no 'win' for this group. Creating one
|
|
307
|
-
const newGroupBox = {
|
|
308
|
-
aspectRatio: win.aspectRatio,
|
|
309
|
-
bottom: groupsFromWorkspace[currentWindowsGroupBoxName].bottom,
|
|
310
|
-
left: groupsFromWorkspace[currentWindowsGroupBoxName].left,
|
|
311
|
-
name: groupsFromWorkspace[currentWindowsGroupBoxName].name,
|
|
312
|
-
right: groupsFromWorkspace[currentWindowsGroupBoxName].right,
|
|
313
|
-
top: groupsFromWorkspace[currentWindowsGroupBoxName].top,
|
|
314
|
-
windows: [win],
|
|
315
|
-
isGroup: true,
|
|
316
|
-
dockableWindow: win.dockableWindow,
|
|
317
|
-
};
|
|
318
|
-
groupBoxes.push(newGroupBox);
|
|
319
|
-
}
|
|
320
|
-
});
|
|
321
|
-
// Add the array of groupWindows to the array already containing loner windows
|
|
322
|
-
return boxesToArrange.concat(groupBoxes);
|
|
323
|
-
}
|
|
324
|
-
animateWindow(request) {
|
|
325
|
-
return new Promise((resolve) => {
|
|
326
|
-
const { height, width, top, left, dockableWin } = request;
|
|
327
|
-
const bounds = {
|
|
328
|
-
height,
|
|
329
|
-
width,
|
|
330
|
-
top,
|
|
331
|
-
left,
|
|
332
|
-
};
|
|
333
|
-
dockableWin.animatePositionAndHeight(bounds, () => {
|
|
334
|
-
this.DockingCalculator.buildSnapRelationships(dockableWin);
|
|
335
|
-
dockableWin.win.stopMove();
|
|
336
|
-
RouterClient.transmit(`DockingService.${dockableWin.name}`, {
|
|
337
|
-
command: "saveWindowLocation",
|
|
338
|
-
bounds,
|
|
339
|
-
});
|
|
340
|
-
resolve();
|
|
341
|
-
});
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
/**
|
|
345
|
-
* Arranges all windows in the current workspace that are visible on the current monitor. For more about the algorithm used to distribute windows across rows, see {@link https://medium.com/@jtreitz/the-algorithm-for-a-perfectly-balanced-photo-gallery-914c94a5d8af#.c09v4fn1e this post}. The algorithm chooses the number of rows by taking the square root of the number of windows on the monitor and rounding down. 3 windows results in 1 row. 4 windows results in 2 rows. 8 windows will be arranged across 2 rows. 9 windows will be arranged across 3 rows. Other breakpoints are 16, 25, and 36.
|
|
346
|
-
* @param {Object} monitorDimensions Monitor dimensions of a given monitor. This value is passed
|
|
347
|
-
* in from {@link util#getMonitorInfo}.
|
|
348
|
-
*/
|
|
349
|
-
async arrange(monitorDimensions) {
|
|
350
|
-
if (this.isArranged[monitorDimensions.name]) {
|
|
351
|
-
/*
|
|
352
|
-
11/7/19 JC - Previously this was toggling the status (!<currentStatus>). If we're reverting,
|
|
353
|
-
the status will always be false, if we're not reverting (below) then the status will be true.
|
|
354
|
-
Toggling leads to potential for internal state mismatch
|
|
355
|
-
*/
|
|
356
|
-
this.isArranged[monitorDimensions.name] = false;
|
|
357
|
-
// Reverts windows and sends statusUpdate.
|
|
358
|
-
this.revertArrangedWindows(monitorDimensions);
|
|
359
|
-
this.DockingCalculator.sendAutoArrangeStatusUpdate();
|
|
360
|
-
return;
|
|
361
|
-
}
|
|
362
|
-
this.isArranged[monitorDimensions.name] = true;
|
|
363
|
-
this.DockingCalculator.sendAutoArrangeStatusUpdate();
|
|
364
|
-
// Window list used to come from Launcher's activeWindow list.
|
|
365
|
-
// The workspace should be the one reporting the windows in a workspace
|
|
366
|
-
// that need to be auto arranged.
|
|
367
|
-
// Workspace returns a list of windows, including StackedWindows.
|
|
368
|
-
// This will have duplicates as each window in stack will also appear as
|
|
369
|
-
// an individual window in the list
|
|
370
|
-
const windowsFromActiveWorkspace = await this.getAllWindowsInActiveWorkspace();
|
|
371
|
-
console.log(windowsFromActiveWorkspace);
|
|
372
|
-
const windows = Object.values(windowsFromActiveWorkspace);
|
|
373
|
-
// Keep track of a list of windows which are children to another window
|
|
374
|
-
const childrenWindows = windows.flatMap((win) => {
|
|
375
|
-
var _a, _b;
|
|
376
|
-
if (isStackedWindow(win)) {
|
|
377
|
-
return (_b = (_a = win === null || win === void 0 ? void 0 : win.childWindowIdentifiers) === null || _a === void 0 ? void 0 : _a.map((childWindowIdent) => childWindowIdent.name)) !== null && _b !== void 0 ? _b : [];
|
|
378
|
-
}
|
|
379
|
-
return [];
|
|
380
|
-
});
|
|
381
|
-
// All windows which are either a stacked or standalone window (exclude children of stacked windows)
|
|
382
|
-
const windowsFromActiveWorkspaceFiltered = windows.filter((win) => isStackedWindow(win) || !childrenWindows.includes(win.name));
|
|
383
|
-
const boxesToArrange = this.getBoxesToArrange({ windowsFromActiveWorkspaceFiltered, monitorDimensions });
|
|
384
|
-
const resizeQueue = [];
|
|
385
|
-
// Number of rows is determined by the square root of the number of windows on the monitor.
|
|
386
|
-
// This gives us a preference for N x N grids. If you have 9 windows, you get 3 rows.
|
|
387
|
-
// If the aspect ratios are set correctly, you get 3x3.
|
|
388
|
-
const rowGroups = this.linearPartition(boxesToArrange, Math.floor(Math.sqrt(boxesToArrange.length)));
|
|
389
|
-
let rowHeight = Math.floor(monitorDimensions.height / rowGroups.length);
|
|
390
|
-
// Iterates through the properly partitioned windows and queues up the movements.
|
|
391
|
-
rowGroups.forEach(async (windowsInGroup, groupIndex) => {
|
|
392
|
-
const windowTop = Math.round(monitorDimensions.top + groupIndex * rowHeight);
|
|
393
|
-
const rowWidth = Math.round(monitorDimensions.width / windowsInGroup.length);
|
|
394
|
-
// if we're on the last row and the number of rows is not divisible by the monitor's height,
|
|
395
|
-
// we need to add the rounding error to the height so that there isn't a gap
|
|
396
|
-
// between the taskbar and the bottom edge of our last row.
|
|
397
|
-
const rowHeightTotal = rowHeight * rowGroups.length;
|
|
398
|
-
if (groupIndex === rowGroups.length - 1 && rowHeightTotal !== monitorDimensions.height) {
|
|
399
|
-
// since we round down the initial height calculation, rowHeightTotal
|
|
400
|
-
// will always be less than the monitor's height.
|
|
401
|
-
rowHeight = rowHeight + (monitorDimensions.height - rowHeightTotal);
|
|
402
|
-
}
|
|
403
|
-
// Now that the position is set, queue up the movement.
|
|
404
|
-
windowsInGroup.forEach((windowData, windex) => {
|
|
405
|
-
var _a;
|
|
406
|
-
// The 'windows' that are being looped through are are sometimes individual windows
|
|
407
|
-
// and other times they are a group of windows. If its a group, we need to loop
|
|
408
|
-
// through the group and add each window in the group. Fitting it into the space allotted for a single window
|
|
409
|
-
if (windowData.isGroup) {
|
|
410
|
-
// in this case dockableWin is actually a dockableGroup
|
|
411
|
-
const left = rowWidth * windex + monitorDimensions.left;
|
|
412
|
-
const right = left + rowWidth;
|
|
413
|
-
const groupName = (_a = windowData.name) !== null && _a !== void 0 ? _a : "";
|
|
414
|
-
const group = this.DockingCalculator.getGroup(groupName);
|
|
415
|
-
const bounds = {
|
|
416
|
-
top: windowTop,
|
|
417
|
-
left,
|
|
418
|
-
right,
|
|
419
|
-
height: rowHeight,
|
|
420
|
-
width: rowWidth,
|
|
421
|
-
triggeredByAutoArrange: false,
|
|
422
|
-
};
|
|
423
|
-
// TriggeredByAutoArrange will prevent the dockingService from deleting the windows
|
|
424
|
-
// cahcedPositions. We want to maintain these so that when we revert, grouped windows
|
|
425
|
-
// return to where they expect
|
|
426
|
-
group.moveTo({
|
|
427
|
-
anchor: windowData.dockableWindow,
|
|
428
|
-
top: windowTop,
|
|
429
|
-
left,
|
|
430
|
-
height: rowHeight,
|
|
431
|
-
triggeredByAutoArrange: true,
|
|
432
|
-
}, () => {
|
|
433
|
-
bounds.triggeredByAutoArrange = true;
|
|
434
|
-
// We scale the group to the entire monitor. The 'anchor' here is basically "from what side did it get resized?".
|
|
435
|
-
// Imagine the user grabbing the bottom right of the group and stretching it to fill the entire monitor. That's essentially what we're doing here.
|
|
436
|
-
group.scale(bounds, "bottomRight", this.DockingCalculator);
|
|
437
|
-
});
|
|
438
|
-
}
|
|
439
|
-
else {
|
|
440
|
-
resizeQueue.push({
|
|
441
|
-
dockableWin: this.DockingCalculator.getWindow(windowData.dockableWindow.name),
|
|
442
|
-
height: rowHeight,
|
|
443
|
-
width: rowWidth,
|
|
444
|
-
top: windowTop,
|
|
445
|
-
left: rowWidth * windex + monitorDimensions.left,
|
|
446
|
-
});
|
|
447
|
-
}
|
|
448
|
-
});
|
|
449
|
-
for (let i = 0; i < resizeQueue.length; i++) {
|
|
450
|
-
await this.animateWindow(resizeQueue[i]);
|
|
451
|
-
}
|
|
452
|
-
// animate each window. when they're all done, call the callback, form snapping relationships, and leave this function.
|
|
453
|
-
if (resizeQueue.length) {
|
|
454
|
-
this.DockingCalculator.formGroup(resizeQueue[0].dockableWin.name, {
|
|
455
|
-
isMovable: false,
|
|
456
|
-
});
|
|
457
|
-
this.isArranged[monitorDimensions.name] = true;
|
|
458
|
-
// Workaround to show a grouping button if no one window hasn't been grouped.
|
|
459
|
-
// Emulates actions after manual snapping.
|
|
460
|
-
if (boxesToArrange.length === windows.length) {
|
|
461
|
-
const monitorForWindow = this.DockingCalculator.getMonitorForWindow(resizeQueue[0].dockableWin);
|
|
462
|
-
this.DockingCalculator.onMoveComplete({ name: resizeQueue[0].dockableWin.name, monitor: monitorForWindow }, true);
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
});
|
|
466
|
-
}
|
|
467
|
-
/**
|
|
468
|
-
* Returns windows to where they were before an auto-arrange occurred.
|
|
469
|
-
*/
|
|
470
|
-
revertArrangedWindows(monitorDimensions) {
|
|
471
|
-
const self = this;
|
|
472
|
-
const windowObjectsToRevert = self.DockingCalculator.cachedPositions[monitorDimensions.name];
|
|
473
|
-
const namesOfWindowsToRevert = Object.keys(windowObjectsToRevert);
|
|
474
|
-
function revertWindow(windowName, done) {
|
|
475
|
-
const bounds = windowObjectsToRevert[windowName];
|
|
476
|
-
const dockableWindow = self.DockingCalculator.getWindow(windowName);
|
|
477
|
-
delete windowObjectsToRevert[windowName];
|
|
478
|
-
dockableWindow.animatePositionAndHeight({
|
|
479
|
-
height: bounds.height,
|
|
480
|
-
width: bounds.width,
|
|
481
|
-
top: bounds.top,
|
|
482
|
-
left: bounds.left,
|
|
483
|
-
right: bounds.right,
|
|
484
|
-
duration: 250,
|
|
485
|
-
}, () => {
|
|
486
|
-
RouterClient.transmit(`DockingService.${dockableWindow.name}`, {
|
|
487
|
-
command: "saveWindowLocation",
|
|
488
|
-
bounds,
|
|
489
|
-
});
|
|
490
|
-
done();
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
function onLocationReverted() {
|
|
494
|
-
namesOfWindowsToRevert.forEach((windowName) => {
|
|
495
|
-
const dockableWindow = self.DockingCalculator.getWindow(windowName);
|
|
496
|
-
self.DockingCalculator.buildSnapRelationships(dockableWindow);
|
|
497
|
-
self.DockingCalculator.checkGroupMembership(dockableWindow);
|
|
498
|
-
dockableWindow.win.stopMove();
|
|
499
|
-
delete self.DockingCalculator.cachedPositions[monitorDimensions.name][windowName];
|
|
500
|
-
});
|
|
501
|
-
self.DockingCalculator.updateGroupData();
|
|
502
|
-
Logger.system.debug("Publishing Group Update: Revert Autoarrange");
|
|
503
|
-
self.DockingCalculator.publishGroupUpdate();
|
|
504
|
-
}
|
|
505
|
-
async.each(namesOfWindowsToRevert, revertWindow, onLocationReverted);
|
|
506
|
-
self.DockingCalculator.sendAutoArrangeStatusUpdate();
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
export default AutoArrange;
|
|
510
|
-
//# sourceMappingURL=autoArrange.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autoArrange.js","sourceRoot":"","sources":["../../../../../../src/platform/services/window/MultiWindowFeatures/autoArrange.ts"],"names":[],"mappings":"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"}
|