@openfin/workspace-platform 23.1.4 → 23.1.6

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.
@@ -7,7 +7,7 @@ import type { LaunchAppRequest, SearchSitesRequest, SearchSitesResponse, Site }
7
7
  * @param app the app directory entry.
8
8
  * @param opts launch options.
9
9
  */
10
- export declare function launchApp({ app, target }: LaunchAppRequest): Promise<void | OpenFin.Identity | OpenFin.Platform | OpenFin.Application | OpenFin.View>;
10
+ export declare function launchApp({ app, target }: LaunchAppRequest): Promise<void | OpenFin.Identity | OpenFin.View | OpenFin.Platform | OpenFin.Application>;
11
11
  export declare const enterpriseAppDirectoryChannelClient: () => Promise<OpenFin.ChannelClient>;
12
12
  export declare function getResults(payload: {
13
13
  req: SearchSitesRequest;
@@ -1,19 +1,4 @@
1
- import { GeneratedPalettes, NotificationIndicatorColorsParsed } from '../../../../common/src/api/theming';
2
1
  import { ThemeStorageController } from '../../../../client-api-platform/src/api/controllers/theme-storage-controller';
3
2
  import { CustomThemes } from '../../../../client-api-platform/src/shapes';
4
- /**
5
- * Initialises the storage palettes from the custom themes. This function is called on platform init.
6
- * This function takes both the legacy themes and the new theme system tokens and
7
- * passes them into the theme engine to generate the css variables.
8
- *
9
- * @param customThemes the custom themes to initialise the storage palettes from.
10
- * @param isWindows whether the operating system is Windows.
11
- * @returns the generated palettes fromt the theme engine, theme palette sheet which is injected into the DOM, and legacy theme object if it exists.
12
- */
13
- export declare const initialiseStoragePalettes: (customThemes: CustomThemes | undefined, isWindows: boolean) => {
14
- generatedPalettes: GeneratedPalettes;
15
- themePaletteSheet: string;
16
- legacyTheme: CustomThemes | null;
17
- notificationIndicatorColors: NotificationIndicatorColorsParsed | null;
18
- };
3
+ export declare const initialiseStoragePalettes: (customThemes: CustomThemes | undefined, isWindows: boolean) => CustomThemes;
19
4
  export declare const getThemeStorageController: () => ThemeStorageController;
@@ -1,5 +1,3 @@
1
- import { GeneratedPalettes } from '../../../../common/src/api/theming';
2
- import { StorageProxy } from '../../../../client-api-platform/src/api/utils';
3
1
  import { ColorSchemeOptionType, CustomPaletteSet } from '../../../../client-api-platform/src/shapes';
4
2
  /**
5
3
  * Palette extensions can be used to add new variables to the palette set.
@@ -7,34 +5,48 @@ import { ColorSchemeOptionType, CustomPaletteSet } from '../../../../client-api-
7
5
  * This is particularly useful if a value uses a different palette constant depending on scheme.
8
6
  */
9
7
  export declare const getPaletteExtensions: (palette: CustomPaletteSet, paletteScheme: "light" | "dark", isWindows: boolean) => {
8
+ dockExpandedContainerBorderColor: string;
10
9
  dockExpandedContainerBorderRadius: string;
10
+ dockExpandedContainerBackground: string;
11
11
  fillerBackgroundColor: string;
12
+ dockCompanionContainerBackground: string;
13
+ dockComponentContainerBackground: string;
14
+ styledDropdownActiveBackground: string;
15
+ contentMenuWrapperInternalDivBorderColor: string;
16
+ contentMenuItemContainerActiveBackground: string;
17
+ contentMenuItemContainerHoverBackground: string;
18
+ contentMenuHeaderBorderColor: string;
19
+ dockCompanionSeparatorBorderColor: string;
20
+ dockComponentContainerBorderColor: string;
21
+ companionDockButtonActiveBackground: string;
22
+ companionDockButtonHoverBackground: string;
12
23
  'computed-scrollbar-thumb-alpha': number;
13
24
  'computed-scrollbar-track-alpha': number;
14
25
  'scrollbar-thumb-rgb': string;
15
26
  'scrollbar-track-rgb': string;
16
27
  selectedTab: string;
17
28
  };
18
- export type LegacyPalettes = {
29
+ export type Palettes = {
19
30
  dark: CustomPaletteSet;
20
31
  light: CustomPaletteSet;
21
32
  };
22
- export type Palettes = {
23
- light: string;
24
- dark: string;
25
- };
26
33
  export declare class ThemeStorageController {
27
34
  private providerStorage;
28
35
  private darkPaletteVars?;
29
36
  private lightPaletteVars?;
30
- private themePaletteSheet?;
31
- private generatedPalettes?;
32
37
  private workspaceStorage?;
33
38
  constructor(providerStorage: Pick<Storage, 'getItem' | 'setItem'>);
39
+ private getVarsByScheme;
34
40
  /**
35
41
  * Set the current Storage Proxy to enable Workspace Storage properties to be populated.
42
+ *
43
+ * Currently, we only support same Storage Based theming for same origin scenarios like EB, where the provider
44
+ * is in the same origin as the workspace pages.
45
+ *
46
+ * A workaround that can be leveraged in cross origin scenarios (which is the majority of the workspace use case) is available in this commit: 233e843cda6cd68968fd5831fb20597e0d5bb7cc
47
+ * `git revert 233e843cda6cd68968fd5831fb20597e0d5bb7cc --no-commit`
36
48
  */
37
- setWorkspaceStorageProxy: (proxy: StorageProxy) => void;
49
+ setWorkspaceStorage: (proxy: Pick<Storage, "setItem">) => void;
38
50
  /**
39
51
  * Check if there's an explicit user preference stored in localStorage.
40
52
  * A user preference is indicated by the presence of a SelectedColorScheme key. Which is something assigned if you click on the Appearance dropdown.
@@ -52,11 +64,7 @@ export declare class ThemeStorageController {
52
64
  * to allow workspace UI elements to load the palette before their first paint.
53
65
  * @param palettes Light and Dark Palette constants
54
66
  */
55
- setLegacyPalettes: ({ light, dark }: LegacyPalettes, isWindows: boolean) => Promise<void>;
56
- setPalettes: ({ light, dark }: {
57
- light: string;
58
- dark: string;
59
- }) => Promise<void>;
67
+ setPalettes: ({ light, dark }: Palettes, isWindows: boolean) => Promise<void>;
60
68
  /**
61
69
  * Set the current scheme of workspace. Specifically setting light or dark
62
70
  * will ignore the OS scheme, whereas 'system' will always respect it.
@@ -70,15 +78,9 @@ export declare class ThemeStorageController {
70
78
  * @param scheme The default scheme specified in the palette
71
79
  */
72
80
  setThemeDefaultScheme(scheme: ColorSchemeOptionType): void;
73
- setGeneratedPalettes(generatedPalettes: GeneratedPalettes): void;
74
81
  /**
75
82
  * Returns the current scheme
76
83
  * @returns 'light' | 'system' | 'dark'
77
84
  */
78
85
  getScheme(): ColorSchemeOptionType;
79
- getThemePaletteSheet(): string | undefined;
80
- getThemePalette(): {
81
- light: string;
82
- dark: string;
83
- };
84
86
  }
@@ -1,16 +1,5 @@
1
1
  import type OpenFin from '@openfin/core';
2
- import type { CustomTheme, GenerateThemeParams } from '../../../common/src/api/theming';
3
2
  import { ColorSchemeOptionType, ThemeApi } from '../../../client-api-platform/src/shapes';
4
3
  export declare const getThemingApi: (identity: OpenFin.ApplicationIdentity) => ThemeApi;
5
- export declare const dispatchThemeToWorkspaceProvider: (themeData: {
6
- themePaletteSheet: string;
7
- selectedScheme: ColorSchemeOptionType;
8
- themePalette: {
9
- light: string;
10
- dark: string;
11
- };
12
- }) => Promise<void>;
13
4
  export declare const setSelectedScheme: (schemeType: ColorSchemeOptionType) => Promise<void>;
14
5
  export declare const getSelectedScheme: () => ColorSchemeOptionType | null | undefined;
15
- export declare const getThemePaletteSheet: () => string | undefined;
16
- export declare const mapLegacyThemeToCustomTheme: (legacyTheme: CustomTheme) => GenerateThemeParams;
@@ -1,6 +1 @@
1
1
  export declare const listenForStoreClose: () => void;
2
- export type StorageProxy = {
3
- setItem: (data: string, value: string) => Promise<void>;
4
- destroy: () => Promise<void>;
5
- };
6
- export declare const createStorageProxy: (url: string) => Promise<StorageProxy>;
@@ -1,9 +1,5 @@
1
- import { GeneratedPalettes, NotificationIndicatorColorsParsed } from '../../../common/src/api/theming';
2
1
  import { CustomThemes } from '../shapes';
3
- export declare const getThemes: () => CustomThemes | null;
4
- export declare const getGeneratedPalettes: () => GeneratedPalettes;
5
- export declare const getThemePaletteSheet: () => string;
6
- export declare const getNotificationIndicatorColorsInternal: () => NotificationIndicatorColorsParsed;
2
+ export declare const getThemes: () => CustomThemes;
7
3
  /**
8
4
  * initTheming()
9
5
  * @param customThemes array of theme objects
@@ -4,7 +4,7 @@ import type { AnalyticsEvent } from '../../common/src/utils/usage-register';
4
4
  import type { CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
5
5
  import type { AddDefaultPagePayload, AttachedPage, BookmarkNode, CopyPagePayload, HandlePagesAndWindowClosePayload, HandlePagesAndWindowCloseResult, HandleSaveModalOnPageClosePayload, Page, PageLayoutsWithSelectedViews, PageWithUpdatableRuntimeAttribs, SaveModalOnPageCloseResult, SetActivePageForWindowPayload, ShouldPageClosePayload, ShouldPageCloseResult, ViewsPreventingUnloadPayload } from '../../common/src/api/pages/shapes';
6
6
  import type { NotificationsCustomManifestOptions } from '../../common/src/api/shapes/notifications';
7
- import type { CustomThemes, GeneratedPalettes } from '../../common/src/api/theming';
7
+ import type { CustomThemes } from '../../common/src/api/theming';
8
8
  import type { App, DockProviderConfigWithIdentity, StoreButtonConfig } from '../../client-api/src/shapes';
9
9
  import type { WorkflowIntegration } from '../../client-api/src/shapes/integrations';
10
10
  export * from '../../dock3/src/shapes';
@@ -1478,27 +1478,12 @@ export interface LaunchAppRequest {
1478
1478
  target?: OpenFin.EntityInfo;
1479
1479
  app: App;
1480
1480
  }
1481
+ /**
1482
+ * Get Themes from API
1483
+ */
1481
1484
  export interface ThemeApi {
1482
- /**
1483
- * @deprecated This method is deprecated. It is recommended to use {@link getGeneratedPalettes} instead.
1484
- * Get the legacy themes from the platform provider.
1485
- * @returns the legacy themes or null if the platform provider is using the new theme system.
1486
- */
1487
- getThemes(): Promise<CustomThemes | null>;
1488
- /**
1489
- * Get the generated palettes from the platform provider.
1490
- * @returns the generated palettes.
1491
- */
1492
- getGeneratedPalettes(): Promise<GeneratedPalettes>;
1493
- /**
1494
- * Set the selected scheme for the platform provider.
1495
- * @param newScheme the new scheme to set.
1496
- */
1485
+ getThemes(): Promise<CustomThemes>;
1497
1486
  setSelectedScheme(newScheme: ColorSchemeOptionType): Promise<void>;
1498
- /**
1499
- * Get the selected scheme from the platform provider.
1500
- * @returns the selected scheme.
1501
- */
1502
1487
  getSelectedScheme(): Promise<ColorSchemeOptionType>;
1503
1488
  }
1504
1489
  /**
@@ -85,14 +85,6 @@ type WorkspaceChannelTypes = {
85
85
  'set-search-query': (payload: SearchQueryWithProviderID) => Promise<void>;
86
86
  'assign-home-search-context': (payload: Partial<HomeSearchListenerRequest['context']>) => Promise<void>;
87
87
  'set-selected-scheme': (ctx: ColorSchemeOptionType) => Promise<void>;
88
- 'initialize-theme': (themeData: {
89
- themePaletteSheet: string;
90
- selectedScheme: ColorSchemeOptionType;
91
- themePalette: {
92
- light: string;
93
- dark: string;
94
- };
95
- }) => Promise<void>;
96
88
  'get-legacy-pages': () => Promise<Page[]>;
97
89
  'get-legacy-workspaces': (payload: undefined) => Promise<LegacyWorkspace[]>;
98
90
  'register-storefront-provider': () => Promise<void>;
@@ -35,8 +35,6 @@ export declare enum WorkspacePlatformChannelAction {
35
35
  GetLastFocusedBrowserWindow = "getLastFocusedBrowserWindow",
36
36
  GetPageByViewIdentity = "getPageByViewIdentity",
37
37
  GetThemes = "getThemes",
38
- GetGeneratedPalettes = "getGeneratedPalettes",
39
- GetThemePaletteSheet = "getThemePaletteSheet",
40
38
  GetSelectedScheme = "getSelectedScheme",
41
39
  SetSelectedScheme = "setSelectedScheme",
42
40
  OpenGlobalContextMenuInternal = "openGlobalContextMenuInternal",
@@ -95,8 +93,7 @@ export declare enum WorkspacePlatformChannelAction {
95
93
  AddDockFavoriteInternal = "addDockFavoriteInternal",// Enterprise
96
94
  FocusAndExpandSearchInternal = "focusAndExpandSearchInternal",// Enterprise
97
95
  SendUpdateVersionModalResponseInternal = "sendUpdateVersionModalResponseInternal",// Enterprise
98
- ShowUpdateVersionModalInternal = "showUpdateVersionModalInternal",// Enterprise
99
- GetNotificationIndicatorColorsInternal = "getNotificationIndicatorColorsInternal"
96
+ ShowUpdateVersionModalInternal = "showUpdateVersionModalInternal"
100
97
  }
101
98
  export type PlatFormSupportedFeatures = boolean | {
102
99
  isWorkspacePlatform: boolean;
@@ -19,8 +19,8 @@ export declare const launchProvider: () => Promise<void>;
19
19
  */
20
20
  export declare const getChannelClientAndLaunchProvider: () => Promise<WorkspaceComponentChannelClient>;
21
21
  /**
22
- * Gets the theme data from the Platform provider, then launches the Workspace provider if it is not running, and then dispatches the theme data to the Workspace provider.
22
+ * Launches the Workspace provider if it is not running.
23
23
  * Then gets a Channel Client that is connected to the Workspace Provider.
24
24
  * @returns the Channel Client that is connected to the Workspace Provider.
25
25
  */
26
- export declare const getChannelClientAndInitializeWorkspaceProvider: () => Promise<WorkspaceAPIClientChannelClient>;
26
+ export declare const getClientAPIChannelClientAndLaunchProvider: () => Promise<WorkspaceAPIClientChannelClient>;
@@ -1,13 +1,8 @@
1
1
  import type { DefaultTheme } from 'styled-components';
2
2
  import type OpenFin from '@openfin/core';
3
3
  import type { ColorSchemeType, ThemeSet } from '@openfin/ui-library';
4
+ import { Palette } from '@openfin/ui-library/dist/theme';
4
5
  import { ColorSchemeOptionType } from '../../../client-api-platform/src/shapes';
5
- import type { generateTheme } from '@openfin/theme-engine';
6
- export declare const ColorScheme: {
7
- light: string;
8
- dark: string;
9
- system: string;
10
- };
11
6
  export type WorkspaceComponentSetSelectedSchemePayload = {
12
7
  newScheme: ColorSchemeOptionType;
13
8
  identity: OpenFin.Identity;
@@ -40,13 +35,6 @@ export interface NotificationIndicatorColorsSetLightScheme {
40
35
  dark?: NotificationIndicatorColorsSet;
41
36
  light: NotificationIndicatorColorsSet;
42
37
  }
43
- export type NotificationIndicatorColors = Record<string, Omit<NotificationIndicatorColorsSet, 'foreground'> & {
44
- foreground: string;
45
- }>;
46
- export type NotificationIndicatorColorsParsed = {
47
- dark: NotificationIndicatorColors;
48
- light: NotificationIndicatorColors;
49
- };
50
38
  export type NotificationIndicatorColorsWithScheme = Record<string, NotificationIndicatorColorsSetDarkScheme | NotificationIndicatorColorsSetLightScheme>;
51
39
  export interface BaseThemeOptions {
52
40
  label: string;
@@ -77,7 +65,7 @@ export type CustomThemeOptions = BaseThemeOptions & {
77
65
  * };
78
66
  * ```
79
67
  */
80
- notificationIndicatorColors?: NotificationIndicatorColors;
68
+ notificationIndicatorColors?: Record<string, NotificationIndicatorColorsSet>;
81
69
  };
82
70
  export type CustomThemeOptionsWithScheme = BaseThemeOptions & {
83
71
  /**
@@ -133,22 +121,10 @@ export type CustomThemeOptionsWithScheme = BaseThemeOptions & {
133
121
  */
134
122
  notificationIndicatorColors?: NotificationIndicatorColorsWithScheme;
135
123
  };
136
- export type ThemeOptions = BaseThemeOptions & {
137
- seed: Parameters<typeof generateTheme>[0];
138
- overrides?: Parameters<typeof generateTheme>[1];
139
- } & {
140
- notificationIndicatorColors?: NotificationIndicatorColorsWithScheme | NotificationIndicatorColors;
141
- };
142
- type GenerateThemeReturn = ReturnType<typeof generateTheme>;
143
- export type GeneratedPalettes = Pick<GenerateThemeReturn, 'dark' | 'light'>;
144
- export type LegacyPalettes = CustomThemeOptions | CustomThemeOptionsWithScheme;
145
- export type GenerateThemeParams = Parameters<typeof generateTheme>;
146
- export type CustomTheme = CustomThemeOptions | CustomThemeOptionsWithScheme | ThemeOptions;
147
- export type CustomThemes = CustomTheme[];
124
+ export type CustomThemes = (CustomThemeOptions | CustomThemeOptionsWithScheme)[];
148
125
  export interface PreloadedThemeData {
149
- themes: CustomThemes | GeneratedPalettes;
126
+ themes: CustomThemes;
150
127
  selectedScheme: ColorSchemeOptionType;
151
- themePaletteSheet?: string;
152
128
  }
153
129
  export interface DefaultPaletteSet {
154
130
  brandPrimary: string;
@@ -289,13 +265,16 @@ export declare const OpenFinDarkTheme: {
289
265
  borderNeutral: "#C0C1C2";
290
266
  };
291
267
  export declare const DefaultOpenFinTheme: CustomThemes;
292
- export declare const parseNotificationIndicatorColors: (customTheme: CustomTheme) => NotificationIndicatorColorsParsed;
293
- export declare const getComputedPlatformTheme: (platformIdentity: OpenFin.Identity) => Promise<{
294
- theme: CustomThemes | GeneratedPalettes;
295
- defaultScheme: ColorSchemeOptionType;
296
- }>;
268
+ export declare const getComputedPaletteSets: (customTheme: CustomThemeOptions | CustomThemeOptionsWithScheme) => WorkspaceThemeSet;
269
+ /**
270
+ * Transforms input {@link CustomThemes} to {@link ComputedThemes} used by Workspace Platform / Notifications Platform.
271
+ *
272
+ * @param customThemes array of themes to transform
273
+ * @param storedScheme sets the default scheme if provided
274
+ * @returns array of {@link ComputedThemes | computed themes}
275
+ */
276
+ export declare const computeThemes: (customThemes: CustomThemes, storedScheme?: ColorSchemeOptionType) => ComputedThemes;
277
+ export declare const getComputedPlatformTheme: (platformIdentity: OpenFin.Identity) => Promise<ComputedTheme>;
297
278
  export declare const setSelectedScheme: (ctx: ColorSchemeOptionType) => Promise<void>;
298
279
  export declare const getComputedScheme: (identity?: OpenFin.Identity) => Promise<Exclude<ColorSchemeType, "system">>;
299
- export declare const getComputedBackgroundColor: (platformIdentity: OpenFin.Identity) => Promise<string>;
300
- export declare const constructThemePaletteSheet: (themes: GeneratedPalettes) => string;
301
- export {};
280
+ export declare const getComputedBackgroundColor: (paletteKey: keyof typeof Palette, defaultColor?: string) => Promise<string>;
@@ -0,0 +1,8 @@
1
+ export declare const defaultBrandIcons: {
2
+ light: {
3
+ symbol: string;
4
+ };
5
+ dark: {
6
+ symbol: string;
7
+ };
8
+ };
@@ -1,6 +1,6 @@
1
1
  import type OpenFin from '@openfin/core';
2
2
  import { EnterpriseMainContextMenuItemData, EnterpriseMainContextMenuItemTemplate, OpenGlobalContextMenuPayload } from '../../../client-api-platform/src/shapes';
3
- export declare const getEnterpriseContextMenuTemplate: ({ identity }: {
3
+ export declare const getEnterpriseContextMenuTemplate: ({ identity, selectedViews }: {
4
4
  identity: OpenFin.Identity;
5
5
  selectedViews: OpenFin.Identity[];
6
6
  }) => Promise<EnterpriseMainContextMenuItemTemplate[]>;
@@ -1,5 +1,4 @@
1
- import LocalStorageKey from './local-storage-key';
2
- export declare const setItem: (key: LocalStorageKey, value: string) => void;
3
- export declare const getItem: (key: LocalStorageKey) => string;
4
- export declare const removeItem: (key: LocalStorageKey) => void;
5
1
  export declare const createNamespacedLocalStorage: <TKey extends string>(namespace: string) => Pick<Storage, "setItem" | "getItem" | "removeItem">;
2
+ export declare const setItem: (key: string, value: string) => void;
3
+ export declare const getItem: (key: string) => string | null;
4
+ export declare const removeItem: (key: string) => void;
@@ -29,7 +29,6 @@ declare enum BrowserRoute {
29
29
  EnterpriseContextMenu = "/context-menu/",
30
30
  EnterpriseBookmarkDialog = "/bookmark-dialog/",
31
31
  EnterpriseAboutPage = "/popup-menu/about/",
32
- StorageProxy = "/storage-proxy",
33
32
  DropdownMenu = "/dropdown-menu/",
34
33
  EnterpriseDock = "/dock/",
35
34
  ZoomControlsDialog = "/zoom-controls-dialog/",
@@ -52,7 +51,6 @@ declare const PageRoute: {
52
51
  EnterpriseContextMenu: BrowserRoute.EnterpriseContextMenu;
53
52
  EnterpriseBookmarkDialog: BrowserRoute.EnterpriseBookmarkDialog;
54
53
  EnterpriseAboutPage: BrowserRoute.EnterpriseAboutPage;
55
- StorageProxy: BrowserRoute.StorageProxy;
56
54
  DropdownMenu: BrowserRoute.DropdownMenu;
57
55
  EnterpriseDock: BrowserRoute.EnterpriseDock;
58
56
  ZoomControlsDialog: BrowserRoute.ZoomControlsDialog;
@@ -38,18 +38,18 @@
38
38
  }
39
39
  ],
40
40
  "dexie": [
41
- {
42
- "type": "explicit",
43
- "version": "^4.0.11",
44
- "packageName": "client-api-platform/package.json",
45
- "issuer": "client-api-platform/src/api/dock/idb.ts"
46
- },
47
41
  {
48
42
  "type": "root-implicit",
49
43
  "version": "^4.0.11",
50
44
  "packageName": "dock3/package.json",
51
45
  "issuer": "dock3/src/api/idb.ts"
52
46
  },
47
+ {
48
+ "type": "explicit",
49
+ "version": "^4.0.11",
50
+ "packageName": "client-api-platform/package.json",
51
+ "issuer": "client-api-platform/src/api/dock/idb.ts"
52
+ },
53
53
  {
54
54
  "type": "root-implicit",
55
55
  "version": "^4.0.11",