@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.
@@ -934,7 +934,7 @@ declare type ApplicationIdentity_2 = {
934
934
  * @interface
935
935
  */
936
936
  declare type ApplicationInfo = {
937
- initialOptions: WithUserAppConfigArgs & (ApplicationCreationOptions | PlatformOptions);
937
+ initialOptions: ApplicationCreationOptions | PlatformOptions;
938
938
  launchMode: string;
939
939
  manifest: Manifest & {
940
940
  [key: string]: any;
@@ -1161,14 +1161,9 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1161
1161
  */
1162
1162
  mainWindowOptions: WindowCreationOptions;
1163
1163
  /**
1164
- * The name of the application.
1164
+ * The name of the application (and the application's main window).
1165
1165
  *
1166
- * @remarks
1167
- * This property is only used for naming the application logging folder, which will be sanitized to remove
1168
- * any special characters, spaces or international characters. Otherwise it's not used and it will be overwritten
1169
- * during startup with the UUID of the application.
1170
- *
1171
- * This property will be deprecated in the future.
1166
+ * If provided, _must_ match `uuid`.
1172
1167
  */
1173
1168
  name: string;
1174
1169
  /**
@@ -1198,7 +1193,9 @@ declare type ApplicationOptions = LegacyWinOptionsInAppOptions & {
1198
1193
  url: string;
1199
1194
  /**
1200
1195
  * The _Unique Universal Identifier_ (UUID) of the application, unique within the set of all other applications
1201
- * running in the OpenFin Runtime.
1196
+ * running in the OpenFin Runtime.
1197
+ *
1198
+ * Note that `name` and `uuid` must match.
1202
1199
  */
1203
1200
  uuid: string;
1204
1201
  /**
@@ -1907,6 +1904,48 @@ declare type BrowserContentCreationRule = BaseContentCreationRule & {
1907
1904
  behavior: 'browser';
1908
1905
  };
1909
1906
 
1907
+ declare interface BrowserWindow {
1908
+ /**
1909
+ * True if the window has been opened and its GoldenLayout instance initialised.
1910
+ */
1911
+ isInitialised: boolean;
1912
+
1913
+ /**
1914
+ * Creates a window configuration object from the Popout.
1915
+ */
1916
+ toConfig(): {
1917
+ dimensions: {
1918
+ width: number;
1919
+ height: number;
1920
+ left: number;
1921
+ top: number;
1922
+ };
1923
+ content: Config;
1924
+ parentId: string;
1925
+ indexInParent: number;
1926
+ };
1927
+
1928
+ /**
1929
+ * Returns the GoldenLayout instance from the child window
1930
+ */
1931
+ getGlInstance(): GoldenLayout_2;
1932
+
1933
+ /**
1934
+ * Returns the native Window object
1935
+ */
1936
+ getWindow(): Window;
1937
+
1938
+ /**
1939
+ * Closes the popout
1940
+ */
1941
+ close(): void;
1942
+
1943
+ /**
1944
+ * Returns the popout to its original position as specified in parentId and indexInParent
1945
+ */
1946
+ popIn(): void;
1947
+ }
1948
+
1910
1949
  /**
1911
1950
  * Extracts a single event type matching the given key from the View {@link Event} union.
1912
1951
  *
@@ -1979,6 +2018,15 @@ declare type ByType_7<Type extends EventType_7> = Payload_8<Type>;
1979
2018
  */
1980
2019
  declare type ByType_8<Type extends EventType_8> = Payload_9<Type>;
1981
2020
 
2021
+ /**
2022
+ * Extracts a single event type matching the given key from the Layout DOM {@link Event} union.
2023
+ *
2024
+ * Alias for {@link Payload}, which may read better in source.
2025
+ *
2026
+ * @typeParam Type String key specifying the event to extract
2027
+ */
2028
+ declare type ByType_9<Type extends EventType_9> = Payload_10<Type>;
2029
+
1982
2030
  /**
1983
2031
  * Configuration for page capture.
1984
2032
  *
@@ -3278,6 +3326,31 @@ declare class ColumnOrRow extends LayoutNode {
3278
3326
  getContent: () => Promise<(ColumnOrRow | TabStack)[]>;
3279
3327
  }
3280
3328
 
3329
+ declare interface ComponentConfig extends ItemConfig {
3330
+ /**
3331
+ * The name of the component as specified in layout.registerComponent. Mandatory if type is 'component'.
3332
+ */
3333
+ componentName: string;
3334
+
3335
+ /**
3336
+ * A serialisable object. Will be passed to the component constructor function and will be the value returned by
3337
+ * container.getState().
3338
+ */
3339
+ componentState?: any;
3340
+ }
3341
+
3342
+ declare interface Config {
3343
+ settings?: Settings;
3344
+ dimensions?: Dimensions;
3345
+ labels?: Labels;
3346
+ content?: ItemConfigType[];
3347
+ /**
3348
+ * (Only on layout config object)
3349
+ * Id of the currently maximised content item
3350
+ */
3351
+ maximisedItemId?: string;
3352
+ }
3353
+
3281
3354
  declare type ConfigWithRuntime = BaseConfig & {
3282
3355
  runtime: RuntimeConfig;
3283
3356
  };
@@ -3655,6 +3728,111 @@ declare type ConstWindowOptions = {
3655
3728
  inheritance?: Partial<InheritableOptions>;
3656
3729
  };
3657
3730
 
3731
+ declare interface Container extends EventEmitter_2 {
3732
+ /**
3733
+ * The current width of the container in pixel
3734
+ */
3735
+ width: number;
3736
+
3737
+ /**
3738
+ * The current height of the container in pixel
3739
+ */
3740
+ height: number;
3741
+
3742
+ /**
3743
+ * A reference to the component-item that controls this container
3744
+ */
3745
+ parent: ContentItem;
3746
+
3747
+ /**
3748
+ * A reference to the tab that controls this container. Will initially be null
3749
+ * (and populated once a tab event has been fired).
3750
+ */
3751
+ tab: Tab;
3752
+
3753
+ /**
3754
+ * The current title of the container
3755
+ */
3756
+ title: string;
3757
+
3758
+ /*
3759
+ * A reference to the GoldenLayout instance this container belongs to
3760
+ */
3761
+ layoutManager: GoldenLayout_2;
3762
+
3763
+ /**
3764
+ * True if the item is currently hidden
3765
+ */
3766
+ isHidden: boolean;
3767
+
3768
+ /**
3769
+ * Overwrites the components state with the provided value. To only change parts of the componentState see
3770
+ * extendState below. This is the main mechanism for saving the state of a component. This state will be the
3771
+ * value of componentState when layout.toConfig() is called and will be passed back to the component's
3772
+ * constructor function. It will also be used when the component is opened in a new window.
3773
+ * @param state A serialisable object
3774
+ */
3775
+ setState(state: any): void;
3776
+
3777
+ /**
3778
+ * The same as setState but does not emit 'stateChanged' event
3779
+ * @param {serialisable} state
3780
+ */
3781
+ setStateSkipEvent(state: any): void;
3782
+
3783
+ /**
3784
+ * This is similar to setState, but merges the provided state into the current one, rather than overwriting it.
3785
+ * @param state A serialisable object
3786
+ */
3787
+ extendState(state: any): void;
3788
+
3789
+ /**
3790
+ * Returns the current state.
3791
+ */
3792
+ getState(): any;
3793
+
3794
+ /**
3795
+ * Returns the container's inner element as a jQuery element
3796
+ */
3797
+ getElement(): JQuery;
3798
+
3799
+ /**
3800
+ * hides the container or returns false if hiding it is not possible
3801
+ */
3802
+ hide(): boolean;
3803
+
3804
+ /**
3805
+ * shows the container or returns false if showing it is not possible
3806
+ */
3807
+ show(): boolean;
3808
+
3809
+ /**
3810
+ * Sets the container to the specified size or returns false if that's not possible
3811
+ * @param width the new width in pixel
3812
+ * @param height the new height in pixel
3813
+ */
3814
+ setSize(width: number, height: number): boolean;
3815
+
3816
+ /**
3817
+ * Sets the item's title to the provided value. Triggers titleChanged and stateChanged events
3818
+ * @param title the new title
3819
+ */
3820
+ setTitle(title: string): void;
3821
+
3822
+ /**
3823
+ * Closes the container or returns false if that is not possible
3824
+ */
3825
+ close(): boolean;
3826
+ }
3827
+
3828
+ /**
3829
+ * Generated when a Layout Container Component was created.
3830
+ * @interface
3831
+ */
3832
+ declare type ContainerCreatedEvent = LayoutDOMEvent & {
3833
+ type: 'container-created';
3834
+ };
3835
+
3658
3836
  /**
3659
3837
  * Generated when content navigation or redirection is blocked by {@link OpenFin.DomainSettings}.
3660
3838
  */
@@ -3728,6 +3906,218 @@ declare type ContentCreationRulesEvent = NamedEvent & {
3728
3906
  disposition: string;
3729
3907
  };
3730
3908
 
3909
+ declare interface ContentItem extends EventEmitter_2 {
3910
+ instance: any;
3911
+ header: any;
3912
+ _splitter: any;
3913
+ /**
3914
+ * This items configuration in its current state
3915
+ */
3916
+ config: ItemConfigType;
3917
+
3918
+ /**
3919
+ * The type of the item. Can be row, column, stack, component or root
3920
+ */
3921
+ type: ItemType;
3922
+
3923
+ /**
3924
+ * An array of items that are children of this item
3925
+ */
3926
+ contentItems: ContentItem[];
3927
+
3928
+ container: Container;
3929
+ /**
3930
+ * The item that is this item's parent (or null if the item is root)
3931
+ */
3932
+ parent: ContentItem;
3933
+
3934
+ /**
3935
+ * A String or array of identifiers if provided in the configuration
3936
+ */
3937
+ id: string;
3938
+
3939
+ /**
3940
+ * True if the item had been initialised
3941
+ */
3942
+ isInitialised: boolean;
3943
+
3944
+ /**
3945
+ * True if the item is maximised
3946
+ */
3947
+ isMaximised: boolean;
3948
+
3949
+ /**
3950
+ * True if the item is the layout's root item
3951
+ */
3952
+ isRoot: boolean;
3953
+
3954
+ /**
3955
+ * True if the item is a row
3956
+ */
3957
+ isRow: boolean;
3958
+
3959
+ /**
3960
+ * True if the item is a column
3961
+ */
3962
+ isColumn: boolean;
3963
+
3964
+ /**
3965
+ * True if the item is a stack
3966
+ */
3967
+ isStack: boolean;
3968
+
3969
+ /**
3970
+ * True if the item is a component
3971
+ */
3972
+ isComponent: boolean;
3973
+
3974
+ /**
3975
+ * A reference to the layoutManager that controls this item
3976
+ */
3977
+ layoutManager: any;
3978
+
3979
+ /**
3980
+ * The item's outer element
3981
+ */
3982
+ element: JQuery;
3983
+
3984
+ /**
3985
+ * The item's inner element. Can be the same as the outer element.
3986
+ */
3987
+ childElementContainer: Container;
3988
+
3989
+ /**
3990
+ * Adds an item as a child to this item. If the item is already a part of a layout it will be removed
3991
+ * from its original position before adding it to this item.
3992
+ * @param itemOrItemConfig A content item (or tree of content items) or an ItemConfiguration to create the item from
3993
+ * @param index last index An optional index that determines at which position the new item should be added. Default: last index.
3994
+ */
3995
+ addChild(itemOrItemConfig: ContentItem | ItemConfigType, index?: number): void;
3996
+
3997
+ /**
3998
+ * Destroys the item and all it's children
3999
+ * @param contentItem The contentItem that should be removed
4000
+ * @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.
4001
+ */
4002
+ removeChild(contentItem: ContentItem, keepChild?: boolean): void;
4003
+
4004
+ /**
4005
+ * The contentItem that should be removed
4006
+ * @param oldChild ContentItem The contentItem that should be removed
4007
+ * @param newChild A content item (or tree of content items) or an ItemConfiguration to create the item from
4008
+ */
4009
+ replaceChild(oldChild: ContentItem, newChild: ContentItem | ItemConfigType): void;
4010
+
4011
+ /**
4012
+ * Updates the items size. To actually assign a new size from within a component, use container.setSize( width, height )
4013
+ */
4014
+ setSize(): void;
4015
+
4016
+ /**
4017
+ * Sets the item's title to the provided value. Triggers titleChanged and stateChanged events
4018
+ * @param title the new title
4019
+ */
4020
+ setTitle(title: string): void;
4021
+
4022
+ /**
4023
+ * A powerful, yet admittedly confusing method to recursively call methods on items in a tree. Usually you wouldn't need
4024
+ * to use it directly, but it's used internally to setSizes, destroy parts of the item tree etc.
4025
+ * @param functionName The name of the method to invoke
4026
+ * @param functionArguments An array of arguments to pass to every function
4027
+ * @param bottomUp If true, the method is invoked on the lowest parts of the tree first and then bubbles upwards. Default: false
4028
+ * @param skipSelf If true, the method will only be invoked on the item's children, but not on the item itself. Default: false
4029
+ */
4030
+ callDownwards(functionName: string, functionArguments?: any[], bottomUp?: boolean, skipSelf?: boolean): void;
4031
+
4032
+ /**
4033
+ * 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.
4034
+ */
4035
+ emitBubblingEvent(name: string): void;
4036
+
4037
+ /**
4038
+ * Convenience method for item.parent.removeChild( item )
4039
+ */
4040
+ remove(): void;
4041
+
4042
+ /**
4043
+ * Removes the item from its current position in the layout and opens it in a window
4044
+ */
4045
+ popout(): BrowserWindow;
4046
+
4047
+ /**
4048
+ * Maximises the item or minimises it if it's already maximised
4049
+ */
4050
+ toggleMaximise(): void;
4051
+
4052
+ /**
4053
+ * Selects the item. Only relevant if settings.selectionEnabled is set to true
4054
+ */
4055
+ select(): void;
4056
+
4057
+ /**
4058
+ * Unselects the item. Only relevant if settings.selectionEnabled is set to true
4059
+ */
4060
+ deselect(): void;
4061
+
4062
+ /**
4063
+ * Returns true if the item has the specified id or false if not
4064
+ * @param id An id to check for
4065
+ */
4066
+ hasId(id: string): boolean;
4067
+
4068
+ /**
4069
+ * Only Stacks have this method! It's the programmatical equivalent of clicking a tab.
4070
+ * @param contentItem The new active content item
4071
+ * @param preventFocus [OpenFin Custom] Indicates to openfin that the view should not be focused when activated.
4072
+ */
4073
+ // (CORE-198)[../docs/golden-layout-changelog.md#CORE-198 stack.setActiveView]
4074
+ setActiveContentItem(contentItem: ContentItem, preventFocus?: boolean): void;
4075
+
4076
+ /**
4077
+ * Only Stacks have this method! Returns the currently selected contentItem.
4078
+ */
4079
+ getActiveContentItem(): ContentItem;
4080
+
4081
+ /**
4082
+ * Adds an id to an item or does nothing if the id is already present
4083
+ * @param id The id to be added
4084
+ */
4085
+ addId(id: string): void;
4086
+
4087
+ /**
4088
+ * Removes an id from an item or throws an error if the id couldn't be found
4089
+ * @param id The id to be removed
4090
+ */
4091
+ removeId(id: string): void;
4092
+
4093
+ /**
4094
+ * Calls filterFunction recursively for every item in the tree. If the function returns true the item is added to the resulting array
4095
+ * @param filterFunction A function that determines whether an item matches certain criteria
4096
+ */
4097
+ getItemsByFilter(filterFunction: (contentItem: ContentItem) => boolean): ContentItem[];
4098
+
4099
+ /**
4100
+ * Returns all items with the specified id.
4101
+ * @param id An id specified in the itemConfig
4102
+ */
4103
+ getItemsById(id: string | string[]): ContentItem[];
4104
+
4105
+ /**
4106
+ * Returns all items with the specified type
4107
+ * @param type 'row', 'column', 'stack', 'component' or 'root'
4108
+ */
4109
+ getItemsByType(type: string): ContentItem[];
4110
+
4111
+ /**
4112
+ * Returns all instances of the component with the specified componentName
4113
+ * @param componentName a componentName as specified in the itemConfig
4114
+ */
4115
+ getComponentsByName(componentName: string): any;
4116
+
4117
+ _contentAreaDimensions: any;
4118
+ _$getArea: () => any;
4119
+ }
4120
+
3731
4121
  /**
3732
4122
  * Restrict navigation to URLs that match an allowed pattern.
3733
4123
  * In the lack of an allowlist, navigation to URLs that match a denied pattern would be prohibited.
@@ -4155,6 +4545,46 @@ declare type DidFinishLoadEvent = NamedEvent & {
4155
4545
  type: 'did-finish-load';
4156
4546
  };
4157
4547
 
4548
+ declare interface Dimensions {
4549
+ /**
4550
+ * The width of the borders between the layout items in pixel. Please note: The actual draggable area is wider
4551
+ * than the visible one, making it safe to set this to small values without affecting usability.
4552
+ * Default: 5
4553
+ */
4554
+ borderWidth?: number;
4555
+
4556
+ /**
4557
+ * The minimum height an item can be resized to (in pixel).
4558
+ * Default: 10
4559
+ */
4560
+ minItemHeight?: number;
4561
+
4562
+ /**
4563
+ * The minimum width an item can be resized to (in pixel).
4564
+ * Default: 10
4565
+ */
4566
+ minItemWidth?: number;
4567
+
4568
+ /**
4569
+ * The height of the header elements in pixel. This can be changed, but your theme's header css needs to be
4570
+ * adjusted accordingly.
4571
+ * Default: 20
4572
+ */
4573
+ headerHeight?: number;
4574
+
4575
+ /**
4576
+ * The width of the element that appears when an item is dragged (in pixel).
4577
+ * Default: 300
4578
+ */
4579
+ dragProxyWidth?: number;
4580
+
4581
+ /**
4582
+ * The height of the element that appears when an item is dragged (in pixel).
4583
+ * Default: 200
4584
+ */
4585
+ dragProxyHeight?: number;
4586
+ }
4587
+
4158
4588
  /**
4159
4589
  * @interface
4160
4590
  */
