dockview-core 4.0.0 → 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/cjs/api/component.api.d.ts +3 -1
- package/dist/cjs/api/component.api.js +14 -0
- package/dist/cjs/dockview/components/popupService.js +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +16 -0
- package/dist/cjs/dockview/dockviewComponent.js +27 -10
- package/dist/cjs/dom.d.ts +6 -4
- package/dist/cjs/dom.js +90 -49
- package/dist/cjs/events.d.ts +1 -1
- package/dist/cjs/events.js +1 -10
- package/dist/cjs/overlay/overlay.js +4 -4
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +13 -2
- package/dist/cjs/paneview/draggablePaneviewPanel.js +14 -4
- package/dist/cjs/paneview/paneviewComponent.d.ts +5 -0
- package/dist/cjs/paneview/paneviewComponent.js +25 -3
- package/dist/cjs/paneview/paneviewPanel.d.ts +13 -4
- package/dist/cjs/paneview/paneviewPanel.js +9 -13
- package/dist/cjs/popoutWindow.js +2 -2
- package/dist/cjs/splitview/splitviewComponent.js +3 -0
- package/dist/dockview-core.amd.js +155 -63
- 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 +154 -62
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +155 -63
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +155 -63
- 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 +155 -63
- 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 +154 -62
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +3 -1
- package/dist/esm/api/component.api.js +6 -0
- package/dist/esm/dockview/components/popupService.js +2 -2
- package/dist/esm/dockview/dockviewComponent.d.ts +16 -0
- package/dist/esm/dockview/dockviewComponent.js +29 -12
- package/dist/esm/dom.d.ts +6 -4
- package/dist/esm/dom.js +65 -16
- package/dist/esm/events.d.ts +1 -1
- package/dist/esm/events.js +0 -8
- package/dist/esm/overlay/overlay.js +5 -5
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +13 -2
- package/dist/esm/paneview/draggablePaneviewPanel.js +14 -4
- package/dist/esm/paneview/paneviewComponent.d.ts +5 -0
- package/dist/esm/paneview/paneviewComponent.js +25 -3
- package/dist/esm/paneview/paneviewPanel.d.ts +13 -4
- package/dist/esm/paneview/paneviewPanel.js +9 -13
- package/dist/esm/popoutWindow.js +3 -3
- package/dist/esm/splitview/splitviewComponent.js +3 -0
- package/dist/styles/dockview.css +3 -7
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DockviewMaximizedGroupChanged, FloatingGroupOptions, IDockviewComponent, MovePanelEvent, SerializedDockview } from '../dockview/dockviewComponent';
|
|
1
|
+
import { DockviewMaximizedGroupChanged, FloatingGroupOptions, IDockviewComponent, MovePanelEvent, PopoutGroupChangePositionEvent, PopoutGroupChangeSizeEvent, SerializedDockview } from '../dockview/dockviewComponent';
|
|
2
2
|
import { AddGroupOptions, AddPanelOptions, DockviewComponentOptions, DockviewDndOverlayEvent, MovementOptions } from '../dockview/options';
|
|
3
3
|
import { Parameters } from '../panel/types';
|
|
4
4
|
import { Direction } from '../gridview/baseComponentGridview';
|
|
@@ -417,6 +417,8 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
|
|
|
417
417
|
*/
|
|
418
418
|
get onWillDragPanel(): Event<TabDragEvent>;
|
|
419
419
|
get onUnhandledDragOverEvent(): Event<DockviewDndOverlayEvent>;
|
|
420
|
+
get onDidPopoutGroupSizeChange(): Event<PopoutGroupChangeSizeEvent>;
|
|
421
|
+
get onDidPopoutGroupPositionChange(): Event<PopoutGroupChangePositionEvent>;
|
|
420
422
|
/**
|
|
421
423
|
* All panel objects.
|
|
422
424
|
*/
|
|
@@ -817,6 +817,20 @@ var DockviewApi = /** @class */ (function () {
|
|
|
817
817
|
enumerable: false,
|
|
818
818
|
configurable: true
|
|
819
819
|
});
|
|
820
|
+
Object.defineProperty(DockviewApi.prototype, "onDidPopoutGroupSizeChange", {
|
|
821
|
+
get: function () {
|
|
822
|
+
return this.component.onDidPopoutGroupSizeChange;
|
|
823
|
+
},
|
|
824
|
+
enumerable: false,
|
|
825
|
+
configurable: true
|
|
826
|
+
});
|
|
827
|
+
Object.defineProperty(DockviewApi.prototype, "onDidPopoutGroupPositionChange", {
|
|
828
|
+
get: function () {
|
|
829
|
+
return this.component.onDidPopoutGroupPositionChange;
|
|
830
|
+
},
|
|
831
|
+
enumerable: false,
|
|
832
|
+
configurable: true
|
|
833
|
+
});
|
|
820
834
|
Object.defineProperty(DockviewApi.prototype, "panels", {
|
|
821
835
|
/**
|
|
822
836
|
* All panel objects.
|
|
@@ -48,7 +48,7 @@ var PopupService = /** @class */ (function (_super) {
|
|
|
48
48
|
wrapper.style.left = "".concat(position.x - offsetX, "px");
|
|
49
49
|
this._element.appendChild(wrapper);
|
|
50
50
|
this._active = wrapper;
|
|
51
|
-
this._activeDisposable.value = new lifecycle_1.CompositeDisposable((0, events_1.
|
|
51
|
+
this._activeDisposable.value = new lifecycle_1.CompositeDisposable((0, events_1.addDisposableListener)(window, 'pointerdown', function (event) {
|
|
52
52
|
var _a;
|
|
53
53
|
var target = event.target;
|
|
54
54
|
if (!(target instanceof HTMLElement)) {
|
|
@@ -107,6 +107,16 @@ export interface DockviewMaximizedGroupChanged {
|
|
|
107
107
|
group: DockviewGroupPanel;
|
|
108
108
|
isMaximized: boolean;
|
|
109
109
|
}
|
|
110
|
+
export interface PopoutGroupChangeSizeEvent {
|
|
111
|
+
width: number;
|
|
112
|
+
height: number;
|
|
113
|
+
group: DockviewGroupPanel;
|
|
114
|
+
}
|
|
115
|
+
export interface PopoutGroupChangePositionEvent {
|
|
116
|
+
screenX: number;
|
|
117
|
+
screenY: number;
|
|
118
|
+
group: DockviewGroupPanel;
|
|
119
|
+
}
|
|
110
120
|
export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
|
|
111
121
|
readonly activePanel: IDockviewPanel | undefined;
|
|
112
122
|
readonly totalPanels: number;
|
|
@@ -127,6 +137,8 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
|
|
|
127
137
|
readonly onUnhandledDragOverEvent: Event<DockviewDndOverlayEvent>;
|
|
128
138
|
readonly onDidMovePanel: Event<MovePanelEvent>;
|
|
129
139
|
readonly onDidMaximizedGroupChange: Event<DockviewMaximizedGroupChanged>;
|
|
140
|
+
readonly onDidPopoutGroupSizeChange: Event<PopoutGroupChangeSizeEvent>;
|
|
141
|
+
readonly onDidPopoutGroupPositionChange: Event<PopoutGroupChangePositionEvent>;
|
|
130
142
|
readonly options: DockviewComponentOptions;
|
|
131
143
|
updateOptions(options: DockviewOptions): void;
|
|
132
144
|
moveGroupOrPanel(options: MoveGroupOrPanelOptions): void;
|
|
@@ -185,6 +197,10 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
|
|
|
185
197
|
readonly onDidRemovePanel: Event<IDockviewPanel>;
|
|
186
198
|
private readonly _onDidAddPanel;
|
|
187
199
|
readonly onDidAddPanel: Event<IDockviewPanel>;
|
|
200
|
+
private readonly _onDidPopoutGroupSizeChange;
|
|
201
|
+
readonly onDidPopoutGroupSizeChange: Event<PopoutGroupChangeSizeEvent>;
|
|
202
|
+
private readonly _onDidPopoutGroupPositionChange;
|
|
203
|
+
readonly onDidPopoutGroupPositionChange: Event<PopoutGroupChangePositionEvent>;
|
|
188
204
|
private readonly _onDidLayoutFromJSON;
|
|
189
205
|
readonly onDidLayoutFromJSON: Event<void>;
|
|
190
206
|
private readonly _onDidActivePanelChange;
|
|
@@ -142,6 +142,10 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
142
142
|
_this.onDidRemovePanel = _this._onDidRemovePanel.event;
|
|
143
143
|
_this._onDidAddPanel = new events_1.Emitter();
|
|
144
144
|
_this.onDidAddPanel = _this._onDidAddPanel.event;
|
|
145
|
+
_this._onDidPopoutGroupSizeChange = new events_1.Emitter();
|
|
146
|
+
_this.onDidPopoutGroupSizeChange = _this._onDidPopoutGroupSizeChange.event;
|
|
147
|
+
_this._onDidPopoutGroupPositionChange = new events_1.Emitter();
|
|
148
|
+
_this.onDidPopoutGroupPositionChange = _this._onDidPopoutGroupPositionChange.event;
|
|
145
149
|
_this._onDidLayoutFromJSON = new events_1.Emitter();
|
|
146
150
|
_this.onDidLayoutFromJSON = _this._onDidLayoutFromJSON.event;
|
|
147
151
|
_this._onDidActivePanelChange = new events_1.Emitter();
|
|
@@ -171,7 +175,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
171
175
|
if (options.debug) {
|
|
172
176
|
_this.addDisposables(new strictEventsSequencing_1.StrictEventsSequencing(_this));
|
|
173
177
|
}
|
|
174
|
-
_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(function () {
|
|
178
|
+
_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(function () {
|
|
175
179
|
_this.updateWatermark();
|
|
176
180
|
}), _this.onDidAdd(function (event) {
|
|
177
181
|
if (!_this._moving) {
|
|
@@ -192,7 +196,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
192
196
|
});
|
|
193
197
|
}), events_1.Event.any(_this.onDidAdd, _this.onDidRemove)(function () {
|
|
194
198
|
_this.updateWatermark();
|
|
195
|
-
}), events_1.Event.any(_this.onDidAddPanel, _this.onDidRemovePanel, _this.onDidAddGroup, _this.onDidRemove, _this.onDidMovePanel, _this.onDidActivePanelChange)(function () {
|
|
199
|
+
}), events_1.Event.any(_this.onDidAddPanel, _this.onDidRemovePanel, _this.onDidAddGroup, _this.onDidRemove, _this.onDidMovePanel, _this.onDidActivePanelChange, _this.onDidPopoutGroupPositionChange, _this.onDidPopoutGroupSizeChange)(function () {
|
|
196
200
|
_this._bufferOnDidLayoutChange.fire();
|
|
197
201
|
}), lifecycle_1.Disposable.from(function () {
|
|
198
202
|
var e_1, _a, e_2, _b;
|
|
@@ -541,13 +545,26 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
541
545
|
},
|
|
542
546
|
},
|
|
543
547
|
};
|
|
544
|
-
|
|
548
|
+
var _onDidWindowPositionChange = (0, dom_1.onDidWindowMoveEnd)(_window.window);
|
|
549
|
+
popoutWindowDisposable.addDisposables(_onDidWindowPositionChange, (0, dom_1.onDidWindowResizeEnd)(_window.window, function () {
|
|
550
|
+
_this._onDidPopoutGroupSizeChange.fire({
|
|
551
|
+
width: _window.window.innerWidth,
|
|
552
|
+
height: _window.window.innerHeight,
|
|
553
|
+
group: group,
|
|
554
|
+
});
|
|
555
|
+
}), _onDidWindowPositionChange.event(function () {
|
|
556
|
+
_this._onDidPopoutGroupPositionChange.fire({
|
|
557
|
+
screenX: _window.window.screenX,
|
|
558
|
+
screenY: _window.window.screenX,
|
|
559
|
+
group: group,
|
|
560
|
+
});
|
|
561
|
+
}),
|
|
545
562
|
/**
|
|
546
563
|
* ResizeObserver seems slow here, I do not know why but we don't need it
|
|
547
564
|
* since we can reply on the window resize event as we will occupy the full
|
|
548
565
|
* window dimensions
|
|
549
566
|
*/
|
|
550
|
-
(0, events_1.
|
|
567
|
+
(0, events_1.addDisposableListener)(_window.window, 'resize', function () {
|
|
551
568
|
group.layout(_window.window.innerWidth, _window.window.innerHeight);
|
|
552
569
|
}), overlayRenderContainer, lifecycle_1.Disposable.from(function () {
|
|
553
570
|
if (_this.isDisposed) {
|
|
@@ -770,7 +787,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
770
787
|
}
|
|
771
788
|
this.updateWatermark();
|
|
772
789
|
};
|
|
773
|
-
DockviewComponent.prototype.orthogonalize = function (position) {
|
|
790
|
+
DockviewComponent.prototype.orthogonalize = function (position, options) {
|
|
774
791
|
switch (position) {
|
|
775
792
|
case 'top':
|
|
776
793
|
case 'bottom':
|
|
@@ -795,10 +812,10 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
795
812
|
case 'top':
|
|
796
813
|
case 'left':
|
|
797
814
|
case 'center':
|
|
798
|
-
return this.createGroupAtLocation([0]); // insert into first position
|
|
815
|
+
return this.createGroupAtLocation([0], undefined, options); // insert into first position
|
|
799
816
|
case 'bottom':
|
|
800
817
|
case 'right':
|
|
801
|
-
return this.createGroupAtLocation([this.gridview.length]); // insert into last position
|
|
818
|
+
return this.createGroupAtLocation([this.gridview.length], undefined, options); // insert into last position
|
|
802
819
|
default:
|
|
803
820
|
throw new Error("unsupported position ".concat(position));
|
|
804
821
|
}
|
|
@@ -1424,7 +1441,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1424
1441
|
}
|
|
1425
1442
|
}
|
|
1426
1443
|
else {
|
|
1427
|
-
var group_1 = this.orthogonalize((0, droptarget_1.directionToPosition)(options.direction));
|
|
1444
|
+
var group_1 = this.orthogonalize((0, droptarget_1.directionToPosition)(options.direction), options);
|
|
1428
1445
|
if (!options.skipSetActive) {
|
|
1429
1446
|
this.doSetGroupAndPanelActive(group_1);
|
|
1430
1447
|
}
|
|
@@ -1909,8 +1926,8 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1909
1926
|
});
|
|
1910
1927
|
return panel;
|
|
1911
1928
|
};
|
|
1912
|
-
DockviewComponent.prototype.createGroupAtLocation = function (location, size) {
|
|
1913
|
-
var group = this.createGroup();
|
|
1929
|
+
DockviewComponent.prototype.createGroupAtLocation = function (location, size, options) {
|
|
1930
|
+
var group = this.createGroup(options);
|
|
1914
1931
|
this.doAddGroup(group, location, size);
|
|
1915
1932
|
return group;
|
|
1916
1933
|
};
|
package/dist/cjs/dom.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Event as DockviewEvent } from './events';
|
|
1
|
+
import { Event as DockviewEvent, Emitter } from './events';
|
|
2
2
|
import { IDisposable, CompositeDisposable } from './lifecycle';
|
|
3
3
|
export interface OverflowEvent {
|
|
4
4
|
hasScrollX: boolean;
|
|
@@ -15,13 +15,13 @@ export declare const removeClasses: (element: HTMLElement, ...classes: string[])
|
|
|
15
15
|
export declare const addClasses: (element: HTMLElement, ...classes: string[]) => void;
|
|
16
16
|
export declare const toggleClass: (element: HTMLElement, className: string, isToggled: boolean) => void;
|
|
17
17
|
export declare function isAncestor(testChild: Node | null, testAncestor: Node | null): boolean;
|
|
18
|
-
export declare function getElementsByTagName(tag: string): HTMLElement[];
|
|
18
|
+
export declare function getElementsByTagName(tag: string, document: ParentNode): HTMLElement[];
|
|
19
19
|
export interface IFocusTracker extends IDisposable {
|
|
20
20
|
readonly onDidFocus: DockviewEvent<void>;
|
|
21
21
|
readonly onDidBlur: DockviewEvent<void>;
|
|
22
22
|
refreshState?(): void;
|
|
23
23
|
}
|
|
24
|
-
export declare function trackFocus(element: HTMLElement
|
|
24
|
+
export declare function trackFocus(element: HTMLElement): IFocusTracker;
|
|
25
25
|
export declare function quasiPreventDefault(event: Event): void;
|
|
26
26
|
export declare function quasiDefaultPrevented(event: Event): boolean;
|
|
27
27
|
export declare function addStyles(document: Document, styleSheetList: StyleSheetList): void;
|
|
@@ -37,7 +37,7 @@ export declare function getDomNodePagePosition(domNode: Element): {
|
|
|
37
37
|
*/
|
|
38
38
|
export declare function isInDocument(element: Element): boolean;
|
|
39
39
|
export declare function addTestId(element: HTMLElement, id: string): void;
|
|
40
|
-
export declare function disableIframePointEvents(): {
|
|
40
|
+
export declare function disableIframePointEvents(rootNode?: ParentNode): {
|
|
41
41
|
release: () => void;
|
|
42
42
|
};
|
|
43
43
|
export declare function getDockviewTheme(element: HTMLElement): string | undefined;
|
|
@@ -48,3 +48,5 @@ export declare class Classnames {
|
|
|
48
48
|
setClassNames(classNames: string): void;
|
|
49
49
|
}
|
|
50
50
|
export declare function isChildEntirelyVisibleWithinParent(child: HTMLElement, parent: HTMLElement): boolean;
|
|
51
|
+
export declare function onDidWindowMoveEnd(window: Window): Emitter<void>;
|
|
52
|
+
export declare function onDidWindowResizeEnd(element: Window, cb: () => void): CompositeDisposable;
|
package/dist/cjs/dom.js
CHANGED
|
@@ -25,33 +25,8 @@ var __values = (this && this.__values) || function(o) {
|
|
|
25
25
|
};
|
|
26
26
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
27
27
|
};
|
|
28
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
29
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
30
|
-
if (!m) return o;
|
|
31
|
-
var i = m.call(o), r, ar = [], e;
|
|
32
|
-
try {
|
|
33
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
34
|
-
}
|
|
35
|
-
catch (error) { e = { error: error }; }
|
|
36
|
-
finally {
|
|
37
|
-
try {
|
|
38
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
39
|
-
}
|
|
40
|
-
finally { if (e) throw e.error; }
|
|
41
|
-
}
|
|
42
|
-
return ar;
|
|
43
|
-
};
|
|
44
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
45
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
46
|
-
if (ar || !(i in from)) {
|
|
47
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
48
|
-
ar[i] = from[i];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
52
|
-
};
|
|
53
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
-
exports.isChildEntirelyVisibleWithinParent = 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;
|
|
29
|
+
exports.onDidWindowResizeEnd = exports.onDidWindowMoveEnd = exports.isChildEntirelyVisibleWithinParent = 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
30
|
var events_1 = require("./events");
|
|
56
31
|
var lifecycle_1 = require("./lifecycle");
|
|
57
32
|
var OverflowObserver = /** @class */ (function (_super) {
|
|
@@ -159,8 +134,8 @@ function isAncestor(testChild, testAncestor) {
|
|
|
159
134
|
return false;
|
|
160
135
|
}
|
|
161
136
|
exports.isAncestor = isAncestor;
|
|
162
|
-
function getElementsByTagName(tag) {
|
|
163
|
-
return Array.prototype.slice.call(document.
|
|
137
|
+
function getElementsByTagName(tag, document) {
|
|
138
|
+
return Array.prototype.slice.call(document.querySelectorAll(tag), 0);
|
|
164
139
|
}
|
|
165
140
|
exports.getElementsByTagName = getElementsByTagName;
|
|
166
141
|
function trackFocus(element) {
|
|
@@ -211,14 +186,8 @@ var FocusTracker = /** @class */ (function (_super) {
|
|
|
211
186
|
}
|
|
212
187
|
}
|
|
213
188
|
};
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
_this.addDisposables((0, events_1.addDisposableListener)(element, 'blur', onBlur, true));
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
_this.addDisposables((0, events_1.addDisposableWindowListener)(element, 'focus', onFocus, true));
|
|
220
|
-
_this.addDisposables((0, events_1.addDisposableWindowListener)(element, 'blur', onBlur, true));
|
|
221
|
-
}
|
|
189
|
+
_this.addDisposables((0, events_1.addDisposableListener)(element, 'focus', onFocus, true));
|
|
190
|
+
_this.addDisposables((0, events_1.addDisposableListener)(element, 'blur', onBlur, true));
|
|
222
191
|
return _this;
|
|
223
192
|
}
|
|
224
193
|
FocusTracker.prototype.refreshState = function () {
|
|
@@ -321,9 +290,43 @@ function addTestId(element, id) {
|
|
|
321
290
|
element.setAttribute('data-testid', id);
|
|
322
291
|
}
|
|
323
292
|
exports.addTestId = addTestId;
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
293
|
+
/**
|
|
294
|
+
* Should be more efficient than element.querySelectorAll("*") since there
|
|
295
|
+
* is no need to store every element in-memory using this approach
|
|
296
|
+
*/
|
|
297
|
+
function allTagsNamesInclusiveOfShadowDoms(tagNames) {
|
|
298
|
+
var iframes = [];
|
|
299
|
+
function findIframesInNode(node) {
|
|
300
|
+
var e_5, _a;
|
|
301
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
302
|
+
if (tagNames.includes(node.tagName)) {
|
|
303
|
+
iframes.push(node);
|
|
304
|
+
}
|
|
305
|
+
if (node.shadowRoot) {
|
|
306
|
+
findIframesInNode(node.shadowRoot);
|
|
307
|
+
}
|
|
308
|
+
try {
|
|
309
|
+
for (var _b = __values(node.children), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
310
|
+
var child = _c.value;
|
|
311
|
+
findIframesInNode(child);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
315
|
+
finally {
|
|
316
|
+
try {
|
|
317
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
318
|
+
}
|
|
319
|
+
finally { if (e_5) throw e_5.error; }
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
findIframesInNode(document.documentElement);
|
|
324
|
+
return iframes;
|
|
325
|
+
}
|
|
326
|
+
function disableIframePointEvents(rootNode) {
|
|
327
|
+
var e_6, _a;
|
|
328
|
+
if (rootNode === void 0) { rootNode = document; }
|
|
329
|
+
var iframes = allTagsNamesInclusiveOfShadowDoms(['IFRAME', 'WEBVIEW']);
|
|
327
330
|
var original = new WeakMap(); // don't hold onto HTMLElement references longer than required
|
|
328
331
|
try {
|
|
329
332
|
for (var iframes_1 = __values(iframes), iframes_1_1 = iframes_1.next(); !iframes_1_1.done; iframes_1_1 = iframes_1.next()) {
|
|
@@ -332,16 +335,16 @@ function disableIframePointEvents() {
|
|
|
332
335
|
iframe.style.pointerEvents = 'none';
|
|
333
336
|
}
|
|
334
337
|
}
|
|
335
|
-
catch (
|
|
338
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
336
339
|
finally {
|
|
337
340
|
try {
|
|
338
341
|
if (iframes_1_1 && !iframes_1_1.done && (_a = iframes_1.return)) _a.call(iframes_1);
|
|
339
342
|
}
|
|
340
|
-
finally { if (
|
|
343
|
+
finally { if (e_6) throw e_6.error; }
|
|
341
344
|
}
|
|
342
345
|
return {
|
|
343
346
|
release: function () {
|
|
344
|
-
var
|
|
347
|
+
var e_7, _a;
|
|
345
348
|
var _b;
|
|
346
349
|
try {
|
|
347
350
|
for (var iframes_2 = __values(iframes), iframes_2_1 = iframes_2.next(); !iframes_2_1.done; iframes_2_1 = iframes_2.next()) {
|
|
@@ -349,12 +352,12 @@ function disableIframePointEvents() {
|
|
|
349
352
|
iframe.style.pointerEvents = (_b = original.get(iframe)) !== null && _b !== void 0 ? _b : 'auto';
|
|
350
353
|
}
|
|
351
354
|
}
|
|
352
|
-
catch (
|
|
355
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
353
356
|
finally {
|
|
354
357
|
try {
|
|
355
358
|
if (iframes_2_1 && !iframes_2_1.done && (_a = iframes_2.return)) _a.call(iframes_2);
|
|
356
359
|
}
|
|
357
|
-
finally { if (
|
|
360
|
+
finally { if (e_7) throw e_7.error; }
|
|
358
361
|
}
|
|
359
362
|
iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
|
|
360
363
|
},
|
|
@@ -389,19 +392,19 @@ var Classnames = /** @class */ (function () {
|
|
|
389
392
|
this._classNames = [];
|
|
390
393
|
}
|
|
391
394
|
Classnames.prototype.setClassNames = function (classNames) {
|
|
392
|
-
var
|
|
395
|
+
var e_8, _a, e_9, _b;
|
|
393
396
|
try {
|
|
394
397
|
for (var _c = __values(this._classNames), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
395
398
|
var className = _d.value;
|
|
396
399
|
(0, exports.toggleClass)(this.element, className, false);
|
|
397
400
|
}
|
|
398
401
|
}
|
|
399
|
-
catch (
|
|
402
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
400
403
|
finally {
|
|
401
404
|
try {
|
|
402
405
|
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
403
406
|
}
|
|
404
|
-
finally { if (
|
|
407
|
+
finally { if (e_8) throw e_8.error; }
|
|
405
408
|
}
|
|
406
409
|
this._classNames = classNames
|
|
407
410
|
.split(' ')
|
|
@@ -412,17 +415,18 @@ var Classnames = /** @class */ (function () {
|
|
|
412
415
|
(0, exports.toggleClass)(this.element, className, true);
|
|
413
416
|
}
|
|
414
417
|
}
|
|
415
|
-
catch (
|
|
418
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
416
419
|
finally {
|
|
417
420
|
try {
|
|
418
421
|
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
419
422
|
}
|
|
420
|
-
finally { if (
|
|
423
|
+
finally { if (e_9) throw e_9.error; }
|
|
421
424
|
}
|
|
422
425
|
};
|
|
423
426
|
return Classnames;
|
|
424
427
|
}());
|
|
425
428
|
exports.Classnames = Classnames;
|
|
429
|
+
var DEBOUCE_DELAY = 100;
|
|
426
430
|
function isChildEntirelyVisibleWithinParent(child, parent) {
|
|
427
431
|
//
|
|
428
432
|
var childPosition = getDomNodePagePosition(child);
|
|
@@ -437,3 +441,40 @@ function isChildEntirelyVisibleWithinParent(child, parent) {
|
|
|
437
441
|
return true;
|
|
438
442
|
}
|
|
439
443
|
exports.isChildEntirelyVisibleWithinParent = isChildEntirelyVisibleWithinParent;
|
|
444
|
+
function onDidWindowMoveEnd(window) {
|
|
445
|
+
var emitter = new events_1.Emitter();
|
|
446
|
+
var previousScreenX = window.screenX;
|
|
447
|
+
var previousScreenY = window.screenY;
|
|
448
|
+
var timeout;
|
|
449
|
+
var checkMovement = function () {
|
|
450
|
+
if (window.closed) {
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
var currentScreenX = window.screenX;
|
|
454
|
+
var currentScreenY = window.screenY;
|
|
455
|
+
if (currentScreenX !== previousScreenX ||
|
|
456
|
+
currentScreenY !== previousScreenY) {
|
|
457
|
+
clearTimeout(timeout);
|
|
458
|
+
timeout = setTimeout(function () {
|
|
459
|
+
emitter.fire();
|
|
460
|
+
}, DEBOUCE_DELAY);
|
|
461
|
+
previousScreenX = currentScreenX;
|
|
462
|
+
previousScreenY = currentScreenY;
|
|
463
|
+
}
|
|
464
|
+
requestAnimationFrame(checkMovement);
|
|
465
|
+
};
|
|
466
|
+
checkMovement();
|
|
467
|
+
return emitter;
|
|
468
|
+
}
|
|
469
|
+
exports.onDidWindowMoveEnd = onDidWindowMoveEnd;
|
|
470
|
+
function onDidWindowResizeEnd(element, cb) {
|
|
471
|
+
var resizeTimeout;
|
|
472
|
+
var disposable = new lifecycle_1.CompositeDisposable((0, events_1.addDisposableListener)(element, 'resize', function () {
|
|
473
|
+
clearTimeout(resizeTimeout);
|
|
474
|
+
resizeTimeout = setTimeout(function () {
|
|
475
|
+
cb();
|
|
476
|
+
}, DEBOUCE_DELAY);
|
|
477
|
+
}));
|
|
478
|
+
return disposable;
|
|
479
|
+
}
|
|
480
|
+
exports.onDidWindowResizeEnd = onDidWindowResizeEnd;
|
package/dist/cjs/events.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ export declare class Emitter<T> implements IDisposable {
|
|
|
54
54
|
fire(e: T): void;
|
|
55
55
|
dispose(): void;
|
|
56
56
|
}
|
|
57
|
-
export declare function
|
|
57
|
+
export declare function addDisposableListener<K extends keyof WindowEventMap>(element: Window, type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
58
58
|
export declare function addDisposableListener<K extends keyof HTMLElementEventMap>(element: HTMLElement, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
59
59
|
/**
|
|
60
60
|
*
|
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.AsapEvent = exports.addDisposableListener = exports.
|
|
14
|
+
exports.AsapEvent = exports.addDisposableListener = exports.Emitter = exports.AcceptableEvent = exports.DockviewEvent = exports.Event = void 0;
|
|
15
15
|
var Event;
|
|
16
16
|
(function (Event) {
|
|
17
17
|
Event.any = function () {
|
|
@@ -216,15 +216,6 @@ var Emitter = /** @class */ (function () {
|
|
|
216
216
|
return Emitter;
|
|
217
217
|
}());
|
|
218
218
|
exports.Emitter = Emitter;
|
|
219
|
-
function addDisposableWindowListener(element, type, listener, options) {
|
|
220
|
-
element.addEventListener(type, listener, options);
|
|
221
|
-
return {
|
|
222
|
-
dispose: function () {
|
|
223
|
-
element.removeEventListener(type, listener, options);
|
|
224
|
-
},
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
exports.addDisposableWindowListener = addDisposableWindowListener;
|
|
228
219
|
function addDisposableListener(element, type, listener, options) {
|
|
229
220
|
element.addEventListener(type, listener, options);
|
|
230
221
|
return {
|
|
@@ -239,7 +239,7 @@ var Overlay = /** @class */ (function (_super) {
|
|
|
239
239
|
dispose: function () {
|
|
240
240
|
iframes.release();
|
|
241
241
|
},
|
|
242
|
-
}, (0, events_1.
|
|
242
|
+
}, (0, events_1.addDisposableListener)(window, 'pointermove', function (e) {
|
|
243
243
|
var containerRect = _this.options.container.getBoundingClientRect();
|
|
244
244
|
var x = e.clientX - containerRect.left;
|
|
245
245
|
var y = e.clientY - containerRect.top;
|
|
@@ -276,7 +276,7 @@ var Overlay = /** @class */ (function (_super) {
|
|
|
276
276
|
bounds.right = right;
|
|
277
277
|
}
|
|
278
278
|
_this.setBounds(bounds);
|
|
279
|
-
}), (0, events_1.
|
|
279
|
+
}), (0, events_1.addDisposableListener)(window, 'pointerup', function () {
|
|
280
280
|
(0, dom_1.toggleClass)(_this._element, 'dv-resize-container-dragging', false);
|
|
281
281
|
move.dispose();
|
|
282
282
|
_this._onDidChangeEnd.fire();
|
|
@@ -322,7 +322,7 @@ var Overlay = /** @class */ (function (_super) {
|
|
|
322
322
|
e.preventDefault();
|
|
323
323
|
var startPosition = null;
|
|
324
324
|
var iframes = (0, dom_1.disableIframePointEvents)();
|
|
325
|
-
move.value = new lifecycle_1.CompositeDisposable((0, events_1.
|
|
325
|
+
move.value = new lifecycle_1.CompositeDisposable((0, events_1.addDisposableListener)(window, 'pointermove', function (e) {
|
|
326
326
|
var containerRect = _this.options.container.getBoundingClientRect();
|
|
327
327
|
var overlayRect = _this._element.getBoundingClientRect();
|
|
328
328
|
var y = e.clientY - containerRect.top;
|
|
@@ -446,7 +446,7 @@ var Overlay = /** @class */ (function (_super) {
|
|
|
446
446
|
dispose: function () {
|
|
447
447
|
iframes.release();
|
|
448
448
|
},
|
|
449
|
-
}, (0, events_1.
|
|
449
|
+
}, (0, events_1.addDisposableListener)(window, 'pointerup', function () {
|
|
450
450
|
move.dispose();
|
|
451
451
|
_this._onDidChangeEnd.fire();
|
|
452
452
|
}));
|
|
@@ -12,14 +12,25 @@ export interface PaneviewDidDropEvent extends DroptargetEvent {
|
|
|
12
12
|
api: PaneviewApi;
|
|
13
13
|
}
|
|
14
14
|
export declare abstract class DraggablePaneviewPanel extends PaneviewPanel {
|
|
15
|
-
private readonly accessor;
|
|
16
15
|
private handler;
|
|
17
16
|
private target;
|
|
18
17
|
private readonly _onDidDrop;
|
|
19
18
|
readonly onDidDrop: Event<PaneviewDidDropEvent>;
|
|
20
19
|
private readonly _onUnhandledDragOverEvent;
|
|
21
20
|
readonly onUnhandledDragOverEvent: Event<PaneviewDndOverlayEvent>;
|
|
22
|
-
|
|
21
|
+
readonly accessor: IPaneviewComponent;
|
|
22
|
+
constructor(options: {
|
|
23
|
+
accessor: IPaneviewComponent;
|
|
24
|
+
id: string;
|
|
25
|
+
component: string;
|
|
26
|
+
headerComponent: string | undefined;
|
|
27
|
+
orientation: Orientation;
|
|
28
|
+
isExpanded: boolean;
|
|
29
|
+
disableDnd: boolean;
|
|
30
|
+
headerSize: number;
|
|
31
|
+
minimumBodySize: number;
|
|
32
|
+
maximumBodySize: number;
|
|
33
|
+
});
|
|
23
34
|
private initDragFeatures;
|
|
24
35
|
private onDrop;
|
|
25
36
|
}
|
|
@@ -36,15 +36,25 @@ var options_1 = require("./options");
|
|
|
36
36
|
var paneviewPanel_1 = require("./paneviewPanel");
|
|
37
37
|
var DraggablePaneviewPanel = /** @class */ (function (_super) {
|
|
38
38
|
__extends(DraggablePaneviewPanel, _super);
|
|
39
|
-
function DraggablePaneviewPanel(
|
|
40
|
-
var _this = _super.call(this,
|
|
41
|
-
|
|
39
|
+
function DraggablePaneviewPanel(options) {
|
|
40
|
+
var _this = _super.call(this, {
|
|
41
|
+
id: options.id,
|
|
42
|
+
component: options.component,
|
|
43
|
+
headerComponent: options.headerComponent,
|
|
44
|
+
orientation: options.orientation,
|
|
45
|
+
isExpanded: options.isExpanded,
|
|
46
|
+
isHeaderVisible: true,
|
|
47
|
+
headerSize: options.headerSize,
|
|
48
|
+
minimumBodySize: options.minimumBodySize,
|
|
49
|
+
maximumBodySize: options.maximumBodySize,
|
|
50
|
+
}) || this;
|
|
42
51
|
_this._onDidDrop = new events_1.Emitter();
|
|
43
52
|
_this.onDidDrop = _this._onDidDrop.event;
|
|
44
53
|
_this._onUnhandledDragOverEvent = new events_1.Emitter();
|
|
45
54
|
_this.onUnhandledDragOverEvent = _this._onUnhandledDragOverEvent.event;
|
|
55
|
+
_this.accessor = options.accessor;
|
|
46
56
|
_this.addDisposables(_this._onDidDrop, _this._onUnhandledDragOverEvent);
|
|
47
|
-
if (!disableDnd) {
|
|
57
|
+
if (!options.disableDnd) {
|
|
48
58
|
_this.initDragFeatures();
|
|
49
59
|
}
|
|
50
60
|
return _this;
|
|
@@ -12,6 +12,7 @@ export interface SerializedPaneviewPanel {
|
|
|
12
12
|
priority?: LayoutPriority;
|
|
13
13
|
minimumSize?: number;
|
|
14
14
|
maximumSize?: number;
|
|
15
|
+
headerSize?: number;
|
|
15
16
|
data: {
|
|
16
17
|
id: string;
|
|
17
18
|
component: string;
|
|
@@ -40,6 +41,9 @@ export declare class PaneFramework extends DraggablePaneviewPanel {
|
|
|
40
41
|
isExpanded: boolean;
|
|
41
42
|
disableDnd: boolean;
|
|
42
43
|
accessor: IPaneviewComponent;
|
|
44
|
+
headerSize: number;
|
|
45
|
+
minimumBodySize: number;
|
|
46
|
+
maximumBodySize: number;
|
|
43
47
|
});
|
|
44
48
|
getBodyComponent(): IPanePart;
|
|
45
49
|
getHeaderComponent(): IPanePart;
|
|
@@ -51,6 +55,7 @@ export interface AddPaneviewComponentOptions<T extends object = Parameters> {
|
|
|
51
55
|
params?: T;
|
|
52
56
|
minimumBodySize?: number;
|
|
53
57
|
maximumBodySize?: number;
|
|
58
|
+
headerSize?: number;
|
|
54
59
|
isExpanded?: boolean;
|
|
55
60
|
title: string;
|
|
56
61
|
index?: number;
|