import { AllDayVisibility } from '../../../../Types/AllDayVisibility';
import { SchedulerView } from '../../../../Types/SchedulerView';
import { IAllDayEvent } from '../models/IAllDayEvent';
import { IPositionedEvent } from '../models/IPositionedEvent';
import { SchedulerViewBaseElement } from './Abstracts/SchedulerViewBaseElement';
import { ISchedulerTimeGridViewElementProps } from './ISchedulerTimeGridViewElementProps';
/**
* Scheduler TimeGrid View - A time grid view with configurable day columns.
*
* @description
* The TimeGrid view displays events in a time-based grid layout with columns representing days.
* It supports day view (single column), work week view (5 columns), and week view (7 columns).
* Events are positioned vertically based on their time and horizontally based on overlap detection.
*
* @name Scheduler TimeGrid View
* @element mosaik-scheduler-time-grid-view
* @category Scheduler
*
* @slot - Default slot for event content
*
* @csspart container - The main container
* @csspart header - The header row with day labels
* @csspart header-columns - Container for day header cells
* @csspart header-spacer - Spacer aligned with timescale width
* @csspart header-cell - Individual day header cells
* @csspart header-weekday - The weekday name in the header
* @csspart header-day - The day number in the header
* @csspart all-day-panel - The all-day events panel
* @csspart all-day-label - The "All day" label
* @csspart all-day-row - Container for all-day cells
* @csspart all-day-cell - Individual all-day cells per day
* @csspart all-day-events - Container for all-day event chips
* @csspart all-day-event - Individual all-day event chip
* @csspart body - The scrollable body area
* @csspart timescale - The time labels on the left
* @csspart grid-wrapper - Container for grid and appointments overlay
* @csspart grid - The time slot grid
* @csspart grid-row - A single row in the grid
* @csspart grid-cell - Individual grid cells
* @csspart appointments - Overlay container for positioned events
* @csspart appointment-column - Column container for events of a day
* @csspart event - Individual event items
* @csspart indicator - The now indicator
*
* @cssprop {Color} --scheduler-time-grid-view-background-color - Background color of the view
* @cssprop {Color} --scheduler-time-grid-view-border-color - Border color
* @cssprop {String} --scheduler-time-grid-view-border-radius - Border radius
* @cssprop {String} --scheduler-time-grid-view-border-style - Border style
* @cssprop {String} --scheduler-time-grid-view-border-width - Border width
* @cssprop {Color} --scheduler-time-grid-view-cell-border-color - Border color for time cells
* @cssprop {String} --scheduler-time-grid-view-cell-border-radius - Border radius for time cells
* @cssprop {String} --scheduler-time-grid-view-cell-border-style - Border style for time cells
* @cssprop {String} --scheduler-time-grid-view-cell-border-width - Border width for time cells
* @cssprop {String} --scheduler-time-grid-view-cell-height - Height of time slot cells
* @cssprop {String} --scheduler-time-grid-view-column-min-width - Minimum width of day columns
* @cssprop {Color} --scheduler-time-grid-view-foreground-color - Foreground/text color
* @cssprop {String} --scheduler-time-grid-view-gap - Gap between elements
* @cssprop {String} --scheduler-time-grid-view-header-cell-padding-bottom - Bottom padding for header cells
* @cssprop {String} --scheduler-time-grid-view-header-cell-padding-left - Left padding for header cells
* @cssprop {String} --scheduler-time-grid-view-header-cell-padding-right - Right padding for header cells
* @cssprop {String} --scheduler-time-grid-view-header-cell-padding-top - Top padding for header cells
* @cssprop {String} --scheduler-time-grid-view-header-day-font-family - Font family for day number in header
* @cssprop {String} --scheduler-time-grid-view-header-day-font-letter-spacing - Letter spacing for day number
* @cssprop {String} --scheduler-time-grid-view-header-day-font-line-height - Line height for day number
* @cssprop {String} --scheduler-time-grid-view-header-day-font-size - Font size for day number
* @cssprop {String} --scheduler-time-grid-view-header-day-font-text-decoration - Text decoration for day number
* @cssprop {String} --scheduler-time-grid-view-header-day-font-text-transform - Text transform for day number
* @cssprop {String} --scheduler-time-grid-view-header-day-font-weight - Font weight for day number
* @cssprop {String} --scheduler-time-grid-view-header-font-family - Font family for header
* @cssprop {String} --scheduler-time-grid-view-header-font-letter-spacing - Letter spacing for header
* @cssprop {String} --scheduler-time-grid-view-header-font-line-height - Line height for header
* @cssprop {String} --scheduler-time-grid-view-header-font-size - Font size for header
* @cssprop {String} --scheduler-time-grid-view-header-font-text-decoration - Text decoration for header
* @cssprop {String} --scheduler-time-grid-view-header-font-text-transform - Text transform for header
* @cssprop {String} --scheduler-time-grid-view-header-font-weight - Font weight for header
* @cssprop {String} --scheduler-time-grid-view-header-weekday-font-family - Font family for weekday labels
* @cssprop {String} --scheduler-time-grid-view-header-weekday-font-letter-spacing - Letter spacing for weekday labels
* @cssprop {String} --scheduler-time-grid-view-header-weekday-font-line-height - Line height for weekday labels
* @cssprop {String} --scheduler-time-grid-view-header-weekday-font-size - Font size for weekday labels
* @cssprop {String} --scheduler-time-grid-view-header-weekday-font-text-decoration - Text decoration for weekday labels
* @cssprop {String} --scheduler-time-grid-view-header-weekday-font-text-transform - Text transform for weekday labels
* @cssprop {String} --scheduler-time-grid-view-header-weekday-font-weight - Font weight for weekday labels
* @cssprop {Color} --scheduler-time-grid-view-hour-border-color - Border color for hour boundaries
* @cssprop {String} --scheduler-time-grid-view-hour-border-radius - Border radius for hour boundaries
* @cssprop {String} --scheduler-time-grid-view-hour-border-style - Border style for hour boundaries
* @cssprop {String} --scheduler-time-grid-view-hour-border-width - Border width for hour boundaries
* @cssprop {String} --scheduler-time-grid-view-padding-bottom - Bottom padding
* @cssprop {String} --scheduler-time-grid-view-padding-left - Left padding
* @cssprop {String} --scheduler-time-grid-view-padding-right - Right padding
* @cssprop {String} --scheduler-time-grid-view-padding-top - Top padding
* @cssprop {String} --scheduler-time-grid-view-timescale-width - Width of the timescale column
* @cssprop {Color} --scheduler-time-grid-view-today-background-color - Background color for today's column
* @cssprop {String} --scheduler-time-grid-view-transition-duration - Duration for transitions
* @cssprop {String} --scheduler-time-grid-view-transition-mode - Timing function for transitions
* @cssprop {String} --scheduler-time-grid-view-transition-property - CSS properties to transition
*
* @example
* ```html
*
* ```
*
* @public
*/
export declare class SchedulerTimeGridViewElement extends SchedulerViewBaseElement implements ISchedulerTimeGridViewElementProps {
private _days;
private _hourStart;
private _hourEnd;
private _stepMinutes;
private _allDayVisibility;
private _visibleDates;
private _eventsByDay;
private _allDayEventsByDay;
private _nowIndicatorIntervalId;
constructor();
/**
* Returns the `is` property.
*
* @public
* @static
* @readonly
*/
static get is(): string;
/**
* Gets the layout mode for this view.
*
* @public
* @override
* @readonly
*/
get view(): SchedulerView;
/**
* Gets or sets the number of days to display.
*
* @public
* @attr
*/
get days(): number;
set days(value: number);
/**
* Gets or sets the start hour of the time range.
*
* @public
* @attr
*/
get hourStart(): number;
set hourStart(value: number);
/**
* Gets or sets the end hour of the time range.
*
* @public
* @attr
*/
get hourEnd(): number;
set hourEnd(value: number);
/**
* Gets or sets the step interval in minutes.
*
* @public
* @attr
*/
get stepMinutes(): number;
set stepMinutes(value: number);
/**
* Gets or sets the visibility mode for all-day events.
*
* @public
* @attr
*/
get allDayVisibility(): AllDayVisibility;
set allDayVisibility(value: AllDayVisibility);
/**
* Gets the visible dates array.
*
* @public
* @readonly
*/
get visibleDates(): Array;
/**
* Gets the events organized by day.
*
* @public
* @readonly
*/
get eventsByDay(): Map>;
/**
* Gets the time slots for rendering the grid.
*
* @public
* @readonly
*/
get timeSlots(): Array<{
time: string;
label: string;
isHour: boolean;
isLastOfHour: boolean;
}>;
/**
* Returns whether there are any all-day events.
*
* @public
* @readonly
*/
get hasAllDayEvents(): boolean;
/**
* @public
* @override
*/
connectedCallback(): void;
/**
* @public
* @override
*/
disconnectedCallback(): void;
/**
* Gets events for a specific day.
*
* @public
* @param dayKey - The day key (YYYY-MM-DD).
* @returns Array of positioned events for that day.
*/
getEventsForDay(dayKey: string): Array;
/**
* Gets all all-day events across all visible days.
*
* @public
* @returns Array of all all-day events.
*/
getAllDayEvents(): Array;
/**
* Calculates the now indicator top position as percentage.
*
* @public
* @returns The top position percentage (0-100), or -1 if outside visible range.
*/
getNowIndicatorTop(): number;
protected onDateChanged(): void;
protected onEventChanged(): void;
private updateVisibleDates;
private positionEvents;
private calculateEventLanes;
private startNowIndicatorSync;
private stopNowIndicatorSync;
}
/**
* @public
*/
export declare namespace SchedulerTimeGridViewElement {
type Props = ISchedulerTimeGridViewElementProps;
}
/**
* @public
*/
declare global {
interface HTMLElementTagNameMap {
'mosaik-scheduler-time-grid-view': SchedulerTimeGridViewElement;
}
}
//# sourceMappingURL=SchedulerTimeGridViewElement.d.ts.map