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
  */
@@ -5166,7 +5166,7 @@
5166
5166
  }
5167
5167
  }
5168
5168
 
5169
- class WillShowOverlayLocationEvent {
5169
+ class DockviewWillShowOverlayLocationEvent {
5170
5170
  get kind() {
5171
5171
  return this.options.kind;
5172
5172
  }
@@ -5514,7 +5514,7 @@
5514
5514
  index: this._tabs.findIndex((x) => x.value === tab),
5515
5515
  });
5516
5516
  }), tab.onWillShowOverlay((event) => {
5517
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
5517
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
5518
5518
  kind: 'tab',
5519
5519
  panel: this.group.activePanel,
5520
5520
  api: this.accessor.api,
@@ -5678,7 +5678,7 @@
5678
5678
  index: this.tabs.size,
5679
5679
  });
5680
5680
  }), this.voidContainer.onWillShowOverlay((event) => {
5681
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
5681
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
5682
5682
  kind: 'header_space',
5683
5683
  panel: this.group.activePanel,
5684
5684
  api: this.accessor.api,
@@ -6072,7 +6072,7 @@
6072
6072
  }), this.tabsContainer.onWillShowOverlay((event) => {
6073
6073
  this._onWillShowOverlay.fire(event);
6074
6074
  }), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
6075
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
6075
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
6076
6076
  kind: 'content',
6077
6077
  panel: this.activePanel,
6078
6078
  api: this._api,
@@ -6748,7 +6748,19 @@
6748
6748
  this.onDidLocationChange = this._onDidLocationChange.event;
6749
6749
  this._onDidActivePanelChange = new Emitter();
6750
6750
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
6751
- this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange);
6751
+ this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange, this._onDidVisibilityChange.event((event) => {
6752
+ // When becoming visible, apply any pending size change
6753
+ if (event.isVisible && this._pendingSize) {
6754
+ super.setSize(this._pendingSize);
6755
+ this._pendingSize = undefined;
6756
+ }
6757
+ }));
6758
+ }
6759
+ setSize(event) {
6760
+ // Always store the requested size
6761
+ this._pendingSize = Object.assign({}, event);
6762
+ // Apply the size change immediately
6763
+ super.setSize(event);
6752
6764
  }
6753
6765
  close() {
6754
6766
  if (!this._group) {
@@ -7700,13 +7712,16 @@
7700
7712
  let right = undefined;
7701
7713
  let width = undefined;
7702
7714
  const moveTop = () => {
7703
- top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
7715
+ // When dragging top handle, constrain top position to prevent oversizing
7716
+ const maxTop = startPosition.originalY +
7704
7717
  startPosition.originalHeight >
7705
7718
  containerRect.height
7706
- ? this.getMinimumHeight(containerRect.height)
7719
+ ? Math.max(0, containerRect.height -
7720
+ Overlay.MINIMUM_HEIGHT)
7707
7721
  : Math.max(0, startPosition.originalY +
7708
7722
  startPosition.originalHeight -
7709
- Overlay.MINIMUM_HEIGHT));
7723
+ Overlay.MINIMUM_HEIGHT);
7724
+ top = clamp(y, 0, maxTop);
7710
7725
  height =
7711
7726
  startPosition.originalY +
7712
7727
  startPosition.originalHeight -
@@ -7717,22 +7732,27 @@
7717
7732
  top =
7718
7733
  startPosition.originalY -
7719
7734
  startPosition.originalHeight;
7720
- height = clamp(y - top, top < 0 &&
7721
- typeof this.options
7722
- .minimumInViewportHeight === 'number'
7735
+ // When dragging bottom handle, constrain height to container height
7736
+ const minHeight = top < 0 &&
7737
+ typeof this.options.minimumInViewportHeight ===
7738
+ 'number'
7723
7739
  ? -top +
7724
7740
  this.options.minimumInViewportHeight
7725
- : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
7741
+ : Overlay.MINIMUM_HEIGHT;
7742
+ const maxHeight = containerRect.height - Math.max(0, top);
7743
+ height = clamp(y - top, minHeight, maxHeight);
7726
7744
  bottom = containerRect.height - top - height;
7727
7745
  };
7728
7746
  const moveLeft = () => {
7729
- left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
7747
+ const maxLeft = startPosition.originalX +
7730
7748
  startPosition.originalWidth >
7731
7749
  containerRect.width
7732
- ? this.getMinimumWidth(containerRect.width)
7750
+ ? Math.max(0, containerRect.width -
7751
+ Overlay.MINIMUM_WIDTH) // Prevent extending beyong right edge
7733
7752
  : Math.max(0, startPosition.originalX +
7734
7753
  startPosition.originalWidth -
7735
- Overlay.MINIMUM_WIDTH));
7754
+ Overlay.MINIMUM_WIDTH);
7755
+ left = clamp(x, 0, maxLeft); // min is 0 (Not -Infinity) to prevent dragging beyond left edge
7736
7756
  width =
7737
7757
  startPosition.originalX +
7738
7758
  startPosition.originalWidth -
@@ -7743,12 +7763,15 @@
7743
7763
  left =
7744
7764
  startPosition.originalX -
7745
7765
  startPosition.originalWidth;
7746
- width = clamp(x - left, left < 0 &&
7747
- typeof this.options
7748
- .minimumInViewportWidth === 'number'
7766
+ // When dragging right handle, constrain width to container width
7767
+ const minWidth = left < 0 &&
7768
+ typeof this.options.minimumInViewportWidth ===
7769
+ 'number'
7749
7770
  ? -left +
7750
7771
  this.options.minimumInViewportWidth
7751
- : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
7772
+ : Overlay.MINIMUM_WIDTH;
7773
+ const maxWidth = containerRect.width - Math.max(0, left);
7774
+ width = clamp(x - left, minWidth, maxWidth);
7752
7775
  right = containerRect.width - left - width;
7753
7776
  };
7754
7777
  switch (direction) {
@@ -8578,7 +8601,7 @@
8578
8601
  // option only available when no panels in primary grid
8579
8602
  return;
8580
8603
  }
8581
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
8604
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
8582
8605
  kind: 'edge',
8583
8606
  panel: undefined,
8584
8607
  api: this._api,
@@ -9815,6 +9838,13 @@
9815
9838
  panel: removedPanel,
9816
9839
  from: sourceGroup,
9817
9840
  });
9841
+ /**
9842
+ * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
9843
+ * With defaultRenderer="always" this results in panel content not showing after move operations.
9844
+ */
9845
+ requestAnimationFrame(() => {
9846
+ this.overlayRenderContainer.updateAllPositions();
9847
+ });
9818
9848
  }
9819
9849
  else {
9820
9850
  /**
@@ -13118,6 +13148,7 @@
13118
13148
  exports.DockviewPanel = DockviewPanel;
13119
13149
  exports.DockviewUnhandledDragOverEvent = DockviewUnhandledDragOverEvent;
13120
13150
  exports.DockviewWillDropEvent = DockviewWillDropEvent;
13151
+ exports.DockviewWillShowOverlayLocationEvent = DockviewWillShowOverlayLocationEvent;
13121
13152
  exports.DraggablePaneviewPanel = DraggablePaneviewPanel;
13122
13153
  exports.Gridview = Gridview;
13123
13154
  exports.GridviewApi = GridviewApi;