@@ -4247,7 +4677,14 @@ declare type DomainApiSettings = {
4247
4677
  *
4248
4678
  * @defaultValue 'global'
4249
4679
  */
4250
- fin: InjectionType;
4680
+ fin?: InjectionType;
4681
+ /**
4682
+ * API permissions for domains matched to the current {@link DomainSettingsRule}.
4683
+ *
4684
+ * @remarks If an application manifest includes this property in {@link DomainSettings.default},
4685
+ * then {@link WindowOptions.permissions} and {@link ViewOptions.permissions} will be **ignored**.
4686
+ */
4687
+ permissions?: Permissions_2;
4251
4688
  };
4252
4689
 
4253
4690
  /**
@@ -4404,6 +4841,8 @@ declare type Dpi = {
4404
4841
  vertical?: number;
4405
4842
  };
4406
4843
 
4844
+ declare interface DragSource {}
4845
+
4407
4846
  /**
4408
4847
  * Generated when a window has been embedded.
4409
4848
  * @interface
@@ -4579,6 +5018,7 @@ declare type EntityTypeHelpers<T extends EntityType_2> = T extends 'view' ? {
4579
5018
  } : never;
4580
5019
 
4581
5020
  declare interface Environment {
5021
+ layoutAllowedInContext(fin: OpenFin.Fin<OpenFin.EntityType>): boolean;
4582
5022
  initLayoutManager(fin: OpenFin.Fin<OpenFin.EntityType>, wire: Transport, options: OpenFin.InitLayoutOptions): Promise<OpenFin.LayoutManager<OpenFin.LayoutSnapshot>>;
4583
5023
  applyLayoutSnapshot(fin: OpenFin.Fin<OpenFin.EntityType>, layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.InitLayoutOptions): Promise<void>;
4584
5024
  createLayout(layoutManager: OpenFin.LayoutManager<OpenFin.LayoutSnapshot>, options: OpenFin.CreateLayoutOptions): Promise<void>;
@@ -4641,6 +5081,12 @@ declare type Event_10 = ApplicationEvents.Event | ApiReadyEvent | SnapshotApplie
4641
5081
  */
4642
5082
  declare type Event_11 = ExcludeRequested<WindowEvents.PropagatedEvent<'system'>> | ExcludeRequested<ViewEvents.PropagatedEvent<'system'>> | ExcludeRequested<ApplicationEvents.PropagatedEvent<'system'>> | ApplicationCreatedEvent | DesktopIconClickedEvent | IdleStateChangedEvent | MonitorInfoChangedEvent | SessionChangedEvent | AppVersionEventWithId | SystemShutdownEvent;
4643
5083
 
5084
+ /**
5085
+ * [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.
5086
+ * Events are discriminated by {@link LayoutDOMEvent.type}.
5087
+ */
5088
+ declare type Event_12 = TabCreatedEvent | TabClosedEvent | TabDroppedEvent | ContainerCreatedEvent | LayoutStateChangedEvent;
5089
+
4644
5090
  /**
4645
5091
  * [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
4646
5092
  * discriminated by {@link BaseEvents.BaseEvent.type | their type}. Event payloads unique to `Channel` can be found
@@ -4709,6 +5155,43 @@ declare class EventAggregator extends EmitterMap {
4709
5155
  dispatchEvent: (message: Message<any>) => boolean;
4710
5156
  }
4711
5157
 
5158
+ declare interface EventEmitter_2 {
5159
+ [x: string]: any;
5160
+ /**
5161
+ * Subscribe to an event
5162
+ * @param eventName The name of the event to describe to
5163
+ * @param callback The function that should be invoked when the event occurs
5164
+ * @param context The value of the this pointer in the callback function
5165
+ */
5166
+ on(eventName: string, callback: Function, context?: any): void;
5167
+
5168
+ /**
5169
+ * Notify listeners of an event and pass arguments along
5170
+ * @param eventName The name of the event to emit
5171
+ */
5172
+ emit(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
5173
+
5174
+ /**
5175
+ * Alias for emit
5176
+ */
5177
+ trigger(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
5178
+
5179
+ /**
5180
+ * Unsubscribes either all listeners if just an eventName is provided, just a specific callback if invoked with
5181
+ * eventName and callback or just a specific callback with a specific context if invoked with all three
5182
+ * arguments.
5183
+ * @param eventName The name of the event to unsubscribe from
5184
+ * @param callback The function that should be invoked when the event occurs
5185
+ * @param context The value of the this pointer in the callback function
5186
+ */
5187
+ unbind(eventName: string, callback?: Function, context?: any): void;
5188
+
5189
+ /**
5190
+ * Alias for unbind
5191
+ */
5192
+ off(eventName: string, callback?: Function, context?: any): void;
5193
+ }
5194
+
4712
5195
  /**
4713
5196
  * Handler for an event on an EventEmitter.
4714
5197
  * @remarks Selects the correct type for the event
@@ -4773,6 +5256,11 @@ declare type EventType_7 = Event_10['type'];
4773
5256
  */
4774
5257
  declare type EventType_8 = Event_11['type'];
4775
5258
 
5259
+ /**
5260
+ * Union of possible `type` values for a {@link LayoutDOMEvent}.
5261
+ */
5262
+ declare type EventType_9 = Event_12['type'];
5263
+
4776
5264
  /* Excluded from this release type: EventWithId */
4777
5265
 
4778
5266
  /* Excluded from this release type: ExcludeRequested */
@@ -5279,7 +5767,6 @@ declare class FDC3ModuleBase<ChannelType extends v1_2.Channel | v2_0.Channel> {
5279
5767
  * @tutorial fdc3.open
5280
5768
  */
5281
5769
  protected _open(app: v1_2.TargetApp, context?: v1_2.Context): Promise<v2_0.AppIdentifier>;
5282
- protected _getChannels(): Promise<ChannelType[]>;
5283
5770
  /**
5284
5771
  * Returns a Channel object for the specified channel, creating it as an App Channel if it does not exist.
5285
5772
  * @param channelId
@@ -5842,51 +6329,298 @@ declare class GlobalHotkey extends EmitterBase<OpenFin.GlobalHotkeyEvent> {
5842
6329
  */
5843
6330
  unregisterAll(): Promise<void>;
5844
6331
  /**
5845
- * Checks if a given hotkey has been registered by an application within the current runtime.
5846
- * @param hotkey a hotkey string
5847
- *
5848
- * @example
5849
- * ```js
5850
- * const hotkey = 'CommandOrControl+X';
5851
- *
5852
- * fin.GlobalHotkey.isRegistered(hotkey)
5853
- * .then((registered) => {
5854
- * console.log(`hotkey ${hotkey} is registered ? ${registered}`);
5855
- * })
5856
- * .catch(err => {
5857
- * console.log('Error unregistering the hotkey', err);
5858
- * });
5859
- * ```
6332
+ * Checks if a given hotkey has been registered by an application within the current runtime.
6333
+ * @param hotkey a hotkey string
6334
+ *
6335
+ * @example
6336
+ * ```js
6337
+ * const hotkey = 'CommandOrControl+X';
6338
+ *
6339
+ * fin.GlobalHotkey.isRegistered(hotkey)
6340
+ * .then((registered) => {
6341
+ * console.log(`hotkey ${hotkey} is registered ? ${registered}`);
6342
+ * })
6343
+ * .catch(err => {
6344
+ * console.log('Error unregistering the hotkey', err);
6345
+ * });
6346
+ * ```
6347
+ */
6348
+ isRegistered(hotkey: string): Promise<boolean>;
6349
+ }
6350
+
6351
+ /**
6352
+ * @deprecated Renamed to {@link Event}.
6353
+ */
6354
+ declare type GlobalHotkeyEvent = Event_9;
6355
+
6356
+ declare type GlobalHotkeyEvent_2 = Events.GlobalHotkeyEvents.GlobalHotkeyEvent;
6357
+
6358
+ declare namespace GlobalHotkeyEvents {
6359
+ export {
6360
+ BaseEvent_8 as BaseEvent,
6361
+ RegisteredEvent,
6362
+ UnregisteredEvent,
6363
+ Event_9 as Event,
6364
+ GlobalHotkeyEvent,
6365
+ EventType_6 as EventType,
6366
+ GlobalHotkeyEventType,
6367
+ Payload_7 as Payload,
6368
+ ByType_6 as ByType
6369
+ }
6370
+ }
6371
+
6372
+ /**
6373
+ * @deprecated Renamed to {@link EventType}.
6374
+ */
6375
+ declare type GlobalHotkeyEventType = EventType_6;
6376
+
6377
+ declare namespace GoldenLayout {
6378
+ export {
6379
+ GoldenLayout_2 as GoldenLayout,
6380
+ ItemConfigType,
6381
+ Settings,
6382
+ Dimensions,
6383
+ Labels,
6384
+ ItemType,
6385
+ ItemConfig,
6386
+ ComponentConfig,
6387
+ ReactComponentConfig,
6388
+ Config,
6389
+ ContentItem,
6390
+ Container,
6391
+ DragSource,
6392
+ BrowserWindow,
6393
+ Header,
6394
+ TabDragListener,
6395
+ Tab,
6396
+ EventEmitter_2 as EventEmitter
6397
+ }
6398
+ }
6399
+
6400
+ declare class GoldenLayout_2 implements EventEmitter_2 {
6401
+ /**
6402
+ * The topmost item in the layout item tree. In browser terms: Think of the GoldenLayout instance as window
6403
+ * object and of goldenLayout.root as the document.
6404
+ */
6405
+ root: ContentItem;
6406
+
6407
+ /**
6408
+ * A reference to the (jQuery) DOM element containing the layout
6409
+ */
6410
+ container: JQuery;
6411
+
6412
+ /**
6413
+ * True once the layout item tree has been created and the initialised event has been fired
6414
+ */
6415
+ isInitialised: boolean;
6416
+
6417
+ /**
6418
+ * A reference to the current, extended top level config.
6419
+ *
6420
+ * Don't rely on this object for state saving / serialisation. Use layout.toConfig() instead.
6421
+ */
6422
+ config: Config;
6423
+
6424
+ /**
6425
+ * The currently selected item or null if no item is selected. Only relevant if settings.selectionEnabled is set
6426
+ * to true.
6427
+ */
6428
+ selectedItem: ContentItem;
6429
+
6430
+ /**
6431
+ * The current outer width of the layout in pixels.
6432
+ */
6433
+ width: number;
6434
+
6435
+ /**
6436
+ * The current outer height of the layout in pixels.
6437
+ */
6438
+ height: number;
6439
+
6440
+ /**
6441
+ * An array of BrowserWindow instances
6442
+ */
6443
+ openPopouts: BrowserWindow[];
6444
+
6445
+ /**
6446
+ * True if the layout has been opened as a popout by another layout.
6447
+ */
6448
+ isSubWindow: boolean;
6449
+
6450
+ /**
6451
+ * A singleton instance of EventEmitter that works across windows
6452
+ */
6453
+ eventHub: EventEmitter_2;
6454
+
6455
+ _dragProxy: any;
6456
+
6457
+ dropTargetIndicator: any;
6458
+
6459
+ _isFullPage: boolean;
6460
+
6461
+ _onUnload: any;
6462
+
6463
+ tabDropPlaceholder: any;
6464
+
6465
+ transitionIndicator: any;
6466
+
6467
+ _dragSources: any;
6468
+
6469
+ _resizeFunction: any;
6470
+
6471
+ _unloadFunction: any;
6472
+
6473
+ /**
6474
+ * @param config A GoldenLayout configuration object
6475
+ * @param container The DOM element the layout will be initialised in. Default: document.body
6476
+ */
6477
+ constructor(configuration: Config, container?: Element | HTMLElement | JQuery);
6478
+
6479
+ /*
6480
+ * @param name The name of the component, as referred to by componentName in the component configuration.
6481
+ * @param component A constructor or factory function. Will be invoked with new and two arguments, a
6482
+ * containerobject and a component state
6483
+ */
6484
+ registerComponent(name: String, component: any): void;
6485
+
6486
+ /**
6487
+ * Renders the layout into the container. If init() is called before the document is ready it attaches itself as
6488
+ * a listener to the document and executes once it becomes ready.
6489
+ */
6490
+ init(): void;
6491
+
6492
+ /**
6493
+ * Returns the current state of the layout and its components as a serialisable object.
6494
+ */
6495
+ toConfig(): Config;
6496
+
6497
+ /**
6498
+ * Returns a component that was previously registered with layout.registerComponent().
6499
+ * @param name The name of a previously registered component
6500
+ */
6501
+ getComponent(name: string): any;
6502
+
6503
+ /**
6504
+ * Resizes the layout. If no arguments are provided GoldenLayout measures its container and resizes accordingly.
6505
+ * @param width The outer width the layout should be resized to. Default: The container elements width
6506
+ * @param height The outer height the layout should be resized to. Default: The container elements height
6507
+ */
6508
+ updateSize(width?: number, height?: number): void;
6509
+
6510
+ /**
6511
+ * Destroys the layout. Recursively calls destroy on all components and content items, removes all event
6512
+ * listeners and finally removes itself from the DOM.
6513
+ */
6514
+ destroy(): void;
6515
+
6516
+ /**
6517
+ * Creates a new content item or tree of content items from configuration. Usually you wouldn't call this
6518
+ * directly, but instead use methods like layout.createDragSource(), item.addChild() or item.replaceChild() that
6519
+ * all call this method implicitly.
6520
+ * @param itemConfiguration An item configuration (can be an entire tree of items)
6521
+ * @param parent A parent item
6522
+ */
6523
+ createContentItem(itemConfiguration?: ItemConfigType, parent?: ContentItem): ContentItem;
6524
+
6525
+ /**
6526
+ * Creates a new popout window with configOrContentItem as contents at the position specified in dimensions
6527
+ * @param configOrContentItem The content item or config that will be created in the new window. If a item is
6528
+ * provided its config will be read, if config is provided, only the content key
6529
+ * will be used
6530
+ * @param dimensions A map containing the keys left, top, width and height. Left and top can be negative to
6531
+ * place the window in another screen.
6532
+ * @param parentId The id of the item within the current layout the child window's content will be appended to
6533
+ * when popIn is clicked
6534
+ * @param indexInParent The index at which the child window's contents will be appended to. Default: null
6535
+ */
6536
+ createPopout(
6537
+ configOrContentItem: ItemConfigType | ContentItem,
6538
+ dimensions: {
6539
+ width: number;
6540
+ height: number;
6541
+ left: number;
6542
+ top: number;
6543
+ },
6544
+ parentId?: string,
6545
+ indexInParent?: number
6546
+ ): void;
6547
+
6548
+ /**
6549
+ * Turns a DOM element into a dragSource, meaning that the user can drag the element directly onto the layout
6550
+ * where it turns into a contentItem.
6551
+ * @param element The DOM element that will be turned into a dragSource
6552
+ * @param itemConfiguration An item configuration (can be an entire tree of items)
6553
+ * @return the dragSource that was created. This can be used to remove the
6554
+ * dragSource from the layout later.
6555
+ */
6556
+ createDragSource(element: HTMLElement | JQuery, itemConfiguration: ItemConfigType): DragSource;
6557
+
6558
+ /**
6559
+ * Removes a dragSource from the layout.
6560
+ *
6561
+ * @param dragSource The dragSource to remove
6562
+ */
6563
+ removeDragSource(dragSource: DragSource): void;
6564
+
6565
+ /**
6566
+ * If settings.selectionEnabled is set to true, this allows to select items programmatically.
6567
+ * @param contentItem A ContentItem instance
6568
+ */
6569
+ selectItem(contentItem: ContentItem): void;
6570
+
6571
+ /**
6572
+ * Static method on the GoldenLayout constructor! This method will iterate through a GoldenLayout config object
6573
+ * and replace frequent keys and values with single letter substitutes.
6574
+ * @param config A GoldenLayout configuration object
6575
+ */
6576
+ static minifyConfig(config: any): any;
6577
+
6578
+ /**
6579
+ * Static method on the GoldenLayout constructor! This method will reverse the minifications of minifyConfig.
6580
+ * @param minifiedConfig A minified GoldenLayout configuration object
6581
+ */
6582
+ static unminifyConfig(minifiedConfig: any): any;
6583
+
6584
+ /**
6585
+ * Subscribe to an event
6586
+ * @param eventName The name of the event to describe to
6587
+ * @param callback The function that should be invoked when the event occurs
6588
+ * @param context The value of the this pointer in the callback function
6589
+ */
6590
+ on(eventName: string, callback: Function, context?: any): void;
6591
+
6592
+ /**
6593
+ * Notify listeners of an event and pass arguments along
6594
+ * @param eventName The name of the event to emit
6595
+ */
6596
+ emit(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
6597
+
6598
+ /**
6599
+ * Alias for emit
5860
6600
  */
5861
- isRegistered(hotkey: string): Promise<boolean>;
5862
- }
6601
+ trigger(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
5863
6602
 
5864
- /**
5865
- * @deprecated Renamed to {@link Event}.
5866
- */
5867
- declare type GlobalHotkeyEvent = Event_9;
6603
+ /**
6604
+ * Unsubscribes either all listeners if just an eventName is provided, just a specific callback if invoked with
6605
+ * eventName and callback or just a specific callback with a specific context if invoked with all three
6606
+ * arguments.
6607
+ * @param eventName The name of the event to unsubscribe from
6608
+ * @param callback The function that should be invoked when the event occurs
6609
+ * @param context The value of the this pointer in the callback function
6610
+ */
6611
+ unbind(eventName: string, callback?: Function, context?: any): void;
5868
6612
 
5869
- declare type GlobalHotkeyEvent_2 = Events.GlobalHotkeyEvents.GlobalHotkeyEvent;
6613
+ /**
6614
+ * Alias for unbind
6615
+ */
6616
+ off(eventName: string, callback?: Function, context?: any): void;
5870
6617
 
5871
- declare namespace GlobalHotkeyEvents {
5872
- export {
5873
- BaseEvent_8 as BaseEvent,
5874
- RegisteredEvent,
5875
- UnregisteredEvent,
5876
- Event_9 as Event,
5877
- GlobalHotkeyEvent,
5878
- EventType_6 as EventType,
5879
- GlobalHotkeyEventType,
5880
- Payload_7 as Payload,
5881
- ByType_6 as ByType
5882
- }
6618
+ /**
6619
+ * Internal method that create drop areas on the far edges of window, e.g. far-right of window
6620
+ */
6621
+ _$createRootItemAreas(): void;
5883
6622
  }
5884
6623
 
5885
- /**
5886
- * @deprecated Renamed to {@link EventType}.
5887
- */
5888
- declare type GlobalHotkeyEventType = EventType_6;
5889
-
5890
6624
  /**
5891
6625
  * @interface
5892
6626
  */
@@ -5894,6 +6628,62 @@ declare type GpuInfo = {
5894
6628
  name: string;
5895
6629
  };
5896
6630
 
6631
+ declare interface Header {
6632
+ /**
6633
+ * A reference to the LayoutManager instance
6634
+ */
6635
+ layoutManager: GoldenLayout_2;
6636
+
6637
+ /**
6638
+ * A reference to the Stack this Header belongs to
6639
+ */
6640
+ parent: ContentItem;
6641
+
6642
+ /**
6643
+ * An array of the Tabs within this header
6644
+ */
6645
+ tabs: Tab[];
6646
+
6647
+ /**
6648
+ * The currently selected activeContentItem
6649
+ */
6650
+ activeContentItem: ContentItem;
6651
+
6652
+ /**
6653
+ * The outer (jQuery) DOM element of this Header
6654
+ */
6655
+ element: JQuery;
6656
+
6657
+ /**
6658
+ * The (jQuery) DOM element containing the tabs
6659
+ */
6660
+ tabsContainer: JQuery;
6661
+
6662
+ /**
6663
+ * The (jQuery) DOM element containing the close, maximise and popout button
6664
+ */
6665
+ controlsContainer: JQuery;
6666
+
6667
+ /**
6668
+ * Hides the currently selected contentItem, shows the specified one and highlights its tab.
6669
+ * @param contentItem The content item that will be selected
6670
+ */
6671
+ setActiveContentItem(contentItem: ContentItem): void;
6672
+
6673
+ /**
6674
+ * Creates a new tab and associates it with a content item
6675
+ * @param contentItem The content item the tab will be associated with
6676
+ * @param index A zero based index, specifying the position of the new tab
6677
+ */
6678
+ createTab(contentItem: ContentItem, index?: number): void;
6679
+
6680
+ /**
6681
+ * Finds a tab by its contentItem and removes it
6682
+ * @param contentItem The content item the tab is associated with
6683
+ */
6684
+ removeTab(contentItem: ContentItem): void;
6685
+ }
6686
+
5897
6687
  /**
5898
6688
  * Generated when a View is hidden.
5899
6689
  * @interface
@@ -7098,7 +7888,9 @@ declare class InteropClient extends Base {
7098
7888
  * ```
7099
7889
  *
7100
7890
  *
7101
- * Passing in a context type as the second parameter will cause the handler to only be invoked with that context type.
7891
+ * We are also testing the ability to add a context handler for specific contexts. If you would like to use
7892
+ * this, please make sure you add your context handlers at the top level of your application, on a page that
7893
+ * does not navigate/reload/re-render, to avoid memory leaks. This feature is experimental:
7102
7894
  *
7103
7895
  * ```js
7104
7896
  * function handleInstrumentContext(contextInfo) {
@@ -7480,6 +8272,50 @@ declare class InteropModule extends Base {
7480
8272
  connectSync(name: string, interopConfig?: OpenFin.InteropConfig): InteropClient;
7481
8273
  }
7482
8274
 
8275
+ declare interface ItemConfig {
8276
+ /**
8277
+ * The type of the item. Possible values are 'row', 'column', 'stack', 'component' and 'react-component'.
8278
+ */
8279
+ type: ItemType;
8280
+
8281
+ /**
8282
+ * An array of configurations for items that will be created as children of this item.
8283
+ */
8284
+ content?: ItemConfigType[];
8285
+
8286
+ /**
8287
+ * The width of this item, relative to the other children of its parent in percent
8288
+ */
8289
+ width?: number;
8290
+
8291
+ /**
8292
+ * The height of this item, relative to the other children of its parent in percent
8293
+ */
8294
+ height?: number;
8295
+
8296
+ /**
8297
+ * A String or an Array of Strings. Used to retrieve the item using item.getItemsById()
8298
+ */
8299
+ id?: string | string[];
8300
+
8301
+ /**
8302
+ * Determines if the item is closable. If false, the x on the items tab will be hidden and container.close()
8303
+ * will return false
8304
+ * Default: true
8305
+ */
8306
+ isClosable?: boolean;
8307
+
8308
+ /**
8309
+ * The title of the item as displayed on its tab and on popout windows
8310
+ * Default: componentName or ''
8311
+ */
8312
+ title?: string;
8313
+ }
8314
+
8315
+ declare type ItemConfigType = ItemConfig | ComponentConfig | ReactComponentConfig;
8316
+
8317
+ declare type ItemType = 'row' | 'column' | 'stack' | 'root' | 'component';
8318
+
7483
8319
  /**
7484
8320
  * @interface
7485
8321
  */
@@ -7537,6 +8373,32 @@ declare type JumpListTask = {
7537
8373
  iconIndex?: number;
7538
8374
  };
7539
8375
 
8376
+ declare interface Labels {
8377
+ /**
8378
+ * The tooltip text that appears when hovering over the close icon.
8379
+ * Default: 'close'
8380
+ */
8381
+ close?: string;
8382
+
8383
+ /**
8384
+ * The tooltip text that appears when hovering over the maximise icon.
8385
+ * Default: 'maximise'
8386
+ */
8387
+ maximise?: string;
8388
+
8389
+ /**
8390
+ * The tooltip text that appears when hovering over the minimise icon.
8391
+ * Default: 'minimise'
8392
+ */
8393
+ minimise?: string;
8394
+
8395
+ /**
8396
+ * The tooltip text that appears when hovering over the popout icon.
8397
+ * Default: 'open in new window'
8398
+ */
8399
+ popout?: string;
8400
+ }
8401
+
7540
8402
  /**
7541
8403
  * The LaunchEmitter is an `EventEmitter`. It can listen to app version resolver events.
7542
8404
  *
@@ -7929,6 +8791,32 @@ declare type LayoutComponent = LayoutItemConfig & {
7929
8791
 
7930
8792
  declare type LayoutContent = Array<LayoutItemConfig | LayoutRow | LayoutColumn | LayoutComponent>;
7931
8793
 
8794
+ /**
8795
+ * The base payload for the CustomEvent.detail property for Layout events emitted on the layout container element.
8796
+ */
8797
+ declare type LayoutDOMEvent = Identity_5 & {
8798
+ type: string;
8799
+ topic: 'openfin-DOM-event';
8800
+ tabSelector: string;
8801
+ containerSelector: string;
8802
+ };
8803
+
8804
+ declare type LayoutDOMEvent_2 = LayoutDOMEvents.Event;
8805
+
8806
+ declare namespace LayoutDOMEvents {
8807
+ export {
8808
+ TabCreatedEvent,
8809
+ TabClosedEvent,
8810
+ TabDroppedEvent,
8811
+ ContainerCreatedEvent,
8812
+ LayoutStateChangedEvent,
8813
+ Event_12 as Event,
8814
+ EventType_9 as EventType,
8815
+ Payload_10 as Payload,
8816
+ ByType_9 as ByType
8817
+ }
8818
+ }
8819
+
7932
8820
  declare type LayoutEntitiesClient = ApiClient<LayoutEntitiesController>;
7933
8821
 
7934
8822
  declare type LayoutEntitiesController = {
@@ -7962,7 +8850,7 @@ declare type LayoutEntityDefinition<TLayoutEntityType extends LayoutEntityTypes
7962
8850
  entityId: string;
7963
8851
  };
7964
8852
 
7965
- declare type LayoutEntityTypes = 'column' | 'row' | 'stack';
8853
+ declare type LayoutEntityTypes = Exclude<GoldenLayout.ItemType, 'component' | 'root'>;
7966
8854
 
7967
8855
  /**
7968
8856
  * @interface
@@ -8374,6 +9262,14 @@ declare type LayoutSnapshot = {
8374
9262
  layouts: Record<string, LayoutOptions>;
8375
9263
  };
8376
9264
 
9265
+ /**
9266
+ * Generated when the Layout experiences a state change, for example tabs added/removed.
9267
+ * @interface
9268
+ */
9269
+ declare type LayoutStateChangedEvent = LayoutDOMEvent & {
9270
+ type: 'layout-state-changed';
9271
+ };
9272
+
8377
9273
  /**
8378
9274
  * @interface
8379
9275
  */
@@ -9336,7 +10232,6 @@ declare namespace OpenFin {
9336
10232
  AppVersionError,
9337
10233
  AppVersionRuntimeInfo,
9338
10234
  LaunchEmitter,
9339
- UserAppConfigArgs,
9340
10235
  RvmLaunchOptions,
9341
10236
  ShortCutConfig,
9342
10237
  TerminateExternalRequestType,
@@ -9462,6 +10357,7 @@ declare namespace OpenFin {
9462
10357
  AppVersionCompleteEvent,
9463
10358
  AppVersionRuntimeStatusEvent,
9464
10359
  Events,
10360
+ LayoutDOMEvents,
9465
10361
  BaseEvent_10 as BaseEvent,
9466
10362
  WebContentsEvent_2 as WebContentsEvent,
9467
10363
  SystemEvent_2 as SystemEvent,
@@ -9470,6 +10366,7 @@ declare namespace OpenFin {
9470
10366
  ViewEvent_2 as ViewEvent,
9471
10367
  GlobalHotkeyEvent_2 as GlobalHotkeyEvent,
9472
10368
  FrameEvent_2 as FrameEvent,
10369
+ LayoutDOMEvent_2 as LayoutDOMEvent,
9473
10370
  PlatformEvent_2 as PlatformEvent,
9474
10371
  ExternalApplicationEvent_2 as ExternalApplicationEvent,
9475
10372
  ContextMenuOptions,
@@ -9542,6 +10439,15 @@ declare type Payload<Success extends boolean = boolean, Data = any> = {
9542
10439
  error?: Success extends false ? ErrorPlainObject | undefined : never;
9543
10440
  };
9544
10441
 
10442
+ /**
10443
+ * Extracts a single event type matching the given key from the Layout DOM {@link Event} union.
10444
+ *
10445
+ * @typeParam Type String key specifying the event to extract
10446
+ */
10447
+ declare type Payload_10<Type extends EventType_9> = Extract<Event_12, {
10448
+ type: Type;
10449
+ }>;
10450
+
9545
10451
  /**
9546
10452
  * Extracts a single event type matching the given key from the View {@link Event} union.
9547
10453
  *
@@ -9649,6 +10555,14 @@ declare type PerformanceReportEvent = Performance & BaseEvent_5 & {
9649
10555
 
9650
10556
  /**
9651
10557
  * @interface
10558
+ *
10559
+ * Governs access to OpenFin APIs. Property paths of this literal match call
10560
+ * paths for OpenFin API functions (e.g. `System.launchExternalProcess`), and can
10561
+ * take a value of `true`, `false`, or in some cases an object literal for more-complicated
10562
+ * semantics.
10563
+ *
10564
+ * For a list of APIs that are secure by default (and thus must be granted access via
10565
+ * `permissions`), see https://developers.openfin.co/of-docs/docs/api-security#secured-apis.
9652
10566
  */
9653
10567
  declare type Permissions_2 = {
9654
10568
  Application?: Partial<ApplicationPermissions>;
@@ -11869,6 +12783,18 @@ declare type QueryPermissionResult = {
11869
12783
  rawValue?: unknown;
11870
12784
  };
11871
12785
 
12786
+ declare interface ReactComponentConfig extends ItemConfig {
12787
+ /**
12788
+ * The name of the component as specified in layout.registerComponent. Mandatory if type is 'react-component'
12789
+ */
12790
+ component: string;
12791
+
12792
+ /**
12793
+ * Properties that will be passed to the component and accessible using this.props.
12794
+ */
12795
+ props?: any;
12796
+ }
12797
+
11872
12798
  /**
11873
12799
  * @interface
11874
12800
  */
@@ -12131,7 +13057,7 @@ declare type RunRequestedEvent = OpenFin.ApplicationEvents.RunRequestedEvent;
12131
13057
  declare type RunRequestedEvent_2 = BaseEvents.IdentityEvent & {
12132
13058
  topic: 'application';
12133
13059
  type: 'run-requested';
12134
- userAppConfigArgs: OpenFin.UserAppConfigArgs;
13060
+ userAppConfigArgs: Record<string, any>;
12135
13061
  manifest: OpenFin.Manifest;
12136
13062
  };
12137
13063
 
@@ -12246,7 +13172,7 @@ declare type RvmLaunchOptions = {
12246
13172
  * True if no UI when launching
12247
13173
  */
12248
13174
  noUi?: boolean;
12249
- userAppConfigArgs?: UserAppConfigArgs;
13175
+ userAppConfigArgs?: object;
12250
13176
  /**
12251
13177
  * Timeout in seconds until RVM launch request expires.
12252
13178
  */
@@ -12345,6 +13271,97 @@ declare type SessionContextGroup = {
12345
13271
  }>;
12346
13272
  };
12347
13273
 
13274
+ declare interface Settings {
13275
+ preventSplitterResize?: boolean;
13276
+
13277
+ newTabButton?: {
13278
+ url?: string;
13279
+ };
13280
+
13281
+ /**
13282
+ * If true, tabs can't be dragged into the window.
13283
+ * Default: false
13284
+ */
13285
+ preventDragIn?: boolean;
13286
+
13287
+ /**
13288
+ * If true, tabs can't be dragged out of the window.
13289
+ * Default: false
13290
+ */
13291
+ preventDragOut?: boolean;
13292
+
13293
+ /**
13294
+ * If true, stack headers are the only areas where tabs can be dropped.
13295
+ * Default: false
13296
+ */
13297
+ constrainDragToHeaders?: boolean;
13298
+ /**
13299
+ * Turns headers on or off. If false, the layout will be displayed with splitters only.
13300
+ * Default: true
13301
+ */
13302
+ hasHeaders?: boolean;
13303
+
13304
+ /**
13305
+ * (Unused in Openfin Platform) Constrains the area in which items can be dragged to the layout's container. Will be set to false
13306
+ * automatically when layout.createDragSource() is called.
13307
+ * Default: true
13308
+ */
13309
+ constrainDragToContainer?: boolean;
13310
+
13311
+ /**
13312
+ * If true, the user can re-arrange the layout by dragging items by their tabs to the desired location.
13313
+ * Default: true
13314
+ */
13315
+ reorderEnabled?: boolean;
13316
+
13317
+ /**
13318
+ * If true, the user can select items by clicking on their header. This sets the value of layout.selectedItem to
13319
+ * the clicked item, highlights its header and the layout emits a 'selectionChanged' event.
13320
+ * Default: false
13321
+ */
13322
+ selectionEnabled?: boolean;
13323
+
13324
+ /**
13325
+ * Decides what will be opened in a new window if the user clicks the popout icon. If true the entire stack will
13326
+ * be transferred to the new window, if false only the active component will be opened.
13327
+ * Default: false
13328
+ */
13329
+ popoutWholeStack?: boolean;
13330
+
13331
+ /**
13332
+ * Specifies if an error is thrown when a popout is blocked by the browser (e.g. by opening it programmatically).
13333
+ * If false, the popout call will fail silently.
13334
+ * Default: true
13335
+ */
13336
+ blockedPopoutsThrowError?: boolean;
13337
+
13338
+ /**
13339
+ * Specifies if all popouts should be closed when the page that created them is closed. Popouts don't have a
13340
+ * strong dependency on their parent and can exist on their own, but can be quite annoying to close by hand. In
13341
+ * addition, any changes made to popouts won't be stored after the parent is closed.
13342
+ * Default: true
13343
+ */
13344
+ closePopoutsOnUnload?: boolean;
13345
+
13346
+ /**
13347
+ * Specifies if the popout icon should be displayed in the header-bar.
13348
+ * Default: true
13349
+ */
13350
+ showPopoutIcon?: boolean;
13351
+
13352
+ /**
13353
+ * Specifies if the maximise icon should be displayed in the header-bar.
13354
+ * Default: true
13355
+ */
13356
+ showMaximiseIcon?: boolean;
13357
+
13358
+ /**
13359
+ * Specifies if the close icon should be displayed in the header-bar.
13360
+ * Default: true
13361
+ */
13362
+ showCloseIcon?: boolean;
13363
+ }
13364
+
12348
13365
  /**
12349
13366
  * @interface
12350
13367
  */
@@ -14235,6 +15252,85 @@ declare type SystemShutdownHandler = (shutdownEvent: {
14235
15252
  proceed: () => void;
14236
15253
  }) => void;
14237
15254
 
15255
+ declare interface Tab {
15256
+ _dragListener: TabDragListener;
15257
+
15258
+ /**
15259
+ * True if this tab is the selected tab
15260
+ */
15261
+ isActive: boolean;
15262
+
15263
+ /**
15264
+ * A reference to the header this tab is a child of
15265
+ */
15266
+ header: Header;
15267
+
15268
+ /**
15269
+ * A reference to the content item this tab relates to
15270
+ */
15271
+ contentItem: ContentItem;
15272
+
15273
+ /**
15274
+ * The tabs outer (jQuery) DOM element
15275
+ */
15276
+ element: JQuery;
15277
+
15278
+ /**
15279
+ * The (jQuery) DOM element containing the title
15280
+ */
15281
+ titleElement: JQuery;
15282
+
15283
+ /**
15284
+ * The (jQuery) DOM element that closes the tab
15285
+ */
15286
+ closeElement: JQuery;
15287
+
15288
+ /**
15289
+ * Sets the tab's title. Does not affect the contentItem's title!
15290
+ * @param title The new title
15291
+ */
15292
+ setTitle(title: string): void;
15293
+
15294
+ /**
15295
+ * Sets this tab's active state. To programmatically switch tabs, use header.setActiveContentItem( item ) instead.
15296
+ * @param isActive Whether the tab is active
15297
+ */
15298
+ setActive(isActive: boolean): void;
15299
+ }
15300
+
15301
+ /**
15302
+ * Generated when a Layout Tab Component was closed.
15303
+ * @interface
15304
+ */
15305
+ declare type TabClosedEvent = LayoutDOMEvent & {
15306
+ type: 'tab-closed';
15307
+ url: string;
15308
+ };
15309
+
15310
+ /**
15311
+ * Generated when a Layout Tab Component was created.
15312
+ * @interface
15313
+ */
15314
+ declare type TabCreatedEvent = LayoutDOMEvent & {
15315
+ type: 'tab-created';
15316
+ };
15317
+
15318
+ declare interface TabDragListener extends EventEmitter_2 {
15319
+ /**
15320
+ * A reference to the content item this tab relates to
15321
+ */
15322
+ contentItem: ContentItem;
15323
+ }
15324
+
15325
+ /**
15326
+ * Generated when a Layout Tab Component was dropped.
15327
+ * @interface
15328
+ */
15329
+ declare type TabDroppedEvent = LayoutDOMEvent & {
15330
+ type: 'tab-dropped';
15331
+ url: string;
15332
+ };
15333
+
14238
15334
  /**
14239
15335
  * A TabStack is used to manage the state of a stack of tabs within an OpenFin Layout.
14240
15336
  */
@@ -14600,11 +15696,6 @@ declare type UrlChangedEvent = BaseUrlEvent & ({
14600
15696
  httpStatusText: string;
14601
15697
  });
14602
15698
 
14603
- /**
14604
- * @interface
14605
- */
14606
- declare type UserAppConfigArgs = Record<string, string | string[]>;
14607
-
14608
15699
  /**
14609
15700
  * A general user bounds change event without event type.
14610
15701
  * @interface
@@ -17991,32 +19082,6 @@ declare type WithPositioningOptions<T extends {} = {}> = T & {
17991
19082
  positioningOptions?: OpenFin.PositioningOptions;
17992
19083
  };
17993
19084
 
17994
- declare type WithUserAppConfigArgs = {
17995
- /**
17996
- * Represents the key-value pairs for the parameters passed into any fin:// or fins:// link
17997
- * that launches this application.
17998
- *
17999
- * @remarks
18000
- * In the link, user defined parameters are separated by the `$$` delimeter, for example:
18001
- * `fins://path.to/app/manifest.json?$$use-last-configuration=true`
18002
- *
18003
- * Results in the following object:
18004
- * ```json
18005
- * {
18006
- * "use-last-configuration": true"
18007
- * }
18008
- * ```
18009
- *
18010
- * These args can be accessed via the {@link ApplicationInfo.initialOptions} object:
18011
- * ```typescript
18012
- * const appInfo = await fin.Application.getCurrentSync().getInfo();
18013
- * const { userAppConfigArgs } = appInfo.initialOptions;
18014
- * console.log(userAppConfigArgs['use-last-configuration']); // 'true'
18015
- * ```
18016
- */
18017
- userAppConfigArgs?: UserAppConfigArgs;
18018
- };
18019
-
18020
19085
  /* Excluded from this release type: WorkspacePlatformOptions */
18021
19086
 
18022
19087
  /**