dockview-react 4.0.1 → 4.1.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/dockview-react.amd.js +154 -62
- package/dist/dockview-react.amd.js.map +1 -1
- package/dist/dockview-react.amd.min.js +2 -2
- package/dist/dockview-react.amd.min.js.map +1 -1
- package/dist/dockview-react.amd.min.noStyle.js +2 -2
- package/dist/dockview-react.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-react.amd.noStyle.js +154 -62
- package/dist/dockview-react.amd.noStyle.js.map +1 -1
- package/dist/dockview-react.cjs.js +154 -62
- package/dist/dockview-react.cjs.js.map +1 -1
- package/dist/dockview-react.esm.js +154 -62
- package/dist/dockview-react.esm.js.map +1 -1
- package/dist/dockview-react.esm.min.js +2 -2
- package/dist/dockview-react.esm.min.js.map +1 -1
- package/dist/dockview-react.js +154 -62
- package/dist/dockview-react.js.map +1 -1
- package/dist/dockview-react.min.js +2 -2
- package/dist/dockview-react.min.js.map +1 -1
- package/dist/dockview-react.min.noStyle.js +2 -2
- package/dist/dockview-react.min.noStyle.js.map +1 -1
- package/dist/dockview-react.noStyle.js +154 -62
- package/dist/dockview-react.noStyle.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-react
|
|
3
|
-
* @version 4.0
|
|
3
|
+
* @version 4.1.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -246,14 +246,6 @@ class Emitter {
|
|
|
246
246
|
}
|
|
247
247
|
Emitter.ENABLE_TRACKING = false;
|
|
248
248
|
Emitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();
|
|
249
|
-
function addDisposableWindowListener(element, type, listener, options) {
|
|
250
|
-
element.addEventListener(type, listener, options);
|
|
251
|
-
return {
|
|
252
|
-
dispose: () => {
|
|
253
|
-
element.removeEventListener(type, listener, options);
|
|
254
|
-
},
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
249
|
function addDisposableListener(element, type, listener, options) {
|
|
258
250
|
element.addEventListener(type, listener, options);
|
|
259
251
|
return {
|
|
@@ -432,9 +424,6 @@ function isAncestor(testChild, testAncestor) {
|
|
|
432
424
|
}
|
|
433
425
|
return false;
|
|
434
426
|
}
|
|
435
|
-
function getElementsByTagName(tag) {
|
|
436
|
-
return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);
|
|
437
|
-
}
|
|
438
427
|
function trackFocus(element) {
|
|
439
428
|
return new FocusTracker(element);
|
|
440
429
|
}
|
|
@@ -481,14 +470,8 @@ class FocusTracker extends CompositeDisposable {
|
|
|
481
470
|
}
|
|
482
471
|
}
|
|
483
472
|
};
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));
|
|
487
|
-
}
|
|
488
|
-
else {
|
|
489
|
-
this.addDisposables(addDisposableWindowListener(element, 'focus', onFocus, true));
|
|
490
|
-
this.addDisposables(addDisposableWindowListener(element, 'blur', onBlur, true));
|
|
491
|
-
}
|
|
473
|
+
this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));
|
|
474
|
+
this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));
|
|
492
475
|
}
|
|
493
476
|
refreshState() {
|
|
494
477
|
this._refreshStateHandler();
|
|
@@ -562,11 +545,30 @@ function isInDocument(element) {
|
|
|
562
545
|
function addTestId(element, id) {
|
|
563
546
|
element.setAttribute('data-testid', id);
|
|
564
547
|
}
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
548
|
+
/**
|
|
549
|
+
* Should be more efficient than element.querySelectorAll("*") since there
|
|
550
|
+
* is no need to store every element in-memory using this approach
|
|
551
|
+
*/
|
|
552
|
+
function allTagsNamesInclusiveOfShadowDoms(tagNames) {
|
|
553
|
+
const iframes = [];
|
|
554
|
+
function findIframesInNode(node) {
|
|
555
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
556
|
+
if (tagNames.includes(node.tagName)) {
|
|
557
|
+
iframes.push(node);
|
|
558
|
+
}
|
|
559
|
+
if (node.shadowRoot) {
|
|
560
|
+
findIframesInNode(node.shadowRoot);
|
|
561
|
+
}
|
|
562
|
+
for (const child of node.children) {
|
|
563
|
+
findIframesInNode(child);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
findIframesInNode(document.documentElement);
|
|
568
|
+
return iframes;
|
|
569
|
+
}
|
|
570
|
+
function disableIframePointEvents(rootNode = document) {
|
|
571
|
+
const iframes = allTagsNamesInclusiveOfShadowDoms(['IFRAME', 'WEBVIEW']);
|
|
570
572
|
const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
|
|
571
573
|
for (const iframe of iframes) {
|
|
572
574
|
original.set(iframe, iframe.style.pointerEvents);
|
|
@@ -618,6 +620,7 @@ class Classnames {
|
|
|
618
620
|
}
|
|
619
621
|
}
|
|
620
622
|
}
|
|
623
|
+
const DEBOUCE_DELAY = 100;
|
|
621
624
|
function isChildEntirelyVisibleWithinParent(child, parent) {
|
|
622
625
|
//
|
|
623
626
|
const childPosition = getDomNodePagePosition(child);
|
|
@@ -631,6 +634,41 @@ function isChildEntirelyVisibleWithinParent(child, parent) {
|
|
|
631
634
|
}
|
|
632
635
|
return true;
|
|
633
636
|
}
|
|
637
|
+
function onDidWindowMoveEnd(window) {
|
|
638
|
+
const emitter = new Emitter();
|
|
639
|
+
let previousScreenX = window.screenX;
|
|
640
|
+
let previousScreenY = window.screenY;
|
|
641
|
+
let timeout;
|
|
642
|
+
const checkMovement = () => {
|
|
643
|
+
if (window.closed) {
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
const currentScreenX = window.screenX;
|
|
647
|
+
const currentScreenY = window.screenY;
|
|
648
|
+
if (currentScreenX !== previousScreenX ||
|
|
649
|
+
currentScreenY !== previousScreenY) {
|
|
650
|
+
clearTimeout(timeout);
|
|
651
|
+
timeout = setTimeout(() => {
|
|
652
|
+
emitter.fire();
|
|
653
|
+
}, DEBOUCE_DELAY);
|
|
654
|
+
previousScreenX = currentScreenX;
|
|
655
|
+
previousScreenY = currentScreenY;
|
|
656
|
+
}
|
|
657
|
+
requestAnimationFrame(checkMovement);
|
|
658
|
+
};
|
|
659
|
+
checkMovement();
|
|
660
|
+
return emitter;
|
|
661
|
+
}
|
|
662
|
+
function onDidWindowResizeEnd(element, cb) {
|
|
663
|
+
let resizeTimeout;
|
|
664
|
+
const disposable = new CompositeDisposable(addDisposableListener(element, 'resize', () => {
|
|
665
|
+
clearTimeout(resizeTimeout);
|
|
666
|
+
resizeTimeout = setTimeout(() => {
|
|
667
|
+
cb();
|
|
668
|
+
}, DEBOUCE_DELAY);
|
|
669
|
+
}));
|
|
670
|
+
return disposable;
|
|
671
|
+
}
|
|
634
672
|
|
|
635
673
|
function tail(arr) {
|
|
636
674
|
if (arr.length === 0) {
|
|
@@ -3570,6 +3608,12 @@ class DockviewApi {
|
|
|
3570
3608
|
get onUnhandledDragOverEvent() {
|
|
3571
3609
|
return this.component.onUnhandledDragOverEvent;
|
|
3572
3610
|
}
|
|
3611
|
+
get onDidPopoutGroupSizeChange() {
|
|
3612
|
+
return this.component.onDidPopoutGroupSizeChange;
|
|
3613
|
+
}
|
|
3614
|
+
get onDidPopoutGroupPositionChange() {
|
|
3615
|
+
return this.component.onDidPopoutGroupPositionChange;
|
|
3616
|
+
}
|
|
3573
3617
|
/**
|
|
3574
3618
|
* All panel objects.
|
|
3575
3619
|
*/
|
|
@@ -4535,26 +4579,25 @@ class PaneviewPanel extends BasePanelView {
|
|
|
4535
4579
|
this._headerVisible = value;
|
|
4536
4580
|
this.header.style.display = value ? '' : 'none';
|
|
4537
4581
|
}
|
|
4538
|
-
constructor(
|
|
4539
|
-
super(id, component, new PaneviewPanelApiImpl(id, component));
|
|
4540
|
-
this.headerComponent = headerComponent;
|
|
4582
|
+
constructor(options) {
|
|
4583
|
+
super(options.id, options.component, new PaneviewPanelApiImpl(options.id, options.component));
|
|
4541
4584
|
this._onDidChangeExpansionState = new Emitter({ replay: true });
|
|
4542
4585
|
this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;
|
|
4543
4586
|
this._onDidChange = new Emitter();
|
|
4544
4587
|
this.onDidChange = this._onDidChange.event;
|
|
4545
|
-
this.headerSize = 22;
|
|
4546
4588
|
this._orthogonalSize = 0;
|
|
4547
4589
|
this._size = 0;
|
|
4548
|
-
this._minimumBodySize = 100;
|
|
4549
|
-
this._maximumBodySize = Number.POSITIVE_INFINITY;
|
|
4550
4590
|
this._isExpanded = false;
|
|
4551
|
-
this.expandedSize = 0;
|
|
4552
4591
|
this.api.pane = this; // TODO cannot use 'this' before 'super'
|
|
4553
4592
|
this.api.initialize(this);
|
|
4554
|
-
this.
|
|
4555
|
-
this.
|
|
4593
|
+
this.headerSize = options.headerSize;
|
|
4594
|
+
this.headerComponent = options.headerComponent;
|
|
4595
|
+
this._minimumBodySize = options.minimumBodySize;
|
|
4596
|
+
this._maximumBodySize = options.maximumBodySize;
|
|
4597
|
+
this._isExpanded = options.isExpanded;
|
|
4598
|
+
this._headerVisible = options.isHeaderVisible;
|
|
4556
4599
|
this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
|
|
4557
|
-
this._orientation = orientation;
|
|
4600
|
+
this._orientation = options.orientation;
|
|
4558
4601
|
this.element.classList.add('dv-pane');
|
|
4559
4602
|
this.addDisposables(this.api.onWillVisibilityChange((event) => {
|
|
4560
4603
|
const { isVisible } = event;
|
|
@@ -4621,9 +4664,6 @@ class PaneviewPanel extends BasePanelView {
|
|
|
4621
4664
|
const [width, height] = this.orientation === Orientation.HORIZONTAL
|
|
4622
4665
|
? [size, orthogonalSize]
|
|
4623
4666
|
: [orthogonalSize, size];
|
|
4624
|
-
if (this.isExpanded()) {
|
|
4625
|
-
this.expandedSize = width;
|
|
4626
|
-
}
|
|
4627
4667
|
super.layout(width, height);
|
|
4628
4668
|
}
|
|
4629
4669
|
init(parameters) {
|
|
@@ -4680,15 +4720,25 @@ class PaneviewPanel extends BasePanelView {
|
|
|
4680
4720
|
}
|
|
4681
4721
|
|
|
4682
4722
|
class DraggablePaneviewPanel extends PaneviewPanel {
|
|
4683
|
-
constructor(
|
|
4684
|
-
super(
|
|
4685
|
-
|
|
4723
|
+
constructor(options) {
|
|
4724
|
+
super({
|
|
4725
|
+
id: options.id,
|
|
4726
|
+
component: options.component,
|
|
4727
|
+
headerComponent: options.headerComponent,
|
|
4728
|
+
orientation: options.orientation,
|
|
4729
|
+
isExpanded: options.isExpanded,
|
|
4730
|
+
isHeaderVisible: true,
|
|
4731
|
+
headerSize: options.headerSize,
|
|
4732
|
+
minimumBodySize: options.minimumBodySize,
|
|
4733
|
+
maximumBodySize: options.maximumBodySize,
|
|
4734
|
+
});
|
|
4686
4735
|
this._onDidDrop = new Emitter();
|
|
4687
4736
|
this.onDidDrop = this._onDidDrop.event;
|
|
4688
4737
|
this._onUnhandledDragOverEvent = new Emitter();
|
|
4689
4738
|
this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
|
|
4739
|
+
this.accessor = options.accessor;
|
|
4690
4740
|
this.addDisposables(this._onDidDrop, this._onUnhandledDragOverEvent);
|
|
4691
|
-
if (!disableDnd) {
|
|
4741
|
+
if (!options.disableDnd) {
|
|
4692
4742
|
this.initDragFeatures();
|
|
4693
4743
|
}
|
|
4694
4744
|
}
|
|
@@ -7322,7 +7372,7 @@ class Overlay extends CompositeDisposable {
|
|
|
7322
7372
|
dispose: () => {
|
|
7323
7373
|
iframes.release();
|
|
7324
7374
|
},
|
|
7325
|
-
},
|
|
7375
|
+
}, addDisposableListener(window, 'pointermove', (e) => {
|
|
7326
7376
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
7327
7377
|
const x = e.clientX - containerRect.left;
|
|
7328
7378
|
const y = e.clientY - containerRect.top;
|
|
@@ -7359,7 +7409,7 @@ class Overlay extends CompositeDisposable {
|
|
|
7359
7409
|
bounds.right = right;
|
|
7360
7410
|
}
|
|
7361
7411
|
this.setBounds(bounds);
|
|
7362
|
-
}),
|
|
7412
|
+
}), addDisposableListener(window, 'pointerup', () => {
|
|
7363
7413
|
toggleClass(this._element, 'dv-resize-container-dragging', false);
|
|
7364
7414
|
move.dispose();
|
|
7365
7415
|
this._onDidChangeEnd.fire();
|
|
@@ -7404,7 +7454,7 @@ class Overlay extends CompositeDisposable {
|
|
|
7404
7454
|
e.preventDefault();
|
|
7405
7455
|
let startPosition = null;
|
|
7406
7456
|
const iframes = disableIframePointEvents();
|
|
7407
|
-
move.value = new CompositeDisposable(
|
|
7457
|
+
move.value = new CompositeDisposable(addDisposableListener(window, 'pointermove', (e) => {
|
|
7408
7458
|
const containerRect = this.options.container.getBoundingClientRect();
|
|
7409
7459
|
const overlayRect = this._element.getBoundingClientRect();
|
|
7410
7460
|
const y = e.clientY - containerRect.top;
|
|
@@ -7528,7 +7578,7 @@ class Overlay extends CompositeDisposable {
|
|
|
7528
7578
|
dispose: () => {
|
|
7529
7579
|
iframes.release();
|
|
7530
7580
|
},
|
|
7531
|
-
},
|
|
7581
|
+
}, addDisposableListener(window, 'pointerup', () => {
|
|
7532
7582
|
move.dispose();
|
|
7533
7583
|
this._onDidChangeEnd.fire();
|
|
7534
7584
|
}));
|
|
@@ -7811,7 +7861,7 @@ class PopoutWindow extends CompositeDisposable {
|
|
|
7811
7861
|
this._window = { value: externalWindow, disposable };
|
|
7812
7862
|
disposable.addDisposables(Disposable.from(() => {
|
|
7813
7863
|
externalWindow.close();
|
|
7814
|
-
}),
|
|
7864
|
+
}), addDisposableListener(window, 'beforeunload', () => {
|
|
7815
7865
|
/**
|
|
7816
7866
|
* before the main window closes we should close this popup too
|
|
7817
7867
|
* to be good citizens
|
|
@@ -7846,7 +7896,7 @@ class PopoutWindow extends CompositeDisposable {
|
|
|
7846
7896
|
* beforeunload must be registered after load for reasons I could not determine
|
|
7847
7897
|
* otherwise the beforeunload event will not fire when the window is closed
|
|
7848
7898
|
*/
|
|
7849
|
-
|
|
7899
|
+
addDisposableListener(externalWindow, 'beforeunload', () => {
|
|
7850
7900
|
/**
|
|
7851
7901
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
|
|
7852
7902
|
*/
|
|
@@ -7943,7 +7993,7 @@ class PopupService extends CompositeDisposable {
|
|
|
7943
7993
|
wrapper.style.left = `${position.x - offsetX}px`;
|
|
7944
7994
|
this._element.appendChild(wrapper);
|
|
7945
7995
|
this._active = wrapper;
|
|
7946
|
-
this._activeDisposable.value = new CompositeDisposable(
|
|
7996
|
+
this._activeDisposable.value = new CompositeDisposable(addDisposableListener(window, 'pointerdown', (event) => {
|
|
7947
7997
|
var _a;
|
|
7948
7998
|
const target = event.target;
|
|
7949
7999
|
if (!(target instanceof HTMLElement)) {
|
|
@@ -8122,6 +8172,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8122
8172
|
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
8123
8173
|
this._onDidAddPanel = new Emitter();
|
|
8124
8174
|
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
8175
|
+
this._onDidPopoutGroupSizeChange = new Emitter();
|
|
8176
|
+
this.onDidPopoutGroupSizeChange = this._onDidPopoutGroupSizeChange.event;
|
|
8177
|
+
this._onDidPopoutGroupPositionChange = new Emitter();
|
|
8178
|
+
this.onDidPopoutGroupPositionChange = this._onDidPopoutGroupPositionChange.event;
|
|
8125
8179
|
this._onDidLayoutFromJSON = new Emitter();
|
|
8126
8180
|
this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
|
|
8127
8181
|
this._onDidActivePanelChange = new Emitter();
|
|
@@ -8151,7 +8205,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8151
8205
|
if (options.debug) {
|
|
8152
8206
|
this.addDisposables(new StrictEventsSequencing(this));
|
|
8153
8207
|
}
|
|
8154
|
-
this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
8208
|
+
this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
|
|
8155
8209
|
this.updateWatermark();
|
|
8156
8210
|
}), this.onDidAdd((event) => {
|
|
8157
8211
|
if (!this._moving) {
|
|
@@ -8172,7 +8226,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8172
8226
|
});
|
|
8173
8227
|
}), Event.any(this.onDidAdd, this.onDidRemove)(() => {
|
|
8174
8228
|
this.updateWatermark();
|
|
8175
|
-
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
|
|
8229
|
+
}), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange, this.onDidPopoutGroupPositionChange, this.onDidPopoutGroupSizeChange)(() => {
|
|
8176
8230
|
this._bufferOnDidLayoutChange.fire();
|
|
8177
8231
|
}), Disposable.from(() => {
|
|
8178
8232
|
// iterate over a copy of the array since .dispose() mutates the original array
|
|
@@ -8433,13 +8487,26 @@ class DockviewComponent extends BaseGrid {
|
|
|
8433
8487
|
},
|
|
8434
8488
|
},
|
|
8435
8489
|
};
|
|
8436
|
-
|
|
8490
|
+
const _onDidWindowPositionChange = onDidWindowMoveEnd(_window.window);
|
|
8491
|
+
popoutWindowDisposable.addDisposables(_onDidWindowPositionChange, onDidWindowResizeEnd(_window.window, () => {
|
|
8492
|
+
this._onDidPopoutGroupSizeChange.fire({
|
|
8493
|
+
width: _window.window.innerWidth,
|
|
8494
|
+
height: _window.window.innerHeight,
|
|
8495
|
+
group,
|
|
8496
|
+
});
|
|
8497
|
+
}), _onDidWindowPositionChange.event(() => {
|
|
8498
|
+
this._onDidPopoutGroupPositionChange.fire({
|
|
8499
|
+
screenX: _window.window.screenX,
|
|
8500
|
+
screenY: _window.window.screenX,
|
|
8501
|
+
group,
|
|
8502
|
+
});
|
|
8503
|
+
}),
|
|
8437
8504
|
/**
|
|
8438
8505
|
* ResizeObserver seems slow here, I do not know why but we don't need it
|
|
8439
8506
|
* since we can reply on the window resize event as we will occupy the full
|
|
8440
8507
|
* window dimensions
|
|
8441
8508
|
*/
|
|
8442
|
-
|
|
8509
|
+
addDisposableListener(_window.window, 'resize', () => {
|
|
8443
8510
|
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
8444
8511
|
}), overlayRenderContainer, Disposable.from(() => {
|
|
8445
8512
|
if (this.isDisposed) {
|
|
@@ -8653,7 +8720,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
8653
8720
|
}
|
|
8654
8721
|
this.updateWatermark();
|
|
8655
8722
|
}
|
|
8656
|
-
orthogonalize(position) {
|
|
8723
|
+
orthogonalize(position, options) {
|
|
8657
8724
|
switch (position) {
|
|
8658
8725
|
case 'top':
|
|
8659
8726
|
case 'bottom':
|
|
@@ -8676,10 +8743,10 @@ class DockviewComponent extends BaseGrid {
|
|
|
8676
8743
|
case 'top':
|
|
8677
8744
|
case 'left':
|
|
8678
8745
|
case 'center':
|
|
8679
|
-
return this.createGroupAtLocation([0]); // insert into first position
|
|
8746
|
+
return this.createGroupAtLocation([0], undefined, options); // insert into first position
|
|
8680
8747
|
case 'bottom':
|
|
8681
8748
|
case 'right':
|
|
8682
|
-
return this.createGroupAtLocation([this.gridview.length]); // insert into last position
|
|
8749
|
+
return this.createGroupAtLocation([this.gridview.length], undefined, options); // insert into last position
|
|
8683
8750
|
default:
|
|
8684
8751
|
throw new Error(`unsupported position ${position}`);
|
|
8685
8752
|
}
|
|
@@ -9175,7 +9242,7 @@ class DockviewComponent extends BaseGrid {
|
|
|
9175
9242
|
}
|
|
9176
9243
|
}
|
|
9177
9244
|
else {
|
|
9178
|
-
const group = this.orthogonalize(directionToPosition(options.direction));
|
|
9245
|
+
const group = this.orthogonalize(directionToPosition(options.direction), options);
|
|
9179
9246
|
if (!options.skipSetActive) {
|
|
9180
9247
|
this.doSetGroupAndPanelActive(group);
|
|
9181
9248
|
}
|
|
@@ -9617,8 +9684,8 @@ class DockviewComponent extends BaseGrid {
|
|
|
9617
9684
|
});
|
|
9618
9685
|
return panel;
|
|
9619
9686
|
}
|
|
9620
|
-
createGroupAtLocation(location, size) {
|
|
9621
|
-
const group = this.createGroup();
|
|
9687
|
+
createGroupAtLocation(location, size, options) {
|
|
9688
|
+
const group = this.createGroup(options);
|
|
9622
9689
|
this.doAddGroup(group, location, size);
|
|
9623
9690
|
return group;
|
|
9624
9691
|
}
|
|
@@ -9952,6 +10019,9 @@ class SplitviewComponent extends Resizable {
|
|
|
9952
10019
|
return this._splitview;
|
|
9953
10020
|
}
|
|
9954
10021
|
set splitview(value) {
|
|
10022
|
+
if (this._splitview) {
|
|
10023
|
+
this._splitview.dispose();
|
|
10024
|
+
}
|
|
9955
10025
|
this._splitview = value;
|
|
9956
10026
|
this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {
|
|
9957
10027
|
this._onDidLayoutChange.fire(undefined);
|
|
@@ -10255,9 +10325,23 @@ class DefaultHeader extends CompositeDisposable {
|
|
|
10255
10325
|
}
|
|
10256
10326
|
|
|
10257
10327
|
const nextLayoutId = sequentialNumberGenerator();
|
|
10328
|
+
const HEADER_SIZE = 22;
|
|
10329
|
+
const MINIMUM_BODY_SIZE = 0;
|
|
10330
|
+
const MAXIMUM_BODY_SIZE = Number.MAX_SAFE_INTEGER;
|
|
10258
10331
|
class PaneFramework extends DraggablePaneviewPanel {
|
|
10259
10332
|
constructor(options) {
|
|
10260
|
-
super(
|
|
10333
|
+
super({
|
|
10334
|
+
accessor: options.accessor,
|
|
10335
|
+
id: options.id,
|
|
10336
|
+
component: options.component,
|
|
10337
|
+
headerComponent: options.headerComponent,
|
|
10338
|
+
orientation: options.orientation,
|
|
10339
|
+
isExpanded: options.isExpanded,
|
|
10340
|
+
disableDnd: options.disableDnd,
|
|
10341
|
+
headerSize: options.headerSize,
|
|
10342
|
+
minimumBodySize: options.minimumBodySize,
|
|
10343
|
+
maximumBodySize: options.maximumBodySize,
|
|
10344
|
+
});
|
|
10261
10345
|
this.options = options;
|
|
10262
10346
|
}
|
|
10263
10347
|
getBodyComponent() {
|
|
@@ -10352,7 +10436,7 @@ class PaneviewComponent extends Resizable {
|
|
|
10352
10436
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
10353
10437
|
}
|
|
10354
10438
|
addPanel(options) {
|
|
10355
|
-
var _a;
|
|
10439
|
+
var _a, _b;
|
|
10356
10440
|
const body = this.options.createComponent({
|
|
10357
10441
|
id: options.id,
|
|
10358
10442
|
name: options.component,
|
|
@@ -10377,12 +10461,15 @@ class PaneviewComponent extends Resizable {
|
|
|
10377
10461
|
isExpanded: !!options.isExpanded,
|
|
10378
10462
|
disableDnd: !!this.options.disableDnd,
|
|
10379
10463
|
accessor: this,
|
|
10464
|
+
headerSize: (_a = options.headerSize) !== null && _a !== void 0 ? _a : HEADER_SIZE,
|
|
10465
|
+
minimumBodySize: MINIMUM_BODY_SIZE,
|
|
10466
|
+
maximumBodySize: MAXIMUM_BODY_SIZE,
|
|
10380
10467
|
});
|
|
10381
10468
|
this.doAddPanel(view);
|
|
10382
10469
|
const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;
|
|
10383
10470
|
const index = typeof options.index === 'number' ? options.index : undefined;
|
|
10384
10471
|
view.init({
|
|
10385
|
-
params: (
|
|
10472
|
+
params: (_b = options.params) !== null && _b !== void 0 ? _b : {},
|
|
10386
10473
|
minimumBodySize: options.minimumBodySize,
|
|
10387
10474
|
maximumBodySize: options.maximumBodySize,
|
|
10388
10475
|
isExpanded: options.isExpanded,
|
|
@@ -10427,6 +10514,7 @@ class PaneviewComponent extends Resizable {
|
|
|
10427
10514
|
data: view.toJSON(),
|
|
10428
10515
|
minimumSize: minimum(view.minimumBodySize),
|
|
10429
10516
|
maximumSize: maximum(view.maximumBodySize),
|
|
10517
|
+
headerSize: view.headerSize,
|
|
10430
10518
|
expanded: view.isExpanded(),
|
|
10431
10519
|
};
|
|
10432
10520
|
});
|
|
@@ -10447,6 +10535,7 @@ class PaneviewComponent extends Resizable {
|
|
|
10447
10535
|
descriptor: {
|
|
10448
10536
|
size,
|
|
10449
10537
|
views: views.map((view) => {
|
|
10538
|
+
var _a, _b, _c;
|
|
10450
10539
|
const data = view.data;
|
|
10451
10540
|
const body = this.options.createComponent({
|
|
10452
10541
|
id: data.id,
|
|
@@ -10473,6 +10562,9 @@ class PaneviewComponent extends Resizable {
|
|
|
10473
10562
|
isExpanded: !!view.expanded,
|
|
10474
10563
|
disableDnd: !!this.options.disableDnd,
|
|
10475
10564
|
accessor: this,
|
|
10565
|
+
headerSize: (_a = view.headerSize) !== null && _a !== void 0 ? _a : HEADER_SIZE,
|
|
10566
|
+
minimumBodySize: (_b = view.minimumSize) !== null && _b !== void 0 ? _b : MINIMUM_BODY_SIZE,
|
|
10567
|
+
maximumBodySize: (_c = view.maximumSize) !== null && _c !== void 0 ? _c : MAXIMUM_BODY_SIZE,
|
|
10476
10568
|
});
|
|
10477
10569
|
this.doAddPanel(panel);
|
|
10478
10570
|
queue.push(() => {
|