dockview 1.0.0 → 1.0.3
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 +8 -2
- package/dist/cjs/api/component.api.js +56 -0
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts +1 -5
- package/dist/cjs/dnd/droptarget.js +1 -1
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dockview/defaultGroupPanelView.js +3 -1
- package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
- package/dist/cjs/events.d.ts +7 -0
- package/dist/cjs/events.js +22 -1
- package/dist/cjs/events.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js +6 -13
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/gridview.js +0 -1
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +2 -2
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/groupview/groupview.js +2 -2
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.js +2 -2
- package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js +1 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/cjs/paneview/paneview.d.ts +1 -1
- package/dist/cjs/paneview/paneview.js +1 -4
- package/dist/cjs/paneview/paneview.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +6 -2
- package/dist/cjs/paneview/paneviewComponent.js +10 -16
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +5 -1
- package/dist/cjs/paneview/paneviewPanel.js +13 -1
- package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
- package/dist/cjs/react/dockview/dockview.js +16 -0
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/gridview/gridview.js +8 -0
- package/dist/cjs/react/gridview/gridview.js.map +1 -1
- package/dist/cjs/react/paneview/paneview.js +8 -4
- package/dist/cjs/react/paneview/paneview.js.map +1 -1
- package/dist/cjs/react/splitview/splitview.js +8 -0
- package/dist/cjs/react/splitview/splitview.js.map +1 -1
- package/dist/cjs/splitview/core/splitview.js +1 -1
- package/dist/cjs/splitview/core/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +11 -5
- package/dist/cjs/splitview/splitviewComponent.js +10 -0
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/dockview.amd.js +128 -60
- package/dist/dockview.amd.min.js +3 -3
- package/dist/dockview.amd.min.noStyle.js +3 -3
- package/dist/dockview.amd.noStyle.js +128 -60
- package/dist/dockview.cjs.js +128 -60
- package/dist/dockview.esm.js +128 -61
- package/dist/dockview.esm.min.js +3 -3
- package/dist/dockview.js +128 -60
- package/dist/dockview.min.js +3 -3
- package/dist/dockview.min.noStyle.js +3 -3
- package/dist/dockview.noStyle.js +128 -60
- package/dist/esm/api/component.api.d.ts +8 -2
- package/dist/esm/api/component.api.js +24 -0
- package/dist/esm/dnd/droptarget.d.ts +1 -5
- package/dist/esm/dnd/droptarget.js +1 -1
- package/dist/esm/dockview/defaultGroupPanelView.js +3 -1
- package/dist/esm/events.d.ts +7 -0
- package/dist/esm/events.js +18 -0
- package/dist/esm/gridview/baseComponentGridview.js +7 -14
- package/dist/esm/gridview/gridview.js +0 -1
- package/dist/esm/gridview/gridviewComponent.d.ts +2 -2
- package/dist/esm/groupview/groupview.js +2 -2
- package/dist/esm/groupview/titlebar/tabsContainer.js +2 -2
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js +1 -1
- package/dist/esm/paneview/paneview.d.ts +1 -1
- package/dist/esm/paneview/paneview.js +1 -4
- package/dist/esm/paneview/paneviewComponent.d.ts +6 -2
- package/dist/esm/paneview/paneviewComponent.js +10 -8
- package/dist/esm/paneview/paneviewPanel.d.ts +5 -1
- package/dist/esm/paneview/paneviewPanel.js +9 -1
- package/dist/esm/react/dockview/dockview.js +16 -0
- package/dist/esm/react/gridview/gridview.js +8 -0
- package/dist/esm/react/paneview/paneview.js +8 -4
- package/dist/esm/react/splitview/splitview.js +8 -0
- package/dist/esm/splitview/core/splitview.js +1 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +11 -5
- package/dist/esm/splitview/splitviewComponent.js +9 -1
- package/package.json +7 -7
- package/dist/cjs/footnote.d.ts +0 -1
- package/dist/cjs/footnote.js +0 -20
- package/dist/cjs/footnote.js.map +0 -1
- package/dist/esm/footnote.d.ts +0 -1
- package/dist/esm/footnote.js +0 -19
package/dist/dockview.noStyle.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview
|
|
3
|
-
* @version 1.0.
|
|
3
|
+
* @version 1.0.3
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -31,25 +31,6 @@
|
|
|
31
31
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
32
32
|
var ReactDOM__namespace = /*#__PURE__*/_interopNamespace(ReactDOM);
|
|
33
33
|
|
|
34
|
-
function runFootnote() {
|
|
35
|
-
var _a, _b;
|
|
36
|
-
const DOCKVIEW_SUPPRESS_WATERMARK = 'DOCKVIEW_WATERMARK_SUPPRESSED';
|
|
37
|
-
const isTest = ((_b = (_a = window.process) === null || _a === void 0 ? void 0 : _a.env) === null || _b === void 0 ? void 0 : _b.NODE_ENV) === 'test';
|
|
38
|
-
if (isTest) {
|
|
39
|
-
return; // don't spam people tests
|
|
40
|
-
}
|
|
41
|
-
const isSuppressed = !!window[DOCKVIEW_SUPPRESS_WATERMARK];
|
|
42
|
-
if (!isSuppressed) {
|
|
43
|
-
console.log([
|
|
44
|
-
'dockview: https://github.com/mathuo/dockview for examples and documentation',
|
|
45
|
-
'dockview: https://www.npmjs.com/package/dockview',
|
|
46
|
-
`dockview: To suppress this message set window.${DOCKVIEW_SUPPRESS_WATERMARK}=1 before importing the dockview package`,
|
|
47
|
-
'',
|
|
48
|
-
].join('\n'));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
runFootnote();
|
|
52
|
-
|
|
53
34
|
exports.Event = void 0;
|
|
54
35
|
(function (Event) {
|
|
55
36
|
Event.any = (...children) => {
|
|
@@ -120,6 +101,24 @@
|
|
|
120
101
|
element.removeEventListener(type, listener);
|
|
121
102
|
},
|
|
122
103
|
};
|
|
104
|
+
}
|
|
105
|
+
class TickDelayedEvent {
|
|
106
|
+
constructor() {
|
|
107
|
+
this._onFired = new Emitter();
|
|
108
|
+
this.onEvent = this._onFired.event;
|
|
109
|
+
}
|
|
110
|
+
fire() {
|
|
111
|
+
if (this.timer) {
|
|
112
|
+
clearTimeout(this.timer);
|
|
113
|
+
}
|
|
114
|
+
this.timer = setTimeout(() => {
|
|
115
|
+
this._onFired.fire();
|
|
116
|
+
clearTimeout(this.timer);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
dispose() {
|
|
120
|
+
this._onFired.dispose();
|
|
121
|
+
}
|
|
123
122
|
}
|
|
124
123
|
|
|
125
124
|
exports.Disposable = void 0;
|
|
@@ -302,6 +301,12 @@
|
|
|
302
301
|
get onDidLayoutChange() {
|
|
303
302
|
return this.component.onDidLayoutChange;
|
|
304
303
|
}
|
|
304
|
+
get onDidAddView() {
|
|
305
|
+
return this.component.onDidAddView;
|
|
306
|
+
}
|
|
307
|
+
get onDidRemoveView() {
|
|
308
|
+
return this.component.onDidRemoveView;
|
|
309
|
+
}
|
|
305
310
|
get orientation() {
|
|
306
311
|
return this.component.orientation;
|
|
307
312
|
}
|
|
@@ -364,6 +369,23 @@
|
|
|
364
369
|
get onDidLayoutChange() {
|
|
365
370
|
return this.component.onDidLayoutChange;
|
|
366
371
|
}
|
|
372
|
+
get onDidAddView() {
|
|
373
|
+
return this.component.onDidAddView;
|
|
374
|
+
}
|
|
375
|
+
get onDidRemoveView() {
|
|
376
|
+
return this.component.onDidRemoveView;
|
|
377
|
+
}
|
|
378
|
+
get onDidDrop() {
|
|
379
|
+
const emitter = new Emitter();
|
|
380
|
+
const disposable = this.component.onDidDrop((e) => {
|
|
381
|
+
emitter.fire(Object.assign(Object.assign({}, e), { api: this }));
|
|
382
|
+
});
|
|
383
|
+
emitter.dispose = () => {
|
|
384
|
+
disposable.dispose();
|
|
385
|
+
emitter.dispose();
|
|
386
|
+
};
|
|
387
|
+
return emitter.event;
|
|
388
|
+
}
|
|
367
389
|
getPanels() {
|
|
368
390
|
return this.component.getPanels();
|
|
369
391
|
}
|
|
@@ -886,7 +908,7 @@
|
|
|
886
908
|
this._onDidAddView = new Emitter();
|
|
887
909
|
this.onDidAddView = this._onDidAddView.event;
|
|
888
910
|
this._onDidRemoveView = new Emitter();
|
|
889
|
-
this.onDidRemoveView = this.
|
|
911
|
+
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
890
912
|
this._startSnappingEnabled = true;
|
|
891
913
|
this._endSnappingEnabled = true;
|
|
892
914
|
this.resize = (index, delta, sizes = this.views.map((x) => x.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) => {
|
|
@@ -1528,9 +1550,9 @@
|
|
|
1528
1550
|
var _a;
|
|
1529
1551
|
super();
|
|
1530
1552
|
this.paneItems = [];
|
|
1553
|
+
this.skipAnimation = false;
|
|
1531
1554
|
this._onDidChange = new Emitter();
|
|
1532
1555
|
this.onDidChange = this._onDidChange.event;
|
|
1533
|
-
this.skipAnimation = false;
|
|
1534
1556
|
this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.VERTICAL;
|
|
1535
1557
|
this.element = document.createElement('div');
|
|
1536
1558
|
this.element.className = 'pane-container';
|
|
@@ -1630,9 +1652,6 @@
|
|
|
1630
1652
|
}
|
|
1631
1653
|
}
|
|
1632
1654
|
layout(size, orthogonalSize) {
|
|
1633
|
-
// for (const paneItem of this.paneItems) {
|
|
1634
|
-
// paneItem.pane.orthogonalSize = orthogonalSize;
|
|
1635
|
-
// }
|
|
1636
1655
|
this.splitview.layout(size, orthogonalSize);
|
|
1637
1656
|
}
|
|
1638
1657
|
setupAnimation() {
|
|
@@ -1816,7 +1835,7 @@
|
|
|
1816
1835
|
const state = this._state;
|
|
1817
1836
|
this.removeDropTarget();
|
|
1818
1837
|
if (state) {
|
|
1819
|
-
this._onDrop.fire({ position: state,
|
|
1838
|
+
this._onDrop.fire({ position: state, nativeEvent: e });
|
|
1820
1839
|
}
|
|
1821
1840
|
},
|
|
1822
1841
|
}));
|
|
@@ -2479,7 +2498,6 @@
|
|
|
2479
2498
|
}
|
|
2480
2499
|
parent.removeChild(index, sizing);
|
|
2481
2500
|
if (parent.children.length === 0) {
|
|
2482
|
-
// throw new Error('Invalid grid state');
|
|
2483
2501
|
return node.view;
|
|
2484
2502
|
}
|
|
2485
2503
|
if (parent.children.length > 1) {
|
|
@@ -2780,7 +2798,7 @@
|
|
|
2780
2798
|
});
|
|
2781
2799
|
this.addDisposables(this.voidDropTarget.onDrop((event) => {
|
|
2782
2800
|
this._onDrop.fire({
|
|
2783
|
-
event: event.
|
|
2801
|
+
event: event.nativeEvent,
|
|
2784
2802
|
index: this.tabs.length,
|
|
2785
2803
|
});
|
|
2786
2804
|
}), this.voidDropTarget, addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
@@ -2902,7 +2920,7 @@
|
|
|
2902
2920
|
}
|
|
2903
2921
|
}), tabToAdd.onDrop((event) => {
|
|
2904
2922
|
this._onDrop.fire({
|
|
2905
|
-
event: event.
|
|
2923
|
+
event: event.nativeEvent,
|
|
2906
2924
|
index: this.tabs.findIndex((x) => x.value === tabToAdd),
|
|
2907
2925
|
});
|
|
2908
2926
|
}));
|
|
@@ -2978,9 +2996,9 @@
|
|
|
2978
2996
|
}), this.contentContainer.onDidFocus(() => {
|
|
2979
2997
|
this.accessor.doSetGroupActive(this.parent, true);
|
|
2980
2998
|
}), this.contentContainer.onDidBlur(() => {
|
|
2981
|
-
//
|
|
2999
|
+
// noop
|
|
2982
3000
|
}), this.dropTarget.onDrop((event) => {
|
|
2983
|
-
this.handleDropEvent(event.
|
|
3001
|
+
this.handleDropEvent(event.nativeEvent, event.position);
|
|
2984
3002
|
}));
|
|
2985
3003
|
}
|
|
2986
3004
|
get element() {
|
|
@@ -3398,11 +3416,8 @@
|
|
|
3398
3416
|
this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
|
|
3399
3417
|
}));
|
|
3400
3418
|
this.addDisposables((() => {
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
*/
|
|
3404
|
-
let timer;
|
|
3405
|
-
return this.onGridEvent((event) => {
|
|
3419
|
+
const tickDelayedEvent = new TickDelayedEvent();
|
|
3420
|
+
return new CompositeDisposable(this.onGridEvent((event) => {
|
|
3406
3421
|
if ([
|
|
3407
3422
|
exports.GroupChangeKind.ADD_GROUP,
|
|
3408
3423
|
exports.GroupChangeKind.REMOVE_GROUP,
|
|
@@ -3412,15 +3427,11 @@
|
|
|
3412
3427
|
exports.GroupChangeKind.PANEL_ACTIVE,
|
|
3413
3428
|
exports.GroupChangeKind.LAYOUT,
|
|
3414
3429
|
].includes(event.kind)) {
|
|
3415
|
-
|
|
3416
|
-
clearTimeout(timer);
|
|
3417
|
-
}
|
|
3418
|
-
timer = setTimeout(() => {
|
|
3419
|
-
this._onDidLayoutChange.fire();
|
|
3420
|
-
clearTimeout(timer);
|
|
3421
|
-
});
|
|
3430
|
+
tickDelayedEvent.fire();
|
|
3422
3431
|
}
|
|
3423
|
-
})
|
|
3432
|
+
}), tickDelayedEvent.onEvent(() => {
|
|
3433
|
+
this._onDidLayoutChange.fire();
|
|
3434
|
+
}), tickDelayedEvent);
|
|
3424
3435
|
})());
|
|
3425
3436
|
}
|
|
3426
3437
|
get id() {
|
|
@@ -4426,7 +4437,9 @@
|
|
|
4426
4437
|
this.tab.init(params);
|
|
4427
4438
|
}
|
|
4428
4439
|
updateParentGroup(group, isPanelVisible) {
|
|
4429
|
-
|
|
4440
|
+
var _a;
|
|
4441
|
+
this._content.updateParentGroup(group, isPanelVisible);
|
|
4442
|
+
(_a = this._tab) === null || _a === void 0 ? void 0 : _a.updateParentGroup(group, isPanelVisible);
|
|
4430
4443
|
}
|
|
4431
4444
|
layout(width, height) {
|
|
4432
4445
|
this.content.layout(width, height);
|
|
@@ -5196,6 +5209,10 @@
|
|
|
5196
5209
|
this.element = element;
|
|
5197
5210
|
this._disposable = new MutableDisposable();
|
|
5198
5211
|
this.panels = new Map();
|
|
5212
|
+
this._onDidAddView = new Emitter();
|
|
5213
|
+
this.onDidAddView = this._onDidAddView.event;
|
|
5214
|
+
this._onDidRemoveView = new Emitter();
|
|
5215
|
+
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
5199
5216
|
this._onDidLayoutChange = new Emitter();
|
|
5200
5217
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
5201
5218
|
this._options = options;
|
|
@@ -5221,7 +5238,7 @@
|
|
|
5221
5238
|
this._splitview = value;
|
|
5222
5239
|
this._disposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {
|
|
5223
5240
|
this._onDidLayoutChange.fire(undefined);
|
|
5224
|
-
}));
|
|
5241
|
+
}), this._splitview.onDidAddView((e) => this._onDidAddView.fire(e)), this._splitview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));
|
|
5225
5242
|
}
|
|
5226
5243
|
get minimumSize() {
|
|
5227
5244
|
return this.splitview.minimumSize;
|
|
@@ -5395,6 +5412,10 @@
|
|
|
5395
5412
|
});
|
|
5396
5413
|
panel.orientation = orientation;
|
|
5397
5414
|
this.doAddView(panel);
|
|
5415
|
+
setTimeout(() => {
|
|
5416
|
+
// the original onDidAddView events are missed since they are fired before we can subcribe to them
|
|
5417
|
+
this._onDidAddView.fire(panel);
|
|
5418
|
+
}, 0);
|
|
5398
5419
|
return { size: view.size, view: panel };
|
|
5399
5420
|
}),
|
|
5400
5421
|
},
|
|
@@ -5513,7 +5534,7 @@
|
|
|
5513
5534
|
}
|
|
5514
5535
|
|
|
5515
5536
|
class PaneviewPanel extends BasePanelView {
|
|
5516
|
-
constructor(id, component, headerComponent, orientation, isExpanded) {
|
|
5537
|
+
constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
|
|
5517
5538
|
super(id, component, new PaneviewPanelApiImpl(id));
|
|
5518
5539
|
this.headerComponent = headerComponent;
|
|
5519
5540
|
this._onDidChangeExpansionState = new Emitter({ replay: true });
|
|
@@ -5529,6 +5550,7 @@
|
|
|
5529
5550
|
this.expandedSize = 0;
|
|
5530
5551
|
this.api.pane = this; // TODO cannot use 'this' before 'super'
|
|
5531
5552
|
this._isExpanded = isExpanded;
|
|
5553
|
+
this._headerVisible = isHeaderVisible;
|
|
5532
5554
|
this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
|
|
5533
5555
|
this._orientation = orientation;
|
|
5534
5556
|
this.element.classList.add('pane');
|
|
@@ -5596,6 +5618,13 @@
|
|
|
5596
5618
|
this._maximumBodySize =
|
|
5597
5619
|
typeof value === 'number' ? value : Number.POSITIVE_INFINITY;
|
|
5598
5620
|
}
|
|
5621
|
+
get headerVisible() {
|
|
5622
|
+
return this._headerVisible;
|
|
5623
|
+
}
|
|
5624
|
+
set headerVisible(value) {
|
|
5625
|
+
this._headerVisible = value;
|
|
5626
|
+
this.header.style.display = value ? '' : 'none';
|
|
5627
|
+
}
|
|
5599
5628
|
setVisible(isVisible) {
|
|
5600
5629
|
this.api._onDidVisibilityChange.fire({ isVisible });
|
|
5601
5630
|
}
|
|
@@ -5693,7 +5722,7 @@
|
|
|
5693
5722
|
|
|
5694
5723
|
class DraggablePaneviewPanel extends PaneviewPanel {
|
|
5695
5724
|
constructor(id, component, headerComponent, orientation, isExpanded, disableDnd) {
|
|
5696
|
-
super(id, component, headerComponent, orientation, isExpanded);
|
|
5725
|
+
super(id, component, headerComponent, orientation, isExpanded, true);
|
|
5697
5726
|
this._onDidDrop = new Emitter();
|
|
5698
5727
|
this.onDidDrop = this._onDidDrop.event;
|
|
5699
5728
|
if (!disableDnd) {
|
|
@@ -5816,6 +5845,10 @@
|
|
|
5816
5845
|
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
5817
5846
|
this._onDidDrop = new Emitter();
|
|
5818
5847
|
this.onDidDrop = this._onDidDrop.event;
|
|
5848
|
+
this._onDidAddView = new Emitter();
|
|
5849
|
+
this.onDidAddView = this._onDidAddView.event;
|
|
5850
|
+
this._onDidRemoveView = new Emitter();
|
|
5851
|
+
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
5819
5852
|
this._options = options;
|
|
5820
5853
|
if (!options.components) {
|
|
5821
5854
|
options.components = {};
|
|
@@ -5829,17 +5862,11 @@
|
|
|
5829
5862
|
});
|
|
5830
5863
|
this.addDisposables(this._disposable);
|
|
5831
5864
|
}
|
|
5832
|
-
get onDidAddView() {
|
|
5833
|
-
return this._paneview.onDidAddView;
|
|
5834
|
-
}
|
|
5835
|
-
get onDidRemoveView() {
|
|
5836
|
-
return this._paneview.onDidRemoveView;
|
|
5837
|
-
}
|
|
5838
5865
|
set paneview(value) {
|
|
5839
5866
|
this._paneview = value;
|
|
5840
|
-
this._disposable.value = new CompositeDisposable(this.
|
|
5867
|
+
this._disposable.value = new CompositeDisposable(this._paneview.onDidChange(() => {
|
|
5841
5868
|
this._onDidLayoutChange.fire(undefined);
|
|
5842
|
-
}));
|
|
5869
|
+
}), this._paneview.onDidAddView((e) => this._onDidAddView.fire(e)), this._paneview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));
|
|
5843
5870
|
}
|
|
5844
5871
|
get paneview() {
|
|
5845
5872
|
return this._paneview;
|
|
@@ -6019,6 +6046,10 @@
|
|
|
6019
6046
|
});
|
|
6020
6047
|
panel.orientation = this.paneview.orientation;
|
|
6021
6048
|
});
|
|
6049
|
+
setTimeout(() => {
|
|
6050
|
+
// the original onDidAddView events are missed since they are fired before we can subcribe to them
|
|
6051
|
+
this._onDidAddView.fire(panel);
|
|
6052
|
+
}, 0);
|
|
6022
6053
|
return { size: view.size, view: panel };
|
|
6023
6054
|
}),
|
|
6024
6055
|
},
|
|
@@ -6524,6 +6555,22 @@
|
|
|
6524
6555
|
dockview.dispose();
|
|
6525
6556
|
};
|
|
6526
6557
|
}, []);
|
|
6558
|
+
React__namespace.useEffect(() => {
|
|
6559
|
+
if (!dockviewRef.current) {
|
|
6560
|
+
return;
|
|
6561
|
+
}
|
|
6562
|
+
dockviewRef.current.updateOptions({
|
|
6563
|
+
frameworkComponents: props.components,
|
|
6564
|
+
});
|
|
6565
|
+
}, [props.components]);
|
|
6566
|
+
React__namespace.useEffect(() => {
|
|
6567
|
+
if (!dockviewRef.current) {
|
|
6568
|
+
return;
|
|
6569
|
+
}
|
|
6570
|
+
dockviewRef.current.updateOptions({
|
|
6571
|
+
frameworkTabComponents: props.tabComponents,
|
|
6572
|
+
});
|
|
6573
|
+
}, [props.tabComponents]);
|
|
6527
6574
|
React__namespace.useEffect(() => {
|
|
6528
6575
|
if (!props.onTabContextMenu || !dockviewRef.current) {
|
|
6529
6576
|
return () => {
|
|
@@ -6658,6 +6705,14 @@
|
|
|
6658
6705
|
splitview.dispose();
|
|
6659
6706
|
};
|
|
6660
6707
|
}, []);
|
|
6708
|
+
React__namespace.useEffect(() => {
|
|
6709
|
+
if (!splitviewRef.current) {
|
|
6710
|
+
return;
|
|
6711
|
+
}
|
|
6712
|
+
splitviewRef.current.updateOptions({
|
|
6713
|
+
frameworkComponents: props.components,
|
|
6714
|
+
});
|
|
6715
|
+
}, [props.components]);
|
|
6661
6716
|
return (React__namespace.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6662
6717
|
});
|
|
6663
6718
|
SplitviewReact.displayName = 'SplitviewComponent';
|
|
@@ -6728,6 +6783,14 @@
|
|
|
6728
6783
|
gridview.dispose();
|
|
6729
6784
|
};
|
|
6730
6785
|
}, []);
|
|
6786
|
+
React__namespace.useEffect(() => {
|
|
6787
|
+
if (!gridviewRef.current) {
|
|
6788
|
+
return;
|
|
6789
|
+
}
|
|
6790
|
+
gridviewRef.current.updateOptions({
|
|
6791
|
+
frameworkComponents: props.components,
|
|
6792
|
+
});
|
|
6793
|
+
}, [props.components]);
|
|
6731
6794
|
return (React__namespace.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
6732
6795
|
});
|
|
6733
6796
|
GridviewReact.displayName = 'GridviewComponent';
|
|
@@ -6818,14 +6881,18 @@
|
|
|
6818
6881
|
};
|
|
6819
6882
|
}, []);
|
|
6820
6883
|
React__namespace.useEffect(() => {
|
|
6821
|
-
|
|
6822
|
-
|
|
6884
|
+
if (!paneviewRef.current) {
|
|
6885
|
+
return;
|
|
6886
|
+
}
|
|
6887
|
+
paneviewRef.current.updateOptions({
|
|
6823
6888
|
frameworkComponents: props.components,
|
|
6824
6889
|
});
|
|
6825
6890
|
}, [props.components]);
|
|
6826
6891
|
React__namespace.useEffect(() => {
|
|
6827
|
-
|
|
6828
|
-
|
|
6892
|
+
if (!paneviewRef.current) {
|
|
6893
|
+
return;
|
|
6894
|
+
}
|
|
6895
|
+
paneviewRef.current.updateOptions({
|
|
6829
6896
|
headerframeworkComponents: props.headerComponents,
|
|
6830
6897
|
});
|
|
6831
6898
|
}, [props.headerComponents]);
|
|
@@ -6884,6 +6951,7 @@
|
|
|
6884
6951
|
exports.SplitviewPanel = SplitviewPanel;
|
|
6885
6952
|
exports.SplitviewReact = SplitviewReact;
|
|
6886
6953
|
exports.Tab = Tab$1;
|
|
6954
|
+
exports.TickDelayedEvent = TickDelayedEvent;
|
|
6887
6955
|
exports.addDisposableListener = addDisposableListener;
|
|
6888
6956
|
exports.addDisposableWindowListener = addDisposableWindowListener;
|
|
6889
6957
|
exports.extractData = extractData;
|
|
@@ -5,13 +5,14 @@ import { AddComponentOptions, IGridviewComponent, SerializedGridview } from '../
|
|
|
5
5
|
import { GridviewPanel, IGridviewPanel } from '../gridview/gridviewPanel';
|
|
6
6
|
import { IGroupPanel } from '../groupview/groupPanel';
|
|
7
7
|
import { AddPaneviewCompponentOptions, SerializedPaneview, IPaneviewComponent } from '../paneview/paneviewComponent';
|
|
8
|
-
import { IPaneviewPanel } from '../paneview/paneviewPanel';
|
|
8
|
+
import { IPaneviewPanel, PaneviewPanel } from '../paneview/paneviewPanel';
|
|
9
9
|
import { AddSplitviewComponentOptions, ISplitviewComponent, SerializedSplitview, SplitviewComponentUpdateOptions } from '../splitview/splitviewComponent';
|
|
10
|
-
import { Orientation, Sizing } from '../splitview/core/splitview';
|
|
10
|
+
import { IView, Orientation, Sizing } from '../splitview/core/splitview';
|
|
11
11
|
import { ISplitviewPanel } from '../splitview/splitviewPanel';
|
|
12
12
|
import { GroupviewPanel } from '../groupview/groupviewPanel';
|
|
13
13
|
import { Event } from '../events';
|
|
14
14
|
import { IDisposable } from '../lifecycle';
|
|
15
|
+
import { PaneviewDropEvent } from '../react';
|
|
15
16
|
export interface CommonApi {
|
|
16
17
|
readonly height: number;
|
|
17
18
|
readonly width: number;
|
|
@@ -28,6 +29,8 @@ export declare class SplitviewApi implements CommonApi {
|
|
|
28
29
|
get width(): number;
|
|
29
30
|
get length(): number;
|
|
30
31
|
get onDidLayoutChange(): Event<void>;
|
|
32
|
+
get onDidAddView(): Event<IView>;
|
|
33
|
+
get onDidRemoveView(): Event<IView>;
|
|
31
34
|
get orientation(): Orientation;
|
|
32
35
|
constructor(component: ISplitviewComponent);
|
|
33
36
|
updateOptions(options: SplitviewComponentUpdateOptions): void;
|
|
@@ -51,6 +54,9 @@ export declare class PaneviewApi implements CommonApi {
|
|
|
51
54
|
get minimumSize(): number;
|
|
52
55
|
get maximumSize(): number;
|
|
53
56
|
get onDidLayoutChange(): Event<void>;
|
|
57
|
+
get onDidAddView(): Event<PaneviewPanel>;
|
|
58
|
+
get onDidRemoveView(): Event<PaneviewPanel>;
|
|
59
|
+
get onDidDrop(): Event<PaneviewDropEvent>;
|
|
54
60
|
constructor(component: IPaneviewComponent);
|
|
55
61
|
getPanels(): IPaneviewPanel[];
|
|
56
62
|
removePanel(panel: IPaneviewPanel): void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Emitter } from '../events';
|
|
1
2
|
export class SplitviewApi {
|
|
2
3
|
constructor(component) {
|
|
3
4
|
this.component = component;
|
|
@@ -20,6 +21,12 @@ export class SplitviewApi {
|
|
|
20
21
|
get onDidLayoutChange() {
|
|
21
22
|
return this.component.onDidLayoutChange;
|
|
22
23
|
}
|
|
24
|
+
get onDidAddView() {
|
|
25
|
+
return this.component.onDidAddView;
|
|
26
|
+
}
|
|
27
|
+
get onDidRemoveView() {
|
|
28
|
+
return this.component.onDidRemoveView;
|
|
29
|
+
}
|
|
23
30
|
get orientation() {
|
|
24
31
|
return this.component.orientation;
|
|
25
32
|
}
|
|
@@ -82,6 +89,23 @@ export class PaneviewApi {
|
|
|
82
89
|
get onDidLayoutChange() {
|
|
83
90
|
return this.component.onDidLayoutChange;
|
|
84
91
|
}
|
|
92
|
+
get onDidAddView() {
|
|
93
|
+
return this.component.onDidAddView;
|
|
94
|
+
}
|
|
95
|
+
get onDidRemoveView() {
|
|
96
|
+
return this.component.onDidRemoveView;
|
|
97
|
+
}
|
|
98
|
+
get onDidDrop() {
|
|
99
|
+
const emitter = new Emitter();
|
|
100
|
+
const disposable = this.component.onDidDrop((e) => {
|
|
101
|
+
emitter.fire(Object.assign(Object.assign({}, e), { api: this }));
|
|
102
|
+
});
|
|
103
|
+
emitter.dispose = () => {
|
|
104
|
+
disposable.dispose();
|
|
105
|
+
emitter.dispose();
|
|
106
|
+
};
|
|
107
|
+
return emitter.event;
|
|
108
|
+
}
|
|
85
109
|
getPanels() {
|
|
86
110
|
return this.component.getPanels();
|
|
87
111
|
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { Event } from '../events';
|
|
2
2
|
import { CompositeDisposable } from '../lifecycle';
|
|
3
|
-
export interface DroptargetEvent {
|
|
4
|
-
position: Position;
|
|
5
|
-
event: DragEvent;
|
|
6
|
-
}
|
|
7
3
|
export declare enum Position {
|
|
8
4
|
Top = "Top",
|
|
9
5
|
Left = "Left",
|
|
@@ -13,7 +9,7 @@ export declare enum Position {
|
|
|
13
9
|
}
|
|
14
10
|
export interface DroptargetEvent {
|
|
15
11
|
position: Position;
|
|
16
|
-
|
|
12
|
+
nativeEvent: DragEvent;
|
|
17
13
|
}
|
|
18
14
|
export declare type DropTargetDirections = 'vertical' | 'horizontal' | 'all' | 'none';
|
|
19
15
|
export declare type CanDisplayOverlay = boolean | ((dragEvent: DragEvent) => boolean);
|
|
@@ -114,7 +114,7 @@ export class Droptarget extends CompositeDisposable {
|
|
|
114
114
|
const state = this._state;
|
|
115
115
|
this.removeDropTarget();
|
|
116
116
|
if (state) {
|
|
117
|
-
this._onDrop.fire({ position: state,
|
|
117
|
+
this._onDrop.fire({ position: state, nativeEvent: e });
|
|
118
118
|
}
|
|
119
119
|
},
|
|
120
120
|
}));
|
|
@@ -29,7 +29,9 @@ export class DefaultGroupPanelView {
|
|
|
29
29
|
this.tab.init(params);
|
|
30
30
|
}
|
|
31
31
|
updateParentGroup(group, isPanelVisible) {
|
|
32
|
-
|
|
32
|
+
var _a;
|
|
33
|
+
this._content.updateParentGroup(group, isPanelVisible);
|
|
34
|
+
(_a = this._tab) === null || _a === void 0 ? void 0 : _a.updateParentGroup(group, isPanelVisible);
|
|
33
35
|
}
|
|
34
36
|
layout(width, height) {
|
|
35
37
|
this.content.layout(width, height);
|
package/dist/esm/events.d.ts
CHANGED
|
@@ -21,3 +21,10 @@ export declare class Emitter<T> implements IDisposable {
|
|
|
21
21
|
}
|
|
22
22
|
export declare function addDisposableWindowListener<K extends keyof WindowEventMap>(element: Window, type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
23
23
|
export declare function addDisposableListener<K extends keyof HTMLElementEventMap>(element: HTMLElement, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
24
|
+
export declare class TickDelayedEvent implements IDisposable {
|
|
25
|
+
private timer;
|
|
26
|
+
private readonly _onFired;
|
|
27
|
+
readonly onEvent: Event<void>;
|
|
28
|
+
fire(): void;
|
|
29
|
+
dispose(): void;
|
|
30
|
+
}
|
package/dist/esm/events.js
CHANGED
|
@@ -69,3 +69,21 @@ export function addDisposableListener(element, type, listener, options) {
|
|
|
69
69
|
},
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
+
export class TickDelayedEvent {
|
|
73
|
+
constructor() {
|
|
74
|
+
this._onFired = new Emitter();
|
|
75
|
+
this.onEvent = this._onFired.event;
|
|
76
|
+
}
|
|
77
|
+
fire() {
|
|
78
|
+
if (this.timer) {
|
|
79
|
+
clearTimeout(this.timer);
|
|
80
|
+
}
|
|
81
|
+
this.timer = setTimeout(() => {
|
|
82
|
+
this._onFired.fire();
|
|
83
|
+
clearTimeout(this.timer);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
dispose() {
|
|
87
|
+
this._onFired.dispose();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Emitter } from '../events';
|
|
1
|
+
import { Emitter, TickDelayedEvent } from '../events';
|
|
2
2
|
import { getGridLocation, Gridview } from './gridview';
|
|
3
3
|
import { Position } from '../dnd/droptarget';
|
|
4
4
|
import { CompositeDisposable } from '../lifecycle';
|
|
@@ -52,11 +52,8 @@ export class BaseGrid extends CompositeDisposable {
|
|
|
52
52
|
this._onGridEvent.fire({ kind: GroupChangeKind.LAYOUT });
|
|
53
53
|
}));
|
|
54
54
|
this.addDisposables((() => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
*/
|
|
58
|
-
let timer;
|
|
59
|
-
return this.onGridEvent((event) => {
|
|
55
|
+
const tickDelayedEvent = new TickDelayedEvent();
|
|
56
|
+
return new CompositeDisposable(this.onGridEvent((event) => {
|
|
60
57
|
if ([
|
|
61
58
|
GroupChangeKind.ADD_GROUP,
|
|
62
59
|
GroupChangeKind.REMOVE_GROUP,
|
|
@@ -66,15 +63,11 @@ export class BaseGrid extends CompositeDisposable {
|
|
|
66
63
|
GroupChangeKind.PANEL_ACTIVE,
|
|
67
64
|
GroupChangeKind.LAYOUT,
|
|
68
65
|
].includes(event.kind)) {
|
|
69
|
-
|
|
70
|
-
clearTimeout(timer);
|
|
71
|
-
}
|
|
72
|
-
timer = setTimeout(() => {
|
|
73
|
-
this._onDidLayoutChange.fire();
|
|
74
|
-
clearTimeout(timer);
|
|
75
|
-
});
|
|
66
|
+
tickDelayedEvent.fire();
|
|
76
67
|
}
|
|
77
|
-
})
|
|
68
|
+
}), tickDelayedEvent.onEvent(() => {
|
|
69
|
+
this._onDidLayoutChange.fire();
|
|
70
|
+
}), tickDelayedEvent);
|
|
78
71
|
})());
|
|
79
72
|
}
|
|
80
73
|
get id() {
|
|
@@ -37,7 +37,7 @@ export interface IGridPanelComponentView extends IGridPanelView {
|
|
|
37
37
|
export declare type GridviewComponentUpdateOptions = Pick<GridviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
|
|
38
38
|
export interface IGridviewComponent extends IBaseGrid<GridviewPanel> {
|
|
39
39
|
readonly orientation: Orientation;
|
|
40
|
-
updateOptions(options: GridviewComponentUpdateOptions): void;
|
|
40
|
+
updateOptions(options: Partial<GridviewComponentUpdateOptions>): void;
|
|
41
41
|
addPanel(options: AddComponentOptions): void;
|
|
42
42
|
removePanel(panel: IGridviewPanel, sizing?: Sizing): void;
|
|
43
43
|
toggleVisibility(panel: IGridviewPanel): void;
|
|
@@ -61,7 +61,7 @@ export declare class GridviewComponent extends BaseGrid<GridviewPanel> implement
|
|
|
61
61
|
get deserializer(): IPanelDeserializer | undefined;
|
|
62
62
|
set deserializer(value: IPanelDeserializer | undefined);
|
|
63
63
|
constructor(element: HTMLElement, options: GridviewComponentOptions);
|
|
64
|
-
updateOptions(options: GridviewComponentUpdateOptions): void;
|
|
64
|
+
updateOptions(options: Partial<GridviewComponentUpdateOptions>): void;
|
|
65
65
|
removePanel(panel: GridviewPanel): void;
|
|
66
66
|
/**
|
|
67
67
|
* Serialize the current state of the layout
|
|
@@ -72,9 +72,9 @@ export class Groupview extends CompositeDisposable {
|
|
|
72
72
|
}), this.contentContainer.onDidFocus(() => {
|
|
73
73
|
this.accessor.doSetGroupActive(this.parent, true);
|
|
74
74
|
}), this.contentContainer.onDidBlur(() => {
|
|
75
|
-
//
|
|
75
|
+
// noop
|
|
76
76
|
}), this.dropTarget.onDrop((event) => {
|
|
77
|
-
this.handleDropEvent(event.
|
|
77
|
+
this.handleDropEvent(event.nativeEvent, event.position);
|
|
78
78
|
}));
|
|
79
79
|
}
|
|
80
80
|
get element() {
|
|
@@ -42,7 +42,7 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
42
42
|
});
|
|
43
43
|
this.addDisposables(this.voidDropTarget.onDrop((event) => {
|
|
44
44
|
this._onDrop.fire({
|
|
45
|
-
event: event.
|
|
45
|
+
event: event.nativeEvent,
|
|
46
46
|
index: this.tabs.length,
|
|
47
47
|
});
|
|
48
48
|
}), this.voidDropTarget, addDisposableListener(this.tabContainer, 'mousedown', (event) => {
|
|
@@ -164,7 +164,7 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
164
164
|
}
|
|
165
165
|
}), tabToAdd.onDrop((event) => {
|
|
166
166
|
this._onDrop.fire({
|
|
167
|
-
event: event.
|
|
167
|
+
event: event.nativeEvent,
|
|
168
168
|
index: this.tabs.findIndex((x) => x.value === tabToAdd),
|
|
169
169
|
});
|
|
170
170
|
}));
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.js
CHANGED