dockview-core 1.17.2 → 2.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/cjs/api/component.api.d.ts +3 -3
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +10 -8
- package/dist/cjs/api/dockviewGroupPanelApi.js +1 -0
- package/dist/cjs/api/dockviewPanelApi.d.ts +6 -14
- package/dist/cjs/api/dockviewPanelApi.js +5 -3
- package/dist/cjs/dnd/abstractDragHandler.js +1 -1
- package/dist/cjs/dnd/dnd.d.ts +2 -2
- package/dist/cjs/dnd/droptarget.js +4 -4
- package/dist/cjs/dockview/components/panel/content.d.ts +2 -2
- package/dist/cjs/dockview/components/panel/content.js +3 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +3 -3
- package/dist/cjs/dockview/components/tab/tab.js +4 -4
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +5 -9
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -2
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +1 -4
- package/dist/cjs/dockview/components/watermark/watermark.js +2 -34
- package/dist/cjs/dockview/dockviewComponent.d.ts +33 -16
- package/dist/cjs/dockview/dockviewComponent.js +103 -38
- package/dist/cjs/dockview/dockviewGroupPanel.js +16 -12
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -3
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +10 -10
- package/dist/cjs/dockview/dockviewPanel.d.ts +4 -4
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -1
- package/dist/cjs/dockview/options.d.ts +12 -0
- package/dist/cjs/dockview/options.js +1 -0
- package/dist/cjs/dom.d.ts +11 -1
- package/dist/cjs/dom.js +19 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +8 -3
- package/dist/cjs/gridview/baseComponentGridview.js +8 -8
- package/dist/cjs/gridview/basePanelView.d.ts +1 -1
- package/dist/cjs/gridview/branchNode.d.ts +1 -1
- package/dist/cjs/gridview/branchNode.js +1 -1
- package/dist/cjs/gridview/gridview.d.ts +9 -1
- package/dist/cjs/gridview/gridview.js +51 -7
- package/dist/cjs/gridview/gridviewPanel.d.ts +4 -0
- package/dist/cjs/gridview/gridviewPanel.js +60 -32
- package/dist/cjs/gridview/leafNode.d.ts +1 -1
- package/dist/cjs/index.d.ts +8 -9
- package/dist/cjs/index.js +14 -7
- package/dist/cjs/overlay/overlay.d.ts +6 -3
- package/dist/cjs/overlay/overlay.js +15 -0
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +5 -3
- package/dist/cjs/paneview/paneview.d.ts +3 -3
- package/dist/cjs/paneview/paneview.js +3 -3
- package/dist/cjs/paneview/paneviewComponent.d.ts +2 -2
- package/dist/cjs/paneview/paneviewPanel.d.ts +2 -2
- package/dist/cjs/paneview/paneviewPanel.js +3 -3
- package/dist/cjs/popoutWindow.js +23 -16
- package/dist/cjs/splitview/splitview.d.ts +6 -6
- package/dist/cjs/splitview/splitview.js +18 -17
- package/dist/cjs/splitview/splitviewComponent.d.ts +2 -2
- package/dist/cjs/splitview/viewItem.d.ts +1 -1
- package/dist/cjs/svg.js +1 -1
- package/dist/dockview-core.amd.js +346 -210
- 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 +345 -209
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +346 -210
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +347 -209
- 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 +346 -210
- 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 +345 -209
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +3 -3
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +10 -8
- package/dist/esm/api/dockviewGroupPanelApi.js +1 -0
- package/dist/esm/api/dockviewPanelApi.d.ts +6 -14
- package/dist/esm/api/dockviewPanelApi.js +5 -3
- package/dist/esm/dnd/abstractDragHandler.js +1 -1
- package/dist/esm/dnd/dnd.d.ts +2 -2
- package/dist/esm/dnd/droptarget.js +4 -4
- package/dist/esm/dockview/components/panel/content.d.ts +2 -2
- package/dist/esm/dockview/components/panel/content.js +4 -2
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +3 -3
- package/dist/esm/dockview/components/tab/tab.js +4 -4
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +5 -9
- package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -2
- package/dist/esm/dockview/components/watermark/watermark.d.ts +1 -4
- package/dist/esm/dockview/components/watermark/watermark.js +2 -34
- package/dist/esm/dockview/dockviewComponent.d.ts +33 -16
- package/dist/esm/dockview/dockviewComponent.js +102 -37
- package/dist/esm/dockview/dockviewGroupPanel.js +16 -12
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -3
- package/dist/esm/dockview/dockviewGroupPanelModel.js +10 -10
- package/dist/esm/dockview/dockviewPanel.d.ts +4 -4
- package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -1
- package/dist/esm/dockview/options.d.ts +12 -0
- package/dist/esm/dockview/options.js +1 -0
- package/dist/esm/dom.d.ts +11 -1
- package/dist/esm/dom.js +14 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +8 -3
- package/dist/esm/gridview/baseComponentGridview.js +8 -4
- package/dist/esm/gridview/basePanelView.d.ts +1 -1
- package/dist/esm/gridview/branchNode.d.ts +1 -1
- package/dist/esm/gridview/branchNode.js +1 -1
- package/dist/esm/gridview/gridview.d.ts +9 -1
- package/dist/esm/gridview/gridview.js +51 -7
- package/dist/esm/gridview/gridviewPanel.d.ts +4 -0
- package/dist/esm/gridview/gridviewPanel.js +40 -12
- package/dist/esm/gridview/leafNode.d.ts +1 -1
- package/dist/esm/index.d.ts +8 -9
- package/dist/esm/index.js +5 -6
- package/dist/esm/overlay/overlay.d.ts +6 -3
- package/dist/esm/overlay/overlay.js +11 -0
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js +5 -3
- package/dist/esm/paneview/paneview.d.ts +3 -3
- package/dist/esm/paneview/paneview.js +3 -3
- package/dist/esm/paneview/paneviewComponent.d.ts +2 -2
- package/dist/esm/paneview/paneviewPanel.d.ts +2 -2
- package/dist/esm/paneview/paneviewPanel.js +3 -3
- package/dist/esm/popoutWindow.js +24 -17
- package/dist/esm/splitview/splitview.d.ts +6 -6
- package/dist/esm/splitview/splitview.js +18 -17
- package/dist/esm/splitview/splitviewComponent.d.ts +2 -2
- package/dist/esm/splitview/viewItem.d.ts +1 -1
- package/dist/esm/svg.js +1 -1
- package/dist/styles/dockview.css +111 -151
- package/package.json +1 -1
|
@@ -144,6 +144,8 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
144
144
|
_this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
|
|
145
145
|
_this._onDidMovePanel = new events_1.Emitter();
|
|
146
146
|
_this.onDidMovePanel = _this._onDidMovePanel.event;
|
|
147
|
+
_this._onDidMaximizedGroupChange = new events_1.Emitter();
|
|
148
|
+
_this.onDidMaximizedGroupChange = _this._onDidMaximizedGroupChange.event;
|
|
147
149
|
_this._floatingGroups = [];
|
|
148
150
|
_this._popoutGroups = [];
|
|
149
151
|
_this._onDidRemoveGroup = new events_1.Emitter();
|
|
@@ -170,6 +172,11 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
170
172
|
if (!_this._moving) {
|
|
171
173
|
_this._onDidActiveGroupChange.fire(event);
|
|
172
174
|
}
|
|
175
|
+
}), _this.onDidMaximizedChange(function (event) {
|
|
176
|
+
_this._onDidMaximizedGroupChange.fire({
|
|
177
|
+
group: event.panel,
|
|
178
|
+
isMaximized: event.isMaximized,
|
|
179
|
+
});
|
|
173
180
|
}), events_1.Event.any(_this.onDidAdd, _this.onDidRemove)(function () {
|
|
174
181
|
_this.updateWatermark();
|
|
175
182
|
}), events_1.Event.any(_this.onDidAddPanel, _this.onDidRemovePanel, _this.onDidAddGroup, _this.onDidRemove, _this.onDidMovePanel, _this.onDidActivePanelChange)(function () {
|
|
@@ -358,9 +365,29 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
358
365
|
enumerable: false,
|
|
359
366
|
configurable: true
|
|
360
367
|
});
|
|
368
|
+
DockviewComponent.prototype.setVisible = function (panel, visible) {
|
|
369
|
+
switch (panel.api.location.type) {
|
|
370
|
+
case 'grid':
|
|
371
|
+
_super.prototype.setVisible.call(this, panel, visible);
|
|
372
|
+
break;
|
|
373
|
+
case 'floating': {
|
|
374
|
+
var item = this.floatingGroups.find(function (floatingGroup) { return floatingGroup.group === panel; });
|
|
375
|
+
if (item) {
|
|
376
|
+
item.overlay.setVisible(visible);
|
|
377
|
+
panel.api._onDidVisibilityChange.fire({
|
|
378
|
+
isVisible: visible,
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
break;
|
|
382
|
+
}
|
|
383
|
+
case 'popout':
|
|
384
|
+
console.warn('dockview: You cannot hide a group that is in a popout window');
|
|
385
|
+
break;
|
|
386
|
+
}
|
|
387
|
+
};
|
|
361
388
|
DockviewComponent.prototype.addPopoutGroup = function (itemToPopout, options) {
|
|
362
389
|
var _this = this;
|
|
363
|
-
var _a, _b, _c;
|
|
390
|
+
var _a, _b, _c, _d, _e;
|
|
364
391
|
if (itemToPopout instanceof dockviewPanel_1.DockviewPanel &&
|
|
365
392
|
itemToPopout.group.size === 1) {
|
|
366
393
|
return this.addPopoutGroup(itemToPopout.group, options);
|
|
@@ -381,12 +408,9 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
381
408
|
}
|
|
382
409
|
var box = getBox();
|
|
383
410
|
var groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId();
|
|
384
|
-
if (itemToPopout.api.location.type === 'grid') {
|
|
385
|
-
itemToPopout.api.setVisible(false);
|
|
386
|
-
}
|
|
387
411
|
var _window = new popoutWindow_1.PopoutWindow("".concat(this.id, "-").concat(groupId), // unique id
|
|
388
412
|
theme !== null && theme !== void 0 ? theme : '', {
|
|
389
|
-
url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
|
|
413
|
+
url: (_e = (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.popoutUrl) !== null && _e !== void 0 ? _e : '/popout.html',
|
|
390
414
|
left: window.screenX + box.left,
|
|
391
415
|
top: window.screenY + box.top,
|
|
392
416
|
width: box.width,
|
|
@@ -400,13 +424,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
400
424
|
return _window
|
|
401
425
|
.open()
|
|
402
426
|
.then(function (popoutContainer) {
|
|
403
|
-
var _a;
|
|
404
427
|
if (_window.isDisposed) {
|
|
405
|
-
return;
|
|
428
|
+
return false;
|
|
406
429
|
}
|
|
407
430
|
if (popoutContainer === null) {
|
|
408
431
|
popoutWindowDisposable.dispose();
|
|
409
|
-
return;
|
|
432
|
+
return false;
|
|
410
433
|
}
|
|
411
434
|
var gready = document.createElement('div');
|
|
412
435
|
gready.className = 'dv-overlay-render-container';
|
|
@@ -415,32 +438,47 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
415
438
|
? itemToPopout.group
|
|
416
439
|
: itemToPopout;
|
|
417
440
|
var referenceLocation = itemToPopout.api.location.type;
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
441
|
+
/**
|
|
442
|
+
* The group that is being added doesn't already exist within the DOM, the most likely occurance
|
|
443
|
+
* of this case is when being called from the `fromJSON(...)` method
|
|
444
|
+
*/
|
|
445
|
+
var isGroupAddedToDom = referenceGroup.element.parentElement !== null;
|
|
446
|
+
var group;
|
|
447
|
+
if (!isGroupAddedToDom) {
|
|
448
|
+
group = referenceGroup;
|
|
422
449
|
}
|
|
423
|
-
if (
|
|
424
|
-
|
|
425
|
-
var panel = referenceGroup.model.removePanel(itemToPopout);
|
|
426
|
-
group.model.openPanel(panel);
|
|
427
|
-
});
|
|
450
|
+
else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
|
|
451
|
+
group = options.overridePopoutGroup;
|
|
428
452
|
}
|
|
429
453
|
else {
|
|
430
|
-
_this.
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
454
|
+
group = _this.createGroup({ id: groupId });
|
|
455
|
+
_this._onDidAddGroup.fire(group);
|
|
456
|
+
}
|
|
457
|
+
group.model.renderContainer = overlayRenderContainer;
|
|
458
|
+
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
459
|
+
if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
|
|
460
|
+
if (itemToPopout instanceof dockviewPanel_1.DockviewPanel) {
|
|
461
|
+
_this.movingLock(function () {
|
|
462
|
+
var panel = referenceGroup.model.removePanel(itemToPopout);
|
|
463
|
+
group.model.openPanel(panel);
|
|
434
464
|
});
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
465
|
+
}
|
|
466
|
+
else {
|
|
467
|
+
_this.movingLock(function () {
|
|
468
|
+
return moveGroupWithoutDestroying({
|
|
469
|
+
from: referenceGroup,
|
|
470
|
+
to: group,
|
|
471
|
+
});
|
|
472
|
+
});
|
|
473
|
+
switch (referenceLocation) {
|
|
474
|
+
case 'grid':
|
|
475
|
+
referenceGroup.api.setVisible(false);
|
|
476
|
+
break;
|
|
477
|
+
case 'floating':
|
|
478
|
+
case 'popout':
|
|
479
|
+
_this.removeGroup(referenceGroup);
|
|
480
|
+
break;
|
|
481
|
+
}
|
|
444
482
|
}
|
|
445
483
|
}
|
|
446
484
|
popoutContainer.classList.add('dv-dockview');
|
|
@@ -450,7 +488,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
450
488
|
group.model.location = {
|
|
451
489
|
type: 'popout',
|
|
452
490
|
getWindow: function () { return _window.window; },
|
|
491
|
+
popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
|
|
453
492
|
};
|
|
493
|
+
if (isGroupAddedToDom &&
|
|
494
|
+
itemToPopout.api.location.type === 'grid') {
|
|
495
|
+
itemToPopout.api.setVisible(false);
|
|
496
|
+
}
|
|
454
497
|
_this.doSetGroupAndPanelActive(group);
|
|
455
498
|
popoutWindowDisposable.addDisposables(group.api.onDidActiveChange(function (event) {
|
|
456
499
|
var _a;
|
|
@@ -462,10 +505,13 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
462
505
|
(_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
|
|
463
506
|
}));
|
|
464
507
|
var returnedGroup;
|
|
508
|
+
var isValidReferenceGroup = isGroupAddedToDom &&
|
|
509
|
+
referenceGroup &&
|
|
510
|
+
_this.getPanel(referenceGroup.id);
|
|
465
511
|
var value = {
|
|
466
512
|
window: _window,
|
|
467
513
|
popoutGroup: group,
|
|
468
|
-
referenceGroup:
|
|
514
|
+
referenceGroup: isValidReferenceGroup
|
|
469
515
|
? referenceGroup.id
|
|
470
516
|
: undefined,
|
|
471
517
|
disposable: {
|
|
@@ -482,9 +528,10 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
482
528
|
* window dimensions
|
|
483
529
|
*/
|
|
484
530
|
(0, events_1.addDisposableWindowListener)(_window.window, 'resize', function () {
|
|
485
|
-
group.layout(window.innerWidth, window.innerHeight);
|
|
531
|
+
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
486
532
|
}), overlayRenderContainer, lifecycle_1.Disposable.from(function () {
|
|
487
|
-
if (
|
|
533
|
+
if (isGroupAddedToDom &&
|
|
534
|
+
_this.getPanel(referenceGroup.id)) {
|
|
488
535
|
_this.movingLock(function () {
|
|
489
536
|
return moveGroupWithoutDestroying({
|
|
490
537
|
from: group,
|
|
@@ -501,21 +548,27 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
501
548
|
}
|
|
502
549
|
}
|
|
503
550
|
else if (_this.getPanel(group.id)) {
|
|
504
|
-
|
|
551
|
+
_this.doRemoveGroup(group, {
|
|
505
552
|
skipDispose: true,
|
|
506
553
|
skipActive: true,
|
|
554
|
+
skipPopoutReturn: true,
|
|
507
555
|
});
|
|
556
|
+
var removedGroup = group;
|
|
508
557
|
removedGroup.model.renderContainer =
|
|
509
558
|
_this.overlayRenderContainer;
|
|
510
559
|
removedGroup.model.location = { type: 'grid' };
|
|
511
560
|
returnedGroup = removedGroup;
|
|
561
|
+
_this.doAddGroup(removedGroup, [0]);
|
|
562
|
+
_this.doSetGroupAndPanelActive(removedGroup);
|
|
512
563
|
}
|
|
513
564
|
}));
|
|
514
565
|
_this._popoutGroups.push(value);
|
|
515
566
|
_this.updateWatermark();
|
|
567
|
+
return true;
|
|
516
568
|
})
|
|
517
569
|
.catch(function (err) {
|
|
518
570
|
console.error('dockview: failed to create popout window', err);
|
|
571
|
+
return false;
|
|
519
572
|
});
|
|
520
573
|
};
|
|
521
574
|
DockviewComponent.prototype.addFloatingGroup = function (item, options) {
|
|
@@ -626,7 +679,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
626
679
|
: (_c = (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport) !== null && _c !== void 0 ? _c : constants_1.DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
627
680
|
? undefined
|
|
628
681
|
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : constants_1.DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
629
|
-
var el = group.element.querySelector('.void-container');
|
|
682
|
+
var el = group.element.querySelector('.dv-void-container');
|
|
630
683
|
if (!el) {
|
|
631
684
|
throw new Error('failed to find drag handle');
|
|
632
685
|
}
|
|
@@ -844,6 +897,9 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
844
897
|
data: group.popoutGroup.toJSON(),
|
|
845
898
|
gridReferenceGroup: group.referenceGroup,
|
|
846
899
|
position: group.window.dimensions(),
|
|
900
|
+
url: group.popoutGroup.api.location.type === 'popout'
|
|
901
|
+
? group.popoutGroup.api.location.popoutUrl
|
|
902
|
+
: undefined,
|
|
847
903
|
};
|
|
848
904
|
});
|
|
849
905
|
var result = {
|
|
@@ -955,16 +1011,16 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
955
1011
|
try {
|
|
956
1012
|
for (var serializedPopoutGroups_1 = __values(serializedPopoutGroups), serializedPopoutGroups_1_1 = serializedPopoutGroups_1.next(); !serializedPopoutGroups_1_1.done; serializedPopoutGroups_1_1 = serializedPopoutGroups_1.next()) {
|
|
957
1013
|
var serializedPopoutGroup = serializedPopoutGroups_1_1.value;
|
|
958
|
-
var data_2 = serializedPopoutGroup.data, position = serializedPopoutGroup.position, gridReferenceGroup = serializedPopoutGroup.gridReferenceGroup;
|
|
1014
|
+
var data_2 = serializedPopoutGroup.data, position = serializedPopoutGroup.position, gridReferenceGroup = serializedPopoutGroup.gridReferenceGroup, url = serializedPopoutGroup.url;
|
|
959
1015
|
var group = createGroupFromSerializedState_1(data_2);
|
|
960
1016
|
this.addPopoutGroup((_k = (gridReferenceGroup
|
|
961
1017
|
? this.getPanel(gridReferenceGroup)
|
|
962
1018
|
: undefined)) !== null && _k !== void 0 ? _k : group, {
|
|
963
|
-
skipRemoveGroup: true,
|
|
964
1019
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
965
1020
|
overridePopoutGroup: gridReferenceGroup
|
|
966
1021
|
? group
|
|
967
1022
|
: undefined,
|
|
1023
|
+
popoutUrl: url,
|
|
968
1024
|
});
|
|
969
1025
|
}
|
|
970
1026
|
}
|
|
@@ -996,6 +1052,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
996
1052
|
}
|
|
997
1053
|
}
|
|
998
1054
|
catch (err) {
|
|
1055
|
+
console.error('dockview: failed to deserialize layout. Reverting changes', err);
|
|
999
1056
|
try {
|
|
1000
1057
|
/**
|
|
1001
1058
|
* Takes all the successfully created groups and remove all of their panels.
|
|
@@ -1125,11 +1182,13 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1125
1182
|
width: options.initialWidth,
|
|
1126
1183
|
height: options.initialHeight,
|
|
1127
1184
|
};
|
|
1185
|
+
var index;
|
|
1128
1186
|
if (options.position) {
|
|
1129
1187
|
if ((0, options_1.isPanelOptionsWithPanel)(options.position)) {
|
|
1130
1188
|
var referencePanel = typeof options.position.referencePanel === 'string'
|
|
1131
1189
|
? this.getGroupPanel(options.position.referencePanel)
|
|
1132
1190
|
: options.position.referencePanel;
|
|
1191
|
+
index = options.position.index;
|
|
1133
1192
|
if (!referencePanel) {
|
|
1134
1193
|
throw new Error("referencePanel '".concat(options.position.referencePanel, "' does not exist"));
|
|
1135
1194
|
}
|
|
@@ -1140,6 +1199,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1140
1199
|
typeof options.position.referenceGroup === 'string'
|
|
1141
1200
|
? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
|
|
1142
1201
|
: options.position.referenceGroup;
|
|
1202
|
+
index = options.position.index;
|
|
1143
1203
|
if (!referenceGroup) {
|
|
1144
1204
|
throw new Error("referenceGroup '".concat(options.position.referenceGroup, "' does not exist"));
|
|
1145
1205
|
}
|
|
@@ -1150,6 +1210,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1150
1210
|
group.model.openPanel(panel_1, {
|
|
1151
1211
|
skipSetActive: options.inactive,
|
|
1152
1212
|
skipSetGroupActive: options.inactive,
|
|
1213
|
+
index: index,
|
|
1153
1214
|
});
|
|
1154
1215
|
if (!options.inactive) {
|
|
1155
1216
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -1179,6 +1240,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1179
1240
|
group.model.openPanel(panel, {
|
|
1180
1241
|
skipSetActive: options.inactive,
|
|
1181
1242
|
skipSetGroupActive: options.inactive,
|
|
1243
|
+
index: index,
|
|
1182
1244
|
});
|
|
1183
1245
|
}
|
|
1184
1246
|
else if (referenceGroup.api.location.type === 'floating' ||
|
|
@@ -1187,6 +1249,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1187
1249
|
referenceGroup.model.openPanel(panel, {
|
|
1188
1250
|
skipSetActive: options.inactive,
|
|
1189
1251
|
skipSetGroupActive: options.inactive,
|
|
1252
|
+
index: index,
|
|
1190
1253
|
});
|
|
1191
1254
|
referenceGroup.api.setSize({
|
|
1192
1255
|
width: initial === null || initial === void 0 ? void 0 : initial.width,
|
|
@@ -1207,6 +1270,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1207
1270
|
group.model.openPanel(panel, {
|
|
1208
1271
|
skipSetActive: options.inactive,
|
|
1209
1272
|
skipSetGroupActive: options.inactive,
|
|
1273
|
+
index: index,
|
|
1210
1274
|
});
|
|
1211
1275
|
if (!options.inactive) {
|
|
1212
1276
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -1225,6 +1289,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1225
1289
|
group.model.openPanel(panel, {
|
|
1226
1290
|
skipSetActive: options.inactive,
|
|
1227
1291
|
skipSetGroupActive: options.inactive,
|
|
1292
|
+
index: index,
|
|
1228
1293
|
});
|
|
1229
1294
|
}
|
|
1230
1295
|
else {
|
|
@@ -1235,6 +1300,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1235
1300
|
group.model.openPanel(panel, {
|
|
1236
1301
|
skipSetActive: options.inactive,
|
|
1237
1302
|
skipSetGroupActive: options.inactive,
|
|
1303
|
+
index: index,
|
|
1238
1304
|
});
|
|
1239
1305
|
if (!options.inactive) {
|
|
1240
1306
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -1245,7 +1311,6 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1245
1311
|
DockviewComponent.prototype.removePanel = function (panel, options) {
|
|
1246
1312
|
if (options === void 0) { options = {
|
|
1247
1313
|
removeEmptyGroup: true,
|
|
1248
|
-
skipDispose: false,
|
|
1249
1314
|
}; }
|
|
1250
1315
|
var group = panel.group;
|
|
1251
1316
|
if (!group) {
|
|
@@ -39,9 +39,10 @@ var DockviewGroupPanel = /** @class */ (function (_super) {
|
|
|
39
39
|
get: function () {
|
|
40
40
|
var _a;
|
|
41
41
|
var activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
if (typeof activePanelMinimumWidth === 'number') {
|
|
43
|
+
return activePanelMinimumWidth;
|
|
44
|
+
}
|
|
45
|
+
return _super.prototype.__minimumWidth.call(this);
|
|
45
46
|
},
|
|
46
47
|
enumerable: false,
|
|
47
48
|
configurable: true
|
|
@@ -50,9 +51,10 @@ var DockviewGroupPanel = /** @class */ (function (_super) {
|
|
|
50
51
|
get: function () {
|
|
51
52
|
var _a;
|
|
52
53
|
var activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
if (typeof activePanelMinimumHeight === 'number') {
|
|
55
|
+
return activePanelMinimumHeight;
|
|
56
|
+
}
|
|
57
|
+
return _super.prototype.__minimumHeight.call(this);
|
|
56
58
|
},
|
|
57
59
|
enumerable: false,
|
|
58
60
|
configurable: true
|
|
@@ -61,9 +63,10 @@ var DockviewGroupPanel = /** @class */ (function (_super) {
|
|
|
61
63
|
get: function () {
|
|
62
64
|
var _a;
|
|
63
65
|
var activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
if (typeof activePanelMaximumWidth === 'number') {
|
|
67
|
+
return activePanelMaximumWidth;
|
|
68
|
+
}
|
|
69
|
+
return _super.prototype.__maximumWidth.call(this);
|
|
67
70
|
},
|
|
68
71
|
enumerable: false,
|
|
69
72
|
configurable: true
|
|
@@ -72,9 +75,10 @@ var DockviewGroupPanel = /** @class */ (function (_super) {
|
|
|
72
75
|
get: function () {
|
|
73
76
|
var _a;
|
|
74
77
|
var activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
if (typeof activePanelMaximumHeight === 'number') {
|
|
79
|
+
return activePanelMaximumHeight;
|
|
80
|
+
}
|
|
81
|
+
return _super.prototype.__maximumHeight.call(this);
|
|
78
82
|
},
|
|
79
83
|
enumerable: false,
|
|
80
84
|
configurable: true
|
|
@@ -120,6 +120,7 @@ export type DockviewGroupLocation = {
|
|
|
120
120
|
} | {
|
|
121
121
|
type: 'popout';
|
|
122
122
|
getWindow: () => Window;
|
|
123
|
+
popoutUrl?: string;
|
|
123
124
|
};
|
|
124
125
|
export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
|
|
125
126
|
private readonly event;
|
|
@@ -143,7 +144,7 @@ export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
|
|
|
143
144
|
}
|
|
144
145
|
export declare class DockviewGroupPanelModel extends CompositeDisposable implements IDockviewGroupPanelModel {
|
|
145
146
|
private readonly container;
|
|
146
|
-
private accessor;
|
|
147
|
+
private readonly accessor;
|
|
147
148
|
id: string;
|
|
148
149
|
private readonly options;
|
|
149
150
|
private readonly groupPanel;
|
|
@@ -158,11 +159,12 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
|
|
|
158
159
|
private _prefixHeaderActions;
|
|
159
160
|
private _location;
|
|
160
161
|
private mostRecentlyUsed;
|
|
162
|
+
private _overwriteRenderContainer;
|
|
161
163
|
private readonly _onDidChange;
|
|
162
164
|
readonly onDidChange: Event<IViewSize | undefined>;
|
|
163
165
|
private _width;
|
|
164
166
|
private _height;
|
|
165
|
-
private _panels;
|
|
167
|
+
private readonly _panels;
|
|
166
168
|
private readonly _panelDisposables;
|
|
167
169
|
private readonly _onMove;
|
|
168
170
|
readonly onMove: Event<GroupMoveEvent>;
|
|
@@ -204,7 +206,6 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
|
|
|
204
206
|
set location(value: DockviewGroupLocation);
|
|
205
207
|
constructor(container: HTMLElement, accessor: DockviewComponent, id: string, options: GroupOptions, groupPanel: DockviewGroupPanel);
|
|
206
208
|
focusContent(): void;
|
|
207
|
-
private _overwriteRenderContainer;
|
|
208
209
|
set renderContainer(value: OverlayRenderContainer | null);
|
|
209
210
|
get renderContainer(): OverlayRenderContainer;
|
|
210
211
|
initialize(): void;
|
|
@@ -202,6 +202,7 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
202
202
|
_this._locked = false;
|
|
203
203
|
_this._location = { type: 'grid' };
|
|
204
204
|
_this.mostRecentlyUsed = [];
|
|
205
|
+
_this._overwriteRenderContainer = null;
|
|
205
206
|
_this._onDidChange = new events_1.Emitter();
|
|
206
207
|
_this.onDidChange = _this._onDidChange.event;
|
|
207
208
|
_this._width = 0;
|
|
@@ -232,8 +233,7 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
232
233
|
_this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
|
|
233
234
|
_this._onUnhandledDragOverEvent = new events_1.Emitter();
|
|
234
235
|
_this.onUnhandledDragOverEvent = _this._onUnhandledDragOverEvent.event;
|
|
235
|
-
_this.
|
|
236
|
-
(0, dom_1.toggleClass)(_this.container, 'groupview', true);
|
|
236
|
+
(0, dom_1.toggleClass)(_this.container, 'dv-groupview', true);
|
|
237
237
|
_this._api = new component_api_1.DockviewApi(_this.accessor);
|
|
238
238
|
_this.tabsContainer = new tabsContainer_1.TabsContainer(_this.accessor, _this.groupPanel);
|
|
239
239
|
_this.contentContainer = new content_1.ContentContainer(_this.accessor, _this);
|
|
@@ -267,7 +267,7 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
267
267
|
}
|
|
268
268
|
Object.defineProperty(DockviewGroupPanelModel.prototype, "element", {
|
|
269
269
|
get: function () {
|
|
270
|
-
throw new Error('not supported');
|
|
270
|
+
throw new Error('dockview: not supported');
|
|
271
271
|
},
|
|
272
272
|
enumerable: false,
|
|
273
273
|
configurable: true
|
|
@@ -285,7 +285,7 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
285
285
|
},
|
|
286
286
|
set: function (value) {
|
|
287
287
|
this._locked = value;
|
|
288
|
-
(0, dom_1.toggleClass)(this.container, 'locked-groupview', value === 'no-drop-target' || value);
|
|
288
|
+
(0, dom_1.toggleClass)(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);
|
|
289
289
|
},
|
|
290
290
|
enumerable: false,
|
|
291
291
|
configurable: true
|
|
@@ -599,7 +599,10 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
599
599
|
this.doClose(panel);
|
|
600
600
|
};
|
|
601
601
|
DockviewGroupPanelModel.prototype.doClose = function (panel) {
|
|
602
|
-
this.accessor.
|
|
602
|
+
var isLast = this.panels.length === 1 && this.accessor.groups.length === 1;
|
|
603
|
+
this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'
|
|
604
|
+
? { removeEmptyGroup: false }
|
|
605
|
+
: undefined);
|
|
603
606
|
};
|
|
604
607
|
DockviewGroupPanelModel.prototype.isPanelActive = function (panel) {
|
|
605
608
|
return this._activePanel === panel;
|
|
@@ -613,8 +616,8 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
613
616
|
return;
|
|
614
617
|
}
|
|
615
618
|
this._isGroupActive = isGroupActive;
|
|
616
|
-
(0, dom_1.toggleClass)(this.container, 'active-group', isGroupActive);
|
|
617
|
-
(0, dom_1.toggleClass)(this.container, 'inactive-group', !isGroupActive);
|
|
619
|
+
(0, dom_1.toggleClass)(this.container, 'dv-active-group', isGroupActive);
|
|
620
|
+
(0, dom_1.toggleClass)(this.container, 'dv-inactive-group', !isGroupActive);
|
|
618
621
|
this.tabsContainer.setActive(this.isActive);
|
|
619
622
|
if (!this._activePanel && this.panels.length > 0) {
|
|
620
623
|
this.doSetActivePanel(this.panels[0]);
|
|
@@ -714,7 +717,6 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
714
717
|
DockviewGroupPanelModel.prototype.updateContainer = function () {
|
|
715
718
|
var _this = this;
|
|
716
719
|
var _a, _b;
|
|
717
|
-
(0, dom_1.toggleClass)(this.container, 'empty', this.isEmpty);
|
|
718
720
|
this.panels.forEach(function (panel) { return panel.runEvents(); });
|
|
719
721
|
if (this.isEmpty && !this.watermark) {
|
|
720
722
|
var watermark = this.accessor.createWatermarkComponent();
|
|
@@ -728,14 +730,12 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
728
730
|
_this.accessor.doSetGroupActive(_this.groupPanel);
|
|
729
731
|
}
|
|
730
732
|
});
|
|
731
|
-
this.tabsContainer.hide();
|
|
732
733
|
this.contentContainer.element.appendChild(this.watermark.element);
|
|
733
734
|
}
|
|
734
735
|
if (!this.isEmpty && this.watermark) {
|
|
735
736
|
this.watermark.element.remove();
|
|
736
737
|
(_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
737
738
|
this.watermark = undefined;
|
|
738
|
-
this.tabsContainer.show();
|
|
739
739
|
}
|
|
740
740
|
};
|
|
741
741
|
DockviewGroupPanelModel.prototype.canDisplayOverlay = function (event, position, target) {
|
|
@@ -37,10 +37,10 @@ export declare class DockviewPanel extends CompositeDisposable implements IDockv
|
|
|
37
37
|
private _params?;
|
|
38
38
|
private _title;
|
|
39
39
|
private _renderer;
|
|
40
|
-
private _minimumWidth;
|
|
41
|
-
private _minimumHeight;
|
|
42
|
-
private _maximumWidth;
|
|
43
|
-
private _maximumHeight;
|
|
40
|
+
private readonly _minimumWidth;
|
|
41
|
+
private readonly _minimumHeight;
|
|
42
|
+
private readonly _maximumWidth;
|
|
43
|
+
private readonly _maximumHeight;
|
|
44
44
|
get params(): Parameters | undefined;
|
|
45
45
|
get title(): string | undefined;
|
|
46
46
|
get group(): DockviewGroupPanel;
|
|
@@ -7,7 +7,7 @@ export interface IDockviewPanelModel extends IDisposable {
|
|
|
7
7
|
readonly contentComponent: string;
|
|
8
8
|
readonly tabComponent?: string;
|
|
9
9
|
readonly content: IContentRenderer;
|
|
10
|
-
readonly tab
|
|
10
|
+
readonly tab: ITabRenderer;
|
|
11
11
|
update(event: PanelUpdateEvent): void;
|
|
12
12
|
layout(width: number, height: number): void;
|
|
13
13
|
init(params: GroupPanelPartInitParameters): void;
|
|
@@ -50,6 +50,10 @@ export interface DockviewOptions {
|
|
|
50
50
|
* Pixel gap between groups
|
|
51
51
|
*/
|
|
52
52
|
gap?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Define the behaviour of the dock when there are no panels to display. Defaults to `watermark`.
|
|
55
|
+
*/
|
|
56
|
+
noPanelsOverlay?: 'emptyGroup' | 'watermark';
|
|
53
57
|
}
|
|
54
58
|
export interface DockviewDndOverlayEvent {
|
|
55
59
|
nativeEvent: DragEvent;
|
|
@@ -102,10 +106,18 @@ export interface PanelOptions<P extends object = Parameters> {
|
|
|
102
106
|
type RelativePanel = {
|
|
103
107
|
direction?: Direction;
|
|
104
108
|
referencePanel: string | IDockviewPanel;
|
|
109
|
+
/**
|
|
110
|
+
* The index to place the panel within a group, only applicable if the placement is within an existing group
|
|
111
|
+
*/
|
|
112
|
+
index?: number;
|
|
105
113
|
};
|
|
106
114
|
type RelativeGroup = {
|
|
107
115
|
direction?: Direction;
|
|
108
116
|
referenceGroup: string | DockviewGroupPanel;
|
|
117
|
+
/**
|
|
118
|
+
* The index to place the panel within a group, only applicable if the placement is within an existing group
|
|
119
|
+
*/
|
|
120
|
+
index?: number;
|
|
109
121
|
};
|
|
110
122
|
type AbsolutePosition = {
|
|
111
123
|
direction: Omit<Direction, 'within'>;
|
package/dist/cjs/dom.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { Event as DockviewEvent } from './events';
|
|
2
|
-
import { IDisposable } from './lifecycle';
|
|
2
|
+
import { IDisposable, CompositeDisposable } from './lifecycle';
|
|
3
|
+
export interface OverflowEvent {
|
|
4
|
+
hasScrollX: boolean;
|
|
5
|
+
hasScrollY: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class OverflowObserver extends CompositeDisposable {
|
|
8
|
+
private readonly _onDidChange;
|
|
9
|
+
readonly onDidChange: DockviewEvent<OverflowEvent>;
|
|
10
|
+
private _value;
|
|
11
|
+
constructor(el: HTMLElement);
|
|
12
|
+
}
|
|
3
13
|
export declare function watchElementResize(element: HTMLElement, cb: (entry: ResizeObserverEntry) => void): IDisposable;
|
|
4
14
|
export declare const removeClasses: (element: HTMLElement, ...classes: string[]) => void;
|
|
5
15
|
export declare const addClasses: (element: HTMLElement, ...classes: string[]) => void;
|
package/dist/cjs/dom.js
CHANGED
|
@@ -51,9 +51,27 @@ 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 = void 0;
|
|
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;
|
|
55
55
|
var events_1 = require("./events");
|
|
56
56
|
var lifecycle_1 = require("./lifecycle");
|
|
57
|
+
var OverflowObserver = /** @class */ (function (_super) {
|
|
58
|
+
__extends(OverflowObserver, _super);
|
|
59
|
+
function OverflowObserver(el) {
|
|
60
|
+
var _this = _super.call(this) || this;
|
|
61
|
+
_this._onDidChange = new events_1.Emitter();
|
|
62
|
+
_this.onDidChange = _this._onDidChange.event;
|
|
63
|
+
_this._value = null;
|
|
64
|
+
_this.addDisposables(_this._onDidChange, watchElementResize(el, function (entry) {
|
|
65
|
+
var hasScrollX = entry.target.scrollWidth > entry.target.clientWidth;
|
|
66
|
+
var hasScrollY = entry.target.scrollHeight > entry.target.clientHeight;
|
|
67
|
+
_this._value = { hasScrollX: hasScrollX, hasScrollY: hasScrollY };
|
|
68
|
+
_this._onDidChange.fire(_this._value);
|
|
69
|
+
}));
|
|
70
|
+
return _this;
|
|
71
|
+
}
|
|
72
|
+
return OverflowObserver;
|
|
73
|
+
}(lifecycle_1.CompositeDisposable));
|
|
74
|
+
exports.OverflowObserver = OverflowObserver;
|
|
57
75
|
function watchElementResize(element, cb) {
|
|
58
76
|
var observer = new ResizeObserver(function (entires) {
|
|
59
77
|
/**
|