@openfin/core 34.78.20 → 34.78.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.
@@ -2,7 +2,6 @@
2
2
  /// <reference types="node" />
3
3
 
4
4
  import { EventEmitter } from 'events';
5
- import type * as GoldenLayout from '@openfin/golden-layout';
6
5
 
7
6
  /**
8
7
  * Enable keyboard shortcuts for devtools, zoom, reload, and reload ignoring cache.
@@ -1701,7 +1700,9 @@ declare type BaseConfig = {
1701
1700
  };
1702
1701
 
1703
1702
  /**
1704
- * A base event.
1703
+ * A base OpenFin event. All OpenFin event payloads extend this type.
1704
+ *
1705
+ * @interface
1705
1706
  */
1706
1707
  declare type BaseEvent = {
1707
1708
  topic: string;
@@ -1821,6 +1822,48 @@ declare type BoundsChangingEvent = BoundsChangeEvent & {
1821
1822
  type: 'bounds-changing';
1822
1823
  };
1823
1824
 
1825
+ declare interface BrowserWindow {
1826
+ /**
1827
+ * True if the window has been opened and its GoldenLayout instance initialised.
1828
+ */
1829
+ isInitialised: boolean;
1830
+
1831
+ /**
1832
+ * Creates a window configuration object from the Popout.
1833
+ */
1834
+ toConfig(): {
1835
+ dimensions: {
1836
+ width: number;
1837
+ height: number;
1838
+ left: number;
1839
+ top: number;
1840
+ };
1841
+ content: Config;
1842
+ parentId: string;
1843
+ indexInParent: number;
1844
+ };
1845
+
1846
+ /**
1847
+ * Returns the GoldenLayout instance from the child window
1848
+ */
1849
+ getGlInstance(): GoldenLayout_2;
1850
+
1851
+ /**
1852
+ * Returns the native Window object
1853
+ */
1854
+ getWindow(): Window;
1855
+
1856
+ /**
1857
+ * Closes the popout
1858
+ */
1859
+ close(): void;
1860
+
1861
+ /**
1862
+ * Returns the popout to its original position as specified in parentId and indexInParent
1863
+ */
1864
+ popIn(): void;
1865
+ }
1866
+
1824
1867
  /**
1825
1868
  * Configuration for page capture.
1826
1869
  *
@@ -3159,6 +3202,31 @@ declare class CombinedStrategy<A, B> implements ChannelStrategy<OnlyIfCompatible
3159
3202
  close(): Promise<void>;
3160
3203
  }
3161
3204
 
3205
+ declare interface ComponentConfig extends ItemConfig {
3206
+ /**
3207
+ * The name of the component as specified in layout.registerComponent. Mandatory if type is 'component'.
3208
+ */
3209
+ componentName: string;
3210
+
3211
+ /**
3212
+ * A serialisable object. Will be passed to the component constructor function and will be the value returned by
3213
+ * container.getState().
3214
+ */
3215
+ componentState?: any;
3216
+ }
3217
+
3218
+ declare interface Config {
3219
+ settings?: Settings;
3220
+ dimensions?: Dimensions;
3221
+ labels?: Labels;
3222
+ content?: ItemConfigType[];
3223
+ /**
3224
+ * (Only on layout config object)
3225
+ * Id of the currently maximised content item
3226
+ */
3227
+ maximisedItemId?: string;
3228
+ }
3229
+
3162
3230
  declare type ConfigWithRuntime = BaseConfig & {
3163
3231
  runtime: RuntimeConfig;
3164
3232
  };
@@ -3449,6 +3517,103 @@ declare type ConstWindowOptions = {
3449
3517
  viewVisibility?: ViewVisibilityOptions;
3450
3518
  };
3451
3519
 
3520
+ declare interface Container extends EventEmitter_2 {
3521
+ /**
3522
+ * The current width of the container in pixel
3523
+ */
3524
+ width: number;
3525
+
3526
+ /**
3527
+ * The current height of the container in pixel
3528
+ */
3529
+ height: number;
3530
+
3531
+ /**
3532
+ * A reference to the component-item that controls this container
3533
+ */
3534
+ parent: ContentItem;
3535
+
3536
+ /**
3537
+ * A reference to the tab that controls this container. Will initially be null
3538
+ * (and populated once a tab event has been fired).
3539
+ */
3540
+ tab: Tab;
3541
+
3542
+ /**
3543
+ * The current title of the container
3544
+ */
3545
+ title: string;
3546
+
3547
+ /*
3548
+ * A reference to the GoldenLayout instance this container belongs to
3549
+ */
3550
+ layoutManager: GoldenLayout_2;
3551
+
3552
+ /**
3553
+ * True if the item is currently hidden
3554
+ */
3555
+ isHidden: boolean;
3556
+
3557
+ /**
3558
+ * Overwrites the components state with the provided value. To only change parts of the componentState see
3559
+ * extendState below. This is the main mechanism for saving the state of a component. This state will be the
3560
+ * value of componentState when layout.toConfig() is called and will be passed back to the component's
3561
+ * constructor function. It will also be used when the component is opened in a new window.
3562
+ * @param state A serialisable object
3563
+ */
3564
+ setState(state: any): void;
3565
+
3566
+ /**
3567
+ * The same as setState but does not emit 'stateChanged' event
3568
+ * @param {serialisable} state
3569
+ */
3570
+ setStateSkipEvent(state: any): void;
3571
+
3572
+ /**
3573
+ * This is similar to setState, but merges the provided state into the current one, rather than overwriting it.
3574
+ * @param state A serialisable object
3575
+ */
3576
+ extendState(state: any): void;
3577
+
3578
+ /**
3579
+ * Returns the current state.
3580
+ */
3581
+ getState(): any;
3582
+
3583
+ /**
3584
+ * Returns the container's inner element as a jQuery element
3585
+ */
3586
+ getElement(): JQuery;
3587
+
3588
+ /**
3589
+ * hides the container or returns false if hiding it is not possible
3590
+ */
3591
+ hide(): boolean;
3592
+
3593
+ /**
3594
+ * shows the container or returns false if showing it is not possible
3595
+ */
3596
+ show(): boolean;
3597
+
3598
+ /**
3599
+ * Sets the container to the specified size or returns false if that's not possible
3600
+ * @param width the new width in pixel
3601
+ * @param height the new height in pixel
3602
+ */
3603
+ setSize(width: number, height: number): boolean;
3604
+
3605
+ /**
3606
+ * Sets the item's title to the provided value. Triggers titleChanged and stateChanged events
3607
+ * @param title the new title
3608
+ */
3609
+ setTitle(title: string): void;
3610
+
3611
+ /**
3612
+ * Closes the container or returns false if that is not possible
3613
+ */
3614
+ close(): boolean;
3615
+ }
3616
+
3452
3617
  declare type ContentCreationBehaviorNames = 'window' | 'view' | 'block' | 'browser';
