@oslokommune/punkt-elements
Version:
Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo
98 lines (97 loc) • 2.61 kB
TypeScript
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;
}