dockview-core 4.12.0 → 4.13.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.
Files changed (57) hide show
  1. package/dist/cjs/api/component.api.d.ts +2 -2
  2. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +3 -1
  3. package/dist/cjs/api/dockviewGroupPanelApi.js +24 -1
  4. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +2 -2
  5. package/dist/cjs/dockview/components/titlebar/tabs.js +1 -1
  6. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +3 -3
  7. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +1 -1
  8. package/dist/cjs/dockview/dockviewComponent.d.ts +3 -3
  9. package/dist/cjs/dockview/dockviewComponent.js +8 -1
  10. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +2 -2
  11. package/dist/cjs/dockview/dockviewGroupPanelModel.js +1 -1
  12. package/dist/cjs/dockview/events.d.ts +4 -4
  13. package/dist/cjs/dockview/events.js +14 -14
  14. package/dist/cjs/index.d.ts +2 -1
  15. package/dist/cjs/index.js +7 -2
  16. package/dist/cjs/overlay/overlay.js +25 -14
  17. package/dist/cjs/splitview/splitview.js +2 -0
  18. package/dist/dockview-core.amd.js +54 -21
  19. package/dist/dockview-core.amd.js.map +1 -1
  20. package/dist/dockview-core.amd.min.js +2 -2
  21. package/dist/dockview-core.amd.min.js.map +1 -1
  22. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  23. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  24. package/dist/dockview-core.amd.noStyle.js +54 -21
  25. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  26. package/dist/dockview-core.cjs.js +54 -21
  27. package/dist/dockview-core.cjs.js.map +1 -1
  28. package/dist/dockview-core.esm.js +54 -22
  29. package/dist/dockview-core.esm.js.map +1 -1
  30. package/dist/dockview-core.esm.min.js +2 -2
  31. package/dist/dockview-core.esm.min.js.map +1 -1
  32. package/dist/dockview-core.js +54 -21
  33. package/dist/dockview-core.js.map +1 -1
  34. package/dist/dockview-core.min.js +2 -2
  35. package/dist/dockview-core.min.js.map +1 -1
  36. package/dist/dockview-core.min.noStyle.js +2 -2
  37. package/dist/dockview-core.min.noStyle.js.map +1 -1
  38. package/dist/dockview-core.noStyle.js +54 -21
  39. package/dist/dockview-core.noStyle.js.map +1 -1
  40. package/dist/esm/api/component.api.d.ts +2 -2
  41. package/dist/esm/api/dockviewGroupPanelApi.d.ts +3 -1
  42. package/dist/esm/api/dockviewGroupPanelApi.js +13 -1
  43. package/dist/esm/dockview/components/titlebar/tabs.d.ts +2 -2
  44. package/dist/esm/dockview/components/titlebar/tabs.js +2 -2
  45. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +3 -3
  46. package/dist/esm/dockview/components/titlebar/tabsContainer.js +2 -2
  47. package/dist/esm/dockview/dockviewComponent.d.ts +3 -3
  48. package/dist/esm/dockview/dockviewComponent.js +9 -2
  49. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +2 -2
  50. package/dist/esm/dockview/dockviewGroupPanelModel.js +2 -2
  51. package/dist/esm/dockview/events.d.ts +4 -4
  52. package/dist/esm/dockview/events.js +1 -1
  53. package/dist/esm/index.d.ts +2 -1
  54. package/dist/esm/index.js +2 -1
  55. package/dist/esm/overlay/overlay.js +26 -15
  56. package/dist/esm/splitview/splitview.js +2 -0
  57. package/package.json +1 -1
@@ -16,7 +16,7 @@ import { PaneviewDidDropEvent } from '../paneview/draggablePaneviewPanel';
16
16
  import { GroupDragEvent, TabDragEvent } from '../dockview/components/titlebar/tabsContainer';
17
17
  import { Box } from '../types';
18
18
  import { DockviewDidDropEvent, DockviewWillDropEvent } from '../dockview/dockviewGroupPanelModel';
19
- import { WillShowOverlayLocationEvent } from '../dockview/events';
19
+ import { DockviewWillShowOverlayLocationEvent } from '../dockview/events';
20
20
  import { PaneviewComponentOptions, PaneviewDndOverlayEvent } from '../paneview/options';
21
21
  import { SplitviewComponentOptions } from '../splitview/options';
22
22
  import { GridviewComponentOptions } from '../gridview/options';
@@ -403,7 +403,7 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
403
403
  * Calling `event.preventDefault()` will prevent the overlay being shown and prevent
404
404
  * the any subsequent drop event.
405
405
  */
406
- get onWillShowOverlay(): Event<WillShowOverlayLocationEvent>;
406
+ get onWillShowOverlay(): Event<DockviewWillShowOverlayLocationEvent>;
407
407
  /**
408
408
  * Invoked before a group is dragged.
409
409
  *
@@ -3,7 +3,7 @@ import { DockviewComponent } from '../dockview/dockviewComponent';
3
3
  import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
4
4
  import { DockviewGroupChangeEvent, DockviewGroupLocation } from '../dockview/dockviewGroupPanelModel';
5
5
  import { Emitter, Event } from '../events';
6
- import { GridviewPanelApi, GridviewPanelApiImpl } from './gridviewPanelApi';
6
+ import { GridviewPanelApi, GridviewPanelApiImpl, SizeEvent } from './gridviewPanelApi';
7
7
  export interface DockviewGroupMoveParams {
8
8
  group?: DockviewGroupPanel;
9
9
  position?: Position;
@@ -36,12 +36,14 @@ export interface DockviewGroupPanelFloatingChangeEvent {
36
36
  export declare class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
37
37
  private readonly accessor;
38
38
  private _group;
39
+ private _pendingSize;
39
40
  readonly _onDidLocationChange: Emitter<DockviewGroupPanelFloatingChangeEvent>;
40
41
  readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
41
42
  readonly _onDidActivePanelChange: Emitter<DockviewGroupChangeEvent>;
42
43
  readonly onDidActivePanelChange: Event<DockviewGroupChangeEvent>;
43
44
  get location(): DockviewGroupLocation;
44
45
  constructor(id: string, accessor: DockviewComponent);
46
+ setSize(event: SizeEvent): void;
45
47
  close(): void;
46
48
  getWindow(): Window;
47
49
  moveTo(options: DockviewGroupMoveParams): void;
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
17
28
  Object.defineProperty(exports, "__esModule", { value: true });
18
29
  exports.DockviewGroupPanelApiImpl = void 0;
19
30
  var droptarget_1 = require("../dnd/droptarget");
@@ -29,7 +40,13 @@ var DockviewGroupPanelApiImpl = /** @class */ (function (_super) {
29
40
  _this.onDidLocationChange = _this._onDidLocationChange.event;
30
41
  _this._onDidActivePanelChange = new events_1.Emitter();
31
42
  _this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
32
- _this.addDisposables(_this._onDidLocationChange, _this._onDidActivePanelChange);
43
+ _this.addDisposables(_this._onDidLocationChange, _this._onDidActivePanelChange, _this._onDidVisibilityChange.event(function (event) {
44
+ // When becoming visible, apply any pending size change
45
+ if (event.isVisible && _this._pendingSize) {
46
+ _super.prototype.setSize.call(_this, _this._pendingSize);
47
+ _this._pendingSize = undefined;
48
+ }
49
+ }));
33
50
  return _this;
34
51
  }
35
52
  Object.defineProperty(DockviewGroupPanelApiImpl.prototype, "location", {
@@ -42,6 +59,12 @@ var DockviewGroupPanelApiImpl = /** @class */ (function (_super) {
42
59
  enumerable: false,
43
60
  configurable: true
44
61
  });
62
+ DockviewGroupPanelApiImpl.prototype.setSize = function (event) {
63
+ // Always store the requested size
64
+ this._pendingSize = __assign({}, event);
65
+ // Apply the size change immediately
66
+ _super.prototype.setSize.call(this, event);
67
+ };
45
68
  DockviewGroupPanelApiImpl.prototype.close = function () {
46
69
  if (!this._group) {
47
70
  return;
@@ -2,7 +2,7 @@ import { Event } from '../../../events';
2
2
  import { CompositeDisposable } from '../../../lifecycle';
3
3
  import { DockviewComponent } from '../../dockviewComponent';
4
4
  import { DockviewGroupPanel } from '../../dockviewGroupPanel';
5
- import { WillShowOverlayLocationEvent } from '../../events';
5
+ import { DockviewWillShowOverlayLocationEvent } from '../../events';
6
6
  import { IDockviewPanel } from '../../dockviewPanel';
7
7
  import { Tab } from '../tab/tab';
8
8
  import { TabDragEvent, TabDropIndexEvent } from './tabsContainer';
@@ -20,7 +20,7 @@ export declare class Tabs extends CompositeDisposable {
20
20
  private readonly _onDrop;
21
21
  readonly onDrop: Event<TabDropIndexEvent>;
22
22
  private readonly _onWillShowOverlay;
23
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
23
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
24
24
  private readonly _onOverflowTabsChange;
25
25
  readonly onOverflowTabsChange: Event<{
26
26
  tabs: string[];
@@ -246,7 +246,7 @@ var Tabs = /** @class */ (function (_super) {
246
246
  index: _this._tabs.findIndex(function (x) { return x.value === tab; }),
247
247
  });
248
248
  }), tab.onWillShowOverlay(function (event) {
249
- _this._onWillShowOverlay.fire(new events_2.WillShowOverlayLocationEvent(event, {
249
+ _this._onWillShowOverlay.fire(new events_2.DockviewWillShowOverlayLocationEvent(event, {
250
250
  kind: 'tab',
251
251
  panel: _this.group.activePanel,
252
252
  api: _this.accessor.api,
@@ -4,7 +4,7 @@ import { Tab } from '../tab/tab';
4
4
  import { DockviewGroupPanel } from '../../dockviewGroupPanel';
5
5
  import { IDockviewPanel } from '../../dockviewPanel';
6
6
  import { DockviewComponent } from '../../dockviewComponent';
7
- import { WillShowOverlayLocationEvent } from '../../events';
7
+ import { DockviewWillShowOverlayLocationEvent } from '../../events';
8
8
  export interface TabDropIndexEvent {
9
9
  readonly event: DragEvent;
10
10
  readonly index: number;
@@ -24,7 +24,7 @@ export interface ITabsContainer extends IDisposable {
24
24
  readonly onDrop: Event<TabDropIndexEvent>;
25
25
  readonly onTabDragStart: Event<TabDragEvent>;
26
26
  readonly onGroupDragStart: Event<GroupDragEvent>;
27
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
27
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
28
28
  hidden: boolean;
29
29
  delete(id: string): void;
30
30
  indexOf(id: string): number;
@@ -62,7 +62,7 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
62
62
  private readonly _onGroupDragStart;
63
63
  readonly onGroupDragStart: Event<GroupDragEvent>;
64
64
  private readonly _onWillShowOverlay;
65
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
65
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
66
66
  get panels(): string[];
67
67
  get size(): number;
68
68
  get hidden(): boolean;
@@ -85,7 +85,7 @@ var TabsContainer = /** @class */ (function (_super) {
85
85
  index: _this.tabs.size,
86
86
  });
87
87
  }), _this.voidContainer.onWillShowOverlay(function (event) {
88
- _this._onWillShowOverlay.fire(new events_2.WillShowOverlayLocationEvent(event, {
88
+ _this._onWillShowOverlay.fire(new events_2.DockviewWillShowOverlayLocationEvent(event, {
89
89
  kind: 'header_space',
90
90
  panel: _this.group.activePanel,
91
91
  api: _this.accessor.api,
@@ -8,7 +8,7 @@ import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
8
8
  import { DockviewApi } from '../api/component.api';
9
9
  import { Orientation } from '../splitview/splitview';
10
10
  import { GroupOptions, GroupPanelViewState, DockviewDidDropEvent, DockviewWillDropEvent } from './dockviewGroupPanelModel';
11
- import { WillShowOverlayLocationEvent } from './events';
11
+ import { DockviewWillShowOverlayLocationEvent } from './events';
12
12
  import { DockviewGroupPanel } from './dockviewGroupPanel';
13
13
  import { Parameters } from '../panel/types';
14
14
  import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
@@ -129,7 +129,7 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
129
129
  readonly orientation: Orientation;
130
130
  readonly onDidDrop: Event<DockviewDidDropEvent>;
131
131
  readonly onWillDrop: Event<DockviewWillDropEvent>;
132
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
132
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
133
133
  readonly onDidRemovePanel: Event<IDockviewPanel>;
134
134
  readonly onDidAddPanel: Event<IDockviewPanel>;
135
135
  readonly onDidLayoutFromJSON: Event<void>;
@@ -199,7 +199,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
199
199
  private readonly _onWillDrop;
200
200
  readonly onWillDrop: Event<DockviewWillDropEvent>;
201
201
  private readonly _onWillShowOverlay;
202
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
202
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
203
203
  private readonly _onUnhandledDragOverEvent;
204
204
  readonly onUnhandledDragOverEvent: Event<DockviewDndOverlayEvent>;
205
205
  private readonly _onDidRemovePanel;
@@ -272,7 +272,7 @@ var DockviewComponent = /** @class */ (function (_super) {
272
272
  // option only available when no panels in primary grid
273
273
  return;
274
274
  }
275
- _this._onWillShowOverlay.fire(new events_2.WillShowOverlayLocationEvent(event, {
275
+ _this._onWillShowOverlay.fire(new events_2.DockviewWillShowOverlayLocationEvent(event, {
276
276
  kind: 'edge',
277
277
  panel: undefined,
278
278
  api: _this._api,
@@ -1761,6 +1761,13 @@ var DockviewComponent = /** @class */ (function (_super) {
1761
1761
  panel: removedPanel_1,
1762
1762
  from: sourceGroup,
1763
1763
  });
1764
+ /**
1765
+ * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
1766
+ * With defaultRenderer="always" this results in panel content not showing after move operations.
1767
+ */
1768
+ requestAnimationFrame(function () {
1769
+ _this.overlayRenderContainer.updateAllPositions();
1770
+ });
1764
1771
  }
1765
1772
  else {
1766
1773
  /**
@@ -3,7 +3,7 @@ import { PanelTransfer } from '../dnd/dataTransfer';
3
3
  import { Position } from '../dnd/droptarget';
4
4
  import { DockviewComponent } from './dockviewComponent';
5
5
  import { DockviewEvent, Event } from '../events';
6
- import { DockviewGroupDropLocation, WillShowOverlayLocationEvent } from './events';
6
+ import { DockviewGroupDropLocation, DockviewWillShowOverlayLocationEvent } from './events';
7
7
  import { IViewSize } from '../gridview/gridview';
8
8
  import { CompositeDisposable } from '../lifecycle';
9
9
  import { IPanel, PanelInitParameters, PanelUpdateEvent, Parameters } from '../panel/types';
@@ -155,7 +155,7 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
155
155
  private readonly _onWillDrop;
156
156
  readonly onWillDrop: Event<DockviewWillDropEvent>;
157
157
  private readonly _onWillShowOverlay;
158
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
158
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
159
159
  private readonly _onTabDragStart;
160
160
  readonly onTabDragStart: Event<TabDragEvent>;
161
161
  private readonly _onGroupDragStart;
@@ -194,7 +194,7 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
194
194
  }), _this.tabsContainer.onWillShowOverlay(function (event) {
195
195
  _this._onWillShowOverlay.fire(event);
196
196
  }), _this.contentContainer.dropTarget.onWillShowOverlay(function (event) {
197
- _this._onWillShowOverlay.fire(new events_2.WillShowOverlayLocationEvent(event, {
197
+ _this._onWillShowOverlay.fire(new events_2.DockviewWillShowOverlayLocationEvent(event, {
198
198
  kind: 'content',
199
199
  panel: _this.activePanel,
200
200
  api: _this._api,
@@ -5,16 +5,16 @@ import { IDockviewPanel } from './dockviewPanel';
5
5
  import { DockviewGroupPanel } from './dockviewGroupPanel';
6
6
  import { IDockviewEvent } from '../events';
7
7
  export type DockviewGroupDropLocation = 'tab' | 'header_space' | 'content' | 'edge';
8
- export interface WillShowOverlayLocationEventOptions {
8
+ export interface DockviewWillShowOverlayLocationEventOptions {
9
9
  readonly kind: DockviewGroupDropLocation;
10
10
  readonly panel: IDockviewPanel | undefined;
11
11
  readonly api: DockviewApi;
12
12
  readonly group: DockviewGroupPanel | undefined;
13
13
  getData: () => PanelTransfer | undefined;
14
14
  }
15
- export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
15
+ export declare class DockviewWillShowOverlayLocationEvent implements IDockviewEvent {
16
16
  private readonly event;
17
- readonly options: WillShowOverlayLocationEventOptions;
17
+ readonly options: DockviewWillShowOverlayLocationEventOptions;
18
18
  get kind(): DockviewGroupDropLocation;
19
19
  get nativeEvent(): DragEvent;
20
20
  get position(): Position;
@@ -24,5 +24,5 @@ export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
24
24
  get group(): DockviewGroupPanel | undefined;
25
25
  preventDefault(): void;
26
26
  getData(): PanelTransfer | undefined;
27
- constructor(event: WillShowOverlayEvent, options: WillShowOverlayLocationEventOptions);
27
+ constructor(event: WillShowOverlayEvent, options: DockviewWillShowOverlayLocationEventOptions);
28
28
  }
@@ -1,66 +1,66 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WillShowOverlayLocationEvent = void 0;
4
- var WillShowOverlayLocationEvent = /** @class */ (function () {
5
- function WillShowOverlayLocationEvent(event, options) {
3
+ exports.DockviewWillShowOverlayLocationEvent = void 0;
4
+ var DockviewWillShowOverlayLocationEvent = /** @class */ (function () {
5
+ function DockviewWillShowOverlayLocationEvent(event, options) {
6
6
  this.event = event;
7
7
  this.options = options;
8
8
  }
9
- Object.defineProperty(WillShowOverlayLocationEvent.prototype, "kind", {
9
+ Object.defineProperty(DockviewWillShowOverlayLocationEvent.prototype, "kind", {
10
10
  get: function () {
11
11
  return this.options.kind;
12
12
  },
13
13
  enumerable: false,
14
14
  configurable: true
15
15
  });
16
- Object.defineProperty(WillShowOverlayLocationEvent.prototype, "nativeEvent", {
16
+ Object.defineProperty(DockviewWillShowOverlayLocationEvent.prototype, "nativeEvent", {
17
17
  get: function () {
18
18
  return this.event.nativeEvent;
19
19
  },
20
20
  enumerable: false,
21
21
  configurable: true
22
22
  });
23
- Object.defineProperty(WillShowOverlayLocationEvent.prototype, "position", {
23
+ Object.defineProperty(DockviewWillShowOverlayLocationEvent.prototype, "position", {
24
24
  get: function () {
25
25
  return this.event.position;
26
26
  },
27
27
  enumerable: false,
28
28
  configurable: true
29
29
  });
30
- Object.defineProperty(WillShowOverlayLocationEvent.prototype, "defaultPrevented", {
30
+ Object.defineProperty(DockviewWillShowOverlayLocationEvent.prototype, "defaultPrevented", {
31
31
  get: function () {
32
32
  return this.event.defaultPrevented;
33
33
  },
34
34
  enumerable: false,
35
35
  configurable: true
36
36
  });
37
- Object.defineProperty(WillShowOverlayLocationEvent.prototype, "panel", {
37
+ Object.defineProperty(DockviewWillShowOverlayLocationEvent.prototype, "panel", {
38
38
  get: function () {
39
39
  return this.options.panel;
40
40
  },
41
41
  enumerable: false,
42
42
  configurable: true
43
43
  });
44
- Object.defineProperty(WillShowOverlayLocationEvent.prototype, "api", {
44
+ Object.defineProperty(DockviewWillShowOverlayLocationEvent.prototype, "api", {
45
45
  get: function () {
46
46
  return this.options.api;
47
47
  },
48
48
  enumerable: false,
49
49
  configurable: true
50
50
  });
51
- Object.defineProperty(WillShowOverlayLocationEvent.prototype, "group", {
51
+ Object.defineProperty(DockviewWillShowOverlayLocationEvent.prototype, "group", {
52
52
  get: function () {
53
53
  return this.options.group;
54
54
  },
55
55
  enumerable: false,
56
56
  configurable: true
57
57
  });
58
- WillShowOverlayLocationEvent.prototype.preventDefault = function () {
58
+ DockviewWillShowOverlayLocationEvent.prototype.preventDefault = function () {
59
59
  this.event.preventDefault();
60
60
  };
61
- WillShowOverlayLocationEvent.prototype.getData = function () {
61
+ DockviewWillShowOverlayLocationEvent.prototype.getData = function () {
62
62
  return this.options.getData();
63
63
  };
64
- return WillShowOverlayLocationEvent;
64
+ return DockviewWillShowOverlayLocationEvent;
65
65
  }());
66
- exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
66
+ exports.DockviewWillShowOverlayLocationEvent = DockviewWillShowOverlayLocationEvent;
@@ -16,7 +16,8 @@ export * from './gridview/baseComponentGridview';
16
16
  export { DraggablePaneviewPanel, PaneviewDidDropEvent as PaneviewDropEvent, } from './paneview/draggablePaneviewPanel';
17
17
  export * from './dockview/components/panel/content';
18
18
  export * from './dockview/components/tab/tab';
19
- export * from './dockview/dockviewGroupPanelModel';
19
+ export { DockviewGroupPanelModel, DockviewDidDropEvent, DockviewWillDropEvent, DockviewGroupChangeEvent, } from './dockview/dockviewGroupPanelModel';
20
+ export { DockviewWillShowOverlayLocationEvent } from './dockview/events';
20
21
  export { TabDragEvent, GroupDragEvent, } from './dockview/components/titlebar/tabsContainer';
21
22
  export * from './dockview/types';
22
23
  export * from './dockview/dockviewGroupPanel';
package/dist/cjs/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createSplitview = exports.createPaneview = exports.createGridview = exports.createDockview = exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = exports.directionToPosition = exports.positionToDirection = exports.SplitviewPanel = exports.PaneviewUnhandledDragOverEvent = exports.PROPERTY_KEYS_PANEVIEW = exports.DefaultDockviewDeserialzier = exports.DefaultTab = exports.DraggablePaneviewPanel = exports.PROPERTY_KEYS_GRIDVIEW = exports.PROPERTY_KEYS_SPLITVIEW = exports.DockviewDisposable = exports.DockviewCompositeDisposable = exports.DockviewMutableDisposable = exports.DockviewEvent = exports.DockviewEmitter = exports.PanelTransfer = exports.PaneTransfer = exports.getPanelData = exports.getPaneData = void 0;
17
+ exports.createSplitview = exports.createPaneview = exports.createGridview = exports.createDockview = exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = exports.directionToPosition = exports.positionToDirection = exports.SplitviewPanel = exports.PaneviewUnhandledDragOverEvent = exports.PROPERTY_KEYS_PANEVIEW = exports.DefaultDockviewDeserialzier = exports.DefaultTab = exports.DockviewWillShowOverlayLocationEvent = exports.DockviewWillDropEvent = exports.DockviewDidDropEvent = exports.DockviewGroupPanelModel = exports.DraggablePaneviewPanel = exports.PROPERTY_KEYS_GRIDVIEW = exports.PROPERTY_KEYS_SPLITVIEW = exports.DockviewDisposable = exports.DockviewCompositeDisposable = exports.DockviewMutableDisposable = exports.DockviewEvent = exports.DockviewEmitter = exports.PanelTransfer = exports.PaneTransfer = exports.getPanelData = exports.getPaneData = void 0;
18
18
  var dataTransfer_1 = require("./dnd/dataTransfer");
19
19
  Object.defineProperty(exports, "getPaneData", { enumerable: true, get: function () { return dataTransfer_1.getPaneData; } });
20
20
  Object.defineProperty(exports, "getPanelData", { enumerable: true, get: function () { return dataTransfer_1.getPanelData; } });
@@ -45,7 +45,12 @@ var draggablePaneviewPanel_1 = require("./paneview/draggablePaneviewPanel");
45
45
  Object.defineProperty(exports, "DraggablePaneviewPanel", { enumerable: true, get: function () { return draggablePaneviewPanel_1.DraggablePaneviewPanel; } });
46
46
  __exportStar(require("./dockview/components/panel/content"), exports);
47
47
  __exportStar(require("./dockview/components/tab/tab"), exports);
48
- __exportStar(require("./dockview/dockviewGroupPanelModel"), exports);
48
+ var dockviewGroupPanelModel_1 = require("./dockview/dockviewGroupPanelModel");
49
+ Object.defineProperty(exports, "DockviewGroupPanelModel", { enumerable: true, get: function () { return dockviewGroupPanelModel_1.DockviewGroupPanelModel; } });
50
+ Object.defineProperty(exports, "DockviewDidDropEvent", { enumerable: true, get: function () { return dockviewGroupPanelModel_1.DockviewDidDropEvent; } });
51
+ Object.defineProperty(exports, "DockviewWillDropEvent", { enumerable: true, get: function () { return dockviewGroupPanelModel_1.DockviewWillDropEvent; } });
52
+ var events_2 = require("./dockview/events");
53
+ Object.defineProperty(exports, "DockviewWillShowOverlayLocationEvent", { enumerable: true, get: function () { return events_2.DockviewWillShowOverlayLocationEvent; } });
49
54
  __exportStar(require("./dockview/types"), exports);
50
55
  __exportStar(require("./dockview/dockviewGroupPanel"), exports);
51
56
  __exportStar(require("./dockview/options"), exports);
@@ -343,13 +343,16 @@ var Overlay = /** @class */ (function (_super) {
343
343
  var right = undefined;
344
344
  var width = undefined;
345
345
  var moveTop = function () {
346
- top = (0, math_1.clamp)(y, -Number.MAX_VALUE, startPosition.originalY +
346
+ // When dragging top handle, constrain top position to prevent oversizing
347
+ var maxTop = startPosition.originalY +
347
348
  startPosition.originalHeight >
348
349
  containerRect.height
349
- ? _this.getMinimumHeight(containerRect.height)
350
+ ? Math.max(0, containerRect.height -
351
+ Overlay.MINIMUM_HEIGHT)
350
352
  : Math.max(0, startPosition.originalY +
351
353
  startPosition.originalHeight -
352
- Overlay.MINIMUM_HEIGHT));
354
+ Overlay.MINIMUM_HEIGHT);
355
+ top = (0, math_1.clamp)(y, 0, maxTop);
353
356
  height =
354
357
  startPosition.originalY +
355
358
  startPosition.originalHeight -
@@ -360,22 +363,27 @@ var Overlay = /** @class */ (function (_super) {
360
363
  top =
361
364
  startPosition.originalY -
362
365
  startPosition.originalHeight;
363
- height = (0, math_1.clamp)(y - top, top < 0 &&
364
- typeof _this.options
365
- .minimumInViewportHeight === 'number'
366
+ // When dragging bottom handle, constrain height to container height
367
+ var minHeight = top < 0 &&
368
+ typeof _this.options.minimumInViewportHeight ===
369
+ 'number'
366
370
  ? -top +
367
371
  _this.options.minimumInViewportHeight
368
- : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
372
+ : Overlay.MINIMUM_HEIGHT;
373
+ var maxHeight = containerRect.height - Math.max(0, top);
374
+ height = (0, math_1.clamp)(y - top, minHeight, maxHeight);
369
375
  bottom = containerRect.height - top - height;
370
376
  };
371
377
  var moveLeft = function () {
372
- left = (0, math_1.clamp)(x, -Number.MAX_VALUE, startPosition.originalX +
378
+ var maxLeft = startPosition.originalX +
373
379
  startPosition.originalWidth >
374
380
  containerRect.width
375
- ? _this.getMinimumWidth(containerRect.width)
381
+ ? Math.max(0, containerRect.width -
382
+ Overlay.MINIMUM_WIDTH) // Prevent extending beyong right edge
376
383
  : Math.max(0, startPosition.originalX +
377
384
  startPosition.originalWidth -
378
- Overlay.MINIMUM_WIDTH));
385
+ Overlay.MINIMUM_WIDTH);
386
+ left = (0, math_1.clamp)(x, 0, maxLeft); // min is 0 (Not -Infinity) to prevent dragging beyond left edge
379
387
  width =
380
388
  startPosition.originalX +
381
389
  startPosition.originalWidth -
@@ -386,12 +394,15 @@ var Overlay = /** @class */ (function (_super) {
386
394
  left =
387
395
  startPosition.originalX -
388
396
  startPosition.originalWidth;
389
- width = (0, math_1.clamp)(x - left, left < 0 &&
390
- typeof _this.options
391
- .minimumInViewportWidth === 'number'
397
+ // When dragging right handle, constrain width to container width
398
+ var minWidth = left < 0 &&
399
+ typeof _this.options.minimumInViewportWidth ===
400
+ 'number'
392
401
  ? -left +
393
402
  _this.options.minimumInViewportWidth
394
- : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
403
+ : Overlay.MINIMUM_WIDTH;
404
+ var maxWidth = containerRect.width - Math.max(0, left);
405
+ width = (0, math_1.clamp)(x - left, minWidth, maxWidth);
395
406
  right = containerRect.width - left - width;
396
407
  };
397
408
  switch (direction) {
@@ -572,11 +572,13 @@ var Splitview = /** @class */ (function () {
572
572
  document.removeEventListener('pointermove', onPointerMove);
573
573
  document.removeEventListener('pointerup', end);
574
574
  document.removeEventListener('pointercancel', end);
575
+ document.removeEventListener('contextmenu', end);
575
576
  _this._onDidSashEnd.fire(undefined);
576
577
  };
577
578
  document.addEventListener('pointermove', onPointerMove);
578
579
  document.addEventListener('pointerup', end);
579
580
  document.addEventListener('pointercancel', end);
581
+ document.addEventListener('contextmenu', end);
580
582
  };
581
583
  sash_1.addEventListener('pointerdown', onPointerStart_1);
582
584
  var sashItem = {