dockview 1.13.0 → 1.13.1
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.amd.js +43 -15
- package/dist/dockview.amd.js.map +1 -1
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.js.map +1 -1
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.min.noStyle.js.map +1 -1
- package/dist/dockview.amd.noStyle.js +43 -15
- package/dist/dockview.amd.noStyle.js.map +1 -1
- package/dist/dockview.cjs.js +43 -15
- package/dist/dockview.cjs.js.map +1 -1
- package/dist/dockview.esm.js +43 -15
- package/dist/dockview.esm.js.map +1 -1
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.esm.min.js.map +1 -1
- package/dist/dockview.js +43 -15
- package/dist/dockview.js.map +1 -1
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.js.map +1 -1
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.min.noStyle.js.map +1 -1
- package/dist/dockview.noStyle.js +43 -15
- package/dist/dockview.noStyle.js.map +1 -1
- package/package.json +2 -2
package/dist/dockview.amd.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview
|
|
3
|
-
* @version 1.13.
|
|
3
|
+
* @version 1.13.1
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -250,18 +250,49 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
250
250
|
},
|
|
251
251
|
};
|
|
252
252
|
}
|
|
253
|
-
|
|
253
|
+
/**
|
|
254
|
+
*
|
|
255
|
+
* Event Emitter that fires events from a Microtask callback, only one event will fire per event-loop cycle.
|
|
256
|
+
*
|
|
257
|
+
* It's kind of like using an `asapScheduler` in RxJs with additional logic to only fire once per event-loop cycle.
|
|
258
|
+
* This implementation exists to avoid external dependencies.
|
|
259
|
+
*
|
|
260
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
|
|
261
|
+
* @see https://rxjs.dev/api/index/const/asapScheduler
|
|
262
|
+
*/
|
|
263
|
+
class AsapEvent {
|
|
254
264
|
constructor() {
|
|
255
265
|
this._onFired = new Emitter();
|
|
256
|
-
this.
|
|
266
|
+
this._currentFireCount = 0;
|
|
267
|
+
this._queued = false;
|
|
268
|
+
this.onEvent = (e) => {
|
|
269
|
+
/**
|
|
270
|
+
* when the event is first subscribed to take note of the current fire count
|
|
271
|
+
*/
|
|
272
|
+
const fireCountAtTimeOfEventSubscription = this._currentFireCount;
|
|
273
|
+
return this._onFired.event(() => {
|
|
274
|
+
/**
|
|
275
|
+
* if the current fire count is greater than the fire count at event subscription
|
|
276
|
+
* then the event has been fired since we subscribed and it's ok to "on_next" the event.
|
|
277
|
+
*
|
|
278
|
+
* if the count is not greater then what we are recieving is an event from the microtask
|
|
279
|
+
* queue that was triggered before we actually subscribed and therfore we should ignore it.
|
|
280
|
+
*/
|
|
281
|
+
if (this._currentFireCount > fireCountAtTimeOfEventSubscription) {
|
|
282
|
+
e();
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
};
|
|
257
286
|
}
|
|
258
287
|
fire() {
|
|
259
|
-
|
|
260
|
-
|
|
288
|
+
this._currentFireCount++;
|
|
289
|
+
if (this._queued) {
|
|
290
|
+
return;
|
|
261
291
|
}
|
|
262
|
-
this.
|
|
292
|
+
this._queued = true;
|
|
293
|
+
queueMicrotask(() => {
|
|
294
|
+
this._queued = false;
|
|
263
295
|
this._onFired.fire();
|
|
264
|
-
clearTimeout(this.timer);
|
|
265
296
|
});
|
|
266
297
|
}
|
|
267
298
|
dispose() {
|
|
@@ -2579,15 +2610,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2579
2610
|
super(document.createElement('div'), options.disableAutoResizing);
|
|
2580
2611
|
this._id = nextLayoutId$1.next();
|
|
2581
2612
|
this._groups = new Map();
|
|
2582
|
-
this._onDidLayoutChange = new Emitter();
|
|
2583
|
-
this.onDidLayoutChange = this._onDidLayoutChange.event;
|
|
2584
2613
|
this._onDidRemove = new Emitter();
|
|
2585
2614
|
this.onDidRemove = this._onDidRemove.event;
|
|
2586
2615
|
this._onDidAdd = new Emitter();
|
|
2587
2616
|
this.onDidAdd = this._onDidAdd.event;
|
|
2588
2617
|
this._onDidActiveChange = new Emitter();
|
|
2589
2618
|
this.onDidActiveChange = this._onDidActiveChange.event;
|
|
2590
|
-
this._bufferOnDidLayoutChange = new
|
|
2619
|
+
this._bufferOnDidLayoutChange = new AsapEvent();
|
|
2620
|
+
this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;
|
|
2591
2621
|
this.element.style.height = '100%';
|
|
2592
2622
|
this.element.style.width = '100%';
|
|
2593
2623
|
options.parentElement.appendChild(this.element);
|
|
@@ -2602,13 +2632,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2602
2632
|
this._bufferOnDidLayoutChange.fire();
|
|
2603
2633
|
}), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove, this.onDidActiveChange)(() => {
|
|
2604
2634
|
this._bufferOnDidLayoutChange.fire();
|
|
2605
|
-
}), this._bufferOnDidLayoutChange.onEvent(() => {
|
|
2606
|
-
this._onDidLayoutChange.fire();
|
|
2607
2635
|
}), this._bufferOnDidLayoutChange);
|
|
2608
2636
|
}
|
|
2609
2637
|
setVisible(panel, visible) {
|
|
2610
2638
|
this.gridview.setViewVisible(getGridLocation(panel.element), visible);
|
|
2611
|
-
this.
|
|
2639
|
+
this._bufferOnDidLayoutChange.fire();
|
|
2612
2640
|
}
|
|
2613
2641
|
isVisible(panel) {
|
|
2614
2642
|
return this.gridview.isViewVisible(getGridLocation(panel.element));
|
|
@@ -2714,7 +2742,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
2714
2742
|
this._onDidActiveChange.dispose();
|
|
2715
2743
|
this._onDidAdd.dispose();
|
|
2716
2744
|
this._onDidRemove.dispose();
|
|
2717
|
-
this._onDidLayoutChange.dispose();
|
|
2718
2745
|
for (const group of this.groups) {
|
|
2719
2746
|
group.dispose();
|
|
2720
2747
|
}
|
|
@@ -7940,7 +7967,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
7940
7967
|
}
|
|
7941
7968
|
addGroup(options) {
|
|
7942
7969
|
var _a;
|
|
7943
|
-
const group = this.createGroup(options);
|
|
7944
7970
|
if (options) {
|
|
7945
7971
|
let referenceGroup;
|
|
7946
7972
|
if (isGroupOptionsWithPanel(options)) {
|
|
@@ -7974,6 +8000,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
7974
8000
|
const target = toTarget(options.direction || 'within');
|
|
7975
8001
|
const location = getGridLocation(referenceGroup.element);
|
|
7976
8002
|
const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
|
|
8003
|
+
const group = this.createGroup(options);
|
|
7977
8004
|
this.doAddGroup(group, relativeLocation);
|
|
7978
8005
|
if (!options.skipSetActive) {
|
|
7979
8006
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -7981,6 +8008,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
|
|
|
7981
8008
|
return group;
|
|
7982
8009
|
}
|
|
7983
8010
|
else {
|
|
8011
|
+
const group = this.createGroup(options);
|
|
7984
8012
|
this.doAddGroup(group);
|
|
7985
8013
|
this.doSetGroupAndPanelActive(group);
|
|
7986
8014
|
return group;
|