dockview-core 4.12.0 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/component.api.d.ts +2 -2
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +3 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js +24 -1
- package/dist/cjs/dockview/components/titlebar/tabs.d.ts +2 -2
- package/dist/cjs/dockview/components/titlebar/tabs.js +1 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +3 -3
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +3 -3
- package/dist/cjs/dockview/dockviewComponent.js +8 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +2 -2
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +1 -1
- package/dist/cjs/dockview/events.d.ts +4 -4
- package/dist/cjs/dockview/events.js +14 -14
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +7 -2
- package/dist/cjs/overlay/overlay.js +25 -14
- package/dist/cjs/splitview/splitview.js +2 -0
- package/dist/dockview-core.amd.js +54 -21
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +54 -21
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +54 -21
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +54 -22
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +54 -21
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +54 -21
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +2 -2
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +3 -1
- package/dist/esm/api/dockviewGroupPanelApi.js +13 -1
- package/dist/esm/dockview/components/titlebar/tabs.d.ts +2 -2
- package/dist/esm/dockview/components/titlebar/tabs.js +2 -2
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +3 -3
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +2 -2
- package/dist/esm/dockview/dockviewComponent.d.ts +3 -3
- package/dist/esm/dockview/dockviewComponent.js +9 -2
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +2 -2
- package/dist/esm/dockview/dockviewGroupPanelModel.js +2 -2
- package/dist/esm/dockview/events.d.ts +4 -4
- package/dist/esm/dockview/events.js +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/overlay/overlay.js +26 -15
- package/dist/esm/splitview/splitview.js +2 -0
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@ import { PaneviewDidDropEvent } from '../paneview/draggablePaneviewPanel';
|
|
|
16
16
|
import { GroupDragEvent, TabDragEvent } from '../dockview/components/titlebar/tabsContainer';
|
|
17
17
|
import { Box } from '../types';
|
|
18
18
|
import { DockviewDidDropEvent, DockviewWillDropEvent } from '../dockview/dockviewGroupPanelModel';
|
|
19
|
-
import {
|
|
19
|
+
import { DockviewWillShowOverlayLocationEvent } from '../dockview/events';
|
|
20
20
|
import { PaneviewComponentOptions, PaneviewDndOverlayEvent } from '../paneview/options';
|
|
21
21
|
import { SplitviewComponentOptions } from '../splitview/options';
|
|
22
22
|
import { GridviewComponentOptions } from '../gridview/options';
|
|
@@ -403,7 +403,7 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
|
|
|
403
403
|
* Calling `event.preventDefault()` will prevent the overlay being shown and prevent
|
|
404
404
|
* the any subsequent drop event.
|
|
405
405
|
*/
|
|
406
|
-
get onWillShowOverlay(): Event<
|
|
406
|
+
get onWillShowOverlay(): Event<DockviewWillShowOverlayLocationEvent>;
|
|
407
407
|
/**
|
|
408
408
|
* Invoked before a group is dragged.
|
|
409
409
|
*
|
|
@@ -3,7 +3,7 @@ import { DockviewComponent } from '../dockview/dockviewComponent';
|
|
|
3
3
|
import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
|
|
4
4
|
import { DockviewGroupChangeEvent, DockviewGroupLocation } from '../dockview/dockviewGroupPanelModel';
|
|
5
5
|
import { Emitter, Event } from '../events';
|
|
6
|
-
import { GridviewPanelApi, GridviewPanelApiImpl } from './gridviewPanelApi';
|
|
6
|
+
import { GridviewPanelApi, GridviewPanelApiImpl, SizeEvent } from './gridviewPanelApi';
|
|
7
7
|
export interface DockviewGroupMoveParams {
|
|
8
8
|
group?: DockviewGroupPanel;
|
|
9
9
|
position?: Position;
|
|
@@ -36,12 +36,14 @@ export interface DockviewGroupPanelFloatingChangeEvent {
|
|
|
36
36
|
export declare class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
|
|
37
37
|
private readonly accessor;
|
|
38
38
|
private _group;
|
|
39
|
+
private _pendingSize;
|
|
39
40
|
readonly _onDidLocationChange: Emitter<DockviewGroupPanelFloatingChangeEvent>;
|
|
40
41
|
readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
|
|
41
42
|
readonly _onDidActivePanelChange: Emitter<DockviewGroupChangeEvent>;
|
|
42
43
|
readonly onDidActivePanelChange: Event<DockviewGroupChangeEvent>;
|
|
43
44
|
get location(): DockviewGroupLocation;
|
|
44
45
|
constructor(id: string, accessor: DockviewComponent);
|
|
46
|
+
setSize(event: SizeEvent): void;
|
|
45
47
|
close(): void;
|
|
46
48
|
getWindow(): Window;
|
|
47
49
|
moveTo(options: DockviewGroupMoveParams): void;
|
|
@@ -16,7 +16,19 @@ export class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
|
|
|
16
16
|
this.onDidLocationChange = this._onDidLocationChange.event;
|
|
17
17
|
this._onDidActivePanelChange = new Emitter();
|
|
18
18
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
19
|
-
this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange)
|
|
19
|
+
this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange, this._onDidVisibilityChange.event((event) => {
|
|
20
|
+
// When becoming visible, apply any pending size change
|
|
21
|
+
if (event.isVisible && this._pendingSize) {
|
|
22
|
+
super.setSize(this._pendingSize);
|
|
23
|
+
this._pendingSize = undefined;
|
|
24
|
+
}
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
setSize(event) {
|
|
28
|
+
// Always store the requested size
|
|
29
|
+
this._pendingSize = Object.assign({}, event);
|
|
30
|
+
// Apply the size change immediately
|
|
31
|
+
super.setSize(event);
|
|
20
32
|
}
|
|
21
33
|
close() {
|
|
22
34
|
if (!this._group) {
|
|
@@ -2,7 +2,7 @@ import { Event } from '../../../events';
|
|
|
2
2
|
import { CompositeDisposable } from '../../../lifecycle';
|
|
3
3
|
import { DockviewComponent } from '../../dockviewComponent';
|
|
4
4
|
import { DockviewGroupPanel } from '../../dockviewGroupPanel';
|
|
5
|
-
import {
|
|
5
|
+
import { DockviewWillShowOverlayLocationEvent } from '../../events';
|
|
6
6
|
import { IDockviewPanel } from '../../dockviewPanel';
|
|
7
7
|
import { Tab } from '../tab/tab';
|
|
8
8
|
import { TabDragEvent, TabDropIndexEvent } from './tabsContainer';
|
|
@@ -20,7 +20,7 @@ export declare class Tabs extends CompositeDisposable {
|
|
|
20
20
|
private readonly _onDrop;
|
|
21
21
|
readonly onDrop: Event<TabDropIndexEvent>;
|
|
22
22
|
private readonly _onWillShowOverlay;
|
|
23
|
-
readonly onWillShowOverlay: Event<
|
|
23
|
+
readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
|
|
24
24
|
private readonly _onOverflowTabsChange;
|
|
25
25
|
readonly onOverflowTabsChange: Event<{
|
|
26
26
|
tabs: string[];
|
|
@@ -3,7 +3,7 @@ import { isChildEntirelyVisibleWithinParent, OverflowObserver, } from '../../../
|
|
|
3
3
|
import { addDisposableListener, Emitter } from '../../../events';
|
|
4
4
|
import { CompositeDisposable, Disposable, MutableDisposable, } from '../../../lifecycle';
|
|
5
5
|
import { Scrollbar } from '../../../scrollbar';
|
|
6
|
-
import {
|
|
6
|
+
import { DockviewWillShowOverlayLocationEvent } from '../../events';
|
|
7
7
|
import { Tab } from '../tab/tab';
|
|
8
8
|
export class Tabs extends CompositeDisposable {
|
|
9
9
|
get showTabsOverflowControl() {
|
|
@@ -145,7 +145,7 @@ export class Tabs extends CompositeDisposable {
|
|
|
145
145
|
index: this._tabs.findIndex((x) => x.value === tab),
|
|
146
146
|
});
|
|
147
147
|
}), tab.onWillShowOverlay((event) => {
|
|
148
|
-
this._onWillShowOverlay.fire(new
|
|
148
|
+
this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
|
|
149
149
|
kind: 'tab',
|
|
150
150
|
panel: this.group.activePanel,
|
|
151
151
|
api: this.accessor.api,
|
|
@@ -4,7 +4,7 @@ import { Tab } from '../tab/tab';
|
|
|
4
4
|
import { DockviewGroupPanel } from '../../dockviewGroupPanel';
|
|
5
5
|
import { IDockviewPanel } from '../../dockviewPanel';
|
|
6
6
|
import { DockviewComponent } from '../../dockviewComponent';
|
|
7
|
-
import {
|
|
7
|
+
import { DockviewWillShowOverlayLocationEvent } from '../../events';
|
|
8
8
|
export interface TabDropIndexEvent {
|
|
9
9
|
readonly event: DragEvent;
|
|
10
10
|
readonly index: number;
|
|
@@ -24,7 +24,7 @@ export interface ITabsContainer extends IDisposable {
|
|
|
24
24
|
readonly onDrop: Event<TabDropIndexEvent>;
|
|
25
25
|
readonly onTabDragStart: Event<TabDragEvent>;
|
|
26
26
|
readonly onGroupDragStart: Event<GroupDragEvent>;
|
|
27
|
-
readonly onWillShowOverlay: Event<
|
|
27
|
+
readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
|
|
28
28
|
hidden: boolean;
|
|
29
29
|
delete(id: string): void;
|
|
30
30
|
indexOf(id: string): number;
|
|
@@ -62,7 +62,7 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
62
62
|
private readonly _onGroupDragStart;
|
|
63
63
|
readonly onGroupDragStart: Event<GroupDragEvent>;
|
|
64
64
|
private readonly _onWillShowOverlay;
|
|
65
|
-
readonly onWillShowOverlay: Event<
|
|
65
|
+
readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
|
|
66
66
|
get panels(): string[];
|
|
67
67
|
get size(): number;
|
|
68
68
|
get hidden(): boolean;
|
|
@@ -2,7 +2,7 @@ import { CompositeDisposable, Disposable, MutableDisposable, } from '../../../li
|
|
|
2
2
|
import { addDisposableListener, Emitter } from '../../../events';
|
|
3
3
|
import { VoidContainer } from './voidContainer';
|
|
4
4
|
import { findRelativeZIndexParent, toggleClass } from '../../../dom';
|
|
5
|
-
import {
|
|
5
|
+
import { DockviewWillShowOverlayLocationEvent } from '../../events';
|
|
6
6
|
import { getPanelData } from '../../../dnd/dataTransfer';
|
|
7
7
|
import { Tabs } from './tabs';
|
|
8
8
|
import { createDropdownElementHandle, } from './tabOverflowControl';
|
|
@@ -74,7 +74,7 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
74
74
|
index: this.tabs.size,
|
|
75
75
|
});
|
|
76
76
|
}), this.voidContainer.onWillShowOverlay((event) => {
|
|
77
|
-
this._onWillShowOverlay.fire(new
|
|
77
|
+
this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
|
|
78
78
|
kind: 'header_space',
|
|
79
79
|
panel: this.group.activePanel,
|
|
80
80
|
api: this.accessor.api,
|
|
@@ -8,7 +8,7 @@ import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
|
|
|
8
8
|
import { DockviewApi } from '../api/component.api';
|
|
9
9
|
import { Orientation } from '../splitview/splitview';
|
|
10
10
|
import { GroupOptions, GroupPanelViewState, DockviewDidDropEvent, DockviewWillDropEvent } from './dockviewGroupPanelModel';
|
|
11
|
-
import {
|
|
11
|
+
import { DockviewWillShowOverlayLocationEvent } from './events';
|
|
12
12
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
13
13
|
import { Parameters } from '../panel/types';
|
|
14
14
|
import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
|
|
@@ -129,7 +129,7 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
|
|
|
129
129
|
readonly orientation: Orientation;
|
|
130
130
|
readonly onDidDrop: Event<DockviewDidDropEvent>;
|
|
131
131
|
readonly onWillDrop: Event<DockviewWillDropEvent>;
|
|
132
|
-
readonly onWillShowOverlay: Event<
|
|
132
|
+
readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
|
|
133
133
|
readonly onDidRemovePanel: Event<IDockviewPanel>;
|
|
134
134
|
readonly onDidAddPanel: Event<IDockviewPanel>;
|
|
135
135
|
readonly onDidLayoutFromJSON: Event<void>;
|
|
@@ -199,7 +199,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
|
|
|
199
199
|
private readonly _onWillDrop;
|
|
200
200
|
readonly onWillDrop: Event<DockviewWillDropEvent>;
|
|
201
201
|
private readonly _onWillShowOverlay;
|
|
202
|
-
readonly onWillShowOverlay: Event<
|
|
202
|
+
readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
|
|
203
203
|
private readonly _onUnhandledDragOverEvent;
|
|
204
204
|
readonly onUnhandledDragOverEvent: Event<DockviewDndOverlayEvent>;
|
|
205
205
|
private readonly _onDidRemovePanel;
|
|
@@ -12,7 +12,7 @@ import { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';
|
|
|
12
12
|
import { DockviewApi } from '../api/component.api';
|
|
13
13
|
import { Orientation } from '../splitview/splitview';
|
|
14
14
|
import { DockviewDidDropEvent, DockviewWillDropEvent, } from './dockviewGroupPanelModel';
|
|
15
|
-
import {
|
|
15
|
+
import { DockviewWillShowOverlayLocationEvent } from './events';
|
|
16
16
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
17
17
|
import { DockviewPanelModel } from './dockviewPanelModel';
|
|
18
18
|
import { getPanelData } from '../dnd/dataTransfer';
|
|
@@ -221,7 +221,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
221
221
|
// option only available when no panels in primary grid
|
|
222
222
|
return;
|
|
223
223
|
}
|
|
224
|
-
this._onWillShowOverlay.fire(new
|
|
224
|
+
this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
|
|
225
225
|
kind: 'edge',
|
|
226
226
|
panel: undefined,
|
|
227
227
|
api: this._api,
|
|
@@ -1460,6 +1460,13 @@ export class DockviewComponent extends BaseGrid {
|
|
|
1460
1460
|
panel: removedPanel,
|
|
1461
1461
|
from: sourceGroup,
|
|
1462
1462
|
});
|
|
1463
|
+
/**
|
|
1464
|
+
* Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
|
|
1465
|
+
* With defaultRenderer="always" this results in panel content not showing after move operations.
|
|
1466
|
+
*/
|
|
1467
|
+
requestAnimationFrame(() => {
|
|
1468
|
+
this.overlayRenderContainer.updateAllPositions();
|
|
1469
|
+
});
|
|
1463
1470
|
}
|
|
1464
1471
|
else {
|
|
1465
1472
|
/**
|
|
@@ -3,7 +3,7 @@ import { PanelTransfer } from '../dnd/dataTransfer';
|
|
|
3
3
|
import { Position } from '../dnd/droptarget';
|
|
4
4
|
import { DockviewComponent } from './dockviewComponent';
|
|
5
5
|
import { DockviewEvent, Event } from '../events';
|
|
6
|
-
import { DockviewGroupDropLocation,
|
|
6
|
+
import { DockviewGroupDropLocation, DockviewWillShowOverlayLocationEvent } from './events';
|
|
7
7
|
import { IViewSize } from '../gridview/gridview';
|
|
8
8
|
import { CompositeDisposable } from '../lifecycle';
|
|
9
9
|
import { IPanel, PanelInitParameters, PanelUpdateEvent, Parameters } from '../panel/types';
|
|
@@ -155,7 +155,7 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
|
|
|
155
155
|
private readonly _onWillDrop;
|
|
156
156
|
readonly onWillDrop: Event<DockviewWillDropEvent>;
|
|
157
157
|
private readonly _onWillShowOverlay;
|
|
158
|
-
readonly onWillShowOverlay: Event<
|
|
158
|
+
readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
|
|
159
159
|
private readonly _onTabDragStart;
|
|
160
160
|
readonly onTabDragStart: Event<TabDragEvent>;
|
|
161
161
|
private readonly _onGroupDragStart;
|
|
@@ -2,7 +2,7 @@ import { DockviewApi } from '../api/component.api';
|
|
|
2
2
|
import { getPanelData } from '../dnd/dataTransfer';
|
|
3
3
|
import { isAncestor, toggleClass } from '../dom';
|
|
4
4
|
import { addDisposableListener, DockviewEvent, Emitter, } from '../events';
|
|
5
|
-
import {
|
|
5
|
+
import { DockviewWillShowOverlayLocationEvent } from './events';
|
|
6
6
|
import { CompositeDisposable } from '../lifecycle';
|
|
7
7
|
import { ContentContainer, } from './components/panel/content';
|
|
8
8
|
import { TabsContainer, } from './components/titlebar/tabsContainer';
|
|
@@ -177,7 +177,7 @@ export class DockviewGroupPanelModel extends CompositeDisposable {
|
|
|
177
177
|
}), this.tabsContainer.onWillShowOverlay((event) => {
|
|
178
178
|
this._onWillShowOverlay.fire(event);
|
|
179
179
|
}), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
|
|
180
|
-
this._onWillShowOverlay.fire(new
|
|
180
|
+
this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
|
|
181
181
|
kind: 'content',
|
|
182
182
|
panel: this.activePanel,
|
|
183
183
|
api: this._api,
|
|
@@ -5,16 +5,16 @@ import { IDockviewPanel } from './dockviewPanel';
|
|
|
5
5
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
6
6
|
import { IDockviewEvent } from '../events';
|
|
7
7
|
export type DockviewGroupDropLocation = 'tab' | 'header_space' | 'content' | 'edge';
|
|
8
|
-
export interface
|
|
8
|
+
export interface DockviewWillShowOverlayLocationEventOptions {
|
|
9
9
|
readonly kind: DockviewGroupDropLocation;
|
|
10
10
|
readonly panel: IDockviewPanel | undefined;
|
|
11
11
|
readonly api: DockviewApi;
|
|
12
12
|
readonly group: DockviewGroupPanel | undefined;
|
|
13
13
|
getData: () => PanelTransfer | undefined;
|
|
14
14
|
}
|
|
15
|
-
export declare class
|
|
15
|
+
export declare class DockviewWillShowOverlayLocationEvent implements IDockviewEvent {
|
|
16
16
|
private readonly event;
|
|
17
|
-
readonly options:
|
|
17
|
+
readonly options: DockviewWillShowOverlayLocationEventOptions;
|
|
18
18
|
get kind(): DockviewGroupDropLocation;
|
|
19
19
|
get nativeEvent(): DragEvent;
|
|
20
20
|
get position(): Position;
|
|
@@ -24,5 +24,5 @@ export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
|
|
|
24
24
|
get group(): DockviewGroupPanel | undefined;
|
|
25
25
|
preventDefault(): void;
|
|
26
26
|
getData(): PanelTransfer | undefined;
|
|
27
|
-
constructor(event: WillShowOverlayEvent, options:
|
|
27
|
+
constructor(event: WillShowOverlayEvent, options: DockviewWillShowOverlayLocationEventOptions);
|
|
28
28
|
}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -16,7 +16,8 @@ export * from './gridview/baseComponentGridview';
|
|
|
16
16
|
export { DraggablePaneviewPanel, PaneviewDidDropEvent as PaneviewDropEvent, } from './paneview/draggablePaneviewPanel';
|
|
17
17
|
export * from './dockview/components/panel/content';
|
|
18
18
|
export * from './dockview/components/tab/tab';
|
|
19
|
-
export
|
|
19
|
+
export { DockviewGroupPanelModel, DockviewDidDropEvent, DockviewWillDropEvent, DockviewGroupChangeEvent, } from './dockview/dockviewGroupPanelModel';
|
|
20
|
+
export { DockviewWillShowOverlayLocationEvent } from './dockview/events';
|
|
20
21
|
export { TabDragEvent, GroupDragEvent, } from './dockview/components/titlebar/tabsContainer';
|
|
21
22
|
export * from './dockview/types';
|
|
22
23
|
export * from './dockview/dockviewGroupPanel';
|
package/dist/esm/index.js
CHANGED
|
@@ -16,7 +16,8 @@ export * from './gridview/baseComponentGridview';
|
|
|
16
16
|
export { DraggablePaneviewPanel, } from './paneview/draggablePaneviewPanel';
|
|
17
17
|
export * from './dockview/components/panel/content';
|
|
18
18
|
export * from './dockview/components/tab/tab';
|
|
19
|
-
export
|
|
19
|
+
export { DockviewGroupPanelModel, DockviewDidDropEvent, DockviewWillDropEvent, } from './dockview/dockviewGroupPanelModel';
|
|
20
|
+
export { DockviewWillShowOverlayLocationEvent } from './dockview/events';
|
|
20
21
|
export * from './dockview/types';
|
|
21
22
|
export * from './dockview/dockviewGroupPanel';
|
|
22
23
|
export * from './dockview/options';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { disableIframePointEvents, quasiDefaultPrevented, toggleClass, } from '../dom';
|
|
2
|
-
import { Emitter, addDisposableListener
|
|
2
|
+
import { Emitter, addDisposableListener } from '../events';
|
|
3
3
|
import { CompositeDisposable, MutableDisposable } from '../lifecycle';
|
|
4
4
|
import { clamp } from '../math';
|
|
5
5
|
class AriaLevelTracker {
|
|
@@ -267,13 +267,16 @@ export class Overlay extends CompositeDisposable {
|
|
|
267
267
|
let right = undefined;
|
|
268
268
|
let width = undefined;
|
|
269
269
|
const moveTop = () => {
|
|
270
|
-
|
|
270
|
+
// When dragging top handle, constrain top position to prevent oversizing
|
|
271
|
+
const maxTop = startPosition.originalY +
|
|
271
272
|
startPosition.originalHeight >
|
|
272
273
|
containerRect.height
|
|
273
|
-
?
|
|
274
|
+
? Math.max(0, containerRect.height -
|
|
275
|
+
Overlay.MINIMUM_HEIGHT)
|
|
274
276
|
: Math.max(0, startPosition.originalY +
|
|
275
277
|
startPosition.originalHeight -
|
|
276
|
-
Overlay.MINIMUM_HEIGHT)
|
|
278
|
+
Overlay.MINIMUM_HEIGHT);
|
|
279
|
+
top = clamp(y, 0, maxTop);
|
|
277
280
|
height =
|
|
278
281
|
startPosition.originalY +
|
|
279
282
|
startPosition.originalHeight -
|
|
@@ -284,22 +287,27 @@ export class Overlay extends CompositeDisposable {
|
|
|
284
287
|
top =
|
|
285
288
|
startPosition.originalY -
|
|
286
289
|
startPosition.originalHeight;
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
+
// When dragging bottom handle, constrain height to container height
|
|
291
|
+
const minHeight = top < 0 &&
|
|
292
|
+
typeof this.options.minimumInViewportHeight ===
|
|
293
|
+
'number'
|
|
290
294
|
? -top +
|
|
291
295
|
this.options.minimumInViewportHeight
|
|
292
|
-
: Overlay.MINIMUM_HEIGHT
|
|
296
|
+
: Overlay.MINIMUM_HEIGHT;
|
|
297
|
+
const maxHeight = containerRect.height - Math.max(0, top);
|
|
298
|
+
height = clamp(y - top, minHeight, maxHeight);
|
|
293
299
|
bottom = containerRect.height - top - height;
|
|
294
300
|
};
|
|
295
301
|
const moveLeft = () => {
|
|
296
|
-
|
|
302
|
+
const maxLeft = startPosition.originalX +
|
|
297
303
|
startPosition.originalWidth >
|
|
298
304
|
containerRect.width
|
|
299
|
-
?
|
|
305
|
+
? Math.max(0, containerRect.width -
|
|
306
|
+
Overlay.MINIMUM_WIDTH) // Prevent extending beyong right edge
|
|
300
307
|
: Math.max(0, startPosition.originalX +
|
|
301
308
|
startPosition.originalWidth -
|
|
302
|
-
Overlay.MINIMUM_WIDTH)
|
|
309
|
+
Overlay.MINIMUM_WIDTH);
|
|
310
|
+
left = clamp(x, 0, maxLeft); // min is 0 (Not -Infinity) to prevent dragging beyond left edge
|
|
303
311
|
width =
|
|
304
312
|
startPosition.originalX +
|
|
305
313
|
startPosition.originalWidth -
|
|
@@ -310,12 +318,15 @@ export class Overlay extends CompositeDisposable {
|
|
|
310
318
|
left =
|
|
311
319
|
startPosition.originalX -
|
|
312
320
|
startPosition.originalWidth;
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
321
|
+
// When dragging right handle, constrain width to container width
|
|
322
|
+
const minWidth = left < 0 &&
|
|
323
|
+
typeof this.options.minimumInViewportWidth ===
|
|
324
|
+
'number'
|
|
316
325
|
? -left +
|
|
317
326
|
this.options.minimumInViewportWidth
|
|
318
|
-
: Overlay.MINIMUM_WIDTH
|
|
327
|
+
: Overlay.MINIMUM_WIDTH;
|
|
328
|
+
const maxWidth = containerRect.width - Math.max(0, left);
|
|
329
|
+
width = clamp(x - left, minWidth, maxWidth);
|
|
319
330
|
right = containerRect.width - left - width;
|
|
320
331
|
};
|
|
321
332
|
switch (direction) {
|
|
@@ -427,11 +427,13 @@ export class Splitview {
|
|
|
427
427
|
document.removeEventListener('pointermove', onPointerMove);
|
|
428
428
|
document.removeEventListener('pointerup', end);
|
|
429
429
|
document.removeEventListener('pointercancel', end);
|
|
430
|
+
document.removeEventListener('contextmenu', end);
|
|
430
431
|
this._onDidSashEnd.fire(undefined);
|
|
431
432
|
};
|
|
432
433
|
document.addEventListener('pointermove', onPointerMove);
|
|
433
434
|
document.addEventListener('pointerup', end);
|
|
434
435
|
document.addEventListener('pointercancel', end);
|
|
436
|
+
document.addEventListener('contextmenu', end);
|
|
435
437
|
};
|
|
436
438
|
sash.addEventListener('pointerdown', onPointerStart);
|
|
437
439
|
const sashItem = {
|