64 lines
1.8 KiB
TypeScript
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;
|
|
}
|