dockview-core 3.1.1 → 4.0.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 +0 -2
- package/dist/cjs/api/component.api.js +0 -10
- package/dist/cjs/dnd/abstractDragHandler.js +4 -2
- package/dist/cjs/dnd/dropTargetAnchorContainer.d.ts +16 -0
- package/dist/cjs/dnd/dropTargetAnchorContainer.js +105 -0
- package/dist/cjs/dnd/droptarget.d.ts +16 -0
- package/dist/cjs/dnd/droptarget.js +138 -14
- package/dist/cjs/dnd/ghost.d.ts +4 -1
- package/dist/cjs/dnd/ghost.js +3 -2
- package/dist/cjs/dnd/groupDragHandler.js +3 -1
- package/dist/cjs/dockview/components/panel/content.js +10 -13
- package/dist/cjs/dockview/components/popupService.d.ts +13 -0
- package/dist/cjs/dockview/components/popupService.js +76 -0
- package/dist/cjs/dockview/components/tab/tab.js +17 -7
- package/dist/cjs/dockview/components/titlebar/tabOverflowControl.d.ts +8 -0
- package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +20 -0
- package/dist/cjs/dockview/components/titlebar/tabs.d.ts +45 -0
- package/dist/cjs/dockview/components/titlebar/tabs.js +288 -0
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +8 -9
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +108 -152
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +2 -9
- package/dist/cjs/dockview/dockviewComponent.d.ts +10 -3
- package/dist/cjs/dockview/dockviewComponent.js +71 -30
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -0
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +31 -0
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +5 -3
- package/dist/cjs/dockview/dockviewPanelModel.js +25 -4
- package/dist/cjs/dockview/framework.d.ts +4 -1
- package/dist/cjs/dockview/options.d.ts +8 -5
- package/dist/cjs/dockview/options.js +3 -1
- package/dist/cjs/dockview/theme.d.ts +31 -0
- package/dist/cjs/dockview/theme.js +42 -0
- package/dist/cjs/dockview/types.d.ts +5 -1
- package/dist/cjs/dom.d.ts +1 -0
- package/dist/cjs/dom.js +15 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/paneview/paneviewComponent.js +1 -0
- package/dist/cjs/scrollbar.d.ts +12 -0
- package/dist/cjs/scrollbar.js +106 -0
- package/dist/cjs/splitview/splitview.js +1 -0
- package/dist/cjs/splitview/splitviewComponent.js +1 -0
- package/dist/dockview-core.amd.js +930 -293
- 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 +929 -292
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +930 -293
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +923 -294
- 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 +930 -293
- 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 +929 -292
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +0 -2
- package/dist/esm/api/component.api.js +0 -6
- package/dist/esm/dnd/abstractDragHandler.js +4 -2
- package/dist/esm/dnd/dropTargetAnchorContainer.d.ts +16 -0
- package/dist/esm/dnd/dropTargetAnchorContainer.js +74 -0
- package/dist/esm/dnd/droptarget.d.ts +16 -0
- package/dist/esm/dnd/droptarget.js +134 -14
- package/dist/esm/dnd/ghost.d.ts +4 -1
- package/dist/esm/dnd/ghost.js +3 -2
- package/dist/esm/dnd/groupDragHandler.js +3 -1
- package/dist/esm/dockview/components/panel/content.js +10 -13
- package/dist/esm/dockview/components/popupService.d.ts +13 -0
- package/dist/esm/dockview/components/popupService.js +53 -0
- package/dist/esm/dockview/components/tab/tab.js +15 -7
- package/dist/esm/dockview/components/titlebar/tabOverflowControl.d.ts +8 -0
- package/dist/esm/dockview/components/titlebar/tabOverflowControl.js +16 -0
- package/dist/esm/dockview/components/titlebar/tabs.d.ts +45 -0
- package/dist/esm/dockview/components/titlebar/tabs.js +183 -0
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +8 -9
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +133 -162
- package/dist/esm/dockview/components/titlebar/voidContainer.js +2 -9
- package/dist/esm/dockview/dockviewComponent.d.ts +10 -3
- package/dist/esm/dockview/dockviewComponent.js +69 -24
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -0
- package/dist/esm/dockview/dockviewGroupPanelModel.js +27 -0
- package/dist/esm/dockview/dockviewPanelModel.d.ts +5 -3
- package/dist/esm/dockview/dockviewPanelModel.js +14 -4
- package/dist/esm/dockview/framework.d.ts +4 -1
- package/dist/esm/dockview/options.d.ts +8 -5
- package/dist/esm/dockview/options.js +3 -1
- package/dist/esm/dockview/theme.d.ts +31 -0
- package/dist/esm/dockview/theme.js +39 -0
- package/dist/esm/dockview/types.d.ts +5 -1
- package/dist/esm/dom.d.ts +1 -0
- package/dist/esm/dom.js +13 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +3 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/paneview/paneviewComponent.js +1 -0
- package/dist/esm/scrollbar.d.ts +12 -0
- package/dist/esm/scrollbar.js +80 -0
- package/dist/esm/splitview/splitview.js +1 -0
- package/dist/esm/splitview/splitviewComponent.js +1 -0
- package/dist/styles/dockview.css +444 -76
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ import { DockviewDndOverlayEvent } from './options';
|
|
|
13
13
|
import { OverlayRenderContainer } from '../overlay/overlayRenderContainer';
|
|
14
14
|
import { TitleEvent } from '../api/dockviewPanelApi';
|
|
15
15
|
import { Contraints } from '../gridview/gridviewPanel';
|
|
16
|
+
import { DropTargetAnchorContainer } from '../dnd/dropTargetAnchorContainer';
|
|
16
17
|
interface GroupMoveEvent {
|
|
17
18
|
groupId: string;
|
|
18
19
|
itemId?: string;
|
|
@@ -160,6 +161,7 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
|
|
|
160
161
|
private _location;
|
|
161
162
|
private mostRecentlyUsed;
|
|
162
163
|
private _overwriteRenderContainer;
|
|
164
|
+
private _overwriteDropTargetContainer;
|
|
163
165
|
private readonly _onDidChange;
|
|
164
166
|
readonly onDidChange: Event<IViewSize | undefined>;
|
|
165
167
|
private _width;
|
|
@@ -208,6 +210,8 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
|
|
|
208
210
|
focusContent(): void;
|
|
209
211
|
set renderContainer(value: OverlayRenderContainer | null);
|
|
210
212
|
get renderContainer(): OverlayRenderContainer;
|
|
213
|
+
set dropTargetContainer(value: DropTargetAnchorContainer | null);
|
|
214
|
+
get dropTargetContainer(): DropTargetAnchorContainer | null;
|
|
211
215
|
initialize(): void;
|
|
212
216
|
rerender(panel: IDockviewPanel): void;
|
|
213
217
|
indexOf(panel: IDockviewPanel): number;
|
|
@@ -203,6 +203,7 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
203
203
|
_this._location = { type: 'grid' };
|
|
204
204
|
_this.mostRecentlyUsed = [];
|
|
205
205
|
_this._overwriteRenderContainer = null;
|
|
206
|
+
_this._overwriteDropTargetContainer = null;
|
|
206
207
|
_this._onDidChange = new events_1.Emitter();
|
|
207
208
|
_this.onDidChange = _this._onDidChange.event;
|
|
208
209
|
_this._width = 0;
|
|
@@ -400,6 +401,17 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
400
401
|
enumerable: false,
|
|
401
402
|
configurable: true
|
|
402
403
|
});
|
|
404
|
+
Object.defineProperty(DockviewGroupPanelModel.prototype, "dropTargetContainer", {
|
|
405
|
+
get: function () {
|
|
406
|
+
var _a;
|
|
407
|
+
return ((_a = this._overwriteDropTargetContainer) !== null && _a !== void 0 ? _a : this.accessor.rootDropTargetContainer);
|
|
408
|
+
},
|
|
409
|
+
set: function (value) {
|
|
410
|
+
this._overwriteDropTargetContainer = value;
|
|
411
|
+
},
|
|
412
|
+
enumerable: false,
|
|
413
|
+
configurable: true
|
|
414
|
+
});
|
|
403
415
|
DockviewGroupPanelModel.prototype.initialize = function () {
|
|
404
416
|
var _this = this;
|
|
405
417
|
if (this.options.panels) {
|
|
@@ -771,6 +783,25 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
771
783
|
}
|
|
772
784
|
var data = (0, dataTransfer_1.getPanelData)();
|
|
773
785
|
if (data && data.viewId === this.accessor.id) {
|
|
786
|
+
if (type === 'content') {
|
|
787
|
+
if (data.groupId === this.id) {
|
|
788
|
+
// don't allow to drop on self for center position
|
|
789
|
+
if (position === 'center') {
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
792
|
+
if (data.panelId === null) {
|
|
793
|
+
// don't allow group move to drop anywhere on self
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
if (type === 'header') {
|
|
799
|
+
if (data.groupId === this.id) {
|
|
800
|
+
if (data.panelId === null) {
|
|
801
|
+
return;
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
}
|
|
774
805
|
if (data.panelId === null) {
|
|
775
806
|
// this is a group move dnd event
|
|
776
807
|
var groupId_1 = data.groupId;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GroupPanelPartInitParameters, IContentRenderer, ITabRenderer } from './types';
|
|
2
|
-
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
3
2
|
import { IDisposable } from '../lifecycle';
|
|
4
3
|
import { IDockviewComponent } from './dockviewComponent';
|
|
5
4
|
import { PanelUpdateEvent } from '../panel/types';
|
|
5
|
+
import { TabLocation } from './framework';
|
|
6
6
|
export interface IDockviewPanelModel extends IDisposable {
|
|
7
7
|
readonly contentComponent: string;
|
|
8
8
|
readonly tabComponent?: string;
|
|
@@ -11,7 +11,7 @@ export interface IDockviewPanelModel extends IDisposable {
|
|
|
11
11
|
update(event: PanelUpdateEvent): void;
|
|
12
12
|
layout(width: number, height: number): void;
|
|
13
13
|
init(params: GroupPanelPartInitParameters): void;
|
|
14
|
-
|
|
14
|
+
createTabRenderer(tabLocation: TabLocation): ITabRenderer;
|
|
15
15
|
}
|
|
16
16
|
export declare class DockviewPanelModel implements IDockviewPanelModel {
|
|
17
17
|
private readonly accessor;
|
|
@@ -20,11 +20,13 @@ export declare class DockviewPanelModel implements IDockviewPanelModel {
|
|
|
20
20
|
readonly tabComponent?: string | undefined;
|
|
21
21
|
private readonly _content;
|
|
22
22
|
private readonly _tab;
|
|
23
|
+
private _params;
|
|
24
|
+
private _updateEvent;
|
|
23
25
|
get content(): IContentRenderer;
|
|
24
26
|
get tab(): ITabRenderer;
|
|
25
27
|
constructor(accessor: IDockviewComponent, id: string, contentComponent: string, tabComponent?: string | undefined);
|
|
28
|
+
createTabRenderer(tabLocation: TabLocation): ITabRenderer;
|
|
26
29
|
init(params: GroupPanelPartInitParameters): void;
|
|
27
|
-
updateParentGroup(_group: DockviewGroupPanel, _isPanelVisible: boolean): void;
|
|
28
30
|
layout(width: number, height: number): void;
|
|
29
31
|
update(event: PanelUpdateEvent): void;
|
|
30
32
|
dispose(): void;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
exports.DockviewPanelModel = void 0;
|
|
4
15
|
var defaultTab_1 = require("./components/tab/defaultTab");
|
|
@@ -25,12 +36,21 @@ var DockviewPanelModel = /** @class */ (function () {
|
|
|
25
36
|
enumerable: false,
|
|
26
37
|
configurable: true
|
|
27
38
|
});
|
|
39
|
+
DockviewPanelModel.prototype.createTabRenderer = function (tabLocation) {
|
|
40
|
+
var _a;
|
|
41
|
+
var cmp = this.createTabComponent(this.id, this.tabComponent);
|
|
42
|
+
if (this._params) {
|
|
43
|
+
cmp.init(__assign(__assign({}, this._params), { tabLocation: tabLocation }));
|
|
44
|
+
}
|
|
45
|
+
if (this._updateEvent) {
|
|
46
|
+
(_a = cmp.update) === null || _a === void 0 ? void 0 : _a.call(cmp, this._updateEvent);
|
|
47
|
+
}
|
|
48
|
+
return cmp;
|
|
49
|
+
};
|
|
28
50
|
DockviewPanelModel.prototype.init = function (params) {
|
|
51
|
+
this._params = params;
|
|
29
52
|
this.content.init(params);
|
|
30
|
-
this.tab.init(params);
|
|
31
|
-
};
|
|
32
|
-
DockviewPanelModel.prototype.updateParentGroup = function (_group, _isPanelVisible) {
|
|
33
|
-
// noop
|
|
53
|
+
this.tab.init(__assign(__assign({}, params), { tabLocation: 'header' }));
|
|
34
54
|
};
|
|
35
55
|
DockviewPanelModel.prototype.layout = function (width, height) {
|
|
36
56
|
var _a, _b;
|
|
@@ -38,6 +58,7 @@ var DockviewPanelModel = /** @class */ (function () {
|
|
|
38
58
|
};
|
|
39
59
|
DockviewPanelModel.prototype.update = function (event) {
|
|
40
60
|
var _a, _b, _c, _d;
|
|
61
|
+
this._updateEvent = event;
|
|
41
62
|
(_b = (_a = this.content).update) === null || _b === void 0 ? void 0 : _b.call(_a, event);
|
|
42
63
|
(_d = (_c = this.tab).update) === null || _d === void 0 ? void 0 : _d.call(_c, event);
|
|
43
64
|
};
|
|
@@ -10,9 +10,12 @@ export interface IGroupPanelBaseProps<T extends {
|
|
|
10
10
|
api: DockviewPanelApi;
|
|
11
11
|
containerApi: DockviewApi;
|
|
12
12
|
}
|
|
13
|
+
export type TabLocation = 'header' | 'headerOverflow';
|
|
13
14
|
export type IDockviewPanelHeaderProps<T extends {
|
|
14
15
|
[index: string]: any;
|
|
15
|
-
} = any> = IGroupPanelBaseProps<T
|
|
16
|
+
} = any> = IGroupPanelBaseProps<T> & {
|
|
17
|
+
tabLocation: TabLocation;
|
|
18
|
+
};
|
|
16
19
|
export type IDockviewPanelProps<T extends {
|
|
17
20
|
[index: string]: any;
|
|
18
21
|
} = any> = IGroupPanelBaseProps<T>;
|
|
@@ -14,6 +14,7 @@ import { IGroupHeaderProps } from './framework';
|
|
|
14
14
|
import { FloatingGroupOptions } from './dockviewComponent';
|
|
15
15
|
import { Contraints } from '../gridview/gridviewPanel';
|
|
16
16
|
import { AcceptableEvent, IAcceptableEvent } from '../events';
|
|
17
|
+
import { DockviewTheme } from './theme';
|
|
17
18
|
export interface IHeaderActionsRenderer extends IDisposable {
|
|
18
19
|
readonly element: HTMLElement;
|
|
19
20
|
init(params: IGroupHeaderProps): void;
|
|
@@ -43,18 +44,20 @@ export interface DockviewOptions {
|
|
|
43
44
|
popoutUrl?: string;
|
|
44
45
|
defaultRenderer?: DockviewPanelRenderer;
|
|
45
46
|
debug?: boolean;
|
|
47
|
+
dndEdges?: false | DroptargetOverlayModel;
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated use `dndEdges` instead. To be removed in a future version.
|
|
50
|
+
* */
|
|
46
51
|
rootOverlayModel?: DroptargetOverlayModel;
|
|
47
|
-
locked?: boolean;
|
|
48
52
|
disableDnd?: boolean;
|
|
53
|
+
locked?: boolean;
|
|
49
54
|
className?: string;
|
|
50
|
-
/**
|
|
51
|
-
* Pixel gap between groups
|
|
52
|
-
*/
|
|
53
|
-
gap?: number;
|
|
54
55
|
/**
|
|
55
56
|
* Define the behaviour of the dock when there are no panels to display. Defaults to `watermark`.
|
|
56
57
|
*/
|
|
57
58
|
noPanelsOverlay?: 'emptyGroup' | 'watermark';
|
|
59
|
+
theme?: DockviewTheme;
|
|
60
|
+
disableTabsOverflowList?: boolean;
|
|
58
61
|
}
|
|
59
62
|
export interface DockviewDndOverlayEvent extends IAcceptableEvent {
|
|
60
63
|
nativeEvent: DragEvent;
|
|
@@ -48,9 +48,11 @@ exports.PROPERTY_KEYS_DOCKVIEW = (function () {
|
|
|
48
48
|
rootOverlayModel: undefined,
|
|
49
49
|
locked: undefined,
|
|
50
50
|
disableDnd: undefined,
|
|
51
|
-
gap: undefined,
|
|
52
51
|
className: undefined,
|
|
53
52
|
noPanelsOverlay: undefined,
|
|
53
|
+
dndEdges: undefined,
|
|
54
|
+
theme: undefined,
|
|
55
|
+
disableTabsOverflowList: undefined,
|
|
54
56
|
};
|
|
55
57
|
return Object.keys(properties);
|
|
56
58
|
})();
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface DockviewTheme {
|
|
2
|
+
/**
|
|
3
|
+
* The name of the theme
|
|
4
|
+
*/
|
|
5
|
+
name: string;
|
|
6
|
+
/**
|
|
7
|
+
* The class name to apply to the theme containing the CSS variables settings.
|
|
8
|
+
*/
|
|
9
|
+
className: string;
|
|
10
|
+
/**
|
|
11
|
+
* The gap between the groups
|
|
12
|
+
*/
|
|
13
|
+
gap?: number;
|
|
14
|
+
/**
|
|
15
|
+
* The mouting position of the overlay shown when dragging a panel. `absolute`
|
|
16
|
+
* will mount the overlay to root of the dockview component whereas `relative` will mount the overlay to the group container.
|
|
17
|
+
*/
|
|
18
|
+
dndOverlayMounting?: 'absolute' | 'relative';
|
|
19
|
+
/**
|
|
20
|
+
* When dragging a panel, the overlay can either encompass the panel contents or the entire group including the tab header space.
|
|
21
|
+
*/
|
|
22
|
+
dndPanelOverlay?: 'content' | 'group';
|
|
23
|
+
}
|
|
24
|
+
export declare const themeDark: DockviewTheme;
|
|
25
|
+
export declare const themeLight: DockviewTheme;
|
|
26
|
+
export declare const themeVisualStudio: DockviewTheme;
|
|
27
|
+
export declare const themeAbyss: DockviewTheme;
|
|
28
|
+
export declare const themeDracula: DockviewTheme;
|
|
29
|
+
export declare const themeReplit: DockviewTheme;
|
|
30
|
+
export declare const themeAbyssSpaced: DockviewTheme;
|
|
31
|
+
export declare const themeLightSpaced: DockviewTheme;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.themeLightSpaced = exports.themeAbyssSpaced = exports.themeReplit = exports.themeDracula = exports.themeAbyss = exports.themeVisualStudio = exports.themeLight = exports.themeDark = void 0;
|
|
4
|
+
exports.themeDark = {
|
|
5
|
+
name: 'dark',
|
|
6
|
+
className: 'dockview-theme-dark',
|
|
7
|
+
};
|
|
8
|
+
exports.themeLight = {
|
|
9
|
+
name: 'light',
|
|
10
|
+
className: 'dockview-theme-light',
|
|
11
|
+
};
|
|
12
|
+
exports.themeVisualStudio = {
|
|
13
|
+
name: 'visualStudio',
|
|
14
|
+
className: 'dockview-theme-vs',
|
|
15
|
+
};
|
|
16
|
+
exports.themeAbyss = {
|
|
17
|
+
name: 'abyss',
|
|
18
|
+
className: 'dockview-theme-abyss',
|
|
19
|
+
};
|
|
20
|
+
exports.themeDracula = {
|
|
21
|
+
name: 'dracula',
|
|
22
|
+
className: 'dockview-theme-dracula',
|
|
23
|
+
};
|
|
24
|
+
exports.themeReplit = {
|
|
25
|
+
name: 'replit',
|
|
26
|
+
className: 'dockview-theme-replit',
|
|
27
|
+
gap: 10,
|
|
28
|
+
};
|
|
29
|
+
exports.themeAbyssSpaced = {
|
|
30
|
+
name: 'abyssSpaced',
|
|
31
|
+
className: 'dockview-theme-abyss-spaced',
|
|
32
|
+
gap: 10,
|
|
33
|
+
dndOverlayMounting: 'absolute',
|
|
34
|
+
dndPanelOverlay: 'group',
|
|
35
|
+
};
|
|
36
|
+
exports.themeLightSpaced = {
|
|
37
|
+
name: 'lightSpaced',
|
|
38
|
+
className: 'dockview-theme-light-spaced',
|
|
39
|
+
gap: 10,
|
|
40
|
+
dndOverlayMounting: 'absolute',
|
|
41
|
+
dndPanelOverlay: 'group',
|
|
42
|
+
};
|
|
@@ -4,6 +4,7 @@ import { DockviewApi } from '../api/component.api';
|
|
|
4
4
|
import { Optional } from '../types';
|
|
5
5
|
import { IDockviewGroupPanel } from './dockviewGroupPanel';
|
|
6
6
|
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
|
|
7
|
+
import { TabLocation } from './framework';
|
|
7
8
|
export interface HeaderPartInitParameters {
|
|
8
9
|
title: string;
|
|
9
10
|
}
|
|
@@ -20,9 +21,12 @@ export interface IWatermarkRenderer extends Optional<Omit<IPanel, 'id' | 'init'>
|
|
|
20
21
|
readonly element: HTMLElement;
|
|
21
22
|
init: (params: WatermarkRendererInitParameters) => void;
|
|
22
23
|
}
|
|
24
|
+
export interface TabPartInitParameters extends GroupPanelPartInitParameters {
|
|
25
|
+
tabLocation: TabLocation;
|
|
26
|
+
}
|
|
23
27
|
export interface ITabRenderer extends Optional<Omit<IPanel, 'id'>, RendererMethodOptionalList> {
|
|
24
28
|
readonly element: HTMLElement;
|
|
25
|
-
init(parameters:
|
|
29
|
+
init(parameters: TabPartInitParameters): void;
|
|
26
30
|
}
|
|
27
31
|
export interface IContentRenderer extends Optional<Omit<IPanel, 'id'>, RendererMethodOptionalList> {
|
|
28
32
|
readonly element: HTMLElement;
|
package/dist/cjs/dom.d.ts
CHANGED
package/dist/cjs/dom.js
CHANGED
|
@@ -51,7 +51,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
51
51
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
52
52
|
};
|
|
53
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
-
exports.Classnames = exports.getDockviewTheme = exports.disableIframePointEvents = exports.addTestId = exports.isInDocument = exports.getDomNodePagePosition = exports.addStyles = exports.quasiDefaultPrevented = exports.quasiPreventDefault = exports.trackFocus = exports.getElementsByTagName = exports.isAncestor = exports.toggleClass = exports.addClasses = exports.removeClasses = exports.watchElementResize = exports.OverflowObserver = void 0;
|
|
54
|
+
exports.isChildEntirelyVisibleWithinParent = exports.Classnames = exports.getDockviewTheme = exports.disableIframePointEvents = exports.addTestId = exports.isInDocument = exports.getDomNodePagePosition = exports.addStyles = exports.quasiDefaultPrevented = exports.quasiPreventDefault = exports.trackFocus = exports.getElementsByTagName = exports.isAncestor = exports.toggleClass = exports.addClasses = exports.removeClasses = exports.watchElementResize = exports.OverflowObserver = void 0;
|
|
55
55
|
var events_1 = require("./events");
|
|
56
56
|
var lifecycle_1 = require("./lifecycle");
|
|
57
57
|
var OverflowObserver = /** @class */ (function (_super) {
|
|
@@ -423,3 +423,17 @@ var Classnames = /** @class */ (function () {
|
|
|
423
423
|
return Classnames;
|
|
424
424
|
}());
|
|
425
425
|
exports.Classnames = Classnames;
|
|
426
|
+
function isChildEntirelyVisibleWithinParent(child, parent) {
|
|
427
|
+
//
|
|
428
|
+
var childPosition = getDomNodePagePosition(child);
|
|
429
|
+
var parentPosition = getDomNodePagePosition(parent);
|
|
430
|
+
if (childPosition.left < parentPosition.left) {
|
|
431
|
+
return false;
|
|
432
|
+
}
|
|
433
|
+
if (childPosition.left + childPosition.width >
|
|
434
|
+
parentPosition.left + parentPosition.width) {
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
return true;
|
|
438
|
+
}
|
|
439
|
+
exports.isChildEntirelyVisibleWithinParent = isChildEntirelyVisibleWithinParent;
|
|
@@ -6,6 +6,9 @@ import { ISplitviewStyles, Orientation } from '../splitview/splitview';
|
|
|
6
6
|
import { IPanel } from '../panel/types';
|
|
7
7
|
import { MovementOptions2 } from '../dockview/options';
|
|
8
8
|
import { Resizable } from '../resizable';
|
|
9
|
+
/**
|
|
10
|
+
* A direction in which a panel can be moved or placed relative to another panel.
|
|
11
|
+
*/
|
|
9
12
|
export type Direction = 'left' | 'right' | 'above' | 'below' | 'within';
|
|
10
13
|
export declare function toTarget(direction: Direction): Position;
|
|
11
14
|
export interface MaximizedChanged<T extends IGridPanelView> {
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export * from './dockview/types';
|
|
|
22
22
|
export * from './dockview/dockviewGroupPanel';
|
|
23
23
|
export { IGroupPanelBaseProps, IDockviewPanelHeaderProps, IDockviewPanelProps, IDockviewHeaderActionsProps, IGroupHeaderProps, IWatermarkPanelProps, DockviewReadyEvent, } from './dockview/framework';
|
|
24
24
|
export * from './dockview/options';
|
|
25
|
+
export * from './dockview/theme';
|
|
25
26
|
export * from './dockview/dockviewPanel';
|
|
26
27
|
export { DefaultTab } from './dockview/components/tab/defaultTab';
|
|
27
28
|
export { DefaultDockviewDeserialzier, IPanelDeserializer, } from './dockview/deserializer';
|
package/dist/cjs/index.js
CHANGED
|
@@ -49,6 +49,7 @@ __exportStar(require("./dockview/dockviewGroupPanelModel"), exports);
|
|
|
49
49
|
__exportStar(require("./dockview/types"), exports);
|
|
50
50
|
__exportStar(require("./dockview/dockviewGroupPanel"), exports);
|
|
51
51
|
__exportStar(require("./dockview/options"), exports);
|
|
52
|
+
__exportStar(require("./dockview/theme"), exports);
|
|
52
53
|
__exportStar(require("./dockview/dockviewPanel"), exports);
|
|
53
54
|
var defaultTab_1 = require("./dockview/components/tab/defaultTab");
|
|
54
55
|
Object.defineProperty(exports, "DefaultTab", { enumerable: true, get: function () { return defaultTab_1.DefaultTab; } });
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CompositeDisposable } from './lifecycle';
|
|
2
|
+
export declare class Scrollbar extends CompositeDisposable {
|
|
3
|
+
private readonly scrollableElement;
|
|
4
|
+
private readonly _element;
|
|
5
|
+
private readonly _horizontalScrollbar;
|
|
6
|
+
private _scrollLeft;
|
|
7
|
+
private _animationTimer;
|
|
8
|
+
static MouseWheelSpeed: number;
|
|
9
|
+
get element(): HTMLElement;
|
|
10
|
+
constructor(scrollableElement: HTMLElement);
|
|
11
|
+
private calculateScrollbarStyles;
|
|
12
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.Scrollbar = void 0;
|
|
19
|
+
var dom_1 = require("./dom");
|
|
20
|
+
var events_1 = require("./events");
|
|
21
|
+
var lifecycle_1 = require("./lifecycle");
|
|
22
|
+
var math_1 = require("./math");
|
|
23
|
+
var Scrollbar = /** @class */ (function (_super) {
|
|
24
|
+
__extends(Scrollbar, _super);
|
|
25
|
+
function Scrollbar(scrollableElement) {
|
|
26
|
+
var _this = _super.call(this) || this;
|
|
27
|
+
_this.scrollableElement = scrollableElement;
|
|
28
|
+
_this._scrollLeft = 0;
|
|
29
|
+
_this._element = document.createElement('div');
|
|
30
|
+
_this._element.className = 'dv-scrollable';
|
|
31
|
+
_this._horizontalScrollbar = document.createElement('div');
|
|
32
|
+
_this._horizontalScrollbar.className = 'dv-scrollbar-horizontal';
|
|
33
|
+
_this.element.appendChild(scrollableElement);
|
|
34
|
+
_this.element.appendChild(_this._horizontalScrollbar);
|
|
35
|
+
_this.addDisposables((0, events_1.addDisposableListener)(_this.element, 'wheel', function (event) {
|
|
36
|
+
_this._scrollLeft += event.deltaY * Scrollbar.MouseWheelSpeed;
|
|
37
|
+
_this.calculateScrollbarStyles();
|
|
38
|
+
}), (0, events_1.addDisposableListener)(_this._horizontalScrollbar, 'pointerdown', function (event) {
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
(0, dom_1.toggleClass)(_this.element, 'dv-scrollable-scrolling', true);
|
|
41
|
+
var originalClientX = event.clientX;
|
|
42
|
+
var originalScrollLeft = _this._scrollLeft;
|
|
43
|
+
var onPointerMove = function (event) {
|
|
44
|
+
var deltaX = event.clientX - originalClientX;
|
|
45
|
+
var clientWidth = _this.element.clientWidth;
|
|
46
|
+
var scrollWidth = _this.scrollableElement.scrollWidth;
|
|
47
|
+
var p = clientWidth / scrollWidth;
|
|
48
|
+
_this._scrollLeft = originalScrollLeft + deltaX / p;
|
|
49
|
+
_this.calculateScrollbarStyles();
|
|
50
|
+
};
|
|
51
|
+
var onEnd = function () {
|
|
52
|
+
(0, dom_1.toggleClass)(_this.element, 'dv-scrollable-scrolling', false);
|
|
53
|
+
document.removeEventListener('pointermove', onPointerMove);
|
|
54
|
+
document.removeEventListener('pointerup', onEnd);
|
|
55
|
+
document.removeEventListener('pointercancel', onEnd);
|
|
56
|
+
};
|
|
57
|
+
document.addEventListener('pointermove', onPointerMove);
|
|
58
|
+
document.addEventListener('pointerup', onEnd);
|
|
59
|
+
document.addEventListener('pointercancel', onEnd);
|
|
60
|
+
}), (0, events_1.addDisposableListener)(_this.element, 'scroll', function () {
|
|
61
|
+
_this.calculateScrollbarStyles();
|
|
62
|
+
}), (0, events_1.addDisposableListener)(_this.scrollableElement, 'scroll', function () {
|
|
63
|
+
_this._scrollLeft = _this.scrollableElement.scrollLeft;
|
|
64
|
+
_this.calculateScrollbarStyles();
|
|
65
|
+
}), (0, dom_1.watchElementResize)(_this.element, function () {
|
|
66
|
+
(0, dom_1.toggleClass)(_this.element, 'dv-scrollable-resizing', true);
|
|
67
|
+
if (_this._animationTimer) {
|
|
68
|
+
clearTimeout(_this._animationTimer);
|
|
69
|
+
}
|
|
70
|
+
_this._animationTimer = setTimeout(function () {
|
|
71
|
+
clearTimeout(_this._animationTimer);
|
|
72
|
+
(0, dom_1.toggleClass)(_this.element, 'dv-scrollable-resizing', false);
|
|
73
|
+
}, 500);
|
|
74
|
+
_this.calculateScrollbarStyles();
|
|
75
|
+
}));
|
|
76
|
+
return _this;
|
|
77
|
+
}
|
|
78
|
+
Object.defineProperty(Scrollbar.prototype, "element", {
|
|
79
|
+
get: function () {
|
|
80
|
+
return this._element;
|
|
81
|
+
},
|
|
82
|
+
enumerable: false,
|
|
83
|
+
configurable: true
|
|
84
|
+
});
|
|
85
|
+
Scrollbar.prototype.calculateScrollbarStyles = function () {
|
|
86
|
+
var clientWidth = this.element.clientWidth;
|
|
87
|
+
var scrollWidth = this.scrollableElement.scrollWidth;
|
|
88
|
+
var hasScrollbar = scrollWidth > clientWidth;
|
|
89
|
+
if (hasScrollbar) {
|
|
90
|
+
var px = clientWidth * (clientWidth / scrollWidth);
|
|
91
|
+
this._horizontalScrollbar.style.width = "".concat(px, "px");
|
|
92
|
+
this._scrollLeft = (0, math_1.clamp)(this._scrollLeft, 0, this.scrollableElement.scrollWidth - clientWidth);
|
|
93
|
+
this.scrollableElement.scrollLeft = this._scrollLeft;
|
|
94
|
+
var percentageComplete = this._scrollLeft / (scrollWidth - clientWidth);
|
|
95
|
+
this._horizontalScrollbar.style.left = "".concat((clientWidth - px) * percentageComplete, "px");
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this._horizontalScrollbar.style.width = "0px";
|
|
99
|
+
this._horizontalScrollbar.style.left = "0px";
|
|
100
|
+
this._scrollLeft = 0;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
Scrollbar.MouseWheelSpeed = 1;
|
|
104
|
+
return Scrollbar;
|
|
105
|
+
}(lifecycle_1.CompositeDisposable));
|
|
106
|
+
exports.Scrollbar = Scrollbar;
|