UNPKG

@oslokommune/punkt-elements

Version:

Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo

98 lines (97 loc) 2.61 kB
import { PropertyValues, TemplateResult } from 'lit'; import { PktElement } from '../../base-elements/element'; export declare class PktCalendar extends PktElement { selected: string | string[]; multiple: boolean; maxMultiple: number; range: boolean; earliest: string | null; latest: string | null; excludedates: Date[]; excludeweekdays: string[]; weeknumbers: boolean; withcontrols: boolean; currentmonth: Date | null; today: string | null; dayStrings: string[]; dayStringsLong: string[]; monthStrings: string[]; weekString: string; prevMonthString: string; nextMonthString: string; private _selected; private inRange; private rangeHovered; private get todayDate(); private year; private month; private week; private currentmonthtouched; private focusedDate; private selectableDates; private tabIndexSet; /** * Lifecycle methods */ protected firstUpdated(_changedProperties: PropertyValues): void; disconnectedCallback(): void; updated(changedProperties: PropertyValues): void; /** * Date and selection management */ private convertSelected; private setCurrentMonth; /** * Keyboard navigation */ private handleKeydown; private handleArrowKey; /** * Rendering methods */ render(): TemplateResult<1>; private renderMonthNavButton; private renderDayNames; private renderMonthNav; private getDayViewData; private getDateConstraints; private isDayDisabled; private calculateTabIndex; private getDayCellClasses; private getDayButtonClasses; private handleDayFocus; private renderDayView; private renderEmptyDayCell; private renderWeekRow; private renderCalendarBody; /** * Date validation */ private isExcluded; /** * Month navigation */ isPrevMonthAllowed(): boolean; private prevMonth; isNextMonthAllowed(): boolean; private nextMonth; private changeMonth; /** * Date selection logic */ private emptySelected; private normalizeSelected; addToSelected(selectedDate: Date): void; removeFromSelected(selectedDate: Date): void; toggleSelected(selectedDate: Date): void; private isRangeAllowed; private handleRangeSelect; private handleRangeHover; handleDateSelect(selectedDate: Date | null): Promise<void>; /** * Focus management and event handlers */ focusOnCurrentDate(): void; closeEvent(e: FocusEvent): void; close(): void; }