3453
3618
 
3454
3619
  /**
@@ -3519,6 +3684,218 @@ declare type ContentCreationRulesEvent = NamedEvent & {
3519
3684
  disposition: string;
3520
3685
  };
3521
3686
 
3687
+ declare interface ContentItem extends EventEmitter_2 {
3688
+ instance: any;
3689
+ header: any;
3690
+ _splitter: any;
3691
+ /**
3692
+ * This items configuration in its current state
3693
+ */
3694
+ config: ItemConfigType;
3695
+
3696
+ /**
3697
+ * The type of the item. Can be row, column, stack, component or root
3698
+ */
3699
+ type: ItemType;
3700
+
3701
+ /**
3702
+ * An array of items that are children of this item
3703
+ */
3704
+ contentItems: ContentItem[];
3705
+
3706
+ container: Container;
3707
+ /**
3708
+ * The item that is this item's parent (or null if the item is root)
3709
+ */
3710
+ parent: ContentItem;
3711
+
3712
+ /**
3713
+ * A String or array of identifiers if provided in the configuration
3714
+ */
3715
+ id: string;
3716
+
3717
+ /**
3718
+ * True if the item had been initialised
3719
+ */
3720
+ isInitialised: boolean;
3721
+
3722
+ /**
3723
+ * True if the item is maximised
3724
+ */
3725
+ isMaximised: boolean;
3726
+
3727
+ /**
3728
+ * True if the item is the layout's root item
3729
+ */
3730
+ isRoot: boolean;
3731
+
3732
+ /**
3733
+ * True if the item is a row
3734
+ */
3735
+ isRow: boolean;
3736
+
3737
+ /**
3738
+ * True if the item is a column
3739
+ */
3740
+ isColumn: boolean;
3741
+
3742
+ /**
3743
+ * True if the item is a stack
3744
+ */
3745
+ isStack: boolean;
3746
+
3747
+ /**
3748
+ * True if the item is a component
3749
+ */
3750
+ isComponent: boolean;
3751
+
3752
+ /**
3753
+ * A reference to the layoutManager that controls this item
3754
+ */
3755
+ layoutManager: any;
3756
+
3757
+ /**
3758
+ * The item's outer element
3759
+ */
3760
+ element: JQuery;
3761
+
3762
+ /**
3763
+ * The item's inner element. Can be the same as the outer element.
3764
+ */
3765
+ childElementContainer: Container;
3766
+
3767
+ /**
3768
+ * Adds an item as a child to this item. If the item is already a part of a layout it will be removed
3769
+ * from its original position before adding it to this item.
3770
+ * @param itemOrItemConfig A content item (or tree of content items) or an ItemConfiguration to create the item from
3771
+ * @param index last index An optional index that determines at which position the new item should be added. Default: last index.
3772
+ */
3773
+ addChild(itemOrItemConfig: ContentItem | ItemConfigType, index?: number): void;
3774
+
3775
+ /**
3776
+ * Destroys the item and all it's children
3777
+ * @param contentItem The contentItem that should be removed
3778
+ * @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.
3779
+ */
3780
+ removeChild(contentItem: ContentItem, keepChild?: boolean): void;
3781
+
3782
+ /**
3783
+ * The contentItem that should be removed
3784
+ * @param oldChild ContentItem The contentItem that should be removed
3785
+ * @param newChild A content item (or tree of content items) or an ItemConfiguration to create the item from
3786
+ */
3787
+ replaceChild(oldChild: ContentItem, newChild: ContentItem | ItemConfigType): void;
3788
+
3789
+ /**
3790
+ * Updates the items size. To actually assign a new size from within a component, use container.setSize( width, height )
3791
+ */
3792
+ setSize(): void;
3793
+
3794
+ /**
3795
+ * Sets the item's title to the provided value. Triggers titleChanged and stateChanged events
3796
+ * @param title the new title
3797
+ */
3798
+ setTitle(title: string): void;
3799
+
3800
+ /**
3801
+ * A powerful, yet admittedly confusing method to recursively call methods on items in a tree. Usually you wouldn't need
3802
+ * to use it directly, but it's used internally to setSizes, destroy parts of the item tree etc.
3803
+ * @param functionName The name of the method to invoke
3804
+ * @param functionArguments An array of arguments to pass to every function
3805
+ * @param bottomUp If true, the method is invoked on the lowest parts of the tree first and then bubbles upwards. Default: false
3806
+ * @param skipSelf If true, the method will only be invoked on the item's children, but not on the item itself. Default: false
3807
+ */
3808
+ callDownwards(functionName: string, functionArguments?: any[], bottomUp?: boolean, skipSelf?: boolean): void;
3809
+
3810
+ /**
3811
+ * 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.
3812
+ */
3813
+ emitBubblingEvent(name: string): void;
3814
+
3815
+ /**
3816
+ * Convenience method for item.parent.removeChild( item )
3817
+ */
3818
+ remove(): void;
3819
+
3820
+ /**
3821
+ * Removes the item from its current position in the layout and opens it in a window
3822
+ */
3823
+ popout(): BrowserWindow;
3824
+
3825
+ /**
3826
+ * Maximises the item or minimises it if it's already maximised
3827
+ */
3828
+ toggleMaximise(): void;
3829
+
3830
+ /**
3831
+ * Selects the item. Only relevant if settings.selectionEnabled is set to true
3832
+ */
3833
+ select(): void;
3834
+
3835
+ /**
3836
+ * Unselects the item. Only relevant if settings.selectionEnabled is set to true
3837
+ */
3838
+ deselect(): void;
3839
+
3840
+ /**
3841
+ * Returns true if the item has the specified id or false if not
3842
+ * @param id An id to check for
3843
+ */
3844
+ hasId(id: string): boolean;
3845
+
3846
+ /**
3847
+ * Only Stacks have this method! It's the programmatical equivalent of clicking a tab.
3848
+ * @param contentItem The new active content item
3849
+ * @param preventFocus [OpenFin Custom] Indicates to openfin that the view should not be focused when activated.
3850
+ */
3851
+ // (CORE-198)[../docs/golden-layout-changelog.md#CORE-198 stack.setActiveView]
3852
+ setActiveContentItem(contentItem: ContentItem, preventFocus?: boolean): void;
3853
+
3854
+ /**
3855
+ * Only Stacks have this method! Returns the currently selected contentItem.
3856
+ */
3857
+ getActiveContentItem(): ContentItem;
3858
+
3859
+ /**
3860
+ * Adds an id to an item or does nothing if the id is already present
3861
+ * @param id The id to be added
3862
+ */
3863
+ addId(id: string): void;
3864
+
3865
+ /**
3866
+ * Removes an id from an item or throws an error if the id couldn't be found
3867
+ * @param id The id to be removed
3868
+ */
3869
+ removeId(id: string): void;
3870
+
3871
+ /**
3872
+ * Calls filterFunction recursively for every item in the tree. If the function returns true the item is added to the resulting array
3873
+ * @param filterFunction A function that determines whether an item matches certain criteria
3874
+ */
3875
+ getItemsByFilter(filterFunction: (contentItem: ContentItem) => boolean): ContentItem[];
3876
+
3877
+ /**
3878
+ * Returns all items with the specified id.
3879
+ * @param id An id specified in the itemConfig
3880
+ */
3881
+ getItemsById(id: string | string[]): ContentItem[];
3882
+
3883
+ /**
3884
+ * Returns all items with the specified type
3885
+ * @param type 'row', 'column', 'stack', 'component' or 'root'
3886
+ */
3887
+ getItemsByType(type: string): ContentItem[];
3888
+
3889
+ /**
3890
+ * Returns all instances of the component with the specified componentName
3891
+ * @param componentName a componentName as specified in the itemConfig
3892
+ */
3893
+ getComponentsByName(componentName: string): any;
3894
+
3895
+ _contentAreaDimensions: any;
3896
+ _$getArea: () => any;
3897
+ }
3898
+
3522
3899
  /**
3523
3900
  * Restrict navigation to URLs that match an allowed pattern.
3524
3901
  * In the lack of an allowlist, navigation to URLs that match a denied pattern would be prohibited.
@@ -3902,6 +4279,46 @@ declare type DidFinishLoadEvent = NamedEvent & {
3902
4279
  type: 'did-finish-load';
3903
4280
  };
3904
4281
 
4282
+ declare interface Dimensions {
4283
+ /**
4284
+ * The width of the borders between the layout items in pixel. Please note: The actual draggable area is wider
4285
+ * than the visible one, making it safe to set this to small values without affecting usability.
4286
+ * Default: 5
4287
+ */
4288
+ borderWidth?: number;
4289
+
4290
+ /**
4291
+ * The minimum height an item can be resized to (in pixel).
4292
+ * Default: 10
4293
+ */
4294
+ minItemHeight?: number;
4295
+
4296
+ /**
4297
+ * The minimum width an item can be resized to (in pixel).
4298
+ * Default: 10
4299
+ */
4300
+ minItemWidth?: number;
4301
+
4302
+ /**
4303
+ * The height of the header elements in pixel. This can be changed, but your theme's header css needs to be
4304
+ * adjusted accordingly.
4305
+ * Default: 20
4306
+ */
4307
+ headerHeight?: number;
4308
+
4309
+ /**
4310
+ * The width of the element that appears when an item is dragged (in pixel).
4311
+ * Default: 300
4312
+ */
4313
+ dragProxyWidth?: number;
4314
+
4315
+ /**
4316
+ * The height of the element that appears when an item is dragged (in pixel).
4317
+ * Default: 200
4318
+ */
4319
+ dragProxyHeight?: number;
4320
+ }
4321
+
3905
4322
  /**
3906
4323
  * @interface
3907
4324
  */
