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
  */
@@ -5164,7 +5164,7 @@ class Tab extends CompositeDisposable {
5164
5164
  }
5165
5165
  }
5166
5166
 
5167
- class WillShowOverlayLocationEvent {
5167
+ class DockviewWillShowOverlayLocationEvent {
5168
5168
  get kind() {
5169
5169
  return this.options.kind;
5170
5170
  }
@@ -5512,7 +5512,7 @@ class Tabs extends CompositeDisposable {
5512
5512
  index: this._tabs.findIndex((x) => x.value === tab),
5513
5513
  });
5514
5514
  }), tab.onWillShowOverlay((event) => {
5515
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
5515
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
5516
5516
  kind: 'tab',
5517
5517
  panel: this.group.activePanel,
5518
5518
  api: this.accessor.api,
@@ -5676,7 +5676,7 @@ class TabsContainer extends CompositeDisposable {
5676
5676
  index: this.tabs.size,
5677
5677
  });
5678
5678
  }), this.voidContainer.onWillShowOverlay((event) => {
5679
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
5679
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
5680
5680
  kind: 'header_space',
5681
5681
  panel: this.group.activePanel,
5682
5682
  api: this.accessor.api,
@@ -6070,7 +6070,7 @@ class DockviewGroupPanelModel extends CompositeDisposable {
6070
6070
  }), this.tabsContainer.onWillShowOverlay((event) => {
6071
6071
  this._onWillShowOverlay.fire(event);
6072
6072
  }), this.contentContainer.dropTarget.onWillShowOverlay((event) => {
6073
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
6073
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
6074
6074
  kind: 'content',
6075
6075
  panel: this.activePanel,
6076
6076
  api: this._api,
@@ -6746,7 +6746,19 @@ class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
6746
6746
  this.onDidLocationChange = this._onDidLocationChange.event;
6747
6747
  this._onDidActivePanelChange = new Emitter();
6748
6748
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
6749
- this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange);
6749
+ this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange, this._onDidVisibilityChange.event((event) => {
6750
+ // When becoming visible, apply any pending size change
6751
+ if (event.isVisible && this._pendingSize) {
6752
+ super.setSize(this._pendingSize);
6753
+ this._pendingSize = undefined;
6754
+ }
6755
+ }));
6756
+ }
6757
+ setSize(event) {
6758
+ // Always store the requested size
6759
+ this._pendingSize = Object.assign({}, event);
6760
+ // Apply the size change immediately
6761
+ super.setSize(event);
6750
6762
  }
