dockview-angular 0.0.0-experimental-e3d91d1-20251227 → 0.0.0-experimental-4e3871a-20251228

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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-angular
3
- * @version 0.0.0-experimental-e3d91d1-20251227
3
+ * @version 0.0.0-experimental-4e3871a-20251228
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -5132,7 +5132,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
5132
5132
  }
5133
5133
  }
5134
5134
 
5135
- class WillShowOverlayLocationEvent {
5135
+ class DockviewWillShowOverlayLocationEvent {
5136
5136
  get kind() {
5137
5137
  return this.options.kind;
5138
5138
  }
@@ -5480,7 +5480,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
5480
5480
  index: this._tabs.findIndex((x) => x.value === tab),
5481
5481
  });
5482
5482
  }), tab.onWillShowOverlay((event) => {
5483
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
5483
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
5484
5484
  kind: 'tab',
5485
5485
  panel: this.group.activePanel,
5486
5486
  api: this.accessor.api,
@@ -5644,7 +5644,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
5644
5644
  index: this.tabs.size,
5645
5645
  });
5646
5646
  }), this.voidContainer.onWillShowOverlay((event) => {
5647
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
5647
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
5648
5648
  kind: 'header_space',
5649
5649
  panel: this.group.activePanel,
5650
5650
  api: this.accessor.api,
@@ -6038,7 +6038,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
6038
6038
  }), this.tabsContainer.onWillShowOverlay((event) => {
6039
6039
  this._onWillShowOverlay.fire(event);
6040
6040
  }), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
6041
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
6041
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
6042
6042
  kind: 'content',
6043
6043
  panel: this.activePanel,
6044
6044
  api: this._api,
@@ -6714,7 +6714,19 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
6714
6714
  this.onDidLocationChange = this._onDidLocationChange.event;
6715
6715
  this._onDidActivePanelChange = new Emitter();
6716
6716
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
6717
- this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange);
6717
+ this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange, this._onDidVisibilityChange.event((event) => {
6718
+ // When becoming visible, apply any pending size change
6719
+ if (event.isVisible && this._pendingSize) {
6720
+ super.setSize(this._pendingSize);
6721
+ this._pendingSize = undefined;
6722
+ }
6723
+ }));
6724
+ }
6725
+ setSize(event) {
6726
+ // Always store the requested size
6727
+ this._pendingSize = Object.assign({}, event);
6728
+ // Apply the size change immediately
6729
+ super.setSize(event);
6718
6730
  }
6719
6731
  close() {
6720
6732
  if (!this._group) {
@@ -7666,13 +7678,16 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
7666
7678
  let right = undefined;
7667
7679
  let width = undefined;
7668
7680
  const moveTop = () => {
7669
- top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
7681
+ // When dragging top handle, constrain top position to prevent oversizing
7682
+ const maxTop = startPosition.originalY +
7670
7683
  startPosition.originalHeight >
7671
7684
  containerRect.height
7672
- ? this.getMinimumHeight(containerRect.height)
7685
+ ? Math.max(0, containerRect.height -
7686
+ Overlay.MINIMUM_HEIGHT)
7673
7687
  : Math.max(0, startPosition.originalY +
7674
7688
  startPosition.originalHeight -
7675
- Overlay.MINIMUM_HEIGHT));
7689
+ Overlay.MINIMUM_HEIGHT);
7690
+ top = clamp(y, 0, maxTop);
7676
7691
  height =
7677
7692
  startPosition.originalY +
7678
7693
  startPosition.originalHeight -
@@ -7683,22 +7698,27 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
7683
7698
  top =
7684
7699
  startPosition.originalY -
7685
7700
  startPosition.originalHeight;
7686
- height = clamp(y - top, top < 0 &&
7687
- typeof this.options
7688
- .minimumInViewportHeight === 'number'
7701
+ // When dragging bottom handle, constrain height to container height
7702
+ const minHeight = top < 0 &&
7703
+ typeof this.options.minimumInViewportHeight ===
7704
+ 'number'
7689
7705
  ? -top +
7690
7706
  this.options.minimumInViewportHeight
7691
- : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
7707
+ : Overlay.MINIMUM_HEIGHT;
7708
+ const maxHeight = containerRect.height - Math.max(0, top);
7709
+ height = clamp(y - top, minHeight, maxHeight);
7692
7710
  bottom = containerRect.height - top - height;
7693
7711
  };
7694
7712
  const moveLeft = () => {
7695
- left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
7713
+ const maxLeft = startPosition.originalX +
7696
7714
  startPosition.originalWidth >
7697
7715
  containerRect.width
7698
- ? this.getMinimumWidth(containerRect.width)
7716
+ ? Math.max(0, containerRect.width -
7717
+ Overlay.MINIMUM_WIDTH) // Prevent extending beyong right edge
7699
7718
  : Math.max(0, startPosition.originalX +
7700
7719
  startPosition.originalWidth -
7701
- Overlay.MINIMUM_WIDTH));
7720
+ Overlay.MINIMUM_WIDTH);
7721
+ left = clamp(x, 0, maxLeft); // min is 0 (Not -Infinity) to prevent dragging beyond left edge
7702
7722
  width =
7703
7723
  startPosition.originalX +
7704
7724
  startPosition.originalWidth -
@@ -7709,12 +7729,15 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
7709
7729
  left =
7710
7730
  startPosition.originalX -
7711
7731
  startPosition.originalWidth;
7712
- width = clamp(x - left, left < 0 &&
7713
- typeof this.options
7714
- .minimumInViewportWidth === 'number'
7732
+ // When dragging right handle, constrain width to container width
7733
+ const minWidth = left < 0 &&
7734
+ typeof this.options.minimumInViewportWidth ===
7735
+ 'number'
7715
7736
  ? -left +
7716
7737
  this.options.minimumInViewportWidth
7717
- : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
7738
+ : Overlay.MINIMUM_WIDTH;
7739
+ const maxWidth = containerRect.width - Math.max(0, left);
7740
+ width = clamp(x - left, minWidth, maxWidth);
7718
7741
  right = containerRect.width - left - width;
7719
7742
  };
7720
7743
  switch (direction) {
@@ -8544,7 +8567,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
8544
8567
  // option only available when no panels in primary grid
8545
8568
  return;
8546
8569
  }
8547
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
8570
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
8548
8571
  kind: 'edge',
8549
8572
  panel: undefined,
8550
8573
  api: this._api,
@@ -9781,6 +9804,13 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
9781
9804
  panel: removedPanel,
9782
9805
  from: sourceGroup,
9783
9806
  });
9807
+ /**
9808
+ * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
9809
+ * With defaultRenderer="always" this results in panel content not showing after move operations.
9810
+ */
9811
+ requestAnimationFrame(() => {
9812
+ this.overlayRenderContainer.updateAllPositions();
9813
+ });
9784
9814
  }
9785
9815
  else {
9786
9816
  /**
@@ -13084,6 +13114,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
13084
13114
  exports.DockviewPanel = DockviewPanel;
13085
13115
  exports.DockviewUnhandledDragOverEvent = DockviewUnhandledDragOverEvent;
13086
13116
  exports.DockviewWillDropEvent = DockviewWillDropEvent;
13117
+ exports.DockviewWillShowOverlayLocationEvent = DockviewWillShowOverlayLocationEvent;
13087
13118
  exports.DraggablePaneviewPanel = DraggablePaneviewPanel;
13088
13119
  exports.Gridview = Gridview;
13089
13120
  exports.GridviewApi = GridviewApi;