Adds edge scroll functionality for drag interactions

Implements EdgeScrollManager to enable automatic scrolling during drag operations

Introduces new scroll management system that:
- Detects mouse proximity to container edges
- Provides variable scroll speed based on mouse position
- Compensates dragged elements during scrolling

Enhances drag-and-drop user experience with smooth scrolling
This commit is contained in:
Janus C. H. Knudsen 2025-12-10 19:12:38 +01:00
parent 8b95f2735f
commit 10d8a444d8
5 changed files with 219 additions and 2 deletions

View file

@ -52,6 +52,7 @@ import { ResourceScheduleService } from './storage/schedules/ResourceScheduleSer
// Managers
import { DragDropManager } from './managers/DragDropManager';
import { EdgeScrollManager } from './managers/EdgeScrollManager';
const defaultTimeFormatConfig: ITimeFormatConfig = {
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
@ -149,6 +150,7 @@ export function createV2Container(): Container {
builder.registerType(ScrollManager).as<ScrollManager>();
builder.registerType(HeaderDrawerManager).as<HeaderDrawerManager>();
builder.registerType(DragDropManager).as<DragDropManager>();
builder.registerType(EdgeScrollManager).as<EdgeScrollManager>();
// Demo app
builder.registerType(DemoApp).as<DemoApp>();