74 lines
2.2 KiB
TypeScript
74 lines
2.2 KiB
TypeScript
import { ICalendarEvent } from '../../../types/CalendarTypes';
|
|
/**
|
|
* AllDayDomReader - Centralized DOM reading utilities for all-day services
|
|
*
|
|
* STATELESS UTILITY - Pure functions for reading DOM state
|
|
* - Consistent selectors across all services
|
|
* - Unified computed style approach (not inline styles)
|
|
* - Type-safe return values
|
|
* - Single source of truth for DOM queries
|
|
*/
|
|
export declare class AllDayDomReader {
|
|
/**
|
|
* Get the all-day events container element
|
|
*/
|
|
static getAllDayContainer(): HTMLElement | null;
|
|
/**
|
|
* Get the calendar header element
|
|
*/
|
|
static getCalendarHeader(): HTMLElement | null;
|
|
/**
|
|
* Get the header spacer element
|
|
*/
|
|
static getHeaderSpacer(): HTMLElement | null;
|
|
/**
|
|
* Get all all-day event elements (excluding overflow indicators)
|
|
* Returns raw HTMLElements for DOM manipulation
|
|
*/
|
|
static getEventElements(): HTMLElement[];
|
|
/**
|
|
* Get all-day events as ICalendarEvent objects
|
|
* Returns parsed data for business logic
|
|
*/
|
|
static getEventsAsData(): ICalendarEvent[];
|
|
/**
|
|
* Get grid row from element using computed style
|
|
* Always uses computed style for consistency
|
|
*/
|
|
static getGridRow(element: HTMLElement): number;
|
|
/**
|
|
* Get grid column range from element using computed style
|
|
*/
|
|
static getGridColumnRange(element: HTMLElement): {
|
|
start: number;
|
|
end: number;
|
|
};
|
|
/**
|
|
* Get grid area from element using computed style
|
|
*/
|
|
static getGridArea(element: HTMLElement): string;
|
|
/**
|
|
* Calculate max row number from all events
|
|
* Uses computed styles for accurate reading
|
|
*/
|
|
static getMaxRowFromEvents(): number;
|
|
/**
|
|
* Check if all-day container is expanded
|
|
*/
|
|
static isExpanded(): boolean;
|
|
/**
|
|
* Get current all-day height from CSS variable
|
|
*/
|
|
static getCurrentHeight(): number;
|
|
/**
|
|
* Count events in specific column
|
|
*/
|
|
static countEventsInColumn(columnIndex: number): number;
|
|
/**
|
|
* Get current layouts from DOM elements
|
|
* Returns map of eventId → layout info for comparison
|
|
*/
|
|
static getCurrentLayouts(): Map<string, {
|
|
gridArea: string;
|
|
}>;
|
|
}
|