@finsemble/finsemble-ui 8.0.2 → 8.1.0-beta.2
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 +48 -3
- package/FEA.d.ts.map +1 -1
- package/FEA.js.map +1 -1
- package/clients/Interop/FinsembleDesktopAgent.js +1 -1
- package/clients/Startup/FSBLDesktop.d.ts +2 -14
- package/clients/Startup/FSBLDesktop.d.ts.map +1 -1
- package/clients/Startup/FSBLDesktop.js +4 -21
- package/clients/Startup/FSBLDesktop.js.map +1 -1
- package/clients/Startup/types.d.ts +17 -0
- package/clients/Startup/types.d.ts.map +1 -1
- package/clients/Startup/windowStartup.d.ts.map +1 -1
- package/clients/Startup/windowStartup.js +16 -14
- package/clients/Startup/windowStartup.js.map +1 -1
- package/clients/routerClient.d.ts +2 -169
- package/clients/routerClient.d.ts.map +1 -1
- package/clients/routerClient.js +4 -7
- package/clients/routerClient.js.map +1 -1
- package/common/Desktop.d.ts +8 -0
- package/common/Desktop.d.ts.map +1 -1
- package/common/Desktop.js +23 -0
- package/common/Desktop.js.map +1 -1
- package/common/FinsembleWindow.d.ts +1 -2
- package/common/FinsembleWindow.d.ts.map +1 -1
- package/common/FinsembleWindow.js +1 -1
- package/common/FinsembleWindow.js.map +1 -1
- package/common/Monitors.d.ts +6 -0
- package/common/Monitors.d.ts.map +1 -1
- package/common/Monitors.js +22 -0
- package/common/Monitors.js.map +1 -1
- package/common/system.d.ts +1 -1
- package/common/system.d.ts.map +1 -1
- package/main.d.ts +29 -29
- package/package.json +44 -44
- package/platform/services/Interop/types.d.ts +1 -0
- package/platform/services/Interop/types.d.ts.map +1 -1
- package/platform/services/Interop/types.js.map +1 -1
- package/platform/services/router/routerTransport.d.ts.map +1 -1
- package/platform/services/router/routerTransport.js +5 -7
- package/platform/services/router/routerTransport.js.map +1 -1
- package/platform/services/router/types.d.ts +214 -0
- package/platform/services/router/types.d.ts.map +1 -0
- package/platform/services/router/types.js +2 -0
- package/platform/services/router/types.js.map +1 -0
- package/platform/services/types.d.ts +1 -0
- package/platform/services/types.d.ts.map +1 -1
- package/platform/services/types.js +1 -0
- package/platform/services/types.js.map +1 -1
- package/platform/services/window/Common/Pools/ObjectPool.d.ts +11 -0
- package/platform/services/window/Common/Pools/ObjectPool.d.ts.map +1 -0
- package/platform/services/window/Common/Pools/ObjectPool.js +43 -0
- package/platform/services/window/Common/Pools/ObjectPool.js.map +1 -0
- package/platform/services/window/Common/Pools/PoolSingletons.d.ts +10 -0
- package/platform/services/window/Common/Pools/PoolSingletons.d.ts.map +1 -0
- package/platform/services/window/Common/Pools/PoolSingletons.js +10 -0
- package/platform/services/window/Common/Pools/PoolSingletons.js.map +1 -0
- package/platform/services/window/Common/Pools/WindowPool.d.ts +7 -0
- package/platform/services/window/Common/Pools/WindowPool.d.ts.map +1 -0
- package/platform/services/window/Common/Pools/WindowPool.js +16 -0
- package/platform/services/window/Common/Pools/WindowPool.js.map +1 -0
- package/platform/services/window/Docking/boxMath.d.ts +144 -0
- package/platform/services/window/Docking/boxMath.d.ts.map +1 -0
- package/platform/services/window/Docking/boxMath.js +511 -0
- package/platform/services/window/Docking/boxMath.js.map +1 -0
- package/platform/services/window/Docking/constants.d.ts +29 -0
- package/platform/services/window/Docking/constants.d.ts.map +1 -0
- package/platform/services/window/Docking/constants.js +29 -0
- package/platform/services/window/Docking/constants.js.map +1 -0
- package/platform/services/window/Docking/dockableBox.d.ts +117 -0
- package/platform/services/window/Docking/dockableBox.d.ts.map +1 -0
- package/platform/services/window/Docking/dockableBox.js +525 -0
- package/platform/services/window/Docking/dockableBox.js.map +1 -0
- package/platform/services/window/Docking/dockableGroup.d.ts +252 -0
- package/platform/services/window/Docking/dockableGroup.d.ts.map +1 -0
- package/platform/services/window/Docking/dockableGroup.js +1054 -0
- package/platform/services/window/Docking/dockableGroup.js.map +1 -0
- package/platform/services/window/Docking/dockableMonitor.d.ts +99 -0
- package/platform/services/window/Docking/dockableMonitor.d.ts.map +1 -0
- package/platform/services/window/Docking/dockableMonitor.js +427 -0
- package/platform/services/window/Docking/dockableMonitor.js.map +1 -0
- package/platform/services/window/Docking/dockableWindow.d.ts +272 -0
- package/platform/services/window/Docking/dockableWindow.d.ts.map +1 -0
- package/platform/services/window/Docking/dockableWindow.js +1239 -0
- package/platform/services/window/Docking/dockableWindow.js.map +1 -0
- package/platform/services/window/Docking/dockingCalculator.d.ts +749 -0
- package/platform/services/window/Docking/dockingCalculator.d.ts.map +1 -0
- package/platform/services/window/Docking/dockingCalculator.js +3473 -0
- package/platform/services/window/Docking/dockingCalculator.js.map +1 -0
- package/platform/services/window/Docking/dockingMain.d.ts +349 -0
- package/platform/services/window/Docking/dockingMain.d.ts.map +1 -0
- package/platform/services/window/Docking/dockingMain.js +2584 -0
- package/platform/services/window/Docking/dockingMain.js.map +1 -0
- package/platform/services/window/Docking/maskBoundsCalculator.d.ts +28 -0
- package/platform/services/window/Docking/maskBoundsCalculator.d.ts.map +1 -0
- package/platform/services/window/Docking/maskBoundsCalculator.js +67 -0
- package/platform/services/window/Docking/maskBoundsCalculator.js.map +1 -0
- package/platform/services/window/Docking/monitorUpdateHandler.d.ts +32 -0
- package/platform/services/window/Docking/monitorUpdateHandler.d.ts.map +1 -0
- package/platform/services/window/Docking/monitorUpdateHandler.js +117 -0
- package/platform/services/window/Docking/monitorUpdateHandler.js.map +1 -0
- package/platform/services/window/Docking/types.d.ts +334 -0
- package/platform/services/window/Docking/types.d.ts.map +1 -0
- package/platform/services/window/Docking/types.js +12 -0
- package/platform/services/window/Docking/types.js.map +1 -0
- package/platform/services/window/MultiWindowFeatures/autoArrange.d.ts +90 -0
- package/platform/services/window/MultiWindowFeatures/autoArrange.d.ts.map +1 -0
- package/platform/services/window/MultiWindowFeatures/autoArrange.js +510 -0
- package/platform/services/window/MultiWindowFeatures/autoArrange.js.map +1 -0
- package/platform/services/window/StackedWindowManager/stackedWindowManager.d.ts +411 -0
- package/platform/services/window/StackedWindowManager/stackedWindowManager.d.ts.map +1 -0
- package/platform/services/window/StackedWindowManager/stackedWindowManager.js +1641 -0
- package/platform/services/window/StackedWindowManager/stackedWindowManager.js.map +1 -0
- package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.d.ts +9 -0
- package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.d.ts.map +1 -0
- package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.js +23 -0
- package/platform/services/window/WindowAbstractions/FinsembleWindowInternal.js.map +1 -0
- package/platform/services/window/WindowAbstractions/WebWindowWrapper.d.ts +227 -0
- package/platform/services/window/WindowAbstractions/WebWindowWrapper.d.ts.map +1 -0
- package/platform/services/window/WindowAbstractions/WebWindowWrapper.js +1168 -0
- package/platform/services/window/WindowAbstractions/WebWindowWrapper.js.map +1 -0
- package/platform/services/window/WindowAbstractions/externalWindowWrapper.d.ts +121 -0
- package/platform/services/window/WindowAbstractions/externalWindowWrapper.d.ts.map +1 -0
- package/platform/services/window/WindowAbstractions/externalWindowWrapper.js +591 -0
- package/platform/services/window/WindowAbstractions/externalWindowWrapper.js.map +1 -0
- package/platform/services/window/WindowAbstractions/stackedWindowWrapper.d.ts +194 -0
- package/platform/services/window/WindowAbstractions/stackedWindowWrapper.d.ts.map +1 -0
- package/platform/services/window/WindowAbstractions/stackedWindowWrapper.js +680 -0
- package/platform/services/window/WindowAbstractions/stackedWindowWrapper.js.map +1 -0
- package/platform/services/window/types.d.ts +13 -13
- package/platform/services/window/windowGroup.d.ts +86 -0
- package/platform/services/window/windowGroup.d.ts.map +1 -0
- package/platform/services/window/windowGroup.js +323 -0
- package/platform/services/window/windowGroup.js.map +1 -0
- package/platform/services/workspace/windowStorageManager.d.ts +178 -0
- package/platform/services/workspace/windowStorageManager.d.ts.map +1 -0
- package/platform/services/workspace/windowStorageManager.js +195 -0
- package/platform/services/workspace/windowStorageManager.js.map +1 -0
- package/platform/services/workspace/workspaceAdminAPI.d.ts +1 -1
- package/platform/services/workspace/workspaceAdminAPI.d.ts.map +1 -1
- package/react/actions/smartDesktopDesignerActions.d.ts +2 -0
- package/react/actions/smartDesktopDesignerActions.d.ts.map +1 -1
- package/react/actions/smartDesktopDesignerActions.js +1 -0
- package/react/actions/smartDesktopDesignerActions.js.map +1 -1
- package/react/assets/css/download.css +119 -0
- package/react/assets/css/userPreferences.css +50 -0
- package/react/assets/css/windowTitleBar.css +2 -1
- package/react/assets/icons/cancel.svg +15 -0
- package/react/assets/icons/gear.svg +9 -0
- package/react/assets/icons/pause.svg +15 -0
- package/react/assets/icons/resume.svg +17 -0
- package/react/assets/img/Finsemble-installation.gif +0 -0
- package/react/components/common/Button.d.ts +1 -0
- package/react/components/common/Button.d.ts.map +1 -1
- package/react/components/common/Button.js.map +1 -1
- package/react/components/common/ButtonIcon.d.ts.map +1 -1
- package/react/components/common/ButtonIcon.js +3 -2
- package/react/components/common/ButtonIcon.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 +8 -0
- package/react/components/common/FinsembleIcon.js.map +1 -1
- package/react/components/common/css/button.css +8 -2
- package/react/components/downloadManager/DownloadItem.d.ts +16 -0
- package/react/components/downloadManager/DownloadItem.d.ts.map +1 -0
- package/react/components/downloadManager/DownloadItem.js +74 -0
- package/react/components/downloadManager/DownloadItem.js.map +1 -0
- package/react/components/downloadManager/DownloadManager.d.ts +10 -0
- package/react/components/downloadManager/DownloadManager.d.ts.map +1 -0
- package/react/components/downloadManager/DownloadManager.js +42 -0
- package/react/components/downloadManager/DownloadManager.js.map +1 -0
- package/react/components/downloadManager/index.d.ts +2 -0
- package/react/components/downloadManager/index.d.ts.map +1 -0
- package/react/components/downloadManager/index.js +2 -0
- package/react/components/downloadManager/index.js.map +1 -0
- package/react/components/fdc3Resolver/ResolverDialog.css +1 -1
- package/react/components/index.d.ts +1 -0
- package/react/components/index.d.ts.map +1 -1
- package/react/components/index.js +1 -0
- package/react/components/index.js.map +1 -1
- package/react/components/processMonitor/ProcessMonitor.d.ts.map +1 -1
- package/react/components/processMonitor/ProcessMonitor.js +56 -75
- package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
- package/react/components/processMonitor/components/ChildWindow.d.ts +5 -7
- package/react/components/processMonitor/components/ChildWindow.d.ts.map +1 -1
- package/react/components/processMonitor/components/ChildWindow.js +30 -33
- package/react/components/processMonitor/components/ChildWindow.js.map +1 -1
- package/react/components/processMonitor/components/ListHeader.d.ts +4 -16
- package/react/components/processMonitor/components/ListHeader.d.ts.map +1 -1
- package/react/components/processMonitor/components/ListHeader.js +30 -39
- package/react/components/processMonitor/components/ListHeader.js.map +1 -1
- package/react/components/processMonitor/components/ProcessStatistics.d.ts +3 -6
- package/react/components/processMonitor/components/ProcessStatistics.d.ts.map +1 -1
- package/react/components/processMonitor/components/ProcessStatistics.js +18 -23
- package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
- package/react/components/sdd/Dashboard.css +21 -0
- package/react/components/sdd/css/export.css +33 -3
- package/react/components/sdd/css/nav.css +1 -1
- package/react/components/shared/DefaultDropdownButton.js +1 -1
- package/react/components/shared/DefaultDropdownButton.js.map +1 -1
- package/react/components/toolbar/DownloadButton.d.ts +8 -0
- package/react/components/toolbar/DownloadButton.d.ts.map +1 -0
- package/react/components/toolbar/DownloadButton.js +30 -0
- package/react/components/toolbar/DownloadButton.js.map +1 -0
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.d.ts.map +1 -1
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +6 -0
- package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js +1 -1
- package/react/components/toolbar/appLauncher/AppLauncherMenu.js.map +1 -1
- package/react/components/toolbar/dashbar/Dashbar.d.ts.map +1 -1
- package/react/components/toolbar/dashbar/Dashbar.js +72 -47
- package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
- package/react/components/toolbar/dashbar/DashbarItem.d.ts +1 -1
- package/react/components/toolbar/dashbar/DashbarItem.d.ts.map +1 -1
- package/react/components/toolbar/dashbar/DashbarItem.js +25 -4
- package/react/components/toolbar/dashbar/DashbarItem.js.map +1 -1
- package/react/components/toolbar/index.d.ts +1 -0
- package/react/components/toolbar/index.d.ts.map +1 -1
- package/react/components/toolbar/index.js +1 -0
- package/react/components/toolbar/index.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts +3 -4
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.d.ts.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js +3 -10
- package/react/components/toolbar/workspaceManagementMenu/components/WorkspaceActions.js.map +1 -1
- package/react/components/userPreferences/components/content/General.d.ts.map +1 -1
- package/react/components/userPreferences/components/content/General.js +3 -0
- package/react/components/userPreferences/components/content/General.js.map +1 -1
- package/react/components/userPreferences/components/general/DownloadPreferences.d.ts +10 -0
- package/react/components/userPreferences/components/general/DownloadPreferences.d.ts.map +1 -0
- package/react/components/userPreferences/components/general/DownloadPreferences.js +111 -0
- package/react/components/userPreferences/components/general/DownloadPreferences.js.map +1 -0
- package/react/components/userPreferences/stores/UserPreferencesStore.d.ts +6 -0
- package/react/components/userPreferences/stores/UserPreferencesStore.d.ts.map +1 -1
- package/react/components/userPreferences/stores/UserPreferencesStore.js +11 -0
- package/react/components/userPreferences/stores/UserPreferencesStore.js.map +1 -1
- package/react/components/windowTitleBar/components/right/CloseButton.d.ts +2 -26
- package/react/components/windowTitleBar/components/right/CloseButton.d.ts.map +1 -1
- package/react/components/windowTitleBar/components/right/CloseButton.js +8 -25
- package/react/components/windowTitleBar/components/right/CloseButton.js.map +1 -1
- package/react/hooks/useDownloadItems.d.ts +24 -0
- package/react/hooks/useDownloadItems.d.ts.map +1 -0
- package/react/hooks/useDownloadItems.js +68 -0
- package/react/hooks/useDownloadItems.js.map +1 -0
- package/react/hooks/useNotifications.d.ts +1 -1
- package/react/reducers/rootReducer.d.ts +4 -0
- package/react/reducers/rootReducer.d.ts.map +1 -1
- package/react/reducers/smartDesktopDesignerReducer.d.ts.map +1 -1
- package/react/reducers/smartDesktopDesignerReducer.js +4 -0
- package/react/reducers/smartDesktopDesignerReducer.js.map +1 -1
- package/react/store.d.ts +8 -0
- package/react/store.d.ts.map +1 -1
- package/react/types/dashbarTypes.d.ts +3 -1
- package/react/types/dashbarTypes.d.ts.map +1 -1
- package/react/types/smartDesktopDesignerTypes.d.ts +2 -0
- package/react/types/smartDesktopDesignerTypes.d.ts.map +1 -1
- package/react/types/smartDesktopDesignerTypes.js.map +1 -1
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { FinsembleWindowData } from "../window/types";
|
|
2
|
+
import { StandardErrorCallback } from "../../../types";
|
|
3
|
+
import { CompleteWindowState, StateType } from "./types";
|
|
4
|
+
export declare const GET_WINDOW_STATE_ERROR: (win: string, ws?: string) => string;
|
|
5
|
+
/**
|
|
6
|
+
* Static, ORM-like layer into the storage of all `windowData`
|
|
7
|
+
* and `componentState` data, mediating interface with storage
|
|
8
|
+
* while enforcing consistency and business rules.
|
|
9
|
+
*/
|
|
10
|
+
export declare class WindowStorageManager {
|
|
11
|
+
/**
|
|
12
|
+
* This static member is necessary for testing purposes
|
|
13
|
+
* only. Ideally, we would just use the StorageClient
|
|
14
|
+
* instance directly; however, this causes inconsistencies
|
|
15
|
+
* with our mocks that failed our testing efforts.
|
|
16
|
+
*/
|
|
17
|
+
static _SC: {
|
|
18
|
+
initialize: () => void;
|
|
19
|
+
onReady: (cb?: any) => void;
|
|
20
|
+
clearCache: (cb?: StandardErrorCallback<void> | undefined) => import("../../../types").StandardPromise<void>;
|
|
21
|
+
remove: (params: {
|
|
22
|
+
key: string;
|
|
23
|
+
topic: string;
|
|
24
|
+
}, cb?: StandardErrorCallback<void> | undefined) => import("../../../types").StandardPromise<void>;
|
|
25
|
+
getMultiple: (params: any, cb?: StandardErrorCallback<any> | undefined) => import("../../../types").StandardPromise<any>;
|
|
26
|
+
keys: (params: {
|
|
27
|
+
topic: string;
|
|
28
|
+
keyPrefix?: string | undefined;
|
|
29
|
+
}, cb?: StandardErrorCallback<string[]> | undefined) => import("../../../types").StandardPromise<string[]>;
|
|
30
|
+
getStandardized: <T = any>(params: {
|
|
31
|
+
key: string;
|
|
32
|
+
topic: string;
|
|
33
|
+
}, cb?: StandardErrorCallback<T> | undefined) => import("../../../types").StandardPromise<T>;
|
|
34
|
+
get: <T_1 = any>(params: {
|
|
35
|
+
key: string;
|
|
36
|
+
topic: string;
|
|
37
|
+
}, cb?: StandardErrorCallback<T_1> | undefined) => Promise<T_1>;
|
|
38
|
+
save: (params: import("../window/types").ComponentMutateParams, cb?: StandardErrorCallback<void> | undefined) => import("../../../types").StandardPromise<void>;
|
|
39
|
+
setStore: (params: {
|
|
40
|
+
topic: string;
|
|
41
|
+
dataStore?: string | undefined;
|
|
42
|
+
}, cb?: StandardErrorCallback<void> | undefined) => import("../../../types").StandardPromise<void>;
|
|
43
|
+
setUser: (params: {
|
|
44
|
+
user: string;
|
|
45
|
+
}, cb?: StandardErrorCallback<void> | undefined) => import("../../../types").StandardPromise<void>;
|
|
46
|
+
delete: (...args: any[]) => void;
|
|
47
|
+
remove1: (params: {
|
|
48
|
+
key: string;
|
|
49
|
+
topic: string;
|
|
50
|
+
}) => void;
|
|
51
|
+
get1: <T_2 = any>(params: {
|
|
52
|
+
key: string;
|
|
53
|
+
topic: string;
|
|
54
|
+
}, cb?: StandardErrorCallback<T_2> | undefined) => Promise<T_2>;
|
|
55
|
+
save1: (params: {
|
|
56
|
+
key: string;
|
|
57
|
+
topic: string;
|
|
58
|
+
value: any;
|
|
59
|
+
}) => void;
|
|
60
|
+
keys1: (params: {
|
|
61
|
+
topic: string;
|
|
62
|
+
keyPrefix?: string | undefined;
|
|
63
|
+
}) => Promise<string[]>;
|
|
64
|
+
};
|
|
65
|
+
static getWindowID: (win: FinsembleWindowData) => string;
|
|
66
|
+
/**
|
|
67
|
+
* Asynchronously updates provided key in storage by first retrieving the key
|
|
68
|
+
* then running a provided function on the result and re-saving its value.
|
|
69
|
+
* There’s no guarantees of consistency or atomicity
|
|
70
|
+
*
|
|
71
|
+
* @param params {any} Update storage params
|
|
72
|
+
* @param params.topic {string} The storage topic
|
|
73
|
+
* @param params.key {string} The storage key
|
|
74
|
+
* @param params.updateFn {Function} Function to run to determine the value to store
|
|
75
|
+
* @private
|
|
76
|
+
*/
|
|
77
|
+
static updateStorage(params: {
|
|
78
|
+
topic: string;
|
|
79
|
+
key: string;
|
|
80
|
+
updateFn: (x: any) => any;
|
|
81
|
+
}): Promise<{
|
|
82
|
+
err?: import("../../../types").StandardError;
|
|
83
|
+
data?: void | undefined;
|
|
84
|
+
}>;
|
|
85
|
+
/**
|
|
86
|
+
* Rate limited updateStorage.
|
|
87
|
+
* @private
|
|
88
|
+
*/
|
|
89
|
+
static updateStorage1(params: {
|
|
90
|
+
topic: string;
|
|
91
|
+
key: string;
|
|
92
|
+
updateFn: (x: any) => any;
|
|
93
|
+
}): Promise<{
|
|
94
|
+
err?: import("../../../types").StandardError;
|
|
95
|
+
data?: void | undefined;
|
|
96
|
+
}>;
|
|
97
|
+
/**
|
|
98
|
+
* Given a type, window, and workspace name, returns the correct storage topic and key
|
|
99
|
+
* for the `windowData` or `componentState`.
|
|
100
|
+
* Omit the workspace name to target the active workspace.
|
|
101
|
+
*/
|
|
102
|
+
static getTopicAndKey(type: StateType, windowName: string, workspaceName?: string): {
|
|
103
|
+
topic: string;
|
|
104
|
+
key: string;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Retrieves a window or component state belonging to the given workspace from storage.
|
|
108
|
+
* Omit the workspace name to target the active workspace.
|
|
109
|
+
*
|
|
110
|
+
* @param type Either `componentState` or `windowData`.
|
|
111
|
+
*/
|
|
112
|
+
static getState(type: StateType, windowName: string, workspaceName?: string): Promise<FinsembleWindowData>;
|
|
113
|
+
/**
|
|
114
|
+
* Same as `getState` but retrieves both `componentState` and `windowData`.
|
|
115
|
+
* NOTE: either or both of windowData may be null or emtpy objects (i.e, when
|
|
116
|
+
* the requested data doesn't exist).
|
|
117
|
+
*/
|
|
118
|
+
static getCompleteState(windowName: string, workspaceName?: string): Promise<CompleteWindowState>;
|
|
119
|
+
/**
|
|
120
|
+
* Retrieves multiple states (`componentState` or `windowData`) belonging to the given workspace from storage.
|
|
121
|
+
* Omit the workspace name to target the active workspace.
|
|
122
|
+
*
|
|
123
|
+
* It's possible to request a window state before it's been saved to storage particularly.
|
|
124
|
+
* if the window was added to a workspace by name (not by data). Therefore, unlike `getState`,
|
|
125
|
+
* this method doesn't throw errors if unable to fulfill the request; rather, it logs a warning instead.
|
|
126
|
+
*
|
|
127
|
+
* @param type Either `componentState` or `windowData`.
|
|
128
|
+
*/
|
|
129
|
+
static getManyStates(type: StateType, windowNames: string[], workspaceName?: string): Promise<FinsembleWindowData[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Same as `getManyStates` but retrieves both `componentState` and `windowData`.
|
|
132
|
+
*/
|
|
133
|
+
static getManyCompleteStates(windowNames: string[], workspaceName?: string): Promise<CompleteWindowState[]>;
|
|
134
|
+
/**
|
|
135
|
+
* Persists a state to storage under the given workspace name.
|
|
136
|
+
* Omit the workspace name to target the active workspace.
|
|
137
|
+
*
|
|
138
|
+
* @param type Either `componentState` or `windowData`.
|
|
139
|
+
*/
|
|
140
|
+
static setState(type: StateType, windowName: string, data: FinsembleWindowData | Record<string, any>, workspaceName?: string): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Same as `setState`, but sets both `componentState` and `windowData`.
|
|
143
|
+
*/
|
|
144
|
+
static setCompleteState(state: CompleteWindowState, workspaceName?: string): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Given an array of states, persists their states to storage.
|
|
147
|
+
* Omit the workspace name to target the active workspace.
|
|
148
|
+
*
|
|
149
|
+
* @param type Either `componentState` or `windowData`.
|
|
150
|
+
*/
|
|
151
|
+
static setManyStates(type: StateType, windows: FinsembleWindowData[], workspaceName?: string): Promise<void[]>;
|
|
152
|
+
/**
|
|
153
|
+
* Same as `setManyStates`, but sets both `componentState` and `windowData`.
|
|
154
|
+
*/
|
|
155
|
+
static setManyCompleteStates(windows: CompleteWindowState[], workspaceName?: string): Promise<void[]>;
|
|
156
|
+
/**
|
|
157
|
+
* Given a window name and an update function, retrieves the state
|
|
158
|
+
* under that name from storage, applies the update function to it, then sets
|
|
159
|
+
* the storage with the result.
|
|
160
|
+
* Omit the workspace name to target the active workspace.
|
|
161
|
+
*
|
|
162
|
+
* @param type Either `componentState` or `windowData`.
|
|
163
|
+
*/
|
|
164
|
+
static updateState(type: StateType, updateFn: (window: FinsembleWindowData) => FinsembleWindowData, windowName: string, workspaceName?: any): Promise<void>;
|
|
165
|
+
/**
|
|
166
|
+
* Removes a window's state (both `componentState` and `windowData`) from storage under the
|
|
167
|
+
* given workspace name. Omit the workspace name to target the active workspace.
|
|
168
|
+
*
|
|
169
|
+
* Logs a warning if unable to fulfill the request (doesn't throw).
|
|
170
|
+
*/
|
|
171
|
+
static removeCompleteState(windowName: string, workspaceName?: string): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Removes multiple states (both `componentState` and `windowData`) belonging to the given workspace from storage.
|
|
174
|
+
* Omit the workspace name to target the active workspace.
|
|
175
|
+
*/
|
|
176
|
+
static removeManyCompleteStates(windowNames: string[], workspaceName?: string): Promise<void[]>;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=windowStorageManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windowStorageManager.d.ts","sourceRoot":"","sources":["../../../../../src/platform/services/workspace/windowStorageManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import StorageClient from "../../../clients/storageClient";
|
|
2
|
+
import { camelCase, identity } from "../../../common/util";
|
|
3
|
+
import { WORKSPACE } from "../../../common/constants";
|
|
4
|
+
import { LoggerClient as Logger } from "../../../clients/logger";
|
|
5
|
+
import pLimit from "p-limit";
|
|
6
|
+
const limit = pLimit(1);
|
|
7
|
+
const { ACTIVE_WORKSPACE, CACHE_STORAGE_TOPIC, STORAGE_TOPIC } = WORKSPACE;
|
|
8
|
+
export const GET_WINDOW_STATE_ERROR = (win, ws = ACTIVE_WORKSPACE) => `No Window State found for window "${win}" in workspace "${ws}"`;
|
|
9
|
+
/**
|
|
10
|
+
* Rate limited functions
|
|
11
|
+
*/
|
|
12
|
+
const remove1 = (params) => limit(() => StorageClient.remove(params));
|
|
13
|
+
const get1 = (params, cb) => limit(() => StorageClient.get(params, cb));
|
|
14
|
+
const save1 = (params) => limit(() => StorageClient.save(params));
|
|
15
|
+
/**
|
|
16
|
+
* Static, ORM-like layer into the storage of all `windowData`
|
|
17
|
+
* and `componentState` data, mediating interface with storage
|
|
18
|
+
* while enforcing consistency and business rules.
|
|
19
|
+
*/
|
|
20
|
+
export class WindowStorageManager {
|
|
21
|
+
/**
|
|
22
|
+
* Asynchronously updates provided key in storage by first retrieving the key
|
|
23
|
+
* then running a provided function on the result and re-saving its value.
|
|
24
|
+
* There’s no guarantees of consistency or atomicity
|
|
25
|
+
*
|
|
26
|
+
* @param params {any} Update storage params
|
|
27
|
+
* @param params.topic {string} The storage topic
|
|
28
|
+
* @param params.key {string} The storage key
|
|
29
|
+
* @param params.updateFn {Function} Function to run to determine the value to store
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
static async updateStorage(params) {
|
|
33
|
+
const { topic, key, updateFn } = params;
|
|
34
|
+
const result = await WindowStorageManager._SC.get({ topic, key });
|
|
35
|
+
return await WindowStorageManager._SC.save({ topic, key, value: updateFn(result) });
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Rate limited updateStorage.
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
static updateStorage1(params) {
|
|
42
|
+
return limit(() => WindowStorageManager.updateStorage(params));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Given a type, window, and workspace name, returns the correct storage topic and key
|
|
46
|
+
* for the `windowData` or `componentState`.
|
|
47
|
+
* Omit the workspace name to target the active workspace.
|
|
48
|
+
*/
|
|
49
|
+
static getTopicAndKey(type, windowName, workspaceName = ACTIVE_WORKSPACE) {
|
|
50
|
+
/** The `windowData` is stored under the key with the format "workspacenameWindowname",
|
|
51
|
+
* while the `componentState` is stored under "workspacenameWindownameWindowname" */
|
|
52
|
+
const keyArgs = type === "windowData" ? [workspaceName, windowName] : [workspaceName, windowName, windowName];
|
|
53
|
+
return {
|
|
54
|
+
topic: workspaceName === ACTIVE_WORKSPACE ? CACHE_STORAGE_TOPIC : STORAGE_TOPIC,
|
|
55
|
+
key: camelCase.apply(null, keyArgs),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Retrieves a window or component state belonging to the given workspace from storage.
|
|
60
|
+
* Omit the workspace name to target the active workspace.
|
|
61
|
+
*
|
|
62
|
+
* @param type Either `componentState` or `windowData`.
|
|
63
|
+
*/
|
|
64
|
+
static async getState(type, windowName, workspaceName) {
|
|
65
|
+
const topicAndKey = WindowStorageManager.getTopicAndKey(type, windowName, workspaceName);
|
|
66
|
+
//disabled to reduce load on logging system generated when when retrieving activeWorkspace
|
|
67
|
+
//Logger.system.debug("getState", type, windowName, workspaceName, topicAndKey, "Result=", result);
|
|
68
|
+
return (await get1(topicAndKey)) || null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Same as `getState` but retrieves both `componentState` and `windowData`.
|
|
72
|
+
* NOTE: either or both of windowData may be null or emtpy objects (i.e, when
|
|
73
|
+
* the requested data doesn't exist).
|
|
74
|
+
*/
|
|
75
|
+
static async getCompleteState(windowName, workspaceName) {
|
|
76
|
+
let componentState = (await WindowStorageManager.getState("componentState", windowName, workspaceName)
|
|
77
|
+
// Windows may not necessarily have component state, so we must catch that occurance here.
|
|
78
|
+
.catch(() => {
|
|
79
|
+
return {};
|
|
80
|
+
}));
|
|
81
|
+
let windowData = (await WindowStorageManager.getState("windowData", windowName, workspaceName));
|
|
82
|
+
Logger.system.debug("getCompleteState", windowName, workspaceName, componentState, windowData);
|
|
83
|
+
return { componentState, windowData };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Retrieves multiple states (`componentState` or `windowData`) belonging to the given workspace from storage.
|
|
87
|
+
* Omit the workspace name to target the active workspace.
|
|
88
|
+
*
|
|
89
|
+
* It's possible to request a window state before it's been saved to storage particularly.
|
|
90
|
+
* if the window was added to a workspace by name (not by data). Therefore, unlike `getState`,
|
|
91
|
+
* this method doesn't throw errors if unable to fulfill the request; rather, it logs a warning instead.
|
|
92
|
+
*
|
|
93
|
+
* @param type Either `componentState` or `windowData`.
|
|
94
|
+
*/
|
|
95
|
+
static async getManyStates(type, windowNames, workspaceName) {
|
|
96
|
+
const promises = windowNames.flatMap((x) => {
|
|
97
|
+
try {
|
|
98
|
+
const state = WindowStorageManager.getState(type, x, workspaceName);
|
|
99
|
+
return [state];
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
return Promise.all(promises).then((x) => x.filter(identity));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Same as `getManyStates` but retrieves both `componentState` and `windowData`.
|
|
109
|
+
*/
|
|
110
|
+
static async getManyCompleteStates(windowNames, workspaceName) {
|
|
111
|
+
return Promise.all(windowNames.map((x) => WindowStorageManager.getCompleteState(x, workspaceName).catch((err) => {
|
|
112
|
+
Logger.system.warn(err);
|
|
113
|
+
return null;
|
|
114
|
+
}))).then((x) => x.filter(identity));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Persists a state to storage under the given workspace name.
|
|
118
|
+
* Omit the workspace name to target the active workspace.
|
|
119
|
+
*
|
|
120
|
+
* @param type Either `componentState` or `windowData`.
|
|
121
|
+
*/
|
|
122
|
+
static async setState(type, windowName, data, workspaceName) {
|
|
123
|
+
await save1(Object.assign(Object.assign({}, WindowStorageManager.getTopicAndKey(type, windowName, workspaceName)), { value: data }));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Same as `setState`, but sets both `componentState` and `windowData`.
|
|
127
|
+
*/
|
|
128
|
+
static async setCompleteState(state, workspaceName) {
|
|
129
|
+
// This only happens if a very seldomly hit race condition happens, and a window is removed from storage but not from the active workspace.
|
|
130
|
+
// We didn't spend a ton of time trying to figure it out because the underlying issue had no
|
|
131
|
+
// observable effect.
|
|
132
|
+
// Removing this line will cause the workspace to crash if it hits, though. so leave it.
|
|
133
|
+
if (!state.windowData || !state.componentState)
|
|
134
|
+
return;
|
|
135
|
+
await WindowStorageManager.setState("windowData", state.windowData.name, state.windowData, workspaceName);
|
|
136
|
+
await WindowStorageManager.setState("componentState", state.windowData.name, state.componentState, workspaceName);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Given an array of states, persists their states to storage.
|
|
140
|
+
* Omit the workspace name to target the active workspace.
|
|
141
|
+
*
|
|
142
|
+
* @param type Either `componentState` or `windowData`.
|
|
143
|
+
*/
|
|
144
|
+
static async setManyStates(type, windows, workspaceName) {
|
|
145
|
+
return Promise.all(windows.map((x) => WindowStorageManager.setState(type, x.name, x, workspaceName)));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Same as `setManyStates`, but sets both `componentState` and `windowData`.
|
|
149
|
+
*/
|
|
150
|
+
static async setManyCompleteStates(windows, workspaceName) {
|
|
151
|
+
return Promise.all(windows.map((x) => WindowStorageManager.setCompleteState(x, workspaceName)));
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Given a window name and an update function, retrieves the state
|
|
155
|
+
* under that name from storage, applies the update function to it, then sets
|
|
156
|
+
* the storage with the result.
|
|
157
|
+
* Omit the workspace name to target the active workspace.
|
|
158
|
+
*
|
|
159
|
+
* @param type Either `componentState` or `windowData`.
|
|
160
|
+
*/
|
|
161
|
+
static async updateState(type, updateFn, windowName, workspaceName) {
|
|
162
|
+
await WindowStorageManager.updateStorage1(Object.assign(Object.assign({}, WindowStorageManager.getTopicAndKey(type, windowName, workspaceName)), { updateFn }));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Removes a window's state (both `componentState` and `windowData`) from storage under the
|
|
166
|
+
* given workspace name. Omit the workspace name to target the active workspace.
|
|
167
|
+
*
|
|
168
|
+
* Logs a warning if unable to fulfill the request (doesn't throw).
|
|
169
|
+
*/
|
|
170
|
+
static async removeCompleteState(windowName, workspaceName) {
|
|
171
|
+
try {
|
|
172
|
+
await remove1(WindowStorageManager.getTopicAndKey("windowData", windowName, workspaceName));
|
|
173
|
+
await remove1(WindowStorageManager.getTopicAndKey("componentState", windowName, workspaceName));
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
Logger.system.warn(error);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Removes multiple states (both `componentState` and `windowData`) belonging to the given workspace from storage.
|
|
181
|
+
* Omit the workspace name to target the active workspace.
|
|
182
|
+
*/
|
|
183
|
+
static async removeManyCompleteStates(windowNames, workspaceName) {
|
|
184
|
+
return Promise.all(windowNames.map((x) => WindowStorageManager.removeCompleteState(x, workspaceName)));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* This static member is necessary for testing purposes
|
|
189
|
+
* only. Ideally, we would just use the StorageClient
|
|
190
|
+
* instance directly; however, this causes inconsistencies
|
|
191
|
+
* with our mocks that failed our testing efforts.
|
|
192
|
+
*/
|
|
193
|
+
WindowStorageManager._SC = StorageClient;
|
|
194
|
+
WindowStorageManager.getWindowID = (win) => camelCase(win.name);
|
|
195
|
+
//# sourceMappingURL=windowStorageManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windowStorageManager.js","sourceRoot":"","sources":["../../../../../src/platform/services/workspace/windowStorageManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { FinsembleWindowData } from "../window/types";
|
|
|
6
6
|
/**
|
|
7
7
|
* Adds a newly launched window to the current active workspace
|
|
8
8
|
*/
|
|
9
|
-
export declare const addWindowReferenceToActiveWorkspace: (params: FinsembleWindowData, cb?: any) => Promise<import("
|
|
9
|
+
export declare const addWindowReferenceToActiveWorkspace: (params: FinsembleWindowData, cb?: any) => Promise<import("../router/types").QueryResponse<any>>;
|
|
10
10
|
/**
|
|
11
11
|
* Removes window from active workspace (but does not close it).
|
|
12
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceAdminAPI.d.ts","sourceRoot":"","sources":["../../../../../src/platform/services/workspace/workspaceAdminAPI.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAItD;;GAEG;AACH,eAAO,MAAM,mCAAmC,WAAkB,mBAAmB,OAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"workspaceAdminAPI.d.ts","sourceRoot":"","sources":["../../../../../src/platform/services/workspace/workspaceAdminAPI.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAItD;;GAEG;AACH,eAAO,MAAM,mCAAmC,WAAkB,mBAAmB,OAAM,GAAG,0DAS7F,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wCAAwC,WAC5C;IACP,MAAM,MAAM,CAAC;CACb,wBAcD,CAAC"}
|
|
@@ -22,6 +22,7 @@ export declare const SmartDesktopDesignerActions: import("unionize").Unionized<{
|
|
|
22
22
|
set_project_error: ProjectError;
|
|
23
23
|
delete_project_error: ProjectError;
|
|
24
24
|
set_reviewing_project_errors: boolean;
|
|
25
|
+
set_fsbl_version: string;
|
|
25
26
|
}, import("unionize").SingleValueVariants<{
|
|
26
27
|
change_view: string;
|
|
27
28
|
update_apps: AppDefinition[];
|
|
@@ -42,6 +43,7 @@ export declare const SmartDesktopDesignerActions: import("unionize").Unionized<{
|
|
|
42
43
|
set_project_error: ProjectError;
|
|
43
44
|
delete_project_error: ProjectError;
|
|
44
45
|
set_reviewing_project_errors: boolean;
|
|
46
|
+
set_fsbl_version: string;
|
|
45
47
|
}, "type", "payload">, "type">;
|
|
46
48
|
export declare type SmartDesktopDesignerActionsTypes = UnionOf<typeof SmartDesktopDesignerActions>;
|
|
47
49
|
//# sourceMappingURL=smartDesktopDesignerActions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartDesktopDesignerActions.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/smartDesktopDesignerActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EACN,sBAAsB,EACtB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"smartDesktopDesignerActions.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/smartDesktopDesignerActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EACN,sBAAsB,EACtB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAwBvC,CAAC;AAEF,oBAAY,gCAAgC,GAAG,OAAO,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -19,5 +19,6 @@ export const SmartDesktopDesignerActions = unionize({
|
|
|
19
19
|
set_project_error: ofType(),
|
|
20
20
|
delete_project_error: ofType(),
|
|
21
21
|
set_reviewing_project_errors: ofType(),
|
|
22
|
+
set_fsbl_version: ofType(),
|
|
22
23
|
}, { tag: "type", value: "payload" });
|
|
23
24
|
//# sourceMappingURL=smartDesktopDesignerActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartDesktopDesignerActions.js","sourceRoot":"","sources":["../../../../src/ui/actions/smartDesktopDesignerActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAYrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAClD;IACC,WAAW,EAAE,MAAM,EAAU;IAC7B,WAAW,EAAE,MAAM,EAAmB;IACtC,OAAO,EAAE,MAAM,EAAiB;IAChC,kBAAkB,EAAE,MAAM,EAAiB;IAC3C,UAAU,EAAE,MAAM,EAAiB;IACnC,UAAU,EAAE,MAAM,EAAU;IAC5B,YAAY,EAAE,MAAM,EAAY;IAChC,eAAe,EAAE,MAAM,EAAc;IACrC,mBAAmB,EAAE,MAAM,EAAsB;IACjD,eAAe,EAAE,MAAM,EAAqB;IAC5C,iBAAiB,EAAE,MAAM,EAAiB;IAC1C,iBAAiB,EAAE,MAAM,EAAW;IACpC,gBAAgB,EAAE,MAAM,EAAmB;IAC3C,sBAAsB,EAAE,MAAM,EAAW;IACzC,oBAAoB,EAAE,MAAM,EAA0B;IACtD,oBAAoB,EAAE,MAAM,EAAU;IACtC,iBAAiB,EAAE,MAAM,EAAgB;IACzC,oBAAoB,EAAE,MAAM,EAAgB;IAC5C,4BAA4B,EAAE,MAAM,EAAW;
|
|
1
|
+
{"version":3,"file":"smartDesktopDesignerActions.js","sourceRoot":"","sources":["../../../../src/ui/actions/smartDesktopDesignerActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAYrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAClD;IACC,WAAW,EAAE,MAAM,EAAU;IAC7B,WAAW,EAAE,MAAM,EAAmB;IACtC,OAAO,EAAE,MAAM,EAAiB;IAChC,kBAAkB,EAAE,MAAM,EAAiB;IAC3C,UAAU,EAAE,MAAM,EAAiB;IACnC,UAAU,EAAE,MAAM,EAAU;IAC5B,YAAY,EAAE,MAAM,EAAY;IAChC,eAAe,EAAE,MAAM,EAAc;IACrC,mBAAmB,EAAE,MAAM,EAAsB;IACjD,eAAe,EAAE,MAAM,EAAqB;IAC5C,iBAAiB,EAAE,MAAM,EAAiB;IAC1C,iBAAiB,EAAE,MAAM,EAAW;IACpC,gBAAgB,EAAE,MAAM,EAAmB;IAC3C,sBAAsB,EAAE,MAAM,EAAW;IACzC,oBAAoB,EAAE,MAAM,EAA0B;IACtD,oBAAoB,EAAE,MAAM,EAAU;IACtC,iBAAiB,EAAE,MAAM,EAAgB;IACzC,oBAAoB,EAAE,MAAM,EAAgB;IAC5C,4BAA4B,EAAE,MAAM,EAAW;IAC/C,gBAAgB,EAAE,MAAM,EAAU;CAClC,EACD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CACjC,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
body {
|
|
2
|
+
overflow-x: hidden;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.download-header {
|
|
6
|
+
display: flex;
|
|
7
|
+
width: 191px;
|
|
8
|
+
height: 31px;
|
|
9
|
+
margin: 20px 156px 10px 0;
|
|
10
|
+
font-family: OpenSans;
|
|
11
|
+
font-size: 21px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.download-title {
|
|
15
|
+
display: inline-block;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.download-settings {
|
|
19
|
+
margin: 0 19.6px 0 105%;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.no-downloads {
|
|
23
|
+
margin: 20px 0 16px 21px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.download-row {
|
|
27
|
+
margin: 10px 16px 15.9px 20px;
|
|
28
|
+
border-bottom: solid 1px #979797;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.download-progress-button-row {
|
|
32
|
+
display: inline-block;
|
|
33
|
+
margin-bottom: 20px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.download-name {
|
|
37
|
+
margin: 0 196px 0 0;
|
|
38
|
+
font-family: OpenSans;
|
|
39
|
+
font-size: 12px;
|
|
40
|
+
font-weight: bold;
|
|
41
|
+
font-stretch: normal;
|
|
42
|
+
font-style: normal;
|
|
43
|
+
line-height: 1.5;
|
|
44
|
+
letter-spacing: normal;
|
|
45
|
+
color: #fff;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.download-url {
|
|
49
|
+
margin: 0 0 16px;
|
|
50
|
+
width: 80%;
|
|
51
|
+
font-family: OpenSans;
|
|
52
|
+
font-size: 12px;
|
|
53
|
+
font-weight: normal;
|
|
54
|
+
font-stretch: normal;
|
|
55
|
+
font-style: normal;
|
|
56
|
+
letter-spacing: normal;
|
|
57
|
+
color: #5b606f;
|
|
58
|
+
text-overflow: ellipsis;
|
|
59
|
+
white-space: nowrap;
|
|
60
|
+
overflow: hidden;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.download-progress {
|
|
64
|
+
width: 98px;
|
|
65
|
+
height: 12px;
|
|
66
|
+
margin: 17px 12px 28px 0;
|
|
67
|
+
font-family: OpenSans;
|
|
68
|
+
font-size: 10px;
|
|
69
|
+
font-weight: normal;
|
|
70
|
+
font-stretch: normal;
|
|
71
|
+
font-style: normal;
|
|
72
|
+
line-height: 1.2;
|
|
73
|
+
letter-spacing: normal;
|
|
74
|
+
color: #fff;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.download-buttons {
|
|
78
|
+
height: 12px;
|
|
79
|
+
margin: 16px 0 20px 3px;
|
|
80
|
+
font-family: OpenSans;
|
|
81
|
+
font-size: 10px;
|
|
82
|
+
font-weight: normal;
|
|
83
|
+
font-stretch: normal;
|
|
84
|
+
font-style: normal;
|
|
85
|
+
line-height: 1.2;
|
|
86
|
+
letter-spacing: normal;
|
|
87
|
+
color: #fff;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.download-remove {
|
|
91
|
+
width: 9.6px;
|
|
92
|
+
height: 9.6px;
|
|
93
|
+
margin: 0 19.6px 0 90%;
|
|
94
|
+
object-fit: contain;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.button-container-icon span.btn-label {
|
|
98
|
+
font-size: 10px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.finsemble-download-pause svg {
|
|
102
|
+
fill: #fdda0d;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.finsemble-download-cancel svg {
|
|
106
|
+
fill: #f26666;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.finsemble-download-resume svg {
|
|
110
|
+
fill: #2cc13f;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.download-settings-button svg .finsemble-download-remove svg {
|
|
114
|
+
fill: #979797;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.finsemble-download-folder svg {
|
|
118
|
+
fill: #42a5ba;
|
|
119
|
+
}
|
|
@@ -141,6 +141,11 @@ img {
|
|
|
141
141
|
overflow: auto;
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
+
.complex-menu-content-row .checkbox-wrapper {
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
}
|
|
148
|
+
|
|
144
149
|
.items-header {
|
|
145
150
|
font-size: 1.4em;
|
|
146
151
|
}
|
|
@@ -404,6 +409,22 @@ img {
|
|
|
404
409
|
color: var(--core-primary-5);
|
|
405
410
|
}
|
|
406
411
|
|
|
412
|
+
.download-header {
|
|
413
|
+
margin: 30px 29px 10px 10px;
|
|
414
|
+
font-family: OpenSans;
|
|
415
|
+
font-size: 21px;
|
|
416
|
+
font-weight: bold;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.download-location-row {
|
|
420
|
+
display: flex;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
.download-location-label {
|
|
424
|
+
display: inline-block;
|
|
425
|
+
padding-right: 10px;
|
|
426
|
+
}
|
|
427
|
+
|
|
407
428
|
.disabled-restart {
|
|
408
429
|
/* stylelint-disable-next-line declaration-no-important */
|
|
409
430
|
color: var(--core-primary-5) !important;
|
|
@@ -448,6 +469,10 @@ option:focus {
|
|
|
448
469
|
text-align: center;
|
|
449
470
|
}
|
|
450
471
|
|
|
472
|
+
.dashbar-items-table tr.dashbar-preferences-item td span.finsembleToggle {
|
|
473
|
+
display: flex;
|
|
474
|
+
}
|
|
475
|
+
|
|
451
476
|
/* Notifications Preferences */
|
|
452
477
|
|
|
453
478
|
.notifications-main-preferences__container {
|
|
@@ -520,6 +545,31 @@ option:focus {
|
|
|
520
545
|
margin-left: auto;
|
|
521
546
|
}
|
|
522
547
|
|
|
548
|
+
.finsemble-dropdown__btn.file-left {
|
|
549
|
+
width: 348px;
|
|
550
|
+
border-radius: 0;
|
|
551
|
+
background-color: #5b606f;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
.finsemble-dropdown__btn.file-left i {
|
|
555
|
+
margin-left: auto;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
.finsemble-dropdown__btn-options.file-options-left {
|
|
559
|
+
margin-right: auto;
|
|
560
|
+
max-width: 400px;
|
|
561
|
+
width: 360px;
|
|
562
|
+
white-space: normal;
|
|
563
|
+
overflow-wrap: break-word;
|
|
564
|
+
text-align: left;
|
|
565
|
+
top: 100%;
|
|
566
|
+
right: auto;
|
|
567
|
+
left: 0;
|
|
568
|
+
background-color: #5b606f;
|
|
569
|
+
border-radius: 0;
|
|
570
|
+
padding: 5px 2px;
|
|
571
|
+
}
|
|
572
|
+
|
|
523
573
|
.heading-larger {
|
|
524
574
|
font-size: var(--font-size-larger);
|
|
525
575
|
color: var(--core-primary-5);
|
|
@@ -132,6 +132,7 @@ html.desktop-active .fsbl-tab-title-text {
|
|
|
132
132
|
color: var(--titleBar-active-font-color);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
/* This class applies to a tab that is ALONE and active. For tabs that have neighbors, see .fsbl-tab */
|
|
135
136
|
.fsbl-header-title {
|
|
136
137
|
position: relative;
|
|
137
138
|
height: 100%;
|
|
@@ -143,7 +144,7 @@ html.desktop-active .fsbl-tab-title-text {
|
|
|
143
144
|
transition: background-color 0.2s ease;
|
|
144
145
|
border-top-left-radius: 10px;
|
|
145
146
|
border-top-right-radius: 10px;
|
|
146
|
-
background-color: var(--titlebar-tab-
|
|
147
|
+
background-color: var(--titlebar-tab-active-background-color);
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
.fsbl-header-title:hover {
|