@@ -4050,6 +4467,8 @@ declare type Dpi = {
4050
4467
  vertical?: number;
4051
4468
  };
4052
4469
 
4470
+ declare interface DragSource {}
4471
+
4053
4472
  /**
4054
4473
  * Generated when a window has been embedded.
4055
4474
  * @interface
@@ -4272,6 +4691,43 @@ declare class EventAggregator extends EmitterMap {
4272
4691
  dispatchEvent: (message: Message<any>) => boolean;
4273
4692
  }
4274
4693
 
4694
+ declare interface EventEmitter_2 {
4695
+ [x: string]: any;
4696
+ /**
4697
+ * Subscribe to an event
4698
+ * @param eventName The name of the event to describe to
4699
+ * @param callback The function that should be invoked when the event occurs
4700
+ * @param context The value of the this pointer in the callback function
4701
+ */
4702
+ on(eventName: string, callback: Function, context?: any): void;
4703
+
4704
+ /**
4705
+ * Notify listeners of an event and pass arguments along
4706
+ * @param eventName The name of the event to emit
4707
+ */
4708
+ emit(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
4709
+
4710
+ /**
4711
+ * Alias for emit
4712
+ */
4713
+ trigger(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
4714
+
4715
+ /**
4716
+ * Unsubscribes either all listeners if just an eventName is provided, just a specific callback if invoked with
4717
+ * eventName and callback or just a specific callback with a specific context if invoked with all three
4718
+ * arguments.
4719
+ * @param eventName The name of the event to unsubscribe from
4720
+ * @param callback The function that should be invoked when the event occurs
4721
+ * @param context The value of the this pointer in the callback function
4722
+ */
4723
+ unbind(eventName: string, callback?: Function, context?: any): void;
4724
+
4725
+ /**
4726
+ * Alias for unbind
4727
+ */
4728
+ off(eventName: string, callback?: Function, context?: any): void;
4729
+ }
4730
+
4275
4731
  /**
4276
4732
  * Handler for an event on an EventEmitter.
4277
4733
  * @remarks Selects the correct type for the event
@@ -5198,6 +5654,244 @@ declare namespace GlobalHotkeyEvents {
5198
5654
  }
5199
5655
  }
5200
5656
 
5657
+ declare namespace GoldenLayout {
5658
+ export {
5659
+ GoldenLayout_2 as GoldenLayout,
5660
+ ItemConfigType,
5661
+ Settings,
5662
+ Dimensions,
5663
+ Labels,
5664
+ ItemType,
5665
+ ItemConfig,
5666
+ ComponentConfig,
5667
+ ReactComponentConfig,
5668
+ Config,
5669
+ ContentItem,
5670
+ Container,
5671
+ DragSource,
5672
+ BrowserWindow,
5673
+ Header,
5674
+ Tab,
5675
+ EventEmitter_2 as EventEmitter
5676
+ }
5677
+ }
5678
+
5679
+ declare class GoldenLayout_2 implements EventEmitter_2 {
5680
+ /**
5681
+ * The topmost item in the layout item tree. In browser terms: Think of the GoldenLayout instance as window
5682
+ * object and of goldenLayout.root as the document.
5683
+ */
5684
+ root: ContentItem;
5685
+
5686
+ /**
5687
+ * A reference to the (jQuery) DOM element containing the layout
5688
+ */
5689
+ container: JQuery;
5690
+
5691
+ /**
5692
+ * True once the layout item tree has been created and the initialised event has been fired
5693
+ */
5694
+ isInitialised: boolean;
5695
+
5696
+ /**
5697
+ * A reference to the current, extended top level config.
5698
+ *
5699
+ * Don't rely on this object for state saving / serialisation. Use layout.toConfig() instead.
5700
+ */
5701
+ config: Config;
5702
+
5703
+ /**
5704
+ * The currently selected item or null if no item is selected. Only relevant if settings.selectionEnabled is set
5705
+ * to true.
5706
+ */
5707
+ selectedItem: ContentItem;
5708
+
5709
+ /**
5710
+ * The current outer width of the layout in pixels.
5711
+ */
5712
+ width: number;
5713
+
5714
+ /**
5715
+ * The current outer height of the layout in pixels.
5716
+ */
5717
+ height: number;
5718
+
5719
+ /**
5720
+ * An array of BrowserWindow instances
5721
+ */
5722
+ openPopouts: BrowserWindow[];
5723
+
5724
+ /**
5725
+ * True if the layout has been opened as a popout by another layout.
5726
+ */
5727
+ isSubWindow: boolean;
5728
+
5729
+ /**
5730
+ * A singleton instance of EventEmitter that works across windows
5731
+ */
5732
+ eventHub: EventEmitter_2;
5733
+
5734
+ _dragProxy: any;
5735
+
5736
+ dropTargetIndicator: any;
5737
+
5738
+ /**
5739
+ * @param config A GoldenLayout configuration object
5740
+ * @param container The DOM element the layout will be initialised in. Default: document.body
5741
+ */
5742
+ constructor(configuration: Config, container?: Element | HTMLElement | JQuery);
5743
+
5744
+ /*
5745
+ * @param name The name of the component, as referred to by componentName in the component configuration.
5746
+ * @param component A constructor or factory function. Will be invoked with new and two arguments, a
5747
+ * containerobject and a component state
5748
+ */
5749
+ registerComponent(name: String, component: any): void;
5750
+
5751
+ /**
5752
+ * Renders the layout into the container. If init() is called before the document is ready it attaches itself as
5753
+ * a listener to the document and executes once it becomes ready.
5754
+ */
5755
+ init(): void;
5756
+
5757
+ /**
5758
+ * Returns the current state of the layout and its components as a serialisable object.
5759
+ */
5760
+ toConfig(): Config;
5761
+
5762
+ /**
5763
+ * Returns a component that was previously registered with layout.registerComponent().
5764
+ * @param name The name of a previously registered component
5765
+ */
5766
+ getComponent(name: string): any;
5767
+
5768
+ /**
5769
+ * Resizes the layout. If no arguments are provided GoldenLayout measures its container and resizes accordingly.
5770
+ * @param width The outer width the layout should be resized to. Default: The container elements width
5771
+ * @param height The outer height the layout should be resized to. Default: The container elements height
5772
+ */
5773
+ updateSize(width?: number, height?: number): void;
5774
+
5775
+ /**
5776
+ * Destroys the layout. Recursively calls destroy on all components and content items, removes all event
5777
+ * listeners and finally removes itself from the DOM.
5778
+ */
5779
+ destroy(): void;
5780
+
5781
+ /**
5782
+ * Creates a new content item or tree of content items from configuration. Usually you wouldn't call this
5783
+ * directly, but instead use methods like layout.createDragSource(), item.addChild() or item.replaceChild() that
5784
+ * all call this method implicitly.
5785
+ * @param itemConfiguration An item configuration (can be an entire tree of items)
5786
+ * @param parent A parent item
5787
+ */
5788
+ createContentItem(
5789
+ itemConfiguration?: ItemConfigType,
5790
+ parent?: ContentItem
5791
+ ): ContentItem;
5792
+
5793
+ /**
5794
+ * Creates a new popout window with configOrContentItem as contents at the position specified in dimensions
5795
+ * @param configOrContentItem The content item or config that will be created in the new window. If a item is
5796
+ * provided its config will be read, if config is provided, only the content key
5797
+ * will be used
5798
+ * @param dimensions A map containing the keys left, top, width and height. Left and top can be negative to
5799
+ * place the window in another screen.
5800
+ * @param parentId The id of the item within the current layout the child window's content will be appended to
5801
+ * when popIn is clicked
5802
+ * @param indexInParent The index at which the child window's contents will be appended to. Default: null
5803
+ */
5804
+ createPopout(
5805
+ configOrContentItem: ItemConfigType | ContentItem,
5806
+ dimensions: {
5807
+ width: number;
5808
+ height: number;
5809
+ left: number;
5810
+ top: number;
5811
+ },
5812
+ parentId?: string,
5813
+ indexInParent?: number
5814
+ ): void;
5815
+
5816
+ /**
5817
+ * Turns a DOM element into a dragSource, meaning that the user can drag the element directly onto the layout
5818
+ * where it turns into a contentItem.
5819
+ * @param element The DOM element that will be turned into a dragSource
5820
+ * @param itemConfiguration An item configuration (can be an entire tree of items)
5821
+ * @return the dragSource that was created. This can be used to remove the
5822
+ * dragSource from the layout later.
5823
+ */
5824
+ createDragSource(
5825
+ element: HTMLElement | JQuery,
5826
+ itemConfiguration: ItemConfigType
5827
+ ): DragSource;
5828
+
5829
+ /**
5830
+ * Removes a dragSource from the layout.
5831
+ *
5832
+ * @param dragSource The dragSource to remove
5833
+ */
5834
+ removeDragSource(dragSource: DragSource): void;
5835
+
5836
+ /**
5837
+ * If settings.selectionEnabled is set to true, this allows to select items programmatically.
5838
+ * @param contentItem A ContentItem instance
5839
+ */
5840
+ selectItem(contentItem: ContentItem): void;
5841
+
5842
+ /**
5843
+ * Static method on the GoldenLayout constructor! This method will iterate through a GoldenLayout config object
5844
+ * and replace frequent keys and values with single letter substitutes.
5845
+ * @param config A GoldenLayout configuration object
5846
+ */
5847
+ static minifyConfig(config: any): any;
5848
+
5849
+ /**
5850
+ * Static method on the GoldenLayout constructor! This method will reverse the minifications of minifyConfig.
5851
+ * @param minifiedConfig A minified GoldenLayout configuration object
5852
+ */
5853
+ static unminifyConfig(minifiedConfig: any): any;
5854
+
5855
+ /**
5856
+ * Subscribe to an event
5857
+ * @param eventName The name of the event to describe to
5858
+ * @param callback The function that should be invoked when the event occurs
5859
+ * @param context The value of the this pointer in the callback function
5860
+ */
5861
+ on(eventName: string, callback: Function, context?: any): void;
5862
+
5863
+ /**
5864
+ * Notify listeners of an event and pass arguments along
5865
+ * @param eventName The name of the event to emit
5866
+ */
5867
+ emit(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
5868
+
5869
+ /**
5870
+ * Alias for emit
5871
+ */
5872
+ trigger(eventName: string, arg1?: any, arg2?: any, ...argN: any[]): void;
5873
+
5874
+ /**
5875
+ * Unsubscribes either all listeners if just an eventName is provided, just a specific callback if invoked with
5876
+ * eventName and callback or just a specific callback with a specific context if invoked with all three
5877
+ * arguments.
5878
+ * @param eventName The name of the event to unsubscribe from
5879
+ * @param callback The function that should be invoked when the event occurs
5880
+ * @param context The value of the this pointer in the callback function
5881
+ */
5882
+ unbind(eventName: string, callback?: Function, context?: any): void;
5883
+
5884
+ /**
5885
+ * Alias for unbind
5886
+ */
5887
+ off(eventName: string, callback?: Function, context?: any): void;
5888
+
5889
+ /**
5890
+ * Internal method that create drop areas on the far edges of window, e.g. far-right of window
5891
+ */
5892
+ _$createRootItemAreas(): void;
5893
+ }
5894
+
5201
5895
  /**
5202
5896
  * @interface
5203
5897
  */
@@ -5205,6 +5899,62 @@ declare type GpuInfo = {
5205
5899
  name: string;
5206
5900
  };
5207
5901
 
5902
+ declare interface Header {
5903
+ /**
5904
+ * A reference to the LayoutManager instance
5905
+ */
5906
+ layoutManager: GoldenLayout_2;
5907
+
5908
+ /**
5909
+ * A reference to the Stack this Header belongs to
5910
+ */
5911
+ parent: ContentItem;
5912
+
5913
+ /**
5914
+ * An array of the Tabs within this header
5915
+ */
5916
+ tabs: Tab[];
5917
+
5918
+ /**
5919
+ * The currently selected activeContentItem
5920
+ */
5921
+ activeContentItem: ContentItem;
5922
+
5923
+ /**
5924
+ * The outer (jQuery) DOM element of this Header
5925
+ */
5926
+ element: JQuery;
5927
+
5928
+ /**
5929
+ * The (jQuery) DOM element containing the tabs
5930
+ */
5931
+ tabsContainer: JQuery;
5932
+
5933
+ /**
5934
+ * The (jQuery) DOM element containing the close, maximise and popout button
5935
+ */
5936
+ controlsContainer: JQuery;
5937
+
5938
+ /**
5939
+ * Hides the currently selected contentItem, shows the specified one and highlights its tab.
5940
+ * @param contentItem The content item that will be selected
5941
+ */
5942
+ setActiveContentItem(contentItem: ContentItem): void;
5943
+
5944
+ /**
5945
+ * Creates a new tab and associates it with a content item
5946
+ * @param contentItem The content item the tab will be associated with
5947
+ * @param index A zero based index, specifying the position of the new tab
5948
+ */
5949
+ createTab(contentItem: ContentItem, index?: number): void;
5950
+
5951
+ /**
5952
+ * Finds a tab by its contentItem and removes it
5953
+ * @param contentItem The content item the tab is associated with
5954
+ */
5955
+ removeTab(contentItem: ContentItem): void;
5956
+ }
5957
+
5208
5958
  /**
5209
5959
  * Generated when a View is hidden.
5210
5960
  * @interface
@@ -5329,7 +6079,8 @@ declare type Identity_5 = {
5329
6079
  declare type IdentityCall<AdditionalPayload = {}, Response = void> = ApiCall<AdditionalPayload & OpenFin_2.Identity, Response>;
5330
6080
 
5331
6081
  /**
5332
- * An Identity event.
6082
+ * An event that contains the `uuid` property of an {@link OpenFin.Identity}.
6083
+ *
5333
6084
  * @interface
5334
6085
  */
5335
6086
  declare type IdentityEvent = BaseEvent & {
@@ -6932,6 +7683,50 @@ declare class InteropModule extends Base {
6932
7683
  connectSync(name: string, interopConfig?: OpenFin_2.InteropConfig): InteropClient;
6933
7684
  }
6934
7685
 
7686
+ declare interface ItemConfig {
7687
+ /**
7688
+ * The type of the item. Possible values are 'row', 'column', 'stack', 'component' and 'react-component'.
7689
+ */
7690
+ type: ItemType;
7691
+
7692
+ /**
7693
+ * An array of configurations for items that will be created as children of this item.
7694
+ */
7695
+ content?: ItemConfigType[];
7696
+
7697
+ /**
7698
+ * The width of this item, relative to the other children of its parent in percent
7699
+ */
7700
+ width?: number;
7701
+
7702
+ /**
7703
+ * The height of this item, relative to the other children of its parent in percent
7704
+ */
7705
+ height?: number;
7706
+
7707
+ /**
7708
+ * A String or an Array of Strings. Used to retrieve the item using item.getItemsById()
7709
+ */
7710
+ id?: string | string[];
7711
+
7712
+ /**
7713
+ * Determines if the item is closable. If false, the x on the items tab will be hidden and container.close()
7714
+ * will return false
7715
+ * Default: true
7716
+ */
7717
+ isClosable?: boolean;
7718
+
7719
+ /**
7720
+ * The title of the item as displayed on its tab and on popout windows
7721
+ * Default: componentName or ''
7722
+ */
7723
+ title?: string;
7724
+ }
7725
+
7726
+ declare type ItemConfigType = ItemConfig | ComponentConfig | ReactComponentConfig;
7727
+
7728
+ declare type ItemType = 'row' | 'column' | 'stack' | 'root' | 'component';
7729
+
6935
7730
  /**
6936
7731
  * @interface
6937
7732
  */
@@ -6989,6 +7784,32 @@ declare type JumpListTask = {
6989
7784
  iconIndex?: number;
6990
7785
  };
6991
7786
 
7787
+ declare interface Labels {
7788
+ /**
7789
+ * The tooltip text that appears when hovering over the close icon.
7790
+ * Default: 'close'
7791
+ */
7792
+ close?: string;
7793
+
7794
+ /**
7795
+ * The tooltip text that appears when hovering over the maximise icon.
7796
+ * Default: 'maximise'
7797
+ */
7798
+ maximise?: string;
7799
+
7800
+ /**
7801
+ * The tooltip text that appears when hovering over the minimise icon.
7802
+ * Default: 'minimise'
7803
+ */
7804
+ minimise?: string;
7805
+
7806
+ /**
7807
+ * The tooltip text that appears when hovering over the popout icon.
7808
+ * Default: 'open in new window'
7809
+ */
7810
+ popout?: string;
7811
+ }
7812
+
6992
7813
  /**
6993
7814
  * The LaunchEmitter is an `EventEmitter`. It can listen to app version resolver events.
6994
7815
  *
@@ -7222,6 +8043,16 @@ declare class Layout extends Base {
7222
8043
  * ```
7223
8044
  */
7224
8045
  getConfig(): Promise<any>;
8046
+ /**
8047
+ * Retrieves the attached views in current window layout.
8048
+ *
8049
+ * @example
8050
+ * ```js
8051
+ * const layout = fin.Platform.Layout.getCurrentSync();
8052
+ * const views = await layout.getCurrentViews();
8053
+ * ```
8054
+ */
8055
+ getCurrentViews(): Promise<OpenFin_2.View[]>;
7225
8056
  /**
7226
8057
  * Replaces a Platform window's layout with a new layout.
7227
8058
  *
@@ -7492,6 +8323,7 @@ declare class LayoutManager {
7492
8323
  private setBackgroundImage;
7493
8324
  private setBackgroundImages;
7494
8325
  private getFrameSnapshot;
8326
+ private getCurrentViews;
7495
8327
  private addView;
7496
8328
  private replaceView;
7497
8329
  private removeView;
@@ -8423,7 +9255,7 @@ declare type MutableWindowOptions = {
8423
9255
  declare type NackHandler = (payloadOrMessage: RuntimeErrorPayload | string) => void;
8424
9256
 
8425
9257
  /**
8426
- * A Name event.
9258
+ * An event that contains an entire {@link OpenFin.Identity}.
8427
9259
  * @interface
8428
9260
  */
8429
9261
  declare type NamedEvent = IdentityEvent & {
@@ -8507,6 +9339,10 @@ declare type Opacity = TransitionBase & {
8507
9339
  opacity: number;
8508
9340
  };
8509
9341
 
9342
+ declare type OpenExternalPermission = VerboseWebPermission & {
9343
+ protocols: string[];
9344
+ };
9345
+
8510
9346
  declare namespace OpenFin_2 {
8511
9347
  export {
8512
9348
  FinApi,
@@ -8626,6 +9462,8 @@ declare namespace OpenFin_2 {
8626
9462
  LaunchExternalProcessRule,
8627
9463
  SystemPermissions,
8628
9464
  WebPermission,
9465
+ VerboseWebPermission,
9466
+ OpenExternalPermission,
8629
9467
  Permissions_2 as Permissions,
8630
9468
  PlatformWindowCreationOptions,
8631
9469
  PlatformWindowOptions,
@@ -11040,6 +11878,18 @@ declare type QueryPermissionResult = {
11040
11878
  rawValue?: unknown;
11041
11879
  };
11042
11880
 
11881
+ declare interface ReactComponentConfig extends ItemConfig {
11882
+ /**
11883
+ * The name of the component as specified in layout.registerComponent. Mandatory if type is 'react-component'
11884
+ */
11885
+ component: string;
11886
+
11887
+ /**
11888
+ * Properties that will be passed to the component and accessible using this.props.
11889
+ */
11890
+ props?: any;
11891
+ }
11892
+
11043
11893
  /**
11044
11894
  * @interface
11045
11895
  */
@@ -11517,6 +12367,97 @@ declare type SessionContextGroup = {
11517
12367
  }>;
11518
12368
  };
11519
12369
 
12370
+ declare interface Settings {
12371
+ preventSplitterResize?: boolean;
12372
+
12373
+ newTabButton?: {
12374
+ url?: string;
12375
+ };
12376
+
12377
+ /**
12378
+ * If true, tabs can't be dragged into the window.
12379
+ * Default: false
12380
+ */
12381
+ preventDragIn?: boolean;
12382
+
12383
+ /**
12384
+ * If true, tabs can't be dragged out of the window.
12385
+ * Default: false
12386
+ */
12387
+ preventDragOut?: boolean;
12388
+
12389
+ /**
12390
+ * If true, stack headers are the only areas where tabs can be dropped.
12391
+ * Default: false
12392
+ */
12393
+ constrainDragToHeaders?: boolean;
12394
+ /**
12395
+ * Turns headers on or off. If false, the layout will be displayed with splitters only.
12396
+ * Default: true
12397
+ */
12398
+ hasHeaders?: boolean;
12399
+
12400
+ /**
12401
+ * (Unused in Openfin Platform) Constrains the area in which items can be dragged to the layout's container. Will be set to false
12402
+ * automatically when layout.createDragSource() is called.
12403
+ * Default: true
12404
+ */
12405
+ constrainDragToContainer?: boolean;
12406
+
12407
+ /**
12408
+ * If true, the user can re-arrange the layout by dragging items by their tabs to the desired location.
12409
+ * Default: true
12410
+ */
12411
+ reorderEnabled?: boolean;
12412
+
12413
+ /**
12414
+ * If true, the user can select items by clicking on their header. This sets the value of layout.selectedItem to
12415
+ * the clicked item, highlights its header and the layout emits a 'selectionChanged' event.
12416
+ * Default: false
12417
+ */
12418
+ selectionEnabled?: boolean;
12419
+
12420
+ /**
12421
+ * Decides what will be opened in a new window if the user clicks the popout icon. If true the entire stack will
12422
+ * be transferred to the new window, if false only the active component will be opened.
12423
+ * Default: false
12424
+ */
12425
+ popoutWholeStack?: boolean;
12426
+
12427
+ /**
12428
+ * Specifies if an error is thrown when a popout is blocked by the browser (e.g. by opening it programmatically).
12429
+ * If false, the popout call will fail silently.
12430
+ * Default: true
12431
+ */
12432
+ blockedPopoutsThrowError?: boolean;
12433
+
12434
+ /**
12435
+ * Specifies if all popouts should be closed when the page that created them is closed. Popouts don't have a
12436
+ * strong dependency on their parent and can exist on their own, but can be quite annoying to close by hand. In
12437
+ * addition, any changes made to popouts won't be stored after the parent is closed.
12438
+ * Default: true
12439
+ */
12440
+ closePopoutsOnUnload?: boolean;
12441
+
12442
+ /**
12443
+ * Specifies if the popout icon should be displayed in the header-bar.
12444
+ * Default: true
12445
+ */
12446
+ showPopoutIcon?: boolean;
12447
+
12448
+ /**
12449
+ * Specifies if the maximise icon should be displayed in the header-bar.
12450
+ * Default: true
12451
+ */
12452
+ showMaximiseIcon?: boolean;
12453
+
12454
+ /**
12455
+ * Specifies if the close icon should be displayed in the header-bar.
12456
+ * Default: true
12457
+ */
12458
+ showCloseIcon?: boolean;
12459
+ }
12460
+
11520
12461
  /**
11521
12462
  * @interface
11522
12463
  */
@@ -13350,6 +14291,52 @@ declare type SystemShutdownHandler = (shutdownEvent: {
13350
14291
  proceed: () => void;
13351
14292
  }) => void;
13352
14293
 
14294
+ declare interface Tab {
14295
+ _dragListener: EventEmitter_2;
14296
+
14297
+ /**
14298
+ * True if this tab is the selected tab
14299
+ */
14300
+ isActive: boolean;
14301
+
14302
+ /**
14303
+ * A reference to the header this tab is a child of
14304
+ */
14305
+ header: Header;
14306
+
14307
+ /**
14308
+ * A reference to the content item this tab relates to
14309
+ */
14310
+ contentItem: ContentItem;
14311
+
14312
+ /**
14313
+ * The tabs outer (jQuery) DOM element
14314
+ */
14315
+ element: JQuery;
14316
+
14317
+ /**
14318
+ * The (jQuery) DOM element containing the title
14319
+ */
14320
+ titleElement: JQuery;
14321
+
14322
+ /**
14323
+ * The (jQuery) DOM element that closes the tab
14324
+ */
14325
+ closeElement: JQuery;
14326
+
14327
+ /**
14328
+ * Sets the tab's title. Does not affect the contentItem's title!
14329
+ * @param title The new title
14330
+ */
14331
+ setTitle(title: string): void;
14332
+
14333
+ /**
14334
+ * Sets this tab's active state. To programmatically switch tabs, use header.setActiveContentItem( item ) instead.
14335
+ * @param isActive Whether the tab is active
14336
+ */
14337
+ setActive(isActive: boolean): void;
14338
+ }
14339
+
13353
14340
  /**
13354
14341
  * Set of apis used to facilitate tab drag interactions without needing to hide views.
13355
14342
  * @ignore
@@ -13856,6 +14843,11 @@ declare namespace v2 {
13856
14843
  }
13857
14844
  }
13858
14845
 
14846
+ declare type VerboseWebPermission = {
14847
+ api: string;
14848
+ enabled: boolean;
14849
+ };
14850
+
13859
14851
  declare type View = OpenFin_2.View;
13860
14852
 
13861
14853
  /**
@@ -15702,7 +16694,7 @@ declare namespace WebContentsEvents {
15702
16694
  * `clipboard-read`: Request access to read from the clipboard.<br>
15703
16695
  * `clipboard-sanitized-write`: Request access to write to the clipboard.
15704
16696
  */
15705
- declare type WebPermission = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write';
16697
+ declare type WebPermission = 'audio' | 'video' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' | 'clipboard-read' | 'clipboard-sanitized-write' | OpenExternalPermission;
15706
16698
 
15707
16699
  /**
15708
16700
  * Object representing headers and their values, where the