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