Calendar/wwwroot/js/managers/ScrollManager.d.ts
2026-02-03 00:02:25 +01:00

64 lines
1.8 KiB
TypeScript

import { PositionUtils } from '../utils/PositionUtils';
/**
* Manages scrolling functionality for the calendar using native scrollbars
*/
export declare class ScrollManager {
private scrollableContent;
private calendarContainer;
private timeAxis;
private calendarHeader;
private resizeObserver;
private positionUtils;
constructor(positionUtils: PositionUtils);
private init;
/**
* Public method to initialize scroll after grid is rendered
*/
initialize(): void;
private subscribeToEvents;
/**
* Setup scrolling functionality after grid is rendered
*/
private setupScrolling;
/**
* Find DOM elements needed for scrolling
*/
private findElements;
/**
* Scroll to specific position
*/
scrollTo(scrollTop: number): void;
/**
* Scroll to specific hour using PositionUtils
*/
scrollToHour(hour: number): void;
/**
* Scroll to specific event time
* @param eventStartTime ISO string of event start time
*/
scrollToEventTime(eventStartTime: string): void;
/**
* Setup ResizeObserver to monitor container size changes
*/
private setupResizeObserver;
/**
* Calculate and update scrollable content height dynamically
*/
private updateScrollableHeight;
/**
* Setup scroll synchronization between scrollable content and time axis
*/
private setupScrollSynchronization;
/**
* Synchronize time axis position with scrollable content
*/
private syncTimeAxisPosition;
/**
* Setup horizontal scroll synchronization between scrollable content and calendar header
*/
private setupHorizontalScrollSynchronization;
/**
* Synchronize calendar header position with scrollable content horizontal scroll
*/
private syncCalendarHeaderPosition;
}