6751
6763
  close() {
6752
6764
  if (!this._group) {
@@ -7698,13 +7710,16 @@ class Overlay extends CompositeDisposable {
7698
7710
  let right = undefined;
7699
7711
  let width = undefined;
7700
7712
  const moveTop = () => {
7701
- top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
7713
+ // When dragging top handle, constrain top position to prevent oversizing
7714
+ const maxTop = startPosition.originalY +
7702
7715
  startPosition.originalHeight >
7703
7716
  containerRect.height
7704
- ? this.getMinimumHeight(containerRect.height)
7717
+ ? Math.max(0, containerRect.height -
7718
+ Overlay.MINIMUM_HEIGHT)
7705
7719
  : Math.max(0, startPosition.originalY +
7706
7720
  startPosition.originalHeight -
7707
- Overlay.MINIMUM_HEIGHT));
7721
+ Overlay.MINIMUM_HEIGHT);
7722
+ top = clamp(y, 0, maxTop);
7708
7723
  height =
7709
7724
  startPosition.originalY +
7710
7725
  startPosition.originalHeight -
@@ -7715,22 +7730,27 @@ class Overlay extends CompositeDisposable {
7715
7730
  top =
7716
7731
  startPosition.originalY -
7717
7732
  startPosition.originalHeight;
7718
- height = clamp(y - top, top < 0 &&
7719
- typeof this.options
7720
- .minimumInViewportHeight === 'number'
7733
+ // When dragging bottom handle, constrain height to container height
7734
+ const minHeight = top < 0 &&
7735
+ typeof this.options.minimumInViewportHeight ===
7736
+ 'number'
7721
7737
  ? -top +
7722
7738
  this.options.minimumInViewportHeight
7723
- : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
7739
+ : Overlay.MINIMUM_HEIGHT;
7740
+ const maxHeight = containerRect.height - Math.max(0, top);
7741
+ height = clamp(y - top, minHeight, maxHeight);
7724
7742
  bottom = containerRect.height - top - height;
7725
7743
  };
7726
7744
  const moveLeft = () => {
7727
- left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
7745
+ const maxLeft = startPosition.originalX +
7728
7746
  startPosition.originalWidth >
7729
7747
  containerRect.width
7730
- ? this.getMinimumWidth(containerRect.width)
7748
+ ? Math.max(0, containerRect.width -
7749
+ Overlay.MINIMUM_WIDTH) // Prevent extending beyong right edge
7731
7750
  : Math.max(0, startPosition.originalX +
7732
7751
  startPosition.originalWidth -
7733
- Overlay.MINIMUM_WIDTH));
7752
+ Overlay.MINIMUM_WIDTH);
7753
+ left = clamp(x, 0, maxLeft); // min is 0 (Not -Infinity) to prevent dragging beyond left edge
7734
7754
  width =
7735
7755
  startPosition.originalX +
7736
7756
  startPosition.originalWidth -
@@ -7741,12 +7761,15 @@ class Overlay extends CompositeDisposable {
7741
7761
  left =
7742
7762
  startPosition.originalX -
7743
7763
  startPosition.originalWidth;
7744
- width = clamp(x - left, left < 0 &&
7745
- typeof this.options
7746
- .minimumInViewportWidth === 'number'
7764
+ // When dragging right handle, constrain width to container width
7765
+ const minWidth = left < 0 &&
7766
+ typeof this.options.minimumInViewportWidth ===
7767
+ 'number'
7747
7768
  ? -left +
7748
7769
  this.options.minimumInViewportWidth
7749
- : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
7770
+ : Overlay.MINIMUM_WIDTH;
7771
+ const maxWidth = containerRect.width - Math.max(0, left);
7772
+ width = clamp(x - left, minWidth, maxWidth);
7750
7773
  right = containerRect.width - left - width;
7751
7774
  };
7752
7775
  switch (direction) {
@@ -8576,7 +8599,7 @@ class DockviewComponent extends BaseGrid {
8576
8599
  // option only available when no panels in primary grid
8577
8600
  return;
8578
8601
  }
8579
- this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
8602
+ this._onWillShowOverlay.fire(new DockviewWillShowOverlayLocationEvent(event, {
8580
8603
  kind: 'edge',
8581
8604
  panel: undefined,
8582
8605
  api: this._api,
@@ -9813,6 +9836,13 @@ class DockviewComponent extends BaseGrid {
9813
9836
  panel: removedPanel,
9814
9837
  from: sourceGroup,
9815
9838
  });
9839
+ /**
9840
+ * Update overlay positions after DOM layout completes to prevent 0×0 dimensions.
9841
+ * With defaultRenderer="always" this results in panel content not showing after move operations.
9842
+ */
9843
+ requestAnimationFrame(() => {
9844
+ this.overlayRenderContainer.updateAllPositions();
9845
+ });
9816
9846
  }
9817
9847
  else {
9818
9848
  /**
@@ -13097,5 +13127,5 @@ DockviewAngularModule = __decorate([
13097
13127
  })
13098
13128
  ], DockviewAngularModule);
13099
13129
 
13100
- export { AngularDisposable, AngularFrameworkComponentFactory, AngularLifecycleManager, AngularRenderer, BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewAngularComponent, DockviewAngularModule, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewAngularComponent, GridviewApi, GridviewComponent, GridviewPanel, LayoutPriority, Orientation, PROPERTY_KEYS_DOCKVIEW, PROPERTY_KEYS_GRIDVIEW, PROPERTY_KEYS_PANEVIEW, PROPERTY_KEYS_SPLITVIEW, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewAngularComponent, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewUnhandledDragOverEvent, SashState, Sizing, Splitview, SplitviewAngularComponent, SplitviewApi, SplitviewComponent, SplitviewPanel, Tab, createAngularDisposable, createDockview, createGridview, createPaneview, createSplitview, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, orthogonal, positionToDirection, themeAbyss, themeAbyssSpaced, themeDark, themeDracula, themeLight, themeLightSpaced, themeReplit, themeVisualStudio, toTarget };
13130
+ export { AngularDisposable, AngularFrameworkComponentFactory, AngularLifecycleManager, AngularRenderer, BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewAngularComponent, DockviewAngularModule, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DockviewWillShowOverlayLocationEvent, DraggablePaneviewPanel, Gridview, GridviewAngularComponent, GridviewApi, GridviewComponent, GridviewPanel, LayoutPriority, Orientation, PROPERTY_KEYS_DOCKVIEW, PROPERTY_KEYS_GRIDVIEW, PROPERTY_KEYS_PANEVIEW, PROPERTY_KEYS_SPLITVIEW, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewAngularComponent, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewUnhandledDragOverEvent, SashState, Sizing, Splitview, SplitviewAngularComponent, SplitviewApi, SplitviewComponent, SplitviewPanel, Tab, createAngularDisposable, createDockview, createGridview, createPaneview, createSplitview, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, orthogonal, positionToDirection, themeAbyss, themeAbyssSpaced, themeDark, themeDracula, themeLight, themeLightSpaced, themeReplit, themeVisualStudio, toTarget };
13101
13131
  //# sourceMappingURL=dockview-angular.esm.js.map