@openfin/fdc3-api 45.100.114 → 45.100.115

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.
@@ -923,6 +923,21 @@ declare class Application extends EmitterBase<OpenFin.ApplicationEvent> {
923
923
  * ```
924
924
  */
925
925
  closeTrayIconPopupMenu(): Promise<void>;
926
+ /**
927
+ * @experimental
928
+ * Retrieves a performance snapshot for all Windows, Views and Frames in the Application.
929
+ *
930
+ * By default, all custom marks and measures are collected, along with navigation/paint entries
931
+ * and resource timing (`resources` defaults to `true`). Pass `include` to restrict custom
932
+ * marks/measures to matching names (string substring or RegExp). Pass `browser: true` to also
933
+ * include hereio internal runtime metrics.
934
+ *
935
+ * See also [MDN | Performance Mark API](https://developer.mozilla.org/en-US/docs/Web/API/Performance/mark)
936
+ *
937
+ * Note - only currently running WebContents will be captured, and performance entries can only be
938
+ * captured for the current navigation of each.
939
+ */
940
+ getPerformanceStats: (options?: OpenFin.GetPerformanceStatsOptions) => Promise<OpenFin.PerformanceStatsResult>;
926
941
  }
927
942
 
928
943
  /**
@@ -1374,6 +1389,7 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1374
1389
  declare type ApplicationPermissions = {
1375
1390
  setFileDownloadLocation: boolean;
1376
1391
  getFileDownloadLocation: boolean;
1392
+ getPerformanceStats: boolean;
1377
1393
  };
1378
1394
 
1379
1395
  /**
@@ -3129,7 +3145,12 @@ declare type ChildWindowCreatedEvent = ContentCreationRulesEvent & {
3129
3145
  childOptions: OpenFin.WindowOptions;
3130
3146
  };
3131
3147
 
3132
- /* Excluded from this release type: ChromeBrowser */
3148
+ declare interface ChromeBrowser {
3149
+ /**
3150
+ * Extension action surface — observe and invoke installed Chrome extension actions.
3151
+ */
3152
+ readonly Actions: ChromeBrowserActions;
3153
+ }
3133
3154
 
3134
3155
  /**
3135
3156
  * APIs for interacting with Chromium extension actions from an initialized ChromeBrowser window.
@@ -4107,7 +4128,7 @@ declare type ConstWindowOptions = {
4107
4128
  width: number;
4108
4129
  x: number;
4109
4130
  y: number;
4110
- experimental?: any;
4131
+ /* Excluded from this release type: experimental */
4111
4132
  fdc3InteropApi?: string;
4112
4133
  /**
4113
4134
  * _Platform Windows Only_. Controls behavior for showing views when they are being resized by the user.
@@ -4430,6 +4451,8 @@ declare type CopyPermissions = {
4430
4451
  };
4431
4452
  };
4432
4453
 
4454
+ declare type CorePerformanceEntry = Omit<PerformanceEntry, 'toJSON'>;
4455
+
4433
4456
  /**
4434
4457
  * Defines and applies rounded corners for a frameless window. **NOTE:** On macOS corner is not ellipse but circle rounded by the
4435
4458
  * average of _height_ and _width_.
@@ -4582,6 +4605,32 @@ declare type CreateLayoutOptions = {
4582
4605
  * @experimental
4583
4606
  */
4584
4607
  renderCustomHeaderControls?: (controlsElement: HTMLElement, context: HeaderControlsContext) => (() => void) | void;
4608
+ /**
4609
+ * Callback invoked once per tab after core has finished building the tab DOM.
4610
+ * Use this to inject custom controls (e.g. action icons) into view tab hats.
4611
+ *
4612
+ * Optionally return a cleanup function that will be called when the tab is destroyed.
4613
+ *
4614
+ * Custom controls are not serialized into snapshots since callbacks are not
4615
+ * serializable. The callback is re-invoked when tabs are recreated.
4616
+ *
4617
+ * **NOTE**: This feature is only supported with layout engine `'v2'` (GL2) and
4618
+ * `settings.tabOverflowBehavior: 'scroll'`.
4619
+ *
4620
+ * Optionally add the `lm_tab_custom_control` class to each injected control as a direct child of
4621
+ * `tabElement`. That opts the control into {@link LayoutAccessibilityOptions} keyboard
4622
+ * navigation (roving tabindex, arrow keys in DOM order, Enter/Space without switching tabs),
4623
+ * pointer isolation so clicks do not activate or close the tab (press-and-drag still
4624
+ * reorders/tears out tab, matching the close button), and default 20×20 flex sizing
4625
+ * (override using `--layout-tab-custom-control-size`).
4626
+ *
4627
+ * @param tabElement The `.lm_tab` DOM element for the view tab.
4628
+ * @param context Context object with DOM anchors for the tab.
4629
+ * @returns A callback to be called when the rendered elements need to be cleaned up.
4630
+ *
4631
+ * @experimental
4632
+ */
4633
+ renderCustomTabControls?: (tabElement: HTMLElement, context: CustomTabControlsContext) => (() => void) | void;
4585
4634
  /**
4586
4635
  * Accessibility options for the layout. Controls ARIA attributes and keyboard navigation.
4587
4636
  */
@@ -4671,6 +4720,19 @@ declare type CustomRequestHeaders = {
4671
4720
  headers: WebRequestHeader[];
4672
4721
  };
4673
4722
 
4723
+ /**
4724
+ * @interface @experimental
4725
+ */
4726
+ declare type CustomTabControlsContext = {
4727
+ viewIdentity: Identity_4;
4728
+ /** Anchor for inserting controls adjacent to the tab text. */
4729
+ titleElement: HTMLElement;
4730
+ /** Anchor for the trailing outer edge. Absent when the view is not closable. */
4731
+ closeElement?: HTMLElement;
4732
+ /** The favicon element. Hidden when favicons are disabled. */
4733
+ faviconElement?: HTMLElement;
4734
+ };
4735
+
4674
4736
  declare type DataChannelReadyState = RTCDataChannel['readyState'];
4675
4737
 
4676
4738
  /**
@@ -6715,6 +6777,32 @@ declare type GetLogRequestType = {
6715
6777
  name: string;
6716
6778
  };
6717
6779
 
6780
+ /**
6781
+ * End of Interop Client Events
6782
+ */
6783
+ /**
6784
+ * Performance Entry Types
6785
+ */
6786
+ declare type GetPerformanceStatsOptions = {
6787
+ /**
6788
+ * Optional filter for custom performance marks and measures.
6789
+ * When omitted, all custom marks and measures are collected.
6790
+ * When specified, only entries whose names match one of the filters are collected.
6791
+ * Strings match by substring; RegExp matches by test.
6792
+ */
6793
+ include?: (string | RegExp)[];
6794
+ /**
6795
+ * Include `resource` timing entries from each View / Frame / Window.
6796
+ * Defaults to `true`. Pass `false` to omit them.
6797
+ */
6798
+ resources?: boolean;
6799
+ /**
6800
+ * Whether to include hereio internal runtime metrics.
6801
+ * Defaults to `false`. Pass `true` to include.
6802
+ */
6803
+ browser?: boolean;
6804
+ };
6805
+
6718
6806
  declare type GetterCall<T> = ApiCall<void, T>;
6719
6807
 
6720
6808
  /**
@@ -7390,17 +7478,19 @@ declare type InteropActionLoggingOption = {
7390
7478
  * "interopBrokerConfiguration": {
7391
7479
  * "contextGroups": [
7392
7480
  * {
7393
- * "id": "green",
7481
+ * "id": "fdc3.channel.4",
7394
7482
  * "displayMetadata": {
7395
- * "color": "#00CC88",
7396
- * "name": "green"
7483
+ * "color": "green",
7484
+ * "name": "Channel 4",
7485
+ * "glyph": "4"
7397
7486
  * }
7398
7487
  * },
7399
7488
  * {
7400
- * "id": "purple",
7489
+ * "id": "fdc3.channel.8",
7401
7490
  * "displayMetadata": {
7402
- * "color": "#8C61FF",
7403
- * "name": "purple"
7491
+ * "color": "purple",
7492
+ * "name": "Channel 8",
7493
+ * "glyph": "8"
7404
7494
  * }
7405
7495
  * },
7406
7496
  * ]
@@ -7534,7 +7624,7 @@ declare class InteropBroker extends Base {
7534
7624
  * @param joinContextGroupOptions - Id of the Context Group and identity of the entity to join to the group.
7535
7625
  * @param senderIdentity - Identity of the client sender.
7536
7626
  */
7537
- joinContextGroup({ contextGroupId, target }: {
7627
+ joinContextGroup({ contextGroupId: requestedContextGroupId, target }: {
7538
7628
  contextGroupId: string;
7539
7629
  target?: OpenFin.ClientIdentity | OpenFin.Identity;
7540
7630
  }, senderIdentity: OpenFin.ClientIdentity): Promise<void>;
@@ -7545,7 +7635,7 @@ declare class InteropBroker extends Base {
7545
7635
  * @param addClientToContextGroupOptions - Contains the contextGroupId
7546
7636
  * @param clientIdentity - Identity of the client sender.
7547
7637
  */
7548
- addClientToContextGroup({ contextGroupId }: {
7638
+ addClientToContextGroup({ contextGroupId: requestedContextGroupId }: {
7549
7639
  contextGroupId: string;
7550
7640
  }, clientIdentity: OpenFin.ClientIdentity): Promise<void>;
7551
7641
  /**
@@ -7958,6 +8048,8 @@ declare class InteropBroker extends Base {
7958
8048
  };
7959
8049
  private getClientState;
7960
8050
  private static toObject;
8051
+ private normalizeContextGroupStates;
8052
+ private normalizeContextGroupId;
7961
8053
  static checkContextIntegrity: (context: OpenFin.Context) => {
7962
8054
  isValid: true;
7963
8055
  } | {
@@ -8185,7 +8277,7 @@ declare class InteropClient extends Base {
8185
8277
  *
8186
8278
  * getLastFocusedView()
8187
8279
  * .then(lastFocusedViewIdentity => {
8188
- * joinViewToContextGroup('red', lastFocusedViewIdentity)
8280
+ * joinViewToContextGroup('fdc3.channel.1', lastFocusedViewIdentity)
8189
8281
  * })
8190
8282
  * ```
8191
8283
  */
@@ -8220,7 +8312,7 @@ declare class InteropClient extends Base {
8220
8312
  *
8221
8313
  * @example
8222
8314
  * ```js
8223
- * fin.me.interop.getAllClientsInContextGroup('red')
8315
+ * fin.me.interop.getAllClientsInContextGroup('fdc3.channel.1')
8224
8316
  * .then(clientsInContextGroup => {
8225
8317
  * console.log(clientsInContextGroup)
8226
8318
  * })
@@ -8235,7 +8327,7 @@ declare class InteropClient extends Base {
8235
8327
  *
8236
8328
  * @example
8237
8329
  * ```js
8238
- * fin.me.interop.getInfoForContextGroup('red')
8330
+ * fin.me.interop.getInfoForContextGroup('fdc3.channel.1')
8239
8331
  * .then(contextGroupInfo => {
8240
8332
  * console.log(contextGroupInfo.displayMetadata.name)
8241
8333
  * console.log(contextGroupInfo.displayMetadata.color)
@@ -8292,12 +8384,12 @@ declare class InteropClient extends Base {
8292
8384
  *
8293
8385
  * @example
8294
8386
  * ```js
8295
- * await fin.me.interop.joinContextGroup('yellow');
8387
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8296
8388
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8297
8389
  * const currentContext = await fin.me.interop.getCurrentContext();
8298
8390
  *
8299
8391
  * // with a specific context
8300
- * await fin.me.interop.joinContextGroup('yellow');
8392
+ * await fin.me.interop.joinContextGroup('fdc3.channel.3');
8301
8393
  * await fin.me.interop.setContext({ type: 'country', id: { ISOALPHA3: 'US' }});
8302
8394
  * await fin.me.interop.setContext({ type: 'instrument', id: { ticker: 'FOO' }});
8303
8395
  * const currentContext = await fin.me.interop.getCurrentContext('country');
@@ -8459,7 +8551,7 @@ declare type InteropClientOnDisconnectionListener = (InteropBrokerDisconnectionE
8459
8551
  */
8460
8552
  declare type InteropConfig = {
8461
8553
  /**
8462
- * Context Group for the client. (green, yellow, red, etc.).
8554
+ * Context Group ID for the client (for example, `fdc3.channel.4`).
8463
8555
  */
8464
8556
  currentContextGroup?: string | null;
8465
8557
  /**
@@ -8508,7 +8600,7 @@ declare class InteropModule extends Base {
8508
8600
  * @example
8509
8601
  * ```js
8510
8602
  * const interopConfig = {
8511
- * currentContextGroup: 'green'
8603
+ * currentContextGroup: 'fdc3.channel.4'
8512
8604
  * }
8513
8605
  *
8514
8606
  * const interopBroker = await fin.Interop.init('openfin');
@@ -9538,8 +9630,26 @@ declare type LayoutOptions = {
9538
9630
  content?: LayoutContent;
9539
9631
  dimensions?: {
9540
9632
  borderWidth?: number;
9633
+ /**
9634
+ * Minimum height a layout item can be resized to, in pixels.
9635
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemHeight`.
9636
+ */
9541
9637
  minItemHeight?: number;
9638
+ /**
9639
+ * Minimum width a layout item can be resized to, in pixels.
9640
+ * On web layouts this is mapped to Golden Layout 2 `defaultMinItemWidth`.
9641
+ */
9542
9642
  minItemWidth?: number;
9643
+ /**
9644
+ * Minimum height a layout item can be resized to (CSS size, e.g. `'500px'`).
9645
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemHeight} when both are set.
9646
+ */
9647
+ defaultMinItemHeight?: string;
9648
+ /**
9649
+ * Minimum width a layout item can be resized to (CSS size, e.g. `'500px'`).
9650
+ * Web layouts only. Takes precedence over {@link LayoutOptions.dimensions.minItemWidth} when both are set.
9651
+ */
9652
+ defaultMinItemWidth?: string;
9543
9653
  headerHeight?: number;
9544
9654
  };
9545
9655
  };
@@ -10202,6 +10312,19 @@ declare type MutableViewOptions = {
10202
10312
  preventDragOut: boolean;
10203
10313
  interop?: InteropConfig;
10204
10314
  /* Excluded from this release type: _internalWorkspaceData */
10315
+ /* Excluded from this release type: workspacePlatform */
10316
+ /**
10317
+ * Per-view tab icon. Exception to `showFavicons` / `defaultFaviconUrl`.
10318
+ *
10319
+ * Distinct from Window `icon` (taskbar).
10320
+ *
10321
+ * - Omitted / `''` / `'unset'`: inherit — if `showFavicons`, page favicon then `defaultFaviconUrl`, else hide
10322
+ * - URL string: always show that URL, even when `showFavicons` is false. Load failure uses `defaultFaviconUrl`
10323
+ * - `'hide'`: always hide, even when `showFavicons` is true
10324
+ *
10325
+ * On `updateOptions`, omitted keys are a no-op; set `'unset'` to return to inherit.
10326
+ */
10327
+ icon?: ViewTabIcon;
10205
10328
  /**
10206
10329
  * {@inheritDoc ViewThrottling}
10207
10330
  *
@@ -10945,6 +11068,7 @@ declare namespace OpenFin {
10945
11068
  ViewInfo,
10946
11069
  WindowThrottling,
10947
11070
  ViewThrottling,
11071
+ ViewTabIcon,
10948
11072
  UpdatableViewOptions,
10949
11073
  ViewCreationOptions,
10950
11074
  MutableViewOptions,
@@ -11117,6 +11241,7 @@ declare namespace OpenFin {
11117
11241
  ScreenCaptureBehavior,
11118
11242
  DomainSettingsPreloadScripts,
11119
11243
  PerDomainSettings,
11244
+ UrlRestoreSettings,
11120
11245
  CopyPermissions,
11121
11246
  PastePermissions,
11122
11247
  ClipboardPermissions,
@@ -11184,6 +11309,7 @@ declare namespace OpenFin {
11184
11309
  LayoutManagerOverride,
11185
11310
  LayoutManager,
11186
11311
  HeaderControlsContext,
11312
+ CustomTabControlsContext,
11187
11313
  CreateLayoutOptions,
11188
11314
  MultiInstanceViewBehavior,
11189
11315
  LayoutAccessibilityOptions,
@@ -11257,6 +11383,12 @@ declare namespace OpenFin {
11257
11383
  InteropClientEvent,
11258
11384
  ClientChangedContextGroup,
11259
11385
  InteropClientEvents,
11386
+ GetPerformanceStatsOptions,
11387
+ SerializedPerformanceOptions,
11388
+ CorePerformanceEntry,
11389
+ WebContentPerformanceStats,
11390
+ WindowPerformanceStats,
11391
+ PerformanceStatsResult,
11260
11392
  ChromeBrowser,
11261
11393
  LanguageInfo,
11262
11394
  PageTranslateOptions,
@@ -11541,6 +11673,12 @@ declare type PerDomainSettings = {
11541
11673
  * See also {@link AppLogLevel} for more information.
11542
11674
  */
11543
11675
  appLogLevel?: AppLogLevel;
11676
+ /**
11677
+ * When the live URL matches this rule, remap inbound
11678
+ * {@link View.ViewModule.navigate View.navigate} / {@link Window.WindowModule.navigate Window.navigate}
11679
+ * to {@link UrlRestoreSettings.url}.
11680
+ */
11681
+ urlRestore?: UrlRestoreSettings;
11544
11682
  };
11545
11683
 
11546
11684
  /**
@@ -11551,6 +11689,15 @@ declare type PerformanceReportEvent = Performance & BaseEvent_5 & {
11551
11689
  type: 'performance-report';
11552
11690
  };
11553
11691
 
11692
+ declare type PerformanceStatsResult = {
11693
+ mainWindow: WindowPerformanceStats;
11694
+ childWindows: WindowPerformanceStats[];
11695
+ browser?: {
11696
+ timeOrigin: number;
11697
+ entries: CorePerformanceEntry[];
11698
+ };
11699
+ };
11700
+
11554
11701
  /**
11555
11702
  * @interface
11556
11703
  *
@@ -13677,6 +13824,11 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13677
13824
  response: OpenFin.MenuResult;
13678
13825
  };
13679
13826
  'close-tray-icon-popup-menu': IdentityCall<{}, void>;
13827
+ 'get-application-performance-stats': ApplicationIdentityCall<OpenFin.SerializedPerformanceOptions, OpenFin.PerformanceStatsResult> & {
13828
+ secure: true;
13829
+ namespace: 'Application';
13830
+ apiPath: '.getPerformanceStats';
13831
+ };
13680
13832
  'create-application': ApiCall<OpenFin.ApplicationCreationOptions, void>;
13681
13833
  'run-applications': ApiCall<{
13682
13834
  applications: Array<OpenFin.ManifestInfo>;
@@ -15062,6 +15214,16 @@ declare type SentMessage<Value> = Promise<Value> & {
15062
15214
  messageId: ReturnType<Environment['getNextMessageId']>;
15063
15215
  };
15064
15216
 
15217
+ declare type SerializedFilter = string | {
15218
+ type: 'regex';
15219
+ expression: string;
15220
+ flags?: string;
15221
+ };
15222
+
15223
+ declare type SerializedPerformanceOptions = Omit<GetPerformanceStatsOptions, 'include'> & {
15224
+ include?: SerializedFilter[];
15225
+ };
15226
+
15065
15227
  declare type ServeAssetOptions = AppAssetServeRequest | PathServeRequest;
15066
15228
 
15067
15229
  declare type ServedAssetInfo = {
@@ -18062,6 +18224,16 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
18062
18224
  httpStatusText: string;
18063
18225
  });
18064
18226
 
18227
+ /**
18228
+ * Domain-settings policy that replaces a matched live URL with a configured start URI.
18229
+ */
18230
+ declare type UrlRestoreSettings = {
18231
+ /**
18232
+ * Absolute replacement URL. Full URL replace, not prefix rewrite.
18233
+ */
18234
+ url: string;
18235
+ };
18236
+
18065
18237
  /**
18066
18238
  * @interface
18067
18239
  */
@@ -18975,10 +19147,10 @@ declare type ViewTabAccessibilityOptions = {
18975
19147
  * Uses roving tabindex pattern - only one element focusable at a time.
18976
19148
  * @default ['active-tab', 'add-tab-button']
18977
19149
  */
18978
- tabNavigation?: ViewTabElements[];
19150
+ tabNavigation?: Exclude<ViewTabElements, 'active-tab-custom-control' | 'inactive-tab-custom-control'>[];
18979
19151
  /**
18980
19152
  * Controls which elements are navigable via Arrow keys.
18981
- * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button']
19153
+ * @default ['inactive-tab', 'active-tab', 'active-tab-close-button', 'inactive-tab-close-button', 'add-tab-button', 'active-tab-custom-control', 'inactive-tab-custom-control']
18982
19154
  */
18983
19155
  arrowNavigation?: ViewTabElements[];
18984
19156
  /**
@@ -19010,7 +19182,14 @@ declare type ViewTabAccessibilityOptions = {
19010
19182
  /**
19011
19183
  * Elements that can be navigated in view tabs.
19012
19184
  */
19013
- declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button';
19185
+ declare type ViewTabElements = 'active-tab' | 'inactive-tab' | 'active-tab-close-button' | 'inactive-tab-close-button' | 'add-tab-button' | 'active-tab-custom-control' | 'inactive-tab-custom-control';
19186
+
19187
+ /**
19188
+ * Per-view tab icon. A URL, or the reserved sentinels `'hide'` / `'unset'`.
19189
+ *
19190
+ * `'hide'` and `'unset'` are not URLs. `''` is also unset (inherit) and is the default.
19191
+ */
19192
+ declare type ViewTabIcon = string | 'hide' | 'unset';
19014
19193
 
19015
19194
  /**
19016
19195
  * View throttling state.
@@ -19064,6 +19243,22 @@ declare type VoidCall = ApiCall<void, void>;
19064
19243
 
19065
19244
  declare type WebContent = View_2 | _Window;
19066
19245
 
19246
+ declare type WebContentPerformanceStatBase = {
19247
+ name: string;
19248
+ entries: CorePerformanceEntry[];
19249
+ navigation: {
19250
+ historyLength: number;
19251
+ timeOrigin: number;
19252
+ };
19253
+ url: string;
19254
+ frames: WebContentPerformanceStats[];
19255
+ };
19256
+
19257
+ declare type WebContentPerformanceStats = WebContentPerformanceStatBase | {
19258
+ error: string;
19259
+ url: string;
19260
+ };
19261
+
19067
19262
  declare class WebContents<T extends BaseEvent> extends EmitterBase<T> {
19068
19263
  identity: OpenFin.Identity;
19069
19264
  entityType: 'window' | 'view';
@@ -21671,6 +21866,13 @@ declare type WindowOptionsChangedEvent = OpenFin.WindowEvents.WindowOptionsChang
21671
21866
  */
21672
21867
  declare type WindowOptionsChangedEvent_2 = OptionsChangedEvent;
21673
21868
 
21869
+ declare type WindowPerformanceStats = (WebContentPerformanceStatBase & {
21870
+ views: WebContentPerformanceStats[];
21871
+ }) | {
21872
+ error: string;
21873
+ url: string;
21874
+ };
21875
+
21674
21876
  declare type WindowPrintOptions = PrintOptions | ScreenshotPrintOptions | WindowViewsPrintOptions;
21675
21877
 
21676
21878
  /**