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
|
@@ -22,6 +22,7 @@ var dataTransfer_1 = require("../../../dnd/dataTransfer");
|
|
|
22
22
|
var dom_1 = require("../../../dom");
|
|
23
23
|
var droptarget_1 = require("../../../dnd/droptarget");
|
|
24
24
|
var abstractDragHandler_1 = require("../../../dnd/abstractDragHandler");
|
|
25
|
+
var ghost_1 = require("../../../dnd/ghost");
|
|
25
26
|
var TabDragHandler = /** @class */ (function (_super) {
|
|
26
27
|
__extends(TabDragHandler, _super);
|
|
27
28
|
function TabDragHandler(element, accessor, group, panel) {
|
|
@@ -64,25 +65,34 @@ var Tab = /** @class */ (function (_super) {
|
|
|
64
65
|
(0, dom_1.toggleClass)(_this.element, 'dv-inactive-tab', true);
|
|
65
66
|
var dragHandler = new TabDragHandler(_this._element, _this.accessor, _this.group, _this.panel);
|
|
66
67
|
_this.dropTarget = new droptarget_1.Droptarget(_this._element, {
|
|
67
|
-
acceptedTargetZones: ['
|
|
68
|
+
acceptedTargetZones: ['left', 'right'],
|
|
69
|
+
overlayModel: { activationSize: { value: 50, type: 'percentage' } },
|
|
68
70
|
canDisplayOverlay: function (event, position) {
|
|
69
71
|
if (_this.group.locked) {
|
|
70
72
|
return false;
|
|
71
73
|
}
|
|
72
74
|
var data = (0, dataTransfer_1.getPanelData)();
|
|
73
75
|
if (data && _this.accessor.id === data.viewId) {
|
|
74
|
-
|
|
75
|
-
data.groupId === _this.group.id) {
|
|
76
|
-
// don't allow group move to drop on self
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
return _this.panel.id !== data.panelId;
|
|
76
|
+
return true;
|
|
80
77
|
}
|
|
81
78
|
return _this.group.model.canDisplayOverlay(event, position, 'tab');
|
|
82
79
|
},
|
|
80
|
+
getOverrideTarget: function () { var _a; return (_a = group.model.dropTargetContainer) === null || _a === void 0 ? void 0 : _a.model; },
|
|
83
81
|
});
|
|
84
82
|
_this.onWillShowOverlay = _this.dropTarget.onWillShowOverlay;
|
|
85
83
|
_this.addDisposables(_this._onPointDown, _this._onDropped, _this._onDragStart, dragHandler.onDragStart(function (event) {
|
|
84
|
+
if (event.dataTransfer) {
|
|
85
|
+
var style_1 = getComputedStyle(_this.element);
|
|
86
|
+
var newNode_1 = _this.element.cloneNode(true);
|
|
87
|
+
Array.from(style_1).forEach(function (key) {
|
|
88
|
+
return newNode_1.style.setProperty(key, style_1.getPropertyValue(key), style_1.getPropertyPriority(key));
|
|
89
|
+
});
|
|
90
|
+
newNode_1.style.position = 'absolute';
|
|
91
|
+
(0, ghost_1.addGhostImage)(event.dataTransfer, newNode_1, {
|
|
92
|
+
y: -10,
|
|
93
|
+
x: 30,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
86
96
|
_this._onDragStart.fire(event);
|
|
87
97
|
}), dragHandler, (0, events_1.addDisposableListener)(_this._element, 'pointerdown', function (event) {
|
|
88
98
|
_this._onPointDown.fire(event);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDropdownElementHandle = void 0;
|
|
4
|
+
var svg_1 = require("../../../svg");
|
|
5
|
+
function createDropdownElementHandle() {
|
|
6
|
+
var el = document.createElement('div');
|
|
7
|
+
el.className = 'dv-tabs-overflow-dropdown-default';
|
|
8
|
+
var text = document.createElement('span');
|
|
9
|
+
text.textContent = "";
|
|
10
|
+
var icon = (0, svg_1.createChevronRightButton)();
|
|
11
|
+
el.appendChild(icon);
|
|
12
|
+
el.appendChild(text);
|
|
13
|
+
return {
|
|
14
|
+
element: el,
|
|
15
|
+
update: function (params) {
|
|
16
|
+
text.textContent = "".concat(params.tabs);
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.createDropdownElementHandle = createDropdownElementHandle;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Event } from '../../../events';
|
|
2
|
+
import { CompositeDisposable } from '../../../lifecycle';
|
|
3
|
+
import { DockviewComponent } from '../../dockviewComponent';
|
|
4
|
+
import { DockviewGroupPanel } from '../../dockviewGroupPanel';
|
|
5
|
+
import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel';
|
|
6
|
+
import { IDockviewPanel } from '../../dockviewPanel';
|
|
7
|
+
import { Tab } from '../tab/tab';
|
|
8
|
+
import { TabDragEvent, TabDropIndexEvent } from './tabsContainer';
|
|
9
|
+
export declare class Tabs extends CompositeDisposable {
|
|
10
|
+
private readonly group;
|
|
11
|
+
private readonly accessor;
|
|
12
|
+
private readonly _element;
|
|
13
|
+
private readonly _tabsList;
|
|
14
|
+
private readonly _observerDisposable;
|
|
15
|
+
private _tabs;
|
|
16
|
+
private selectedIndex;
|
|
17
|
+
private _showTabsOverflowControl;
|
|
18
|
+
private readonly _onTabDragStart;
|
|
19
|
+
readonly onTabDragStart: Event<TabDragEvent>;
|
|
20
|
+
private readonly _onDrop;
|
|
21
|
+
readonly onDrop: Event<TabDropIndexEvent>;
|
|
22
|
+
private readonly _onWillShowOverlay;
|
|
23
|
+
readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
|
|
24
|
+
private readonly _onOverflowTabsChange;
|
|
25
|
+
readonly onOverflowTabsChange: Event<{
|
|
26
|
+
tabs: string[];
|
|
27
|
+
reset: boolean;
|
|
28
|
+
}>;
|
|
29
|
+
get showTabsOverflowControl(): boolean;
|
|
30
|
+
set showTabsOverflowControl(value: boolean);
|
|
31
|
+
get element(): HTMLElement;
|
|
32
|
+
get panels(): string[];
|
|
33
|
+
get size(): number;
|
|
34
|
+
get tabs(): Tab[];
|
|
35
|
+
constructor(group: DockviewGroupPanel, accessor: DockviewComponent, options: {
|
|
36
|
+
showTabsOverflowControl: boolean;
|
|
37
|
+
});
|
|
38
|
+
indexOf(id: string): number;
|
|
39
|
+
isActive(tab: Tab): boolean;
|
|
40
|
+
setActivePanel(panel: IDockviewPanel): void;
|
|
41
|
+
openPanel(panel: IDockviewPanel, index?: number): void;
|
|
42
|
+
delete(id: string): void;
|
|
43
|
+
private addTab;
|
|
44
|
+
private toggleDropdown;
|
|
45
|
+
}
|
|
@@ -0,0 +1,288 @@
|
|
|
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
|
+
var __values = (this && this.__values) || function(o) {
|
|
18
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
19
|
+
if (m) return m.call(o);
|
|
20
|
+
if (o && typeof o.length === "number") return {
|
|
21
|
+
next: function () {
|
|
22
|
+
if (o && i >= o.length) o = void 0;
|
|
23
|
+
return { value: o && o[i++], done: !o };
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
27
|
+
};
|
|
28
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
29
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
30
|
+
if (!m) return o;
|
|
31
|
+
var i = m.call(o), r, ar = [], e;
|
|
32
|
+
try {
|
|
33
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
34
|
+
}
|
|
35
|
+
catch (error) { e = { error: error }; }
|
|
36
|
+
finally {
|
|
37
|
+
try {
|
|
38
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
39
|
+
}
|
|
40
|
+
finally { if (e) throw e.error; }
|
|
41
|
+
}
|
|
42
|
+
return ar;
|
|
43
|
+
};
|
|
44
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
45
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
46
|
+
if (ar || !(i in from)) {
|
|
47
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
48
|
+
ar[i] = from[i];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
52
|
+
};
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.Tabs = void 0;
|
|
55
|
+
var dataTransfer_1 = require("../../../dnd/dataTransfer");
|
|
56
|
+
var dom_1 = require("../../../dom");
|
|
57
|
+
var events_1 = require("../../../events");
|
|
58
|
+
var lifecycle_1 = require("../../../lifecycle");
|
|
59
|
+
var scrollbar_1 = require("../../../scrollbar");
|
|
60
|
+
var dockviewGroupPanelModel_1 = require("../../dockviewGroupPanelModel");
|
|
61
|
+
var tab_1 = require("../tab/tab");
|
|
62
|
+
var Tabs = /** @class */ (function (_super) {
|
|
63
|
+
__extends(Tabs, _super);
|
|
64
|
+
function Tabs(group, accessor, options) {
|
|
65
|
+
var _this = _super.call(this) || this;
|
|
66
|
+
_this.group = group;
|
|
67
|
+
_this.accessor = accessor;
|
|
68
|
+
_this._observerDisposable = new lifecycle_1.MutableDisposable();
|
|
69
|
+
_this._tabs = [];
|
|
70
|
+
_this.selectedIndex = -1;
|
|
71
|
+
_this._showTabsOverflowControl = false;
|
|
72
|
+
_this._onTabDragStart = new events_1.Emitter();
|
|
73
|
+
_this.onTabDragStart = _this._onTabDragStart.event;
|
|
74
|
+
_this._onDrop = new events_1.Emitter();
|
|
75
|
+
_this.onDrop = _this._onDrop.event;
|
|
76
|
+
_this._onWillShowOverlay = new events_1.Emitter();
|
|
77
|
+
_this.onWillShowOverlay = _this._onWillShowOverlay.event;
|
|
78
|
+
_this._onOverflowTabsChange = new events_1.Emitter();
|
|
79
|
+
_this.onOverflowTabsChange = _this._onOverflowTabsChange.event;
|
|
80
|
+
_this._tabsList = document.createElement('div');
|
|
81
|
+
_this._tabsList.className = 'dv-tabs-container dv-horizontal';
|
|
82
|
+
_this.showTabsOverflowControl = options.showTabsOverflowControl;
|
|
83
|
+
var scrollbar = new scrollbar_1.Scrollbar(_this._tabsList);
|
|
84
|
+
_this._element = scrollbar.element;
|
|
85
|
+
_this.addDisposables(_this._onOverflowTabsChange, _this._observerDisposable, scrollbar, _this._onWillShowOverlay, _this._onDrop, _this._onTabDragStart, (0, events_1.addDisposableListener)(_this.element, 'pointerdown', function (event) {
|
|
86
|
+
if (event.defaultPrevented) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
var isLeftClick = event.button === 0;
|
|
90
|
+
if (isLeftClick) {
|
|
91
|
+
_this.accessor.doSetGroupActive(_this.group);
|
|
92
|
+
}
|
|
93
|
+
}), lifecycle_1.Disposable.from(function () {
|
|
94
|
+
var e_1, _a;
|
|
95
|
+
try {
|
|
96
|
+
for (var _b = __values(_this._tabs), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
97
|
+
var _d = _c.value, value = _d.value, disposable = _d.disposable;
|
|
98
|
+
disposable.dispose();
|
|
99
|
+
value.dispose();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
103
|
+
finally {
|
|
104
|
+
try {
|
|
105
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
106
|
+
}
|
|
107
|
+
finally { if (e_1) throw e_1.error; }
|
|
108
|
+
}
|
|
109
|
+
_this._tabs = [];
|
|
110
|
+
}));
|
|
111
|
+
return _this;
|
|
112
|
+
}
|
|
113
|
+
Object.defineProperty(Tabs.prototype, "showTabsOverflowControl", {
|
|
114
|
+
get: function () {
|
|
115
|
+
return this._showTabsOverflowControl;
|
|
116
|
+
},
|
|
117
|
+
set: function (value) {
|
|
118
|
+
var _this = this;
|
|
119
|
+
if (this._showTabsOverflowControl == value) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this._showTabsOverflowControl = value;
|
|
123
|
+
if (value) {
|
|
124
|
+
var observer = new dom_1.OverflowObserver(this._tabsList);
|
|
125
|
+
this._observerDisposable.value = new lifecycle_1.CompositeDisposable(observer, observer.onDidChange(function (event) {
|
|
126
|
+
var hasOverflow = event.hasScrollX || event.hasScrollY;
|
|
127
|
+
_this.toggleDropdown({ reset: !hasOverflow });
|
|
128
|
+
}), (0, events_1.addDisposableListener)(this._tabsList, 'scroll', function () {
|
|
129
|
+
_this.toggleDropdown({ reset: false });
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
enumerable: false,
|
|
134
|
+
configurable: true
|
|
135
|
+
});
|
|
136
|
+
Object.defineProperty(Tabs.prototype, "element", {
|
|
137
|
+
get: function () {
|
|
138
|
+
return this._element;
|
|
139
|
+
},
|
|
140
|
+
enumerable: false,
|
|
141
|
+
configurable: true
|
|
142
|
+
});
|
|
143
|
+
Object.defineProperty(Tabs.prototype, "panels", {
|
|
144
|
+
get: function () {
|
|
145
|
+
return this._tabs.map(function (_) { return _.value.panel.id; });
|
|
146
|
+
},
|
|
147
|
+
enumerable: false,
|
|
148
|
+
configurable: true
|
|
149
|
+
});
|
|
150
|
+
Object.defineProperty(Tabs.prototype, "size", {
|
|
151
|
+
get: function () {
|
|
152
|
+
return this._tabs.length;
|
|
153
|
+
},
|
|
154
|
+
enumerable: false,
|
|
155
|
+
configurable: true
|
|
156
|
+
});
|
|
157
|
+
Object.defineProperty(Tabs.prototype, "tabs", {
|
|
158
|
+
get: function () {
|
|
159
|
+
return this._tabs.map(function (_) { return _.value; });
|
|
160
|
+
},
|
|
161
|
+
enumerable: false,
|
|
162
|
+
configurable: true
|
|
163
|
+
});
|
|
164
|
+
Tabs.prototype.indexOf = function (id) {
|
|
165
|
+
return this._tabs.findIndex(function (tab) { return tab.value.panel.id === id; });
|
|
166
|
+
};
|
|
167
|
+
Tabs.prototype.isActive = function (tab) {
|
|
168
|
+
return (this.selectedIndex > -1 &&
|
|
169
|
+
this._tabs[this.selectedIndex].value === tab);
|
|
170
|
+
};
|
|
171
|
+
Tabs.prototype.setActivePanel = function (panel) {
|
|
172
|
+
var e_2, _a;
|
|
173
|
+
var runningWidth = 0;
|
|
174
|
+
try {
|
|
175
|
+
for (var _b = __values(this._tabs), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
176
|
+
var tab = _c.value;
|
|
177
|
+
var isActivePanel = panel.id === tab.value.panel.id;
|
|
178
|
+
tab.value.setActive(isActivePanel);
|
|
179
|
+
if (isActivePanel) {
|
|
180
|
+
var element = tab.value.element;
|
|
181
|
+
var parentElement = element.parentElement;
|
|
182
|
+
if (runningWidth < parentElement.scrollLeft ||
|
|
183
|
+
runningWidth + element.clientWidth >
|
|
184
|
+
parentElement.scrollLeft + parentElement.clientWidth) {
|
|
185
|
+
parentElement.scrollLeft = runningWidth;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
runningWidth += tab.value.element.clientWidth;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
192
|
+
finally {
|
|
193
|
+
try {
|
|
194
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
195
|
+
}
|
|
196
|
+
finally { if (e_2) throw e_2.error; }
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
Tabs.prototype.openPanel = function (panel, index) {
|
|
200
|
+
var _this = this;
|
|
201
|
+
if (index === void 0) { index = this._tabs.length; }
|
|
202
|
+
if (this._tabs.find(function (tab) { return tab.value.panel.id === panel.id; })) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
var tab = new tab_1.Tab(panel, this.accessor, this.group);
|
|
206
|
+
tab.setContent(panel.view.tab);
|
|
207
|
+
var disposable = new lifecycle_1.CompositeDisposable(tab.onDragStart(function (event) {
|
|
208
|
+
_this._onTabDragStart.fire({ nativeEvent: event, panel: panel });
|
|
209
|
+
}), tab.onPointerDown(function (event) {
|
|
210
|
+
if (event.defaultPrevented) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
var isFloatingGroupsEnabled = !_this.accessor.options.disableFloatingGroups;
|
|
214
|
+
var isFloatingWithOnePanel = _this.group.api.location.type === 'floating' &&
|
|
215
|
+
_this.size === 1;
|
|
216
|
+
if (isFloatingGroupsEnabled &&
|
|
217
|
+
!isFloatingWithOnePanel &&
|
|
218
|
+
event.shiftKey) {
|
|
219
|
+
event.preventDefault();
|
|
220
|
+
var panel_1 = _this.accessor.getGroupPanel(tab.panel.id);
|
|
221
|
+
var _a = tab.element.getBoundingClientRect(), top_1 = _a.top, left = _a.left;
|
|
222
|
+
var _b = _this.accessor.element.getBoundingClientRect(), rootTop = _b.top, rootLeft = _b.left;
|
|
223
|
+
_this.accessor.addFloatingGroup(panel_1, {
|
|
224
|
+
x: left - rootLeft,
|
|
225
|
+
y: top_1 - rootTop,
|
|
226
|
+
inDragMode: true,
|
|
227
|
+
});
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
switch (event.button) {
|
|
231
|
+
case 0: // left click or touch
|
|
232
|
+
if (_this.group.activePanel !== panel) {
|
|
233
|
+
_this.group.model.openPanel(panel);
|
|
234
|
+
}
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
}), tab.onDrop(function (event) {
|
|
238
|
+
_this._onDrop.fire({
|
|
239
|
+
event: event.nativeEvent,
|
|
240
|
+
index: _this._tabs.findIndex(function (x) { return x.value === tab; }),
|
|
241
|
+
});
|
|
242
|
+
}), tab.onWillShowOverlay(function (event) {
|
|
243
|
+
_this._onWillShowOverlay.fire(new dockviewGroupPanelModel_1.WillShowOverlayLocationEvent(event, {
|
|
244
|
+
kind: 'tab',
|
|
245
|
+
panel: _this.group.activePanel,
|
|
246
|
+
api: _this.accessor.api,
|
|
247
|
+
group: _this.group,
|
|
248
|
+
getData: dataTransfer_1.getPanelData,
|
|
249
|
+
}));
|
|
250
|
+
}));
|
|
251
|
+
var value = { value: tab, disposable: disposable };
|
|
252
|
+
this.addTab(value, index);
|
|
253
|
+
};
|
|
254
|
+
Tabs.prototype.delete = function (id) {
|
|
255
|
+
var index = this.indexOf(id);
|
|
256
|
+
var tabToRemove = this._tabs.splice(index, 1)[0];
|
|
257
|
+
var value = tabToRemove.value, disposable = tabToRemove.disposable;
|
|
258
|
+
disposable.dispose();
|
|
259
|
+
value.dispose();
|
|
260
|
+
value.element.remove();
|
|
261
|
+
};
|
|
262
|
+
Tabs.prototype.addTab = function (tab, index) {
|
|
263
|
+
if (index === void 0) { index = this._tabs.length; }
|
|
264
|
+
if (index < 0 || index > this._tabs.length) {
|
|
265
|
+
throw new Error('invalid location');
|
|
266
|
+
}
|
|
267
|
+
this._tabsList.insertBefore(tab.value.element, this._tabsList.children[index]);
|
|
268
|
+
this._tabs = __spreadArray(__spreadArray(__spreadArray([], __read(this._tabs.slice(0, index)), false), [
|
|
269
|
+
tab
|
|
270
|
+
], false), __read(this._tabs.slice(index)), false);
|
|
271
|
+
if (this.selectedIndex < 0) {
|
|
272
|
+
this.selectedIndex = index;
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
Tabs.prototype.toggleDropdown = function (options) {
|
|
276
|
+
var _this = this;
|
|
277
|
+
var tabs = options.reset
|
|
278
|
+
? []
|
|
279
|
+
: this._tabs
|
|
280
|
+
.filter(function (tab) {
|
|
281
|
+
return !(0, dom_1.isChildEntirelyVisibleWithinParent)(tab.value.element, _this._tabsList);
|
|
282
|
+
})
|
|
283
|
+
.map(function (x) { return x.value.panel.id; });
|
|
284
|
+
this._onOverflowTabsChange.fire({ tabs: tabs, reset: options.reset });
|
|
285
|
+
};
|
|
286
|
+
return Tabs;
|
|
287
|
+
}(lifecycle_1.CompositeDisposable));
|
|
288
|
+
exports.Tabs = Tabs;
|
|
@@ -43,21 +43,21 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
43
43
|
private readonly accessor;
|
|
44
44
|
private readonly group;
|
|
45
45
|
private readonly _element;
|
|
46
|
-
private readonly
|
|
46
|
+
private readonly tabs;
|
|
47
47
|
private readonly rightActionsContainer;
|
|
48
48
|
private readonly leftActionsContainer;
|
|
49
49
|
private readonly preActionsContainer;
|
|
50
50
|
private readonly voidContainer;
|
|
51
|
-
private tabs;
|
|
52
|
-
private selectedIndex;
|
|
53
51
|
private rightActions;
|
|
54
52
|
private leftActions;
|
|
55
53
|
private preActions;
|
|
56
54
|
private _hidden;
|
|
55
|
+
private dropdownPart;
|
|
56
|
+
private _overflowTabs;
|
|
57
|
+
private readonly _dropdownDisposable;
|
|
57
58
|
private readonly _onDrop;
|
|
58
59
|
readonly onDrop: Event<TabDropIndexEvent>;
|
|
59
|
-
|
|
60
|
-
readonly onTabDragStart: Event<TabDragEvent>;
|
|
60
|
+
get onTabDragStart(): Event<TabDragEvent>;
|
|
61
61
|
private readonly _onGroupDragStart;
|
|
62
62
|
readonly onGroupDragStart: Event<GroupDragEvent>;
|
|
63
63
|
private readonly _onWillShowOverlay;
|
|
@@ -66,21 +66,20 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
66
66
|
get size(): number;
|
|
67
67
|
get hidden(): boolean;
|
|
68
68
|
set hidden(value: boolean);
|
|
69
|
+
get element(): HTMLElement;
|
|
70
|
+
constructor(accessor: DockviewComponent, group: DockviewGroupPanel);
|
|
69
71
|
show(): void;
|
|
70
72
|
hide(): void;
|
|
71
73
|
setRightActionsElement(element: HTMLElement | undefined): void;
|
|
72
74
|
setLeftActionsElement(element: HTMLElement | undefined): void;
|
|
73
75
|
setPrefixActionsElement(element: HTMLElement | undefined): void;
|
|
74
|
-
get element(): HTMLElement;
|
|
75
76
|
isActive(tab: Tab): boolean;
|
|
76
77
|
indexOf(id: string): number;
|
|
77
|
-
constructor(accessor: DockviewComponent, group: DockviewGroupPanel);
|
|
78
78
|
setActive(_isGroupActive: boolean): void;
|
|
79
79
|
delete(id: string): void;
|
|
80
80
|
setActivePanel(panel: IDockviewPanel): void;
|
|
81
81
|
openPanel(panel: IDockviewPanel, index?: number): void;
|
|
82
82
|
closePanel(panel: IDockviewPanel): void;
|
|
83
|
-
dispose(): void;
|
|
84
|
-
private addTab;
|
|
85
83
|
private updateClassnames;
|
|
84
|
+
private toggleDropdown;
|
|
86
85
|
}
|