@openfin/workspace-platform 14.0.22 → 14.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.
package/README.md CHANGED
@@ -14,7 +14,7 @@ Run `npm i -E @openfin/workspace-platform`.
14
14
 
15
15
  ## Code examples
16
16
 
17
- ### Initilaize a Workspace Platform
17
+ ### Initialize a Workspace Platform
18
18
 
19
19
  ```typescript
20
20
  import * as WorkspacePlatform from '@openfin/workspace-platform';
@@ -23,10 +23,10 @@ const customThemes: WorkspacePlatform.CustomThemes = [
23
23
  {
24
24
  label: "OpenFin's Custom Theme",
25
25
  palette: {
26
- brandPrimary: ‘#F51F63, // required
27
- brandSecondary: ‘#1FF58A’, // required
28
- backgroundPrimary: ‘#F8E71C’, // required - hex, rgb/rgba, hsl/hsla only - no string colors: ‘red’
29
- background2: ‘#7D808A // any of the optional colors
26
+ brandPrimary: '#F51F63', // required
27
+ brandSecondary: '#1FF58A', // required
28
+ backgroundPrimary: '#F8E71C', // required - hex, rgb/rgba, hsl/hsla only - no string colors: ‘red’
29
+ background2: '#7D808A' // any of the optional colors
30
30
  }
31
31
  }
32
32
  ];
@@ -42,7 +42,7 @@ const overrideCallback: WorkspacePlatform.WorkspacePlatformOverrideCallback = as
42
42
 
43
43
  await WorkspacePlatform.init({
44
44
  browser: {
45
- title: "My Browser"
45
+ title: 'My Browser'
46
46
  },
47
47
  overrideCallback,
48
48
  theme: customThemes
@@ -1,5 +1,5 @@
1
1
  import type { DockProvider } from './shapes/dock';
2
- import { DockProviderRegistration } from './shapes/dock';
2
+ import { type DockProviderRegistration } from './shapes/dock';
3
3
  export * from './shapes/dock';
4
4
  /**
5
5
  * API function to register a Dock provider.
@@ -1,6 +1,8 @@
1
1
  export interface ProviderInfo {
2
2
  /**
3
3
  * Unique identifier for the provider.
4
+ *
5
+ * @remarks A non-zero length string.
4
6
  */
5
7
  id: string;
6
8
  /**
@@ -1,6 +1,6 @@
1
1
  import type OpenFin from '@openfin/core';
2
2
  import type { AttachedPage } from '../../../../common/src/api/pages/shapes';
3
- import type { BrowserCreateWindowRequest, BrowserWindowModule } from '../../shapes';
3
+ import { type BrowserCreateWindowRequest, type BrowserWindowModule } from '../../shapes';
4
4
  export declare const getBrowserApi: (identity: OpenFin.ApplicationIdentity) => {
5
5
  wrapSync: (windowIdentity: OpenFin.Identity) => BrowserWindowModule;
6
6
  createWindow: (options: BrowserCreateWindowRequest) => Promise<BrowserWindowModule>;
@@ -14,6 +14,7 @@ export declare const savePageHandler: (identity: OpenFin.Identity, pageId?: stri
14
14
  export declare const savePageAsHandler: (identity: OpenFin.Identity, pageId?: string) => Promise<void>;
15
15
  export declare const switchWorkspaceHandler: (winIdentity: OpenFin.Identity, workspaceItemData: WorkspaceContextMenuItemData) => Promise<void>;
16
16
  export declare const deleteWorkspaceHandler: (winIdentity: OpenFin.Identity, workspaceItemData: WorkspaceContextMenuItemData) => Promise<void>;
17
+ export declare const downloadsHandler: (identity: OpenFin.Identity) => Promise<void>;
17
18
  /**
18
19
  * @param viewIdentities Array of views to execute print on.
19
20
  */
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get the browser base url override if it exists
3
+ *
4
+ * @returns The browser base url override if it exists, otherwise null
5
+ */
6
+ export declare function getBrowserBaseUrl(): Promise<string | null>;
@@ -1,6 +1,6 @@
1
1
  import type OpenFin from '@openfin/core';
2
2
  import type { CustomThemeOptions, CustomThemeOptionsWithScheme } from '../../../common/src/api/theming';
3
- import type { BrowserInitConfig } from '..';
3
+ import { BrowserInitConfig } from '../../../client-api-platform/src/shapes';
4
4
  /**
5
5
  * Applies default options to the creation of browser windows.
6
6
  */
@@ -1,4 +1,3 @@
1
1
  import type OpenFin from '@openfin/core';
2
- import type { BrowserInitConfig } from '../../../client-api-platform/src/shapes';
3
- import { WorkspacePlatformOverrideCallback, WorkspacePlatformProvider } from '..';
2
+ import { BrowserInitConfig, WorkspacePlatformOverrideCallback, WorkspacePlatformProvider } from '../../../client-api-platform/src/shapes';
4
3
  export declare const getOverrideCallback: (browserInitOptions: BrowserInitConfig | null, overrideCallback?: WorkspacePlatformOverrideCallback) => OpenFin.OverrideCallback<WorkspacePlatformProvider>;
@@ -29,12 +29,12 @@ type LegacyWindowOptions = Omit<OpenFin.PlatformWindowCreationOptions, 'workspac
29
29
  export declare const initWorkspacePlatformOptions: (options: LegacyWindowOptions | OpenFin.PlatformWindowCreationOptions) => OpenFin.PlatformWindowCreationOptions;
30
30
  export type WindowType = 'browser' | 'platform' | 'classic' | 'mixed';
31
31
  /**
32
- * checkSnapshotWindowTypes
33
- * Determines what type of windows are contained within a snapshot.
32
+ * checkHasBrowserWindows
33
+ * Determines whether the snapshot has browser windows.
34
34
  *
35
35
  * @param snapshot - The snapshot to check.
36
36
  *
37
- * @returns - The type of windows contained within the snapshot.
37
+ * @returns - Whether the snapshot has browser windows.
38
38
  */
39
- export declare function checkSnapshotWindowTypes(snapshot: BrowserSnapshot): WindowType | null;
39
+ export declare function checkHasBrowserWindows(snapshot: BrowserSnapshot): boolean;
40
40
  export {};
@@ -72,6 +72,7 @@ export declare enum GlobalContextMenuOptionType {
72
72
  RenameWorkspace = "RenameWorkspace",
73
73
  SwitchWorkspace = "SwitchWorkspace",
74
74
  DeleteWorkspace = "DeleteWorkspace",
75
+ Downloads = "Downloads",
75
76
  OpenStorefront = "OpenStorefront",
76
77
  Appearance = "Appearance",
77
78
  Quit = "Quit",
@@ -449,59 +450,75 @@ export interface OpenSaveContextMenuOptionActionPayload {
449
450
  /** Id of the page on which the context menu is invoked */
450
451
  pageId: string;
451
452
  }
453
+ export declare enum WindowType {
454
+ Browser = "browser",
455
+ Platform = "platform"
456
+ }
457
+ export interface BrowserWorkspacePlatformWindowOptions {
458
+ /** For internal usage. Defaults to 'browser' when Browser is enabled when the WorkspacePlatform is initialized. In order to use
459
+ * non-Browser layout windows ('platform' windows) in a Browser-enabled workspace platform, set windowType to `platform`. In that instance, the other properties
460
+ * in the workspacePlatform object are not relevant.
461
+ * */
462
+ windowType?: WindowType;
463
+ /** The initial set of pages to add to the created browser window. */
464
+ pages: Page[];
465
+ /** The favicon to display on the top left of the created browser window. */
466
+ favicon?: string;
467
+ /** A UI friendly title for the created browser window. */
468
+ title?: string;
469
+ /**
470
+ * Landing page that shows up when you add a new tab from the plus button that exists in the tabstrip.
471
+ * If you do not provide a newTabUrl, then the plus button in the tabstrip will not be shown and users cannot create a new empty tab.
472
+ */
473
+ newTabUrl?: string;
474
+ /**
475
+ * Landing page that shows up when you add a new page from the plus button that exists in the window frame where the page selector is shown.
476
+ * If you do not provide a newPageUrl, then the new Page plus button will not be shown and you cannot create a new empty Page or Window.
477
+ */
478
+ newPageUrl?: string;
479
+ toolbarOptions?: ToolbarOptions;
480
+ windowStateButtonOptions?: WindowStateButtonOptions;
481
+ /**
482
+ * Remove the Page UI and only allow a single page in the browser window.
483
+ * Must be set to true for this behavior. If this is not set to false,
484
+ * then an empty `pages` option will be populated with a single page.
485
+ */
486
+ disableMultiplePages?: boolean;
487
+ /**
488
+ * When true, disables the ability to drag pages into the window. False by default.
489
+ */
490
+ preventPageDragIn?: boolean;
491
+ /**
492
+ * When true, disables the ability to close pages, drag pages within the window,
493
+ * and drag pages into/out of the window. False by default.
494
+ */
495
+ isLocked?: boolean;
496
+ /**
497
+ * When true, disables the ability to drag pages out of a window. False by default.
498
+ */
499
+ preventPageDragOut?: boolean;
500
+ /**
501
+ * When true, page tabs in the window will not be draggable.
502
+ * This includes reordering pages and dragging them out of the window.
503
+ * False by default.
504
+ */
505
+ preventPageDrag?: boolean;
506
+ /**
507
+ * When true, disables the ability to close pages in the window. False by default.
508
+ */
509
+ preventPageClose?: boolean;
510
+ }
452
511
  /**
453
512
  * Request for creating a browser window.
454
513
  */
455
514
  export interface BrowserCreateWindowRequest extends Omit<OpenFin.PlatformWindowCreationOptions, 'workspacePlatform'> {
456
515
  /** WorkspacePlatform specific window options. These options will not work unless a workspace platform has been initialized. */
457
- workspacePlatform: {
458
- /** The initial set of pages to add to the created browser window. */
459
- pages: Page[];
460
- /** The favicon to display on the top left of the created browser window. */
461
- favicon?: string;
462
- /** A UI friendly title for the created browser window. */
463
- title?: string;
464
- /**
465
- * Landing page that shows up when you add a new tab from the plus button that exists in the tabstrip.
466
- * If you do not provide a newTabUrl, then the plus button in the tabstrip will not be shown and users cannot create a new empty tab.
467
- */
468
- newTabUrl?: string;
469
- /**
470
- * Landing page that shows up when you add a new page from the plus button that exists in the window frame where the page selector is shown.
471
- * If you do not provide a newPageUrl, then the new Page plus button will not be shown and you cannot create a new empty Page or Window.
472
- */
473
- newPageUrl?: string;
474
- toolbarOptions?: ToolbarOptions;
475
- windowStateButtonOptions?: WindowStateButtonOptions;
476
- /**
477
- * Remove the Page UI and only allow a single page in the browser window.
478
- * Must be set to true for this behavior. If this is not set to false,
479
- * then an empty `pages` option will be populated with a single page.
480
- */
481
- disableMultiplePages?: boolean;
482
- /**
483
- * When true, disables the ability to drag pages into the window. False by default.
484
- */
485
- preventPageDragIn?: boolean;
486
- /**
487
- * When true, disables the ability to close pages, drag pages within the window,
488
- * and drag pages into/out of the window. False by default.
489
- */
490
- isLocked?: boolean;
491
- /**
492
- * When true, disables the ability to drag pages out of a window. False by default.
493
- */
494
- preventPageDragOut?: boolean;
495
- /**
496
- * When true, page tabs in the window will not be draggable.
497
- * This includes reordering pages and dragging them out of the window.
498
- * False by default.
499
- */
500
- preventPageDrag?: boolean;
501
- /**
502
- * When true, disables the ability to close pages in the window. False by default.
503
- */
504
- preventPageClose?: boolean;
516
+ workspacePlatform: BrowserWorkspacePlatformWindowOptions | {
517
+ /** For internal usage. Defaults to 'browser' when Browser is enabled when the WorkspacePlatform is initialized. In order to use
518
+ * non-Browser layout windows ('platform' windows) in a Browser-enabled workspace platform, set windowType to `platform`. In that instance, the other properties
519
+ * in the workspacePlatform object are not relevant.
520
+ * */
521
+ windowType: WindowType.Platform;
505
522
  };
506
523
  }
507
524
  /**
@@ -1400,9 +1417,28 @@ export type ApplyWorkspacePayload = Workspace & {
1400
1417
  export interface CustomActionsMap {
1401
1418
  [actionId: string]: (payload: CustomActionPayload) => any;
1402
1419
  }
1420
+ /**
1421
+ * Configuration object of the Workspace Platform's Analytics Config.
1422
+ */
1403
1423
  export interface AnalyticsConfig {
1404
1424
  /**
1405
1425
  * Enable sending of Analytics data to OpenFin
1426
+ *
1427
+ * @default false
1428
+ *
1429
+ * @remarks OpenFin workspace utilizes a [HTML iframe](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) in order to send analytics data to OpenFin. In order to facilitate this, and allow for the use of `fin` APIs within the iframe, you must enable injection of the OpenFin API into cross-origin iframes. This can be configured within the [manifest](https://developers.openfin.co/of-docs/docs/application-configuration) like so:
1430
+ * ```json
1431
+ * {
1432
+ * "platform": {
1433
+ * "api": {
1434
+ * "iframe": {
1435
+ * "crossOriginInjection": true
1436
+ * }
1437
+ * },
1438
+ * // The rest of the manifest configuration is omitted for brevity
1439
+ * }
1440
+ * }
1441
+ * ```
1406
1442
  */
1407
1443
  sendToOpenFin: boolean;
1408
1444
  }
@@ -1419,6 +1455,8 @@ export interface WorkspacePlatformInitConfig {
1419
1455
  /**
1420
1456
  * Customize the Looks and Feel of the Workspace Platform by providing a custom palette.
1421
1457
  *
1458
+ * The `backgroundPrimary` color **must** be either a hex, rgb, rgba, hsl, or hsla value.
1459
+ *
1422
1460
  * Two palettes are provided by default: `light` and `dark`.
1423
1461
  * The `dark` palette is used by default.
1424
1462
  *
@@ -1644,7 +1682,8 @@ export type BrowserOverrideCallback = WorkspacePlatformOverrideCallback;
1644
1682
  */
1645
1683
  export interface BrowserInitConfig {
1646
1684
  /**
1647
- * Default options for creating a new browser window. Any option not included in WorkspacePlatform.getCurrentSync().Browser.createWindow(options) call will default to the value provided in this field.
1685
+ * Default options for creating a new Browser window. These options are not applied on any non-Browser windows that get created. These default options will take precedence over
1686
+ * defaultWindowOptions included in the manifest. Any option not included in WorkspacePlatform.getCurrentSync().Browser.createWindow(options) call will default to the value provided in this field.
1648
1687
  */
1649
1688
  defaultWindowOptions?: Partial<BrowserCreateWindowRequest>;
1650
1689
  /** Default options when creating a new page. If `iconUrl`, `unsavedIconUrl`, `panels` or `closeButton` are not defined when creating a page, setting will default to `defaultPageOptions`. */
@@ -14,6 +14,7 @@ export interface Overrides {
14
14
  [key: string]: boolean;
15
15
  };
16
16
  disableRuntimeValidation: boolean;
17
+ browserBaseUrl: string;
17
18
  disableOpenFinAnalytics: boolean;
18
19
  analyticsEndpoint: string;
19
20
  }
@@ -1,7 +1,7 @@
1
1
  import type OpenFin from '@openfin/core';
2
2
  export declare const getWindowChannelId: (identity: OpenFin.Identity) => string;
3
3
  export interface ChannelClient extends OpenFin.ChannelClient {
4
- dispatch: (action: typeof BrowserChannelAction[keyof BrowserChannelAction], payload?: any) => Promise<any>;
4
+ dispatch: (action: (typeof BrowserChannelAction)[keyof BrowserChannelAction], payload?: any) => Promise<any>;
5
5
  }
6
6
  export declare const getChannelClient: (identity: OpenFin.Identity) => Promise<ChannelClient>;
7
7
  /**
@@ -29,7 +29,8 @@ declare enum GeneralBrowserChannelActions {
29
29
  RemoveFromChannel = "remove-from-channel",
30
30
  OpenSaveModalInternal = "open-save-modal-internal",
31
31
  DuplicatePage = "duplicate-page",
32
- SetSelectedScheme = "set-selected-scheme"
32
+ SetSelectedScheme = "set-selected-scheme",
33
+ ShowBrowserIndicator = "show-browser-indicator"
33
34
  }
34
35
  /**
35
36
  * All of the remote procedures that can be called in the
@@ -68,6 +69,7 @@ export declare const BrowserChannelAction: {
68
69
  OpenSaveModalInternal: GeneralBrowserChannelActions.OpenSaveModalInternal;
69
70
  DuplicatePage: GeneralBrowserChannelActions.DuplicatePage;
70
71
  SetSelectedScheme: GeneralBrowserChannelActions.SetSelectedScheme;
72
+ ShowBrowserIndicator: GeneralBrowserChannelActions.ShowBrowserIndicator;
71
73
  };
72
74
  export type BrowserChannelAction = typeof BrowserChannelAction;
73
75
  export {};
@@ -6,7 +6,7 @@ export interface InternalSearchListenerResponse {
6
6
  getRevokedBuffer(): string[];
7
7
  setRevokedBuffer(resultIds: string[]): void;
8
8
  getUpdatedContext(): any;
9
- setUpdatedContext(context: any): void;
9
+ setUpdatedContext(context: any | null): void;
10
10
  onChange(): void;
11
11
  getStatus(): InternalSearchListenerResponseStatus;
12
12
  res: HomeSearchListenerResponse;
@@ -1,5 +1,5 @@
1
- import { DispatchedSearchResult, HomeSearchListenerRequest, HomeSearchResult } from '../../../../client-api/src/shapes';
2
1
  import { HomeProviderInternal } from '../../../../common/src/api/provider';
2
+ import { DispatchedSearchResult, HomeSearchListenerRequest, HomeSearchResult } from '../../../../client-api/src/shapes';
3
3
  /**
4
4
  * The ids of home providers that are built into Home.
5
5
  */
@@ -1,16 +1,27 @@
1
+ import { IndicatorType } from '../../../../common/src/components/Indicator/Indicator.constants';
1
2
  export declare enum BrowserIndicatorIcon {
2
3
  Locked = "LockClosedIcon",
3
4
  Unlocked = "LockOpen1Icon"
4
5
  }
6
+ export interface ShowBrowserIndicatorPayload {
7
+ type: IndicatorType;
8
+ message: string;
9
+ parentBrowserName?: string;
10
+ icon?: BrowserIndicatorIcon;
11
+ }
12
+ /**
13
+ * Creates a window containing a visual indicator
14
+ */
15
+ export declare function showBrowserIndicator(type: IndicatorType, message: string, parentBrowserName?: string, icon?: BrowserIndicatorIcon): Promise<any>;
5
16
  /**
6
17
  * Creates a window containing an error indicator
7
18
  */
8
- export declare function showBrowserError(message: string, parentBrowserName?: string, icon?: BrowserIndicatorIcon): Promise<void>;
19
+ export declare function showBrowserError(message: string, parentBrowserName?: string, icon?: BrowserIndicatorIcon): Promise<any>;
9
20
  /**
10
21
  * Creates a window containing a success indicator
11
22
  */
12
- export declare function showBrowserSuccess(message: string, parentBrowserName?: string, icon?: BrowserIndicatorIcon): Promise<void>;
23
+ export declare function showBrowserSuccess(message: string, parentBrowserName?: string, icon?: BrowserIndicatorIcon): Promise<any>;
13
24
  /**
14
25
  * Creates a window containing an info indicator
15
26
  */
16
- export declare function showBrowserInfo(message: string, parentBrowserName?: string, icon?: BrowserIndicatorIcon): Promise<void>;
27
+ export declare function showBrowserInfo(message: string, parentBrowserName?: string, icon?: BrowserIndicatorIcon): Promise<any>;
@@ -0,0 +1,18 @@
1
+ type WorkspacePerformanceMarks = 'home-registration' | 'dock-registration' | 'store-registration';
2
+ /**
3
+ * @classdesc
4
+ * WorkspacePerformance is a class that provides a set of methods to measure performance of workspace
5
+ *
6
+ */
7
+ declare class WorkspacePerformance {
8
+ markStart(markName: WorkspacePerformanceMarks): void;
9
+ markEnd(markName: WorkspacePerformanceMarks): void;
10
+ markEndAndMeasure(markName: WorkspacePerformanceMarks): void;
11
+ reportWorkspacePerformanceEntries(): PerformanceEntry[];
12
+ reportWorkspacePerformance(): {
13
+ name: string;
14
+ duration: number;
15
+ }[];
16
+ }
17
+ declare const workspacePerformance: WorkspacePerformance;
18
+ export default workspacePerformance;