From 133ecbfccc4bc320e5f3fdb3ccde42cb7939b551 Mon Sep 17 00:00:00 2001 From: mathuo <6710312+mathuo@users.noreply.github.com> Date: Tue, 18 Jul 2023 20:47:10 +0100 Subject: [PATCH] feat: overlay resizing outside of main viewport but within bounds --- packages/dockview-core/src/dnd/overlay.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/dockview-core/src/dnd/overlay.ts b/packages/dockview-core/src/dnd/overlay.ts index 6d818725a..36f8fb2d0 100644 --- a/packages/dockview-core/src/dnd/overlay.ts +++ b/packages/dockview-core/src/dnd/overlay.ts @@ -322,10 +322,15 @@ export class Overlay extends CompositeDisposable { let left: number | null = null; let width: number | null = null; - function moveTop() { + const minimumInViewportHeight = + this.options.minimumInViewportHeight; + const minimumInViewportWidth = + this.options.minimumInViewportWidth; + + function moveTop(): void { top = clamp( y, - 0, + -minimumInViewportHeight, Math.max( 0, startPosition!.originalY + @@ -339,7 +344,7 @@ export class Overlay extends CompositeDisposable { top; } - function moveBottom() { + function moveBottom(): void { top = startPosition!.originalY - startPosition!.originalHeight; @@ -351,15 +356,16 @@ export class Overlay extends CompositeDisposable { 0, containerRect.height - startPosition!.originalY + - startPosition!.originalHeight + startPosition!.originalHeight + + minimumInViewportHeight ) ); } - function moveLeft() { + function moveLeft(): void { left = clamp( x, - 0, + -minimumInViewportWidth, Math.max( 0, startPosition!.originalX + @@ -373,7 +379,7 @@ export class Overlay extends CompositeDisposable { left; } - function moveRight() { + function moveRight(): void { left = startPosition!.originalX - startPosition!.originalWidth; @@ -384,7 +390,8 @@ export class Overlay extends CompositeDisposable { 0, containerRect.width - startPosition!.originalX + - startPosition!.originalWidth + startPosition!.originalWidth + + minimumInViewportWidth ) ); }