dockview-core 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/cjs/dockview/dockviewComponent.js +2 -1
- package/dist/cjs/events.d.ts +13 -2
- package/dist/cjs/events.js +44 -12
- package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -4
- package/dist/cjs/gridview/baseComponentGridview.js +3 -7
- package/dist/dockview-core.amd.js +43 -15
- 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 +43 -15
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +43 -15
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +43 -15
- 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 +43 -15
- 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 +43 -15
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/dockview/dockviewComponent.js +2 -1
- package/dist/esm/events.d.ts +13 -2
- package/dist/esm/events.js +37 -6
- package/dist/esm/gridview/baseComponentGridview.d.ts +3 -4
- package/dist/esm/gridview/baseComponentGridview.js +4 -8
- package/package.json +1 -1
|
@@ -1310,7 +1310,6 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1310
1310
|
};
|
|
1311
1311
|
DockviewComponent.prototype.addGroup = function (options) {
|
|
1312
1312
|
var _a;
|
|
1313
|
-
var group = this.createGroup(options);
|
|
1314
1313
|
if (options) {
|
|
1315
1314
|
var referenceGroup = void 0;
|
|
1316
1315
|
if ((0, options_1.isGroupOptionsWithPanel)(options)) {
|
|
@@ -1344,6 +1343,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1344
1343
|
var target = (0, baseComponentGridview_1.toTarget)(options.direction || 'within');
|
|
1345
1344
|
var location_2 = (0, gridview_1.getGridLocation)(referenceGroup.element);
|
|
1346
1345
|
var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_2, target);
|
|
1346
|
+
var group = this.createGroup(options);
|
|
1347
1347
|
this.doAddGroup(group, relativeLocation);
|
|
1348
1348
|
if (!options.skipSetActive) {
|
|
1349
1349
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -1351,6 +1351,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1351
1351
|
return group;
|
|
1352
1352
|
}
|
|
1353
1353
|
else {
|
|
1354
|
+
var group = this.createGroup(options);
|
|
1354
1355
|
this.doAddGroup(group);
|
|
1355
1356
|
this.doSetGroupAndPanelActive(group);
|
|
1356
1357
|
return group;
|
package/dist/cjs/events.d.ts
CHANGED
|
@@ -47,9 +47,20 @@ export declare class Emitter<T> implements IDisposable {
|
|
|
47
47
|
}
|
|
48
48
|
export declare function addDisposableWindowListener<K extends keyof WindowEventMap>(element: Window, type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
49
49
|
export declare function addDisposableListener<K extends keyof HTMLElementEventMap>(element: HTMLElement, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
/**
|
|
51
|
+
*
|
|
52
|
+
* Event Emitter that fires events from a Microtask callback, only one event will fire per event-loop cycle.
|
|
53
|
+
*
|
|
54
|
+
* It's kind of like using an `asapScheduler` in RxJs with additional logic to only fire once per event-loop cycle.
|
|
55
|
+
* This implementation exists to avoid external dependencies.
|
|
56
|
+
*
|
|
57
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
|
|
58
|
+
* @see https://rxjs.dev/api/index/const/asapScheduler
|
|
59
|
+
*/
|
|
60
|
+
export declare class AsapEvent implements IDisposable {
|
|
52
61
|
private readonly _onFired;
|
|
62
|
+
private _currentFireCount;
|
|
63
|
+
private _queued;
|
|
53
64
|
readonly onEvent: Event<void>;
|
|
54
65
|
fire(): void;
|
|
55
66
|
dispose(): void;
|
package/dist/cjs/events.js
CHANGED
|
@@ -11,7 +11,7 @@ var __values = (this && this.__values) || function(o) {
|
|
|
11
11
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.
|
|
14
|
+
exports.AsapEvent = exports.addDisposableListener = exports.addDisposableWindowListener = exports.Emitter = exports.DockviewEvent = exports.Event = void 0;
|
|
15
15
|
var Event;
|
|
16
16
|
(function (Event) {
|
|
17
17
|
Event.any = function () {
|
|
@@ -217,24 +217,56 @@ function addDisposableListener(element, type, listener, options) {
|
|
|
217
217
|
};
|
|
218
218
|
}
|
|
219
219
|
exports.addDisposableListener = addDisposableListener;
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
/**
|
|
221
|
+
*
|
|
222
|
+
* Event Emitter that fires events from a Microtask callback, only one event will fire per event-loop cycle.
|
|
223
|
+
*
|
|
224
|
+
* It's kind of like using an `asapScheduler` in RxJs with additional logic to only fire once per event-loop cycle.
|
|
225
|
+
* This implementation exists to avoid external dependencies.
|
|
226
|
+
*
|
|
227
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
|
|
228
|
+
* @see https://rxjs.dev/api/index/const/asapScheduler
|
|
229
|
+
*/
|
|
230
|
+
var AsapEvent = /** @class */ (function () {
|
|
231
|
+
function AsapEvent() {
|
|
232
|
+
var _this = this;
|
|
222
233
|
this._onFired = new Emitter();
|
|
223
|
-
this.
|
|
234
|
+
this._currentFireCount = 0;
|
|
235
|
+
this._queued = false;
|
|
236
|
+
this.onEvent = function (e) {
|
|
237
|
+
/**
|
|
238
|
+
* when the event is first subscribed to take note of the current fire count
|
|
239
|
+
*/
|
|
240
|
+
var fireCountAtTimeOfEventSubscription = _this._currentFireCount;
|
|
241
|
+
return _this._onFired.event(function () {
|
|
242
|
+
/**
|
|
243
|
+
* if the current fire count is greater than the fire count at event subscription
|
|
244
|
+
* then the event has been fired since we subscribed and it's ok to "on_next" the event.
|
|
245
|
+
*
|
|
246
|
+
* if the count is not greater then what we are recieving is an event from the microtask
|
|
247
|
+
* queue that was triggered before we actually subscribed and therfore we should ignore it.
|
|
248
|
+
*/
|
|
249
|
+
if (_this._currentFireCount > fireCountAtTimeOfEventSubscription) {
|
|
250
|
+
e();
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
};
|
|
224
254
|
}
|
|
225
|
-
|
|
255
|
+
AsapEvent.prototype.fire = function () {
|
|
226
256
|
var _this = this;
|
|
227
|
-
|
|
228
|
-
|
|
257
|
+
this._currentFireCount++;
|
|
258
|
+
if (this._queued) {
|
|
259
|
+
return;
|
|
229
260
|
}
|
|
230
|
-
this.
|
|
261
|
+
this._queued = true;
|
|
262
|
+
queueMicrotask(function () {
|
|
263
|
+
_this._queued = false;
|
|
231
264
|
_this._onFired.fire();
|
|
232
|
-
clearTimeout(_this.timer);
|
|
233
265
|
});
|
|
234
266
|
};
|
|
235
|
-
|
|
267
|
+
AsapEvent.prototype.dispose = function () {
|
|
236
268
|
this._onFired.dispose();
|
|
237
269
|
};
|
|
238
|
-
return
|
|
270
|
+
return AsapEvent;
|
|
239
271
|
}());
|
|
240
|
-
exports.
|
|
272
|
+
exports.AsapEvent = AsapEvent;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Event,
|
|
1
|
+
import { Event, AsapEvent } from '../events';
|
|
2
2
|
import { Gridview, IGridView } from './gridview';
|
|
3
3
|
import { Position } from '../dnd/droptarget';
|
|
4
4
|
import { IValueDisposable } from '../lifecycle';
|
|
@@ -51,15 +51,14 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizab
|
|
|
51
51
|
protected readonly _groups: Map<string, IValueDisposable<T>>;
|
|
52
52
|
protected readonly gridview: Gridview;
|
|
53
53
|
protected _activeGroup: T | undefined;
|
|
54
|
-
private _onDidLayoutChange;
|
|
55
|
-
readonly onDidLayoutChange: Event<void>;
|
|
56
54
|
private readonly _onDidRemove;
|
|
57
55
|
readonly onDidRemove: Event<T>;
|
|
58
56
|
private readonly _onDidAdd;
|
|
59
57
|
readonly onDidAdd: Event<T>;
|
|
60
58
|
private readonly _onDidActiveChange;
|
|
61
59
|
readonly onDidActiveChange: Event<T | undefined>;
|
|
62
|
-
protected readonly _bufferOnDidLayoutChange:
|
|
60
|
+
protected readonly _bufferOnDidLayoutChange: AsapEvent;
|
|
61
|
+
readonly onDidLayoutChange: Event<void>;
|
|
63
62
|
get id(): string;
|
|
64
63
|
get size(): number;
|
|
65
64
|
get groups(): T[];
|
|
@@ -56,15 +56,14 @@ var BaseGrid = /** @class */ (function (_super) {
|
|
|
56
56
|
var _this = _super.call(this, document.createElement('div'), options.disableAutoResizing) || this;
|
|
57
57
|
_this._id = nextLayoutId.next();
|
|
58
58
|
_this._groups = new Map();
|
|
59
|
-
_this._onDidLayoutChange = new events_1.Emitter();
|
|
60
|
-
_this.onDidLayoutChange = _this._onDidLayoutChange.event;
|
|
61
59
|
_this._onDidRemove = new events_1.Emitter();
|
|
62
60
|
_this.onDidRemove = _this._onDidRemove.event;
|
|
63
61
|
_this._onDidAdd = new events_1.Emitter();
|
|
64
62
|
_this.onDidAdd = _this._onDidAdd.event;
|
|
65
63
|
_this._onDidActiveChange = new events_1.Emitter();
|
|
66
64
|
_this.onDidActiveChange = _this._onDidActiveChange.event;
|
|
67
|
-
_this._bufferOnDidLayoutChange = new events_1.
|
|
65
|
+
_this._bufferOnDidLayoutChange = new events_1.AsapEvent();
|
|
66
|
+
_this.onDidLayoutChange = _this._bufferOnDidLayoutChange.onEvent;
|
|
68
67
|
_this.element.style.height = '100%';
|
|
69
68
|
_this.element.style.width = '100%';
|
|
70
69
|
options.parentElement.appendChild(_this.element);
|
|
@@ -79,8 +78,6 @@ var BaseGrid = /** @class */ (function (_super) {
|
|
|
79
78
|
_this._bufferOnDidLayoutChange.fire();
|
|
80
79
|
}), events_1.Event.any(_this.onDidAdd, _this.onDidRemove, _this.onDidActiveChange)(function () {
|
|
81
80
|
_this._bufferOnDidLayoutChange.fire();
|
|
82
|
-
}), _this._bufferOnDidLayoutChange.onEvent(function () {
|
|
83
|
-
_this._onDidLayoutChange.fire();
|
|
84
81
|
}), _this._bufferOnDidLayoutChange);
|
|
85
82
|
return _this;
|
|
86
83
|
}
|
|
@@ -166,7 +163,7 @@ var BaseGrid = /** @class */ (function (_super) {
|
|
|
166
163
|
});
|
|
167
164
|
BaseGrid.prototype.setVisible = function (panel, visible) {
|
|
168
165
|
this.gridview.setViewVisible((0, gridview_1.getGridLocation)(panel.element), visible);
|
|
169
|
-
this.
|
|
166
|
+
this._bufferOnDidLayoutChange.fire();
|
|
170
167
|
};
|
|
171
168
|
BaseGrid.prototype.isVisible = function (panel) {
|
|
172
169
|
return this.gridview.isViewVisible((0, gridview_1.getGridLocation)(panel.element));
|
|
@@ -278,7 +275,6 @@ var BaseGrid = /** @class */ (function (_super) {
|
|
|
278
275
|
this._onDidActiveChange.dispose();
|
|
279
276
|
this._onDidAdd.dispose();
|
|
280
277
|
this._onDidRemove.dispose();
|
|
281
|
-
this._onDidLayoutChange.dispose();
|
|
282
278
|
try {
|
|
283
279
|
for (var _b = __values(this.groups), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
284
280
|
var group = _c.value;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-core
|
|
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'], (function (exports) { 'use strict';
|
|
|
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'], (function (exports) { 'use strict';
|
|
|
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'], (function (exports) { 'use strict';
|
|
|
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'], (function (exports) { 'use strict';
|
|
|
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
|
}
|
|
@@ -7963,7 +7990,6 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7963
7990
|
}
|
|
7964
7991
|
addGroup(options) {
|
|
7965
7992
|
var _a;
|
|
7966
|
-
const group = this.createGroup(options);
|
|
7967
7993
|
if (options) {
|
|
7968
7994
|
let referenceGroup;
|
|
7969
7995
|
if (isGroupOptionsWithPanel(options)) {
|
|
@@ -7997,6 +8023,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
7997
8023
|
const target = toTarget(options.direction || 'within');
|
|
7998
8024
|
const location = getGridLocation(referenceGroup.element);
|
|
7999
8025
|
const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
|
|
8026
|
+
const group = this.createGroup(options);
|
|
8000
8027
|
this.doAddGroup(group, relativeLocation);
|
|
8001
8028
|
if (!options.skipSetActive) {
|
|
8002
8029
|
this.doSetGroupAndPanelActive(group);
|
|
@@ -8004,6 +8031,7 @@ define(['exports'], (function (exports) { 'use strict';
|
|
|
8004
8031
|
return group;
|
|
8005
8032
|
}
|
|
8006
8033
|
else {
|
|
8034
|
+
const group = this.createGroup(options);
|
|
8007
8035
|
this.doAddGroup(group);
|
|
8008
8036
|
this.doSetGroupAndPanelActive(group);
|
|
8009
8037
|
return group;
|