@openfin/workspace 24.1.0-alpha.ad7de216 → 24.1.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.
@@ -1 +1,2 @@
1
1
  import '@common/test/fin-mocks';
2
+ import '@common/test/logger-mock';
@@ -1,10 +1,36 @@
1
1
  import { ProviderType } from '../../../common/src/api/provider';
2
+ /**
3
+ * Error thrown when attempting to use a provider that is not registered.
4
+ * @example
5
+ * ```typescript
6
+ * throw new ProviderNotRegisteredError('dock', 'my-dock-id');
7
+ * // Error: Dock Provider. Dock Provider with id my-dock-id is not currently registered.
8
+ * ```
9
+ */
2
10
  export declare class ProviderNotRegisteredError extends Error {
3
11
  constructor(providerType: ProviderType, id?: string);
4
12
  }
13
+ /**
14
+ * Error thrown when attempting to register a provider that is already registered.
15
+ * Call `deregister` before registering again.
16
+ * @example
17
+ * ```typescript
18
+ * throw new ProviderAlreadyRegisteredError('home', 'my-home-id');
19
+ * // Error: Home Provider. Home Provider with id my-home-id is already registered.
20
+ * ```
21
+ */
5
22
  export declare class ProviderAlreadyRegisteredError extends Error {
6
23
  constructor(providerType: ProviderType, id?: string);
7
24
  }
25
+ /**
26
+ * Error thrown when failing to retrieve a provider by ID.
27
+ * Typically thrown by `getProviderOrFail` when the requested provider does not exist.
28
+ * @example
29
+ * ```typescript
30
+ * throw new FailedToGetProviderError('storefront', 'unknown-id');
31
+ * // Error: Failed to get Storefront Provider. Storefront Provider with id unknown-id is not currently registered.
32
+ * ```
33
+ */
8
34
  export declare class FailedToGetProviderError extends Error {
9
35
  constructor(providerType: ProviderType, id?: string);
10
36
  }
@@ -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.View | OpenFin.Identity | OpenFin.Platform | OpenFin.Application>;
10
+ export declare function launchApp({ app, target }: LaunchAppRequest): Promise<void | OpenFin.Identity | OpenFin.Platform | OpenFin.View | OpenFin.Application>;
11
11
  export declare const enterpriseAppDirectoryChannelClient: () => Promise<OpenFin.ChannelClient>;
12
12
  export declare function getResults(payload: {
13
13
  req: SearchSitesRequest;
@@ -31,7 +31,8 @@ export declare class ThemeStorageController {
31
31
  private generatedPalettes?;
32
32
  private workspaceStorage?;
33
33
  private recreateFactory?;
34
- constructor(providerStorage: Pick<Storage, 'getItem' | 'setItem'>);
34
+ private isLegacySinglePaletteTheme;
35
+ constructor(providerStorage: Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>);
35
36
  /**
36
37
  * Set the current Storage Proxy to enable Workspace Storage properties to be populated.
37
38
  */
@@ -63,6 +64,8 @@ export declare class ThemeStorageController {
63
64
  /**
64
65
  * Synchronize the current palette and scheme with workspace's storage instance if
65
66
  * storage based theming is enabled. Only syncs when user has explicitly selected a scheme.
67
+ *
68
+ * Wrapped in try/catch so it does not throw
66
69
  */
67
70
  trySynchronizeWorkspaceStorage: () => Promise<void>;
68
71
  /**
@@ -84,6 +87,13 @@ export declare class ThemeStorageController {
84
87
  * @param scheme 'light', 'dark' or 'system'.
85
88
  */
86
89
  setScheme(scheme: ColorSchemeOptionType): void;
90
+ /**
91
+ * Clears an explicit user scheme choice (e.g. from Appearance) so resolution falls back to theme default.
92
+ */
93
+ clearUserSelectedSchemePreference(): void;
94
+ setLegacySinglePaletteTheme(value: boolean): void;
95
+ /** @internal */
96
+ getIsLegacySinglePaletteTheme(): boolean;
87
97
  /**
88
98
  * Set the theme's default scheme from palette configuration
89
99
  * @param scheme The default scheme specified in the palette
@@ -26,10 +26,15 @@ export declare const getActivePageIdForWindow: (identity: OpenFin.Identity) => P
26
26
  *
27
27
  * If the name is not unique, it will append a number to the end of the name.
28
28
  *
29
+ * When `BrowserInitConfig.allowDuplicatePageTitles` is `true`, this function
30
+ * short-circuits and returns the supplied name (or the default title) as-is,
31
+ * without appending a numeric suffix.
32
+ *
29
33
  * @param initialName The initial name to test
30
- * @returns string: a unique page name
34
+ * @param allowDuplicatePageTitles Whether duplicate page titles are permitted
35
+ * @returns string: a unique page name (or the input unchanged when duplicates are allowed)
31
36
  */
32
- export declare function getUniquePageTitle(initialName?: string): Promise<string>;
37
+ export declare function getUniquePageTitle(initialName?: string, allowDuplicatePageTitles?: boolean): Promise<string>;
33
38
  export declare function handleSaveModalOnPageClose({ page }: HandleSaveModalOnPageClosePayload): Promise<SaveModalOnPageCloseResult>;
34
39
  /**
35
40
  * Default implementation of shouldPageClose. If enableBeforeUnload isn't set to true, always returns True (proceed with close).
@@ -12,6 +12,8 @@ export declare const dispatchThemeToWorkspaceProvider: (themeData: {
12
12
  }) => Promise<void>;
13
13
  export declare const setSelectedScheme: (schemeType: ColorSchemeOptionType) => Promise<void>;
14
14
  export declare const getSelectedScheme: () => ColorSchemeOptionType | null | undefined;
15
+ /** @internal */
16
+ export declare const getIsLegacySinglePaletteTheme: () => boolean;
15
17
  export declare const getThemePaletteSheet: () => string | undefined;
16
18
  export declare const mapLegacyThemeToCustomTheme: (legacyTheme: CustomTheme) => GenerateThemeParams;
17
19
  export declare const mapLegacyBrandIcons: (legacyBrand: BaseThemeOptions["brand"]) => GenerateThemeParams[1];
@@ -3,7 +3,7 @@ export type StorageProxy = {
3
3
  setItem: (data: string, value: string) => Promise<void>;
4
4
  destroy: () => Promise<void>;
5
5
  };
6
- export declare const createStorageProxy: (url: string) => Promise<StorageProxy>;
6
+ export declare const createStorageProxy: (url: string, isEnterprise: boolean) => Promise<StorageProxy>;
7
7
  /**
8
8
  * Ensure the workspace storage proxy window exists. Recreates it if it was previously destroyed
9
9
  * (e.g. when the last browser window closed with preventQuitOnLastWindowClosed true and a new
@@ -4,4 +4,4 @@ import { BrowserInitConfig } from '../../../../client-api-platform/src/shapes';
4
4
  /**
5
5
  * Applies default options to the creation of browser windows.
6
6
  */
7
- export declare function applyBrowserDefaults(options: OpenFin.PlatformWindowCreationOptions, initOptions: Pick<BrowserInitConfig, 'defaultWindowOptions' | 'defaultPageOptions' | 'defaultViewOptions' | 'browserIconSize'> | undefined, themeData?: PreloadedThemeData): Promise<OpenFin.PlatformWindowCreationOptions>;
7
+ export declare function applyBrowserDefaults(options: OpenFin.PlatformWindowCreationOptions, initOptions: Pick<BrowserInitConfig, 'defaultWindowOptions' | 'defaultPageOptions' | 'defaultViewOptions' | 'browserIconSize' | 'allowDuplicatePageTitles'> | undefined, themeData?: PreloadedThemeData): Promise<OpenFin.PlatformWindowCreationOptions>;
@@ -1,4 +1,4 @@
1
1
  import OpenFin from '@openfin/core';
2
2
  import type { AttachedPage, AttachedPageInternal } from '../../../../common/src/api/pages/shapes';
3
3
  import { BrowserInitConfig } from '../..';
4
- export declare const applyPageDefaults: (pages: AttachedPage[], initOptions?: Pick<BrowserInitConfig, "defaultPageOptions" | "defaultViewOptions" | "defaultWindowOptions">, overrideOptions?: OpenFin.PlatformWindowCreationOptions) => Promise<AttachedPageInternal[]>;
4
+ export declare const applyPageDefaults: (pages: AttachedPage[], initOptions?: Pick<BrowserInitConfig, "defaultPageOptions" | "defaultViewOptions" | "defaultWindowOptions" | "allowDuplicatePageTitles">, overrideOptions?: OpenFin.PlatformWindowCreationOptions) => Promise<AttachedPageInternal[]>;
@@ -1863,6 +1863,11 @@ export interface ThemeApi {
1863
1863
  * @returns the selected scheme.
1864
1864
  */
1865
1865
  getSelectedScheme(): Promise<ColorSchemeOptionType>;
1866
+ /**
1867
+ * @internal
1868
+ * Whether the active platform theme is a legacy theme defined with a single shared palette (light and dark are not independently specified).
1869
+ */
1870
+ getIsLegacySinglePaletteTheme(): Promise<boolean>;
1866
1871
  /**
1867
1872
  * @internal
1868
1873
  * Get the notification indicator colors from the platform provider.
@@ -2304,6 +2309,11 @@ export interface WorkspacePlatformProvider extends OpenFin.PlatformProvider {
2304
2309
  * @param schemeType {@link ColorSchemeOptionType scheme} to be set
2305
2310
  */
2306
2311
  setSelectedScheme(schemeType: ColorSchemeOptionType): Promise<void>;
2312
+ /**
2313
+ * @internal
2314
+ * Whether the active platform theme is a legacy single-palette theme (Appearance scheme switching is not supported).
2315
+ */
2316
+ getIsLegacySinglePaletteTheme(): boolean;
2307
2317
  /**
2308
2318
  * Implementation for handling Workspace analytics events
2309
2319
  * @param req the payload received by the provider
@@ -3001,6 +3011,15 @@ export interface BrowserInitConfig {
3001
3011
  * @internal
3002
3012
  */
3003
3013
  aiPanelOptions?: AiPanelOptions;
3014
+ /**
3015
+ * When true, allows multiple pages to share the same title across browser
3016
+ * windows. No numeric suffixes are appended and attach/add operations
3017
+ * will not reject on title collision. `pageId` remains the unique
3018
+ * identifier for all page operations.
3019
+ *
3020
+ * Defaults to `false` (current unique-title behavior preserved).
3021
+ */
3022
+ allowDuplicatePageTitles?: boolean;
3004
3023
  }
3005
3024
  interface WorkspaceMetadata {
3006
3025
  APIVersion: string;
@@ -61,11 +61,6 @@ export declare const updatePageForWindow: (payload: ExtendedUpdatePageForWindowP
61
61
  * @param identity the identity of the window to save the pages of in window options.
62
62
  */
63
63
  export declare const updatePagesWindowOptions: (identity: OpenFin.Identity) => Promise<void>;
64
- /**
65
- * Check if the window identity is currently detaching pages.
66
- * @param identity the OF window identity to check.
67
- */
68
- export declare const isDetachingPages: (identity: OpenFin.Identity) => Promise<boolean>;
69
64
  /**
70
65
  * Check if the window identity is in the middle of changing active pages.
71
66
  * @param identity the OF window identity to check.
@@ -34,6 +34,8 @@ export interface Page {
34
34
  contextGroup?: string;
35
35
  /** Optional property to attach custom metadata to the page object, such as version or timestamp. Must be serializable. */
36
36
  customData?: any;
37
+ /** True when this page is an admin-published supertab. */
38
+ isPublished?: boolean;
37
39
  }
38
40
  type AttachedPageMetadata = {
39
41
  /** The window the page is currently attached to. */
@@ -52,7 +52,6 @@ export declare enum PageChannelAction {
52
52
  ReorderPagesForWindow = "reorder-pages-for-window",
53
53
  UpdatePageForWindow = "update-page-for-window",
54
54
  UpdatePagesWindowOptions = "update-pages-window-options",
55
- IsDetachingPages = "is-detaching-pages",
56
55
  IsActivePageChanging = "is-active-page-changing"
57
56
  }
58
57
  /**
@@ -103,7 +102,6 @@ export declare const BrowserChannelAction: {
103
102
  ReorderPagesForWindow: PageChannelAction.ReorderPagesForWindow;
104
103
  UpdatePageForWindow: PageChannelAction.UpdatePageForWindow;
105
104
  UpdatePagesWindowOptions: PageChannelAction.UpdatePagesWindowOptions;
106
- IsDetachingPages: PageChannelAction.IsDetachingPages;
107
105
  IsActivePageChanging: PageChannelAction.IsActivePageChanging;
108
106
  CloseBrowserWindow: GeneralBrowserChannelActions.CloseBrowserWindow;
109
107
  QuitPlatform: GeneralBrowserChannelActions.QuitPlatform;
@@ -97,7 +97,9 @@ export declare enum WorkspacePlatformChannelAction {
97
97
  SendUpdateVersionModalResponseInternal = "sendUpdateVersionModalResponseInternal",// Enterprise
98
98
  ShowUpdateVersionModalInternal = "showUpdateVersionModalInternal",// Enterprise
99
99
  ShowApplyAndPublishModalInternal = "showApplyAndPublishModalInternal",// Enterprise
100
- GetNotificationIndicatorColorsInternal = "getNotificationIndicatorColorsInternal"
100
+ GetNotificationIndicatorColorsInternal = "getNotificationIndicatorColorsInternal",// Custom Notification Indicators Colors
101
+ /** @internal */
102
+ GetIsLegacySinglePaletteTheme = "getIsLegacySinglePaletteTheme"
101
103
  }
102
104
  export type PlatFormSupportedFeatures = boolean | {
103
105
  isWorkspacePlatform: boolean;
@@ -0,0 +1,5 @@
1
+ export declare const mockLogger: {
2
+ debug: jest.Mock<any, any, any>;
3
+ warn: jest.Mock<any, any, any>;
4
+ error: jest.Mock<any, any, any>;
5
+ };
@@ -11,7 +11,7 @@ export declare const isDocumentDefined: boolean;
11
11
  export declare const isWindowDefinedWithIndexDB: boolean;
12
12
  export declare const finUUID: string;
13
13
  export declare const finName: string;
14
- export declare const finEntityType: "" | "window" | "view";
14
+ export declare const finEntityType: "" | "view" | "window";
15
15
  export declare const isEnvLocal: boolean;
16
16
  export declare const isEnvDev: boolean;
17
17
  export declare const isEnvStaging: boolean;
@@ -24,6 +24,7 @@ export declare enum WindowName {
24
24
  ZoomControlsDialog = "here-zoom-controls-dialog",
25
25
  UpdateVersionModal = "here-update-version-modal",
26
26
  ApplyAndPublishModal = "here-apply-and-publish-modal",
27
+ PublishOnCloseModal = "here-publish-on-close-modal",
27
28
  DesktopSignalsModal = "here-desktop-signals-modal",
28
29
  IntentsResolverModal = "here-intents-resolver-modal"
29
30
  }
@@ -35,6 +35,9 @@ export declare const showUpdateVersionModal: ({ identity, title, description }:
35
35
  description: string;
36
36
  }) => Promise<ModalResponseEvent["data"]>;
37
37
  export declare const showApplyAndPublishModal: (identity: OpenFin.Identity) => Promise<boolean>;
38
+ export declare const showPublishOnCloseModal: (windowIdentity: OpenFin.Identity) => Promise<{
39
+ data: ModalResponseEvent["data"];
40
+ }>;
38
41
  /**
39
42
  * Shows the intents resolver modal and returns the user's selection
40
43
  * @param request - The request containing modal configuration
@@ -2,7 +2,7 @@
2
2
  "@openfin/notifications": [
3
3
  {
4
4
  "type": "explicit",
5
- "version": "2.14.0-alpha-4509",
5
+ "version": "2.14.0-alpha-4543",
6
6
  "packageName": "client-api/package.json",
7
7
  "issuer": "client-api/src/notifications.ts"
8
8
  }
@@ -43,30 +43,12 @@
43
43
  "issuer": "common/src/utils/layout.ts"
44
44
  }
45
45
  ],
46
- "dexie": [
47
- {
48
- "type": "root-implicit",
49
- "version": "^4.0.11",
50
- "packageName": "dock3/package.json",
51
- "issuer": "dock3/src/api/idb.ts"
52
- },
53
- {
54
- "type": "explicit",
55
- "version": "^4.0.11",
56
- "packageName": "client-api-platform/package.json",
57
- "issuer": "client-api-platform/src/api/dock/idb.ts"
58
- },
59
- {
60
- "type": "explicit",
61
- "version": "^4.0.11",
62
- "packageName": "common/package.json",
63
- "issuer": "common/src/utils/create-and-migrate-ibd-store.ts"
64
- },
46
+ "lodash.clonedeep": [
65
47
  {
66
48
  "type": "explicit",
67
- "version": "^4.0.11",
49
+ "version": "4.5.0",
68
50
  "packageName": "common/package.json",
69
- "issuer": "common/src/api/pages/idb.ts"
51
+ "issuer": "common/src/utils/layout.ts"
70
52
  }
71
53
  ],
72
54
  "react-i18next": [
@@ -85,12 +67,30 @@
85
67
  "issuer": "common/src/api/i18next.ts"
86
68
  }
87
69
  ],
88
- "lodash.clonedeep": [
70
+ "dexie": [
71
+ {
72
+ "type": "root-implicit",
73
+ "version": "^4.0.11",
74
+ "packageName": "dock3/package.json",
75
+ "issuer": "dock3/src/api/idb.ts"
76
+ },
89
77
  {
90
78
  "type": "explicit",
91
- "version": "4.5.0",
79
+ "version": "^4.0.11",
80
+ "packageName": "client-api-platform/package.json",
81
+ "issuer": "client-api-platform/src/api/dock/idb.ts"
82
+ },
83
+ {
84
+ "type": "explicit",
85
+ "version": "^4.0.11",
92
86
  "packageName": "common/package.json",
93
- "issuer": "common/src/utils/layout.ts"
87
+ "issuer": "common/src/api/pages/idb.ts"
88
+ },
89
+ {
90
+ "type": "explicit",
91
+ "version": "^4.0.11",
92
+ "packageName": "common/package.json",
93
+ "issuer": "common/src/utils/create-and-migrate-ibd-store.ts"
94
94
  }
95
95
  ]
96
96
  }