dockview-core 4.11.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 (67) hide show
  1. package/dist/cjs/api/component.api.d.ts +5 -3
  2. package/dist/cjs/api/component.api.js +2 -2
  3. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +3 -1
  4. package/dist/cjs/api/dockviewGroupPanelApi.js +24 -1
  5. package/dist/cjs/dockview/components/panel/content.d.ts +7 -0
  6. package/dist/cjs/dockview/components/panel/content.js +11 -0
  7. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +2 -2
  8. package/dist/cjs/dockview/components/titlebar/tabs.js +1 -1
  9. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +3 -3
  10. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +1 -1
  11. package/dist/cjs/dockview/dockviewComponent.d.ts +10 -4
  12. package/dist/cjs/dockview/dockviewComponent.js +167 -85
  13. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +2 -2
  14. package/dist/cjs/dockview/dockviewGroupPanelModel.js +4 -1
  15. package/dist/cjs/dockview/dockviewPanel.d.ts +6 -4
  16. package/dist/cjs/dockview/dockviewPanel.js +12 -0
  17. package/dist/cjs/dockview/events.d.ts +4 -4
  18. package/dist/cjs/dockview/events.js +14 -14
  19. package/dist/cjs/index.d.ts +2 -1
  20. package/dist/cjs/index.js +7 -2
  21. package/dist/cjs/overlay/overlay.js +25 -14
  22. package/dist/cjs/splitview/splitview.js +2 -0
  23. package/dist/dockview-core.amd.js +172 -54
  24. package/dist/dockview-core.amd.js.map +1 -1
  25. package/dist/dockview-core.amd.min.js +2 -2
  26. package/dist/dockview-core.amd.min.js.map +1 -1
  27. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  28. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  29. package/dist/dockview-core.amd.noStyle.js +172 -54
  30. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  31. package/dist/dockview-core.cjs.js +172 -54
  32. package/dist/dockview-core.cjs.js.map +1 -1
  33. package/dist/dockview-core.esm.js +172 -55
  34. package/dist/dockview-core.esm.js.map +1 -1
  35. package/dist/dockview-core.esm.min.js +2 -2
  36. package/dist/dockview-core.esm.min.js.map +1 -1
  37. package/dist/dockview-core.js +172 -54
  38. package/dist/dockview-core.js.map +1 -1
  39. package/dist/dockview-core.min.js +2 -2
  40. package/dist/dockview-core.min.js.map +1 -1
  41. package/dist/dockview-core.min.noStyle.js +2 -2
  42. package/dist/dockview-core.min.noStyle.js.map +1 -1
  43. package/dist/dockview-core.noStyle.js +172 -54
  44. package/dist/dockview-core.noStyle.js.map +1 -1
  45. package/dist/esm/api/component.api.d.ts +5 -3
  46. package/dist/esm/api/component.api.js +2 -2
  47. package/dist/esm/api/dockviewGroupPanelApi.d.ts +3 -1
  48. package/dist/esm/api/dockviewGroupPanelApi.js +13 -1
  49. package/dist/esm/dockview/components/panel/content.d.ts +7 -0
  50. package/dist/esm/dockview/components/panel/content.js +11 -0
  51. package/dist/esm/dockview/components/titlebar/tabs.d.ts +2 -2
  52. package/dist/esm/dockview/components/titlebar/tabs.js +2 -2
  53. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +3 -3
  54. package/dist/esm/dockview/components/titlebar/tabsContainer.js +2 -2
  55. package/dist/esm/dockview/dockviewComponent.d.ts +10 -4
  56. package/dist/esm/dockview/dockviewComponent.js +99 -33
  57. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +2 -2
  58. package/dist/esm/dockview/dockviewGroupPanelModel.js +5 -2
  59. package/dist/esm/dockview/dockviewPanel.d.ts +6 -4
  60. package/dist/esm/dockview/dockviewPanel.js +12 -0
  61. package/dist/esm/dockview/events.d.ts +4 -4
  62. package/dist/esm/dockview/events.js +1 -1
  63. package/dist/esm/index.d.ts +2 -1
  64. package/dist/esm/index.js +2 -1
  65. package/dist/esm/overlay/overlay.js +26 -15
  66. package/dist/esm/splitview/splitview.js +2 -0
  67. package/package.json +1 -1
@@ -200,6 +200,18 @@ var DockviewPanel = /** @class */ (function (_super) {
200
200
  params: this._params,
201
201
  });
202
202
  };
203
+ DockviewPanel.prototype.updateFromStateModel = function (state) {
204
+ var _a, _b, _c;
205
+ this._maximumHeight = state.maximumHeight;
206
+ this._minimumHeight = state.minimumHeight;
207
+ this._maximumWidth = state.maximumWidth;
208
+ this._minimumWidth = state.minimumWidth;
209
+ this.update({ params: (_a = state.params) !== null && _a !== void 0 ? _a : {} });
210
+ this.setTitle((_b = state.title) !== null && _b !== void 0 ? _b : this.id);
211
+ this.setRenderer((_c = state.renderer) !== null && _c !== void 0 ? _c : this.accessor.renderer);
212
+ // state.contentComponent;
213
+ // state.tabComponent;
214
+ };
203
215
  DockviewPanel.prototype.updateParentGroup = function (group, options) {
204
216
  this._group = group;
205
217
  this.api.group = this._group;
@@ -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 = {