@openfin/fdc3-api 37.81.30 → 38.81.22

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/out/fdc3-api.d.ts CHANGED
@@ -940,7 +940,7 @@ declare type ApplicationIdentity_2 = {
940
940
  * @interface
941
941
  */
942
942
  declare type ApplicationInfo = {
943
- initialOptions: WithUserAppConfigArgs & (ApplicationCreationOptions | PlatformOptions);
943
+ initialOptions: ApplicationCreationOptions | PlatformOptions;
944
944
  launchMode: string;
945
945
  manifest: Manifest & {
946
946
  [key: string]: any;
@@ -1167,14 +1167,9 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1167
1167
  */
1168
1168
  mainWindowOptions: WindowCreationOptions;
1169
1169
  /**
1170
- * The name of the application.
1170
+ * The name of the application (and the application's main window).
1171
1171
  *
1172
- * @remarks
1173
- * This property is only used for naming the application logging folder, which will be sanitized to remove
1174
- * any special characters, spaces or international characters. Otherwise it's not used and it will be overwritten
1175
- * during startup with the UUID of the application.
1176
- *
1177
- * This property will be deprecated in the future.
1172
+ * If provided, _must_ match `uuid`.
1178
1173
  */
1179
1174
  name: string;
1180
1175
  /**
@@ -1204,7 +1199,9 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1204
1199
  url: string;
1205
1200
  /**
1206
1201
  * The _Unique Universal Identifier_ (UUID) of the application, unique within the set of all other applications
1207
- * running in the OpenFin Runtime.
1202
+ * running in the OpenFin Runtime.
1203
+ *
1204
+ * Note that `name` and `uuid` must match.
1208
1205
  */
1209
1206
  uuid: string;
1210
1207
  /**
@@ -1939,6 +1936,48 @@ declare type BrowserContentCreationRule = BaseContentCreationRule & {
1939
1936
  behavior: 'browser';
1940
1937
  };
1941
1938
 
1939
+ declare interface BrowserWindow {
1940
+ /**
1941
+ * True if the window has been opened and its GoldenLayout instance initialised.
1942
+ */
1943
+ isInitialised: boolean;
1944
+
1945
+ /**
1946
+ * Creates a window configuration object from the Popout.
1947
+ */
1948
+ toConfig(): {
1949
+ dimensions: {
1950
+ width: number;
1951
+ height: number;
1952
+ left: number;
1953
+ top: number;
1954
+ };
1955
+ content: Config;
1956
+ parentId: string;
1957
+ indexInParent: number;
1958
+ };
1959
+
1960
+ /**
1961
+ * Returns the GoldenLayout instance from the child window
1962
+ */
1963
+ getGlInstance(): GoldenLayout_2;
1964
+
1965
+ /**
1966
+ * Returns the native Window object
1967
+ */
1968
+ getWindow(): Window;
1969
+
1970
+ /**
1971
+ * Closes the popout
1972
+ */
1973
+ close(): void;
1974
+
1975
+ /**
1976
+ * Returns the popout to its original position as specified in parentId and indexInParent
1977
+ */
1978
+ popIn(): void;
1979
+ }
1980
+
1942
1981
  /**
1943
1982
  * Extracts a single event type matching the given key from the View {@link Event} union.
1944
1983
  *
@@ -2011,6 +2050,15 @@ declare type ByType_7<Type extends EventType_7> = Payload_8<Type>;
2011
2050
  */
2012
2051
  declare type ByType_8<Type extends EventType_8> = Payload_9<Type>;
2013
2052
 
2053
+ /**
2054
+ * Extracts a single event type matching the given key from the Layout DOM {@link Event} union.
2055
+ *
2056
+ * Alias for {@link Payload}, which may read better in source.
2057
+ *
2058
+ * @typeParam Type String key specifying the event to extract
2059
+ */
2060
+ declare type ByType_9<Type extends EventType_9> = Payload_10<Type>;
2061
+
2014
2062
  /**
2015
2063
  * Configuration for page capture.
2016
2064
  *
@@ -3337,6 +3385,31 @@ declare class ColumnOrRow extends LayoutNode {
3337
3385
  getContent: () => Promise<(ColumnOrRow | TabStack)[]>;
3338
3386
  }
3339
3387
 
3388
+ declare interface ComponentConfig extends ItemConfig {
3389
+ /**
3390
+ * The name of the component as specified in layout.registerComponent. Mandatory if type is 'component'.
3391
+ */
3392
+ componentName: string;
3393
+
3394
+ /**
3395
+ * A serialisable object. Will be passed to the component constructor function and will be the value returned by
3396
+ * container.getState().
3397
+ */
3398
+ componentState?: any;
3399
+ }
3400
+
3401
+ declare interface Config {
3402
+ settings?: Settings;
3403
+ dimensions?: Dimensions;
3404
+ labels?: Labels;
3405
+ content?: ItemConfigType[];
3406
+ /**
3407
+ * (Only on layout config object)
3408
+ * Id of the currently maximised content item
3409
+ */
3410
+ maximisedItemId?: string;
3411
+ }
3412
+
3340
3413
  declare type ConfigWithRuntime = BaseConfig & {
3341
3414
  runtime: RuntimeConfig;
3342
3415
  };
@@ -3714,6 +3787,111 @@ declare type ConstWindowOptions = {
3714
3787
  inheritance?: Partial<InheritableOptions>;
3715
3788
  };
3716
3789
 
3790
+ declare interface Container extends EventEmitter_2 {
3791
+ /**
3792
+ * The current width of the container in pixel
3793
+ */
3794
+ width: number;
3795
+
3796
+ /**
3797
+ * The current height of the container in pixel
3798
+ */
3799
+ height: number;
3800
+
3801
+ /**
3802
+ * A reference to the component-item that controls this container
3803
+ */
3804
+ parent: ContentItem;
3805
+
3806
+ /**
3807
+ * A reference to the tab that controls this container. Will initially be null
3808
+ * (and populated once a tab event has been fired).
3809
+ */
3810
+ tab: Tab;
3811
+
3812
+ /**
3813
+ * The current title of the container
3814
+ */
3815
+ title: string;
3816
+
3817
+ /*
3818
+ * A reference to the GoldenLayout instance this container belongs to
3819
+ */
3820
+ layoutManager: GoldenLayout_2;
3821
+
3822
+ /**
3823
+ * True if the item is currently hidden
3824
+ */
3825
+ isHidden: boolean;
3826
+
3827
+ /**
3828
+ * Overwrites the components state with the provided value. To only change parts of the componentState see
3829
+ * extendState below. This is the main mechanism for saving the state of a component. This state will be the
3830
+ * value of componentState when layout.toConfig() is called and will be passed back to the component's
3831
+ * constructor function. It will also be used when the component is opened in a new window.
3832
+ * @param state A serialisable object
3833
+ */
3834
+ setState(state: any): void;
3835
+
3836
+ /**
3837
+ * The same as setState but does not emit 'stateChanged' event
3838
+ * @param {serialisable} state
3839
+ */
3840
+ setStateSkipEvent(state: any): void;
3841
+
3842
+ /**
3843
+ * This is similar to setState, but merges the provided state into the current one, rather than overwriting it.
3844
+ * @param state A serialisable object
3845
+ */
3846
+ extendState(state: any): void;
3847
+
3848
+ /**
3849
+ * Returns the current state.
3850
+ */
3851
+ getState(): any;
3852
+
3853
+ /**
3854
+ * Returns the container's inner element as a jQuery element
3855
+ */
3856
+ getElement(): JQuery;
3857
+
3858
+ /**
3859
+ * hides the container or returns false if hiding it is not possible
3860
+ */
3861
+ hide(): boolean;
3862
+
3863
+ /**
3864
+ * shows the container or returns false if showing it is not possible
3865
+ */
3866
+ show(): boolean;
3867
+
3868
+ /**
3869
+ * Sets the container to the specified size or returns false if that's not possible
3870
+ * @param width the new width in pixel
3871
+ * @param height the new height in pixel
3872
+ */
3873
+ setSize(width: number, height: number): boolean;
3874
+
3875
+ /**
3876
+ * Sets the item's title to the provided value. Triggers titleChanged and stateChanged events
3877
+ * @param title the new title
3878
+ */
3879
+ setTitle(title: string): void;
3880
+
3881
+ /**
3882
+ * Closes the container or returns false if that is not possible
3883
+ */
3884
+ close(): boolean;
3885
+ }
3886
+
3887
+ /**
3888
+ * Generated when a Layout Container Component was created.
3889
+ * @interface
3890
+ */
3891
+ declare type ContainerCreatedEvent = LayoutDOMEvent & {
3892
+ type: 'container-created';
3893
+ };
3894
+
3717
3895
  /**
3718
3896
  * Generated when content navigation or redirection is blocked by {@link OpenFin.DomainSettings}.
3719
3897
  */
@@ -3787,6 +3965,218 @@ declare type ContentCreationRulesEvent = NamedEvent & {
3787
3965
  disposition: string;
3788
3966
  };
3789
3967
 
3968
+ declare interface ContentItem extends EventEmitter_2 {
3969
+ instance: any;
3970
+ header: any;
3971
+ _splitter: any;
3972
+ /**
3973
+ * This items configuration in its current state
3974
+ */
3975
+ config: ItemConfigType;
3976
+
3977
+ /**
3978
+ * The type of the item. Can be row, column, stack, component or root
3979
+ */
3980
+ type: ItemType;
3981
+
3982
+ /**
3983
+ * An array of items that are children of this item
3984
+ */
3985
+ contentItems: ContentItem[];
3986
+
3987
+ container: Container;
3988
+ /**
3989
+ * The item that is this item's parent (or null if the item is root)
3990
+ */
3991
+ parent: ContentItem;
3992
+
3993
+ /**
3994
+ * A String or array of identifiers if provided in the configuration
3995
+ */
3996
+ id: string;
3997
+
3998
+ /**
3999
+ * True if the item had been initialised
4000
+ */
4001
+ isInitialised: boolean;
4002
+
4003
+ /**
4004
+ * True if the item is maximised
4005
+ */
4006
+ isMaximised: boolean;
4007
+
4008
+ /**
4009
+ * True if the item is the layout's root item
4010
+ */
4011
+ isRoot: boolean;
4012
+
4013
+ /**
4014
+ * True if the item is a row
4015
+ */
4016
+ isRow: boolean;
4017
+
4018
+ /**
4019
+ * True if the item is a column
4020
+ */
4021
+ isColumn: boolean;
4022
+
4023
+ /**
4024
+ * True if the item is a stack
4025
+ */
4026
+ isStack: boolean;
4027
+
4028
+ /**
4029
+ * True if the item is a component
4030
+ */
4031
+ isComponent: boolean;
4032
+
4033
+ /**
4034
+ * A reference to the layoutManager that controls this item
4035
+ */
4036
+ layoutManager: any;
4037
+
4038
+ /**
4039
+ * The item's outer element
4040
+ */
4041
+ element: JQuery;
4042
+
4043
+ /**
4044
+ * The item's inner element. Can be the same as the outer element.
4045
+ */
4046
+ childElementContainer: Container;
4047
+
4048
+ /**
4049
+ * Adds an item as a child to this item. If the item is already a part of a layout it will be removed
4050
+ * from its original position before adding it to this item.
4051
+ * @param itemOrItemConfig A content item (or tree of content items) or an ItemConfiguration to create the item from
4052
+ * @param index last index An optional index that determines at which position the new item should be added. Default: last index.
4053
+ */
4054
+ addChild(itemOrItemConfig: ContentItem | ItemConfigType, index?: number): void;
4055
+
4056
+ /**
4057
+ * Destroys the item and all it's children
4058
+ * @param contentItem The contentItem that should be removed
4059
+ * @param keepChild If true the item won't be destroyed. (Use cautiosly, if the item isn't destroyed it's up to you to destroy it later). Default: false.
4060
+ */
4061
+ removeChild(contentItem: ContentItem, keepChild?: boolean): void;
4062
+
4063
+ /**
4064
+ * The contentItem that should be removed
4065
+ * @param oldChild ContentItem The contentItem that should be removed
4066
+ * @param newChild A content item (or tree of content items) or an ItemConfiguration to create the item from
4067
+ */
4068
+ replaceChild(oldChild: ContentItem, newChild: ContentItem | ItemConfigType): void;
4069
+
4070
+ /**
4071
+ * Updates the items size. To actually assign a new size from within a component, use container.setSize( width, height )
4072
+ */
4073
+ setSize(): void;
4074
+
4075
+ /**
4076
+ * Sets the item's title to the provided value. Triggers titleChanged and stateChanged events
4077
+ * @param title the new title
4078
+ */
4079
+ setTitle(title: string): void;
4080
+
4081
+ /**
4082
+ * A powerful, yet admittedly confusing method to recursively call methods on items in a tree. Usually you wouldn't need
4083
+ * to use it directly, but it's used internally to setSizes, destroy parts of the item tree etc.
4084
+ * @param functionName The name of the method to invoke
4085
+ * @param functionArguments An array of arguments to pass to every function
4086
+ * @param bottomUp If true, the method is invoked on the lowest parts of the tree first and then bubbles upwards. Default: false
4087
+ * @param skipSelf If true, the method will only be invoked on the item's children, but not on the item itself. Default: false
4088
+ */
4089
+ callDownwards(functionName: string, functionArguments?: any[], bottomUp?: boolean, skipSelf?: boolean): void;
4090
+
4091
+ /**
4092
+ * Emits an event that bubbles up the item tree until it reaches the root element (and after a delay the layout manager). Useful e.g. for indicating state changes.
4093
+ */
4094
+ emitBubblingEvent(name: string): void;
4095
+
4096
+ /**
4097
+ * Convenience method for item.parent.removeChild( item )
4098
+ */
4099
+ remove(): void;
4100
+
4101
+ /**
4102
+ * Removes the item from its current position in the layout and opens it in a window
4103
+ */
4104
+ popout(): BrowserWindow;
4105
+
4106
+ /**
4107
+ * Maximises the item or minimises it if it's already maximised
4108
+ */
4109
+ toggleMaximise(): void;
4110
+
4111
+ /**
4112
+ * Selects the item. Only relevant if settings.selectionEnabled is set to true
4113
+ */
4114
+ select(): void;
4115
+
4116
+ /**
4117
+ * Unselects the item. Only relevant if settings.selectionEnabled is set to true
4118
+ */
4119
+ deselect(): void;
4120
+
4121
+ /**
4122
+ * Returns true if the item has the specified id or false if not
4123
+ * @param id An id to check for
4124
+ */
4125
+ hasId(id: string): boolean;
4126
+
4127
+ /**
4128
+ * Only Stacks have this method! It's the programmatical equivalent of clicking a tab.
4129
+ * @param contentItem The new active content item
4130
+ * @param preventFocus [OpenFin Custom] Indicates to openfin that the view should not be focused when activated.
4131
+ */
4132
+ // (CORE-198)[../docs/golden-layout-changelog.md#CORE-198 stack.setActiveView]
4133
+ setActiveContentItem(contentItem: ContentItem, preventFocus?: boolean): void;
4134
+
4135
+ /**
4136
+ * Only Stacks have this method! Returns the currently selected contentItem.
4137
+ */
4138
+ getActiveContentItem(): ContentItem;
4139
+
4140
+ /**
4141
+ * Adds an id to an item or does nothing if the id is already present
4142
+ * @param id The id to be added
4143
+ */
4144
+ addId(id: string): void;
4145
+
4146
+ /**
4147
+ * Removes an id from an item or throws an error if the id couldn't be found
4148
+ * @param id The id to be removed
4149
+ */
4150
+ removeId(id: string): void;
4151
+
4152
+ /**
4153
+ * Calls filterFunction recursively for every item in the tree. If the function returns true the item is added to the resulting array
4154
+ * @param filterFunction A function that determines whether an item matches certain criteria
4155
+ */
4156
+ getItemsByFilter(filterFunction: (contentItem: ContentItem) => boolean): ContentItem[];
4157
+
4158
+ /**
4159
+ * Returns all items with the specified id.
4160
+ * @param id An id specified in the itemConfig
4161
+ */
4162
+ getItemsById(id: string | string[]): ContentItem[];
4163
+
4164
+ /**
4165
+ * Returns all items with the specified type
4166
+ * @param type 'row', 'column', 'stack', 'component' or 'root'
4167
+ */
4168
+ getItemsByType(type: string): ContentItem[];
4169
+
4170
+ /**
4171
+ * Returns all instances of the component with the specified componentName
4172
+ * @param componentName a componentName as specified in the itemConfig
4173
+ */
4174
+ getComponentsByName(componentName: string): any;
4175
+
4176
+ _contentAreaDimensions: any;
4177
+ _$getArea: () => any;
4178
+ }
4179
+
3790
4180
  /**
3791
4181
  * Restrict navigation to URLs that match an allowed pattern.
3792
4182
  * In the lack of an allowlist, navigation to URLs that match a denied pattern would be prohibited.
@@ -4214,6 +4604,46 @@ declare type DidFinishLoadEvent = NamedEvent & {
4214
4604
  type: 'did-finish-load';
4215
4605
  };
4216
4606
 
4607
+ declare interface Dimensions {
4608
+ /**
4609
+ * The width of the borders between the layout items in pixel. Please note: The actual draggable area is wider
4610
+ * than the visible one, making it safe to set this to small values without affecting usability.
4611
+ * Default: 5
4612
+ */
4613
+ borderWidth?: number;
4614
+
4615
+ /**
4616
+ * The minimum height an item can be resized to (in pixel).
4617
+ * Default: 10
4618
+ */
4619
+ minItemHeight?: number;
4620
+
4621
+ /**
4622
+ * The minimum width an item can be resized to (in pixel).
4623
+ * Default: 10
4624
+ */
4625
+ minItemWidth?: number;
4626
+
4627
+ /**
4628
+ * The height of the header elements in pixel. This can be changed, but your theme's header css needs to be
4629
+ * adjusted accordingly.
4630
+ * Default: 20
4631
+ */
4632
+ headerHeight?: number;
4633
+
4634
+ /**
4635
+ * The width of the element that appears when an item is dragged (in pixel).
4636
+ * Default: 300
4637
+ */
4638
+ dragProxyWidth?: number;
4639
+
4640
+ /**
4641
+ * The height of the element that appears when an item is dragged (in pixel).
4642
+ * Default: 200
4643
+ */
4644
+ dragProxyHeight?: number;
4645
+ }
4646
+
4217
4647
  /**
4218
4648
  * @interface
4219
4649
  */
@@ -4306,7 +4736,14 @@ declare type DomainApiSettings = {
4306
4736
  *
4307
4737
  * @defaultValue 'global'
4308
4738
  */
4309
- fin: InjectionType;
4739
+ fin?: InjectionType;
4740
+ /**
4741
+ * API permissions for domains matched to the current {@link DomainSettingsRule}.
4742
+ *
4743
+ * @remarks If an application manifest includes this property in {@link DomainSettings.default},
4744
+ * then {@link WindowOptions.permissions} and {@link ViewOptions.permissions} will be **ignored**.
4745
+ */
4746
+ permissions?: Permissions_2;
4310
4747
  };
4311
4748
 
4312
4749
  /**
@@ -4463,6 +4900,8 @@ declare type Dpi = {
4463
4900
  vertical?: number;
4464
4901
  };
4465
4902
 
4903
+ declare interface DragSource {}
4904
+
4466
4905
  /**
4467
4906
  * Generated when a window has been embedded.
4468
4907
  * @interface
@@ -4643,6 +5082,7 @@ declare type EntityTypeHelpers<T extends EntityType_2> = T extends 'view' ? {
4643
5082
  } : never;
4644
5083
 
4645
5084
  declare interface Environment {
5085
+ layoutAllowedInContext(fin: OpenFin.Fin<OpenFin.EntityType>): boolean;
4646
5086
  initLayoutManager(fin: OpenFin.Fin<OpenFin.EntityType>, wire: Transport, options: OpenFin.InitLayoutOptions): Promise<OpenFin.LayoutManager<OpenFin.LayoutSnapshot>>;
4647
5087
  applyLayoutSnapshot(fin: OpenFin.Fin<OpenFin.EntityType>, layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.InitLayoutOptions): Promise<void>;
4648
5088
  createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<void>;
@@ -4705,6 +5145,12 @@ declare type Event_10 = ApplicationEvents.Event | ApiReadyEvent | SnapshotApplie
4705
5145
  */
4706
5146
  declare type Event_11 = ExcludeRequested<WindowEvents.PropagatedEvent<'system'>> | ExcludeRequested<ViewEvents.PropagatedEvent<'system'>> | ExcludeRequested<ApplicationEvents.PropagatedEvent<'system'>> | ApplicationCreatedEvent | DesktopIconClickedEvent | IdleStateChangedEvent | MonitorInfoChangedEvent | SessionChangedEvent | AppVersionEventWithId | SystemShutdownEvent;
4707
5147
 
5148
+ /**
5149
+ * [Union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) containing every possible event that can be emitted by the HTMLElement Layout container.
5150
+ * Events are discriminated by {@link LayoutDOMEvent.type}.
5151
+ */
5152
+ declare type Event_12 = TabCreatedEvent | TabClosedEvent | TabDroppedEvent | ContainerCreatedEvent | LayoutStateChangedEvent;
5153
+
4708
5154
  /**
4709
5155
  * [Union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) containing every possible event that can be emitted by a {@link Channel}. Events are
4710
5156
  * discriminated by {@link BaseEvents.BaseEvent.type | their type}. Event payloads unique to `Channel` can be found
@@ -4773,6 +5219,43 @@ declare class EventAggregator extends EmitterMap {
4773
5219
  dispatchEvent: (message: Message<any>) => boolean;
4774
5220
  }
4775
5221
 
5222
+ declare interface EventEmitter_2 {
5223
+ [x: string]: any;
5224
+ /**
5225
+ * Subscribe to an event
5226
+ * @param eventName The name of the event to describe to
5227
+ * @param callback The function that should be invoked when the event occurs
5228
+ * @param context The value of the this pointer in the callback function
5229
+ */
5230
+ on(eventName: string, callback: Function, context?: any): void;
5231
+
5232
+ /**
5233
+ * Notify listeners of an event and pass arguments along
5234
+ * @param eventName The name of the event to emit
5235
+ */
5236
+ emit(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
5237
+
5238
+ /**
5239
+ * Alias for emit
5240
+ */
5241
+ trigger(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
5242
+
5243
+ /**
5244
+ * Unsubscribes either all listeners if just an eventName is provided, just a specific callback if invoked with
5245
+ * eventName and callback or just a specific callback with a specific context if invoked with all three
5246
+ * arguments.
5247
+ * @param eventName The name of the event to unsubscribe from
5248
+ * @param callback The function that should be invoked when the event occurs
5249
+ * @param context The value of the this pointer in the callback function
5250
+ */
5251
+ unbind(eventName: string, callback?: Function, context?: any): void;
5252
+
5253
+ /**
5254
+ * Alias for unbind
5255
+ */
5256
+ off(eventName: string, callback?: Function, context?: any): void;
5257
+ }
5258
+
4776
5259
  /**
4777
5260
  * Handler for an event on an EventEmitter.
4778
5261
  * @remarks Selects the correct type for the event
@@ -4837,6 +5320,11 @@ declare type EventType_7 = Event_10['type'];
4837
5320
  */
4838
5321
  declare type EventType_8 = Event_11['type'];
4839
5322
 
5323
+ /**
5324
+ * Union of possible `type` values for a {@link LayoutDOMEvent}.
5325
+ */
5326
+ declare type EventType_9 = Event_12['type'];
5327
+
4840
5328
  /**
4841
5329
  * @internal
4842
5330
  */
@@ -5364,7 +5852,6 @@ declare class FDC3ModuleBase<ChannelType extends v1_2.Channel | v2_0.Channel> {
5364
5852
  * @tutorial fdc3.open
5365
5853
  */
5366
5854
  protected _open(app: v1_2.TargetApp, context?: v1_2.Context): Promise<v2_0.AppIdentifier>;
5367
- protected _getChannels(): Promise<ChannelType[]>;
5368
5855
  /**
5369
5856
  * Returns a Channel object for the specified channel, creating it as an App Channel if it does not exist.
5370
5857
  * @param channelId
@@ -5933,51 +6420,298 @@ declare class GlobalHotkey extends EmitterBase<OpenFin.GlobalHotkeyEvent> {
5933
6420
  */
5934
6421
  unregisterAll(): Promise<void>;
5935
6422
  /**
5936
- * Checks if a given hotkey has been registered by an application within the current runtime.
5937
- * @param hotkey a hotkey string
5938
- *
5939
- * @example
5940
- * ```js
5941
- * const hotkey = 'CommandOrControl+X';
5942
- *
5943
- * fin.GlobalHotkey.isRegistered(hotkey)
5944
- * .then((registered) => {
5945
- * console.log(`hotkey ${hotkey} is registered ? ${registered}`);
5946
- * })
5947
- * .catch(err => {
5948
- * console.log('Error unregistering the hotkey', err);
5949
- * });
5950
- * ```
6423
+ * Checks if a given hotkey has been registered by an application within the current runtime.
6424
+ * @param hotkey a hotkey string
6425
+ *
6426
+ * @example
6427
+ * ```js
6428
+ * const hotkey = 'CommandOrControl+X';
6429
+ *
6430
+ * fin.GlobalHotkey.isRegistered(hotkey)
6431
+ * .then((registered) => {
6432
+ * console.log(`hotkey ${hotkey} is registered ? ${registered}`);
6433
+ * })
6434
+ * .catch(err => {
6435
+ * console.log('Error unregistering the hotkey', err);
6436
+ * });
6437
+ * ```
6438
+ */
6439
+ isRegistered(hotkey: string): Promise<boolean>;
6440
+ }
6441
+
6442
+ /**
6443
+ * @deprecated Renamed to {@link Event}.
6444
+ */
6445
+ declare type GlobalHotkeyEvent = Event_9;
6446
+
6447
+ declare type GlobalHotkeyEvent_2 = Events.GlobalHotkeyEvents.GlobalHotkeyEvent;
6448
+
6449
+ declare namespace GlobalHotkeyEvents {
6450
+ export {
6451
+ BaseEvent_8 as BaseEvent,
6452
+ RegisteredEvent,
6453
+ UnregisteredEvent,
6454
+ Event_9 as Event,
6455
+ GlobalHotkeyEvent,
6456
+ EventType_6 as EventType,
6457
+ GlobalHotkeyEventType,
6458
+ Payload_7 as Payload,
6459
+ ByType_6 as ByType
6460
+ }
6461
+ }
6462
+
6463
+ /**
6464
+ * @deprecated Renamed to {@link EventType}.
6465
+ */
6466
+ declare type GlobalHotkeyEventType = EventType_6;
6467
+
6468
+ declare namespace GoldenLayout {
6469
+ export {
6470
+ GoldenLayout_2 as GoldenLayout,
6471
+ ItemConfigType,
6472
+ Settings,
6473
+ Dimensions,
6474
+ Labels,
6475
+ ItemType,
6476
+ ItemConfig,
6477
+ ComponentConfig,
6478
+ ReactComponentConfig,
6479
+ Config,
6480
+ ContentItem,
6481
+ Container,
6482
+ DragSource,
6483
+ BrowserWindow,
6484
+ Header,
6485
+ TabDragListener,
6486
+ Tab,
6487
+ EventEmitter_2 as EventEmitter
6488
+ }
6489
+ }
6490
+
6491
+ declare class GoldenLayout_2 implements EventEmitter_2 {
6492
+ /**
6493
+ * The topmost item in the layout item tree. In browser terms: Think of the GoldenLayout instance as window
6494
+ * object and of goldenLayout.root as the document.
6495
+ */
6496
+ root: ContentItem;
6497
+
6498
+ /**
6499
+ * A reference to the (jQuery) DOM element containing the layout
6500
+ */
6501
+ container: JQuery;
6502
+
6503
+ /**
6504
+ * True once the layout item tree has been created and the initialised event has been fired
6505
+ */
6506
+ isInitialised: boolean;
6507
+
6508
+ /**
6509
+ * A reference to the current, extended top level config.
6510
+ *
6511
+ * Don't rely on this object for state saving / serialisation. Use layout.toConfig() instead.
6512
+ */
6513
+ config: Config;
6514
+
6515
+ /**
6516
+ * The currently selected item or null if no item is selected. Only relevant if settings.selectionEnabled is set
6517
+ * to true.
6518
+ */
6519
+ selectedItem: ContentItem;
6520
+
6521
+ /**
6522
+ * The current outer width of the layout in pixels.
6523
+ */
6524
+ width: number;
6525
+
6526
+ /**
6527
+ * The current outer height of the layout in pixels.
6528
+ */
6529
+ height: number;
6530
+
6531
+ /**
6532
+ * An array of BrowserWindow instances
6533
+ */
6534
+ openPopouts: BrowserWindow[];
6535
+
6536
+ /**
6537
+ * True if the layout has been opened as a popout by another layout.
6538
+ */
6539
+ isSubWindow: boolean;
6540
+
6541
+ /**
6542
+ * A singleton instance of EventEmitter that works across windows
6543
+ */
6544
+ eventHub: EventEmitter_2;
6545
+
6546
+ _dragProxy: any;
6547
+
6548
+ dropTargetIndicator: any;
6549
+
6550
+ _isFullPage: boolean;
6551
+
6552
+ _onUnload: any;
6553
+
6554
+ tabDropPlaceholder: any;
6555
+
6556
+ transitionIndicator: any;
6557
+
6558
+ _dragSources: any;
6559
+
6560
+ _resizeFunction: any;
6561
+
6562
+ _unloadFunction: any;
6563
+
6564
+ /**
6565
+ * @param config A GoldenLayout configuration object
6566
+ * @param container The DOM element the layout will be initialised in. Default: document.body
6567
+ */
6568
+ constructor(configuration: Config, container?: Element | HTMLElement | JQuery);
6569
+
6570
+ /*
6571
+ * @param name The name of the component, as referred to by componentName in the component configuration.
6572
+ * @param component A constructor or factory function. Will be invoked with new and two arguments, a
6573
+ * containerobject and a component state
6574
+ */
6575
+ registerComponent(name: String, component: any): void;
6576
+
6577
+ /**
6578
+ * Renders the layout into the container. If init() is called before the document is ready it attaches itself as
6579
+ * a listener to the document and executes once it becomes ready.
6580
+ */
6581
+ init(): void;
6582
+
6583
+ /**
6584
+ * Returns the current state of the layout and its components as a serialisable object.
6585
+ */
6586
+ toConfig(): Config;
6587
+
6588
+ /**
6589
+ * Returns a component that was previously registered with layout.registerComponent().
6590
+ * @param name The name of a previously registered component
6591
+ */
6592
+ getComponent(name: string): any;
6593
+
6594
+ /**
6595
+ * Resizes the layout. If no arguments are provided GoldenLayout measures its container and resizes accordingly.
6596
+ * @param width The outer width the layout should be resized to. Default: The container elements width
6597
+ * @param height The outer height the layout should be resized to. Default: The container elements height
6598
+ */
6599
+ updateSize(width?: number, height?: number): void;
6600
+
6601
+ /**
6602
+ * Destroys the layout. Recursively calls destroy on all components and content items, removes all event
6603
+ * listeners and finally removes itself from the DOM.
6604
+ */
6605
+ destroy(): void;
6606
+
6607
+ /**
6608
+ * Creates a new content item or tree of content items from configuration. Usually you wouldn't call this
6609
+ * directly, but instead use methods like layout.createDragSource(), item.addChild() or item.replaceChild() that
6610
+ * all call this method implicitly.
6611
+ * @param itemConfiguration An item configuration (can be an entire tree of items)
6612
+ * @param parent A parent item
6613
+ */
6614
+ createContentItem(itemConfiguration?: ItemConfigType, parent?: ContentItem): ContentItem;
6615
+
6616
+ /**
6617
+ * Creates a new popout window with configOrContentItem as contents at the position specified in dimensions
6618
+ * @param configOrContentItem The content item or config that will be created in the new window. If a item is
6619
+ * provided its config will be read, if config is provided, only the content key
6620
+ * will be used
6621
+ * @param dimensions A map containing the keys left, top, width and height. Left and top can be negative to
6622
+ * place the window in another screen.
6623
+ * @param parentId The id of the item within the current layout the child window's content will be appended to
6624
+ * when popIn is clicked
6625
+ * @param indexInParent The index at which the child window's contents will be appended to. Default: null
6626
+ */
6627
+ createPopout(
6628
+ configOrContentItem: ItemConfigType | ContentItem,
6629
+ dimensions: {
6630
+ width: number;
6631
+ height: number;
6632
+ left: number;
6633
+ top: number;
6634
+ },
6635
+ parentId?: string,
6636
+ indexInParent?: number
6637
+ ): void;
6638
+
6639
+ /**
6640
+ * Turns a DOM element into a dragSource, meaning that the user can drag the element directly onto the layout
6641
+ * where it turns into a contentItem.
6642
+ * @param element The DOM element that will be turned into a dragSource
6643
+ * @param itemConfiguration An item configuration (can be an entire tree of items)
6644
+ * @return the dragSource that was created. This can be used to remove the
6645
+ * dragSource from the layout later.
6646
+ */
6647
+ createDragSource(element: HTMLElement | JQuery, itemConfiguration: ItemConfigType): DragSource;
6648
+
6649
+ /**
6650
+ * Removes a dragSource from the layout.
6651
+ *
6652
+ * @param dragSource The dragSource to remove
6653
+ */
6654
+ removeDragSource(dragSource: DragSource): void;
6655
+
6656
+ /**
6657
+ * If settings.selectionEnabled is set to true, this allows to select items programmatically.
6658
+ * @param contentItem A ContentItem instance
6659
+ */
6660
+ selectItem(contentItem: ContentItem): void;
6661
+
6662
+ /**
6663
+ * Static method on the GoldenLayout constructor! This method will iterate through a GoldenLayout config object
6664
+ * and replace frequent keys and values with single letter substitutes.
6665
+ * @param config A GoldenLayout configuration object
6666
+ */
6667
+ static minifyConfig(config: any): any;
6668
+
6669
+ /**
6670
+ * Static method on the GoldenLayout constructor! This method will reverse the minifications of minifyConfig.
6671
+ * @param minifiedConfig A minified GoldenLayout configuration object
6672
+ */
6673
+ static unminifyConfig(minifiedConfig: any): any;
6674
+
6675
+ /**
6676
+ * Subscribe to an event
6677
+ * @param eventName The name of the event to describe to
6678
+ * @param callback The function that should be invoked when the event occurs
6679
+ * @param context The value of the this pointer in the callback function
6680
+ */
6681
+ on(eventName: string, callback: Function, context?: any): void;
6682
+
6683
+ /**
6684
+ * Notify listeners of an event and pass arguments along
6685
+ * @param eventName The name of the event to emit
6686
+ */
6687
+ emit(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
6688
+
6689
+ /**
6690
+ * Alias for emit
5951
6691
  */
5952
- isRegistered(hotkey: string): Promise<boolean>;
5953
- }
6692
+ trigger(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
5954
6693
 
5955
- /**
5956
- * @deprecated Renamed to {@link Event}.
5957
- */
5958
- declare type GlobalHotkeyEvent = Event_9;
6694
+ /**
6695
+ * Unsubscribes either all listeners if just an eventName is provided, just a specific callback if invoked with
6696
+ * eventName and callback or just a specific callback with a specific context if invoked with all three
6697
+ * arguments.
6698
+ * @param eventName The name of the event to unsubscribe from
6699
+ * @param callback The function that should be invoked when the event occurs
6700
+ * @param context The value of the this pointer in the callback function
6701
+ */
6702
+ unbind(eventName: string, callback?: Function, context?: any): void;
5959
6703
 
5960
- declare type GlobalHotkeyEvent_2 = Events.GlobalHotkeyEvents.GlobalHotkeyEvent;
6704
+ /**
6705
+ * Alias for unbind
6706
+ */
6707
+ off(eventName: string, callback?: Function, context?: any): void;
5961
6708
 
5962
- declare namespace GlobalHotkeyEvents {
5963
- export {
5964
- BaseEvent_8 as BaseEvent,
5965
- RegisteredEvent,
5966
- UnregisteredEvent,
5967
- Event_9 as Event,
5968
- GlobalHotkeyEvent,
5969
- EventType_6 as EventType,
5970
- GlobalHotkeyEventType,
5971
- Payload_7 as Payload,
5972
- ByType_6 as ByType
5973
- }
6709
+ /**
6710
+ * Internal method that create drop areas on the far edges of window, e.g. far-right of window
6711
+ */
6712
+ _$createRootItemAreas(): void;
5974
6713
  }
5975
6714
 
5976
- /**
5977
- * @deprecated Renamed to {@link EventType}.
5978
- */
5979
- declare type GlobalHotkeyEventType = EventType_6;
5980
-
5981
6715
  /**
5982
6716
  * @interface
5983
6717
  */
@@ -5985,6 +6719,62 @@ declare type GpuInfo = {
5985
6719
  name: string;
5986
6720
  };
5987
6721
 
6722
+ declare interface Header {
6723
+ /**
6724
+ * A reference to the LayoutManager instance
6725
+ */
6726
+ layoutManager: GoldenLayout_2;
6727
+
6728
+ /**
6729
+ * A reference to the Stack this Header belongs to
6730
+ */
6731
+ parent: ContentItem;
6732
+
6733
+ /**
6734
+ * An array of the Tabs within this header
6735
+ */
6736
+ tabs: Tab[];
6737
+
6738
+ /**
6739
+ * The currently selected activeContentItem
6740
+ */
6741
+ activeContentItem: ContentItem;
6742
+
6743
+ /**
6744
+ * The outer (jQuery) DOM element of this Header
6745
+ */
6746
+ element: JQuery;
6747
+
6748
+ /**
6749
+ * The (jQuery) DOM element containing the tabs
6750
+ */
6751
+ tabsContainer: JQuery;
6752
+
6753
+ /**
6754
+ * The (jQuery) DOM element containing the close, maximise and popout button
6755
+ */
6756
+ controlsContainer: JQuery;
6757
+
6758
+ /**
6759
+ * Hides the currently selected contentItem, shows the specified one and highlights its tab.
6760
+ * @param contentItem The content item that will be selected
6761
+ */
6762
+ setActiveContentItem(contentItem: ContentItem): void;
6763
+
6764
+ /**
6765
+ * Creates a new tab and associates it with a content item
6766
+ * @param contentItem The content item the tab will be associated with
6767
+ * @param index A zero based index, specifying the position of the new tab
6768
+ */
6769
+ createTab(contentItem: ContentItem, index?: number): void;
6770
+
6771
+ /**
6772
+ * Finds a tab by its contentItem and removes it
6773
+ * @param contentItem The content item the tab is associated with
6774
+ */
6775
+ removeTab(contentItem: ContentItem): void;
6776
+ }
6777
+
5988
6778
  /**
5989
6779
  * Generated when a View is hidden.
5990
6780
  * @interface
@@ -7210,7 +8000,9 @@ declare class InteropClient extends Base {
7210
8000
  * ```
7211
8001
  *
7212
8002
  *
7213
- * Passing in a context type as the second parameter will cause the handler to only be invoked with that context type.
8003
+ * We are also testing the ability to add a context handler for specific contexts. If you would like to use
8004
+ * this, please make sure you add your context handlers at the top level of your application, on a page that
8005
+ * does not navigate/reload/re-render, to avoid memory leaks. This feature is experimental:
7214
8006
  *
7215
8007
  * ```js
7216
8008
  * function handleInstrumentContext(contextInfo) {
@@ -7597,6 +8389,50 @@ declare class InteropModule extends Base {
7597
8389
  connectSync(name: string, interopConfig?: OpenFin.InteropConfig): InteropClient;
7598
8390
  }
7599
8391
 
8392
+ declare interface ItemConfig {
8393
+ /**
8394
+ * The type of the item. Possible values are 'row', 'column', 'stack', 'component' and 'react-component'.
8395
+ */
8396
+ type: ItemType;
8397
+
8398
+ /**
8399
+ * An array of configurations for items that will be created as children of this item.
8400
+ */
8401
+ content?: ItemConfigType[];
8402
+
8403
+ /**
8404
+ * The width of this item, relative to the other children of its parent in percent
8405
+ */
8406
+ width?: number;
8407
+
8408
+ /**
8409
+ * The height of this item, relative to the other children of its parent in percent
8410
+ */
8411
+ height?: number;
8412
+
8413
+ /**
8414
+ * A String or an Array of Strings. Used to retrieve the item using item.getItemsById()
8415
+ */
8416
+ id?: string | string[];
8417
+
8418
+ /**
8419
+ * Determines if the item is closable. If false, the x on the items tab will be hidden and container.close()
8420
+ * will return false
8421
+ * Default: true
8422
+ */
8423
+ isClosable?: boolean;
8424
+
8425
+ /**
8426
+ * The title of the item as displayed on its tab and on popout windows
8427
+ * Default: componentName or ''
8428
+ */
8429
+ title?: string;
8430
+ }
8431
+
8432
+ declare type ItemConfigType = ItemConfig | ComponentConfig | ReactComponentConfig;
8433
+
8434
+ declare type ItemType = 'row' | 'column' | 'stack' | 'root' | 'component';
8435
+
7600
8436
  /**
7601
8437
  * @interface
7602
8438
  */
@@ -7654,6 +8490,32 @@ declare type JumpListTask = {
7654
8490
  iconIndex?: number;
7655
8491
  };
7656
8492
 
8493
+ declare interface Labels {
8494
+ /**
8495
+ * The tooltip text that appears when hovering over the close icon.
8496
+ * Default: 'close'
8497
+ */
8498
+ close?: string;
8499
+
8500
+ /**
8501
+ * The tooltip text that appears when hovering over the maximise icon.
8502
+ * Default: 'maximise'
8503
+ */
8504
+ maximise?: string;
8505
+
8506
+ /**
8507
+ * The tooltip text that appears when hovering over the minimise icon.
8508
+ * Default: 'minimise'
8509
+ */
8510
+ minimise?: string;
8511
+
8512
+ /**
8513
+ * The tooltip text that appears when hovering over the popout icon.
8514
+ * Default: 'open in new window'
8515
+ */
8516
+ popout?: string;
8517
+ }
8518
+
7657
8519
  /**
7658
8520
  * The LaunchEmitter is an `EventEmitter`. It can listen to app version resolver events.
7659
8521
  *
@@ -8052,6 +8914,32 @@ declare type LayoutComponent = LayoutItemConfig & {
8052
8914
 
8053
8915
  declare type LayoutContent = Array<LayoutItemConfig | LayoutRow | LayoutColumn | LayoutComponent>;
8054
8916
 
8917
+ /**
8918
+ * The base payload for the CustomEvent.detail property for Layout events emitted on the layout container element.
8919
+ */
8920
+ declare type LayoutDOMEvent = Identity_5 & {
8921
+ type: string;
8922
+ topic: 'openfin-DOM-event';
8923
+ tabSelector: string;
8924
+ containerSelector: string;
8925
+ };
8926
+
8927
+ declare type LayoutDOMEvent_2 = LayoutDOMEvents.Event;
8928
+
8929
+ declare namespace LayoutDOMEvents {
8930
+ export {
8931
+ TabCreatedEvent,
8932
+ TabClosedEvent,
8933
+ TabDroppedEvent,
8934
+ ContainerCreatedEvent,
8935
+ LayoutStateChangedEvent,
8936
+ Event_12 as Event,
8937
+ EventType_9 as EventType,
8938
+ Payload_10 as Payload,
8939
+ ByType_9 as ByType
8940
+ }
8941
+ }
8942
+
8055
8943
  declare type LayoutEntitiesClient = ApiClient<LayoutEntitiesController>;
8056
8944
 
8057
8945
  declare type LayoutEntitiesController = {
@@ -8085,7 +8973,7 @@ declare type LayoutEntityDefinition<TLayoutEntityType extends LayoutEntityTypes
8085
8973
  entityId: string;
8086
8974
  };
8087
8975
 
8088
- declare type LayoutEntityTypes = 'column' | 'row' | 'stack';
8976
+ declare type LayoutEntityTypes = Exclude<GoldenLayout.ItemType, 'component' | 'root'>;
8089
8977
 
8090
8978
  /**
8091
8979
  * @interface
@@ -8667,6 +9555,14 @@ declare type LayoutSnapshot = {
8667
9555
  layouts: Record<string, LayoutOptions>;
8668
9556
  };
8669
9557
 
9558
+ /**
9559
+ * Generated when the Layout experiences a state change, for example tabs added/removed.
9560
+ * @interface
9561
+ */
9562
+ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
9563
+ type: 'layout-state-changed';
9564
+ };
9565
+
8670
9566
  /**
8671
9567
  * @interface
8672
9568
  */
@@ -9651,7 +10547,6 @@ declare namespace OpenFin {
9651
10547
  AppVersionError,
9652
10548
  AppVersionRuntimeInfo,
9653
10549
  LaunchEmitter,
9654
- UserAppConfigArgs,
9655
10550
  RvmLaunchOptions,
9656
10551
  ShortCutConfig,
9657
10552
  TerminateExternalRequestType,
@@ -9777,6 +10672,7 @@ declare namespace OpenFin {
9777
10672
  AppVersionCompleteEvent,
9778
10673
  AppVersionRuntimeStatusEvent,
9779
10674
  Events,
10675
+ LayoutDOMEvents,
9780
10676
  BaseEvent_10 as BaseEvent,
9781
10677
  WebContentsEvent_2 as WebContentsEvent,
9782
10678
  SystemEvent_2 as SystemEvent,
@@ -9785,6 +10681,7 @@ declare namespace OpenFin {
9785
10681
  ViewEvent_2 as ViewEvent,
9786
10682
  GlobalHotkeyEvent_2 as GlobalHotkeyEvent,
9787
10683
  FrameEvent_2 as FrameEvent,
10684
+ LayoutDOMEvent_2 as LayoutDOMEvent,
9788
10685
  PlatformEvent_2 as PlatformEvent,
9789
10686
  ExternalApplicationEvent_2 as ExternalApplicationEvent,
9790
10687
  ContextMenuOptions,
@@ -9857,6 +10754,15 @@ declare type Payload<Success extends boolean = boolean, Data = any> = {
9857
10754
  error?: Success extends false ? ErrorPlainObject | undefined : never;
9858
10755
  };
9859
10756
 
10757
+ /**
10758
+ * Extracts a single event type matching the given key from the Layout DOM {@link Event} union.
10759
+ *
10760
+ * @typeParam Type String key specifying the event to extract
10761
+ */
10762
+ declare type Payload_10<Type extends EventType_9> = Extract<Event_12, {
10763
+ type: Type;
10764
+ }>;
10765
+
9860
10766
  /**
9861
10767
  * Extracts a single event type matching the given key from the View {@link Event} union.
9862
10768
  *
@@ -9964,6 +10870,14 @@ declare type PerformanceReportEvent = Performance & BaseEvent_5 & {
9964
10870
 
9965
10871
  /**
9966
10872
  * @interface
10873
+ *
10874
+ * Governs access to OpenFin APIs. Property paths of this literal match call
10875
+ * paths for OpenFin API functions (e.g. `System.launchExternalProcess`), and can
10876
+ * take a value of `true`, `false`, or in some cases an object literal for more-complicated
10877
+ * semantics.
10878
+ *
10879
+ * For a list of APIs that are secure by default (and thus must be granted access via
10880
+ * `permissions`), see https://developers.openfin.co/of-docs/docs/api-security#secured-apis.
9967
10881
  */
9968
10882
  declare type Permissions_2 = {
9969
10883
  Application?: Partial<ApplicationPermissions>;
@@ -12262,6 +13176,18 @@ declare type QueryPermissionResult = {
12262
13176
  rawValue?: unknown;
12263
13177
  };
12264
13178
 
13179
+ declare interface ReactComponentConfig extends ItemConfig {
13180
+ /**
13181
+ * The name of the component as specified in layout.registerComponent. Mandatory if type is 'react-component'
13182
+ */
13183
+ component: string;
13184
+
13185
+ /**
13186
+ * Properties that will be passed to the component and accessible using this.props.
13187
+ */
13188
+ props?: any;
13189
+ }
13190
+
12265
13191
  /**
12266
13192
  * @interface
12267
13193
  */
@@ -12524,7 +13450,7 @@ declare type RunRequestedEvent = OpenFin.ApplicationEvents.RunRequestedEvent;
12524
13450
  declare type RunRequestedEvent_2 = BaseEvents.IdentityEvent & {
12525
13451
  topic: 'application';
12526
13452
  type: 'run-requested';
12527
- userAppConfigArgs: OpenFin.UserAppConfigArgs;
13453
+ userAppConfigArgs: Record<string, any>;
12528
13454
  manifest: OpenFin.Manifest;
12529
13455
  };
12530
13456
 
@@ -12639,7 +13565,7 @@ declare type RvmLaunchOptions = {
12639
13565
  * True if no UI when launching
12640
13566
  */
12641
13567
  noUi?: boolean;
12642
- userAppConfigArgs?: UserAppConfigArgs;
13568
+ userAppConfigArgs?: object;
12643
13569
  /**
12644
13570
  * Timeout in seconds until RVM launch request expires.
12645
13571
  */
@@ -12738,6 +13664,97 @@ declare type SessionContextGroup = {
12738
13664
  }>;
12739
13665
  };
12740
13666
 
13667
+ declare interface Settings {
13668
+ preventSplitterResize?: boolean;
13669
+
13670
+ newTabButton?: {
13671
+ url?: string;
13672
+ };
13673
+
13674
+ /**
13675
+ * If true, tabs can't be dragged into the window.
13676
+ * Default: false
13677
+ */
13678
+ preventDragIn?: boolean;
13679
+
13680
+ /**
13681
+ * If true, tabs can't be dragged out of the window.
13682
+ * Default: false
13683
+ */
13684
+ preventDragOut?: boolean;
13685
+
13686
+ /**
13687
+ * If true, stack headers are the only areas where tabs can be dropped.
13688
+ * Default: false
13689
+ */
13690
+ constrainDragToHeaders?: boolean;
13691
+ /**
13692
+ * Turns headers on or off. If false, the layout will be displayed with splitters only.
13693
+ * Default: true
13694
+ */
13695
+ hasHeaders?: boolean;
13696
+
13697
+ /**
13698
+ * (Unused in Openfin Platform) Constrains the area in which items can be dragged to the layout's container. Will be set to false
13699
+ * automatically when layout.createDragSource() is called.
13700
+ * Default: true
13701
+ */
13702
+ constrainDragToContainer?: boolean;
13703
+
13704
+ /**
13705
+ * If true, the user can re-arrange the layout by dragging items by their tabs to the desired location.
13706
+ * Default: true
13707
+ */
13708
+ reorderEnabled?: boolean;
13709
+
13710
+ /**
13711
+ * If true, the user can select items by clicking on their header. This sets the value of layout.selectedItem to
13712
+ * the clicked item, highlights its header and the layout emits a 'selectionChanged' event.
13713
+ * Default: false
13714
+ */
13715
+ selectionEnabled?: boolean;
13716
+
13717
+ /**
13718
+ * Decides what will be opened in a new window if the user clicks the popout icon. If true the entire stack will
13719
+ * be transferred to the new window, if false only the active component will be opened.
13720
+ * Default: false
13721
+ */
13722
+ popoutWholeStack?: boolean;
13723
+
13724
+ /**
13725
+ * Specifies if an error is thrown when a popout is blocked by the browser (e.g. by opening it programmatically).
13726
+ * If false, the popout call will fail silently.
13727
+ * Default: true
13728
+ */
13729
+ blockedPopoutsThrowError?: boolean;
13730
+
13731
+ /**
13732
+ * Specifies if all popouts should be closed when the page that created them is closed. Popouts don't have a
13733
+ * strong dependency on their parent and can exist on their own, but can be quite annoying to close by hand. In
13734
+ * addition, any changes made to popouts won't be stored after the parent is closed.
13735
+ * Default: true
13736
+ */
13737
+ closePopoutsOnUnload?: boolean;
13738
+
13739
+ /**
13740
+ * Specifies if the popout icon should be displayed in the header-bar.
13741
+ * Default: true
13742
+ */
13743
+ showPopoutIcon?: boolean;
13744
+
13745
+ /**
13746
+ * Specifies if the maximise icon should be displayed in the header-bar.
13747
+ * Default: true
13748
+ */
13749
+ showMaximiseIcon?: boolean;
13750
+
13751
+ /**
13752
+ * Specifies if the close icon should be displayed in the header-bar.
13753
+ * Default: true
13754
+ */
13755
+ showCloseIcon?: boolean;
13756
+ }
13757
+
12741
13758
  /**
12742
13759
  * @interface
12743
13760
  */
@@ -14640,6 +15657,85 @@ declare type SystemShutdownHandler = (shutdownEvent: {
14640
15657
  proceed: () => void;
14641
15658
  }) => void;
14642
15659
 
15660
+ declare interface Tab {
15661
+ _dragListener: TabDragListener;
15662
+
15663
+ /**
15664
+ * True if this tab is the selected tab
15665
+ */
15666
+ isActive: boolean;
15667
+
15668
+ /**
15669
+ * A reference to the header this tab is a child of
15670
+ */
15671
+ header: Header;
15672
+
15673
+ /**
15674
+ * A reference to the content item this tab relates to
15675
+ */
15676
+ contentItem: ContentItem;
15677
+
15678
+ /**
15679
+ * The tabs outer (jQuery) DOM element
15680
+ */
15681
+ element: JQuery;
15682
+
15683
+ /**
15684
+ * The (jQuery) DOM element containing the title
15685
+ */
15686
+ titleElement: JQuery;
15687
+
15688
+ /**
15689
+ * The (jQuery) DOM element that closes the tab
15690
+ */
15691
+ closeElement: JQuery;
15692
+
15693
+ /**
15694
+ * Sets the tab's title. Does not affect the contentItem's title!
15695
+ * @param title The new title
15696
+ */
15697
+ setTitle(title: string): void;
15698
+
15699
+ /**
15700
+ * Sets this tab's active state. To programmatically switch tabs, use header.setActiveContentItem( item ) instead.
15701
+ * @param isActive Whether the tab is active
15702
+ */
15703
+ setActive(isActive: boolean): void;
15704
+ }
15705
+
15706
+ /**
15707
+ * Generated when a Layout Tab Component was closed.
15708
+ * @interface
15709
+ */
15710
+ declare type TabClosedEvent = LayoutDOMEvent & {
15711
+ type: 'tab-closed';
15712
+ url: string;
15713
+ };
15714
+
15715
+ /**
15716
+ * Generated when a Layout Tab Component was created.
15717
+ * @interface
15718
+ */
15719
+ declare type TabCreatedEvent = LayoutDOMEvent & {
15720
+ type: 'tab-created';
15721
+ };
15722
+
15723
+ declare interface TabDragListener extends EventEmitter_2 {
15724
+ /**
15725
+ * A reference to the content item this tab relates to
15726
+ */
15727
+ contentItem: ContentItem;
15728
+ }
15729
+
15730
+ /**
15731
+ * Generated when a Layout Tab Component was dropped.
15732
+ * @interface
15733
+ */
15734
+ declare type TabDroppedEvent = LayoutDOMEvent & {
15735
+ type: 'tab-dropped';
15736
+ url: string;
15737
+ };
15738
+
14643
15739
  /**
14644
15740
  * A TabStack is used to manage the state of a stack of tabs within an OpenFin Layout.
14645
15741
  */
@@ -15006,11 +16102,6 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
15006
16102
  httpStatusText: string;
15007
16103
  });
15008
16104
 
15009
- /**
15010
- * @interface
15011
- */
15012
- declare type UserAppConfigArgs = Record<string, string | string[]>;
15013
-
15014
16105
  /**
15015
16106
  * A general user bounds change event without event type.
15016
16107
  * @interface
@@ -18443,32 +19534,6 @@ declare type WithPositioningOptions<T extends {} = {}> = T & {
18443
19534
  positioningOptions?: OpenFin.PositioningOptions;
18444
19535
  };
18445
19536
 
18446
- declare type WithUserAppConfigArgs = {
18447
- /**
18448
- * Represents the key-value pairs for the parameters passed into any fin:// or fins:// link
18449
- * that launches this application.
18450
- *
18451
- * @remarks
18452
- * In the link, user defined parameters are separated by the `$$` delimeter, for example:
18453
- * `fins://path.to/app/manifest.json?$$use-last-configuration=true`
18454
- *
18455
- * Results in the following object:
18456
- * ```json
18457
- * {
18458
- * "use-last-configuration": true"
18459
- * }
18460
- * ```
18461
- *
18462
- * These args can be accessed via the {@link ApplicationInfo.initialOptions} object:
18463
- * ```typescript
18464
- * const appInfo = await fin.Application.getCurrentSync().getInfo();
18465
- * const { userAppConfigArgs } = appInfo.initialOptions;
18466
- * console.log(userAppConfigArgs['use-last-configuration']); // 'true'
18467
- * ```
18468
- */
18469
- userAppConfigArgs?: UserAppConfigArgs;
18470
- };
18471
-
18472
19537
  /**
18473
19538
  * @internal
18474
19539
  * @interface