import { PropertyValueMap, TemplateResult } from 'lit'; import { DateTime } from 'luxon'; import OmniElement from '../core/OmniElement.js'; import '../icons/ChevronLeft.icon.js'; import '../icons/ChevronRight.icon.js'; /** * Calendar component to set specific date. * * @import * ```js * import '@capitec/omni-components/calendar'; * ``` * * @example * ```html * * * ``` * @element omni-calendar * * Registry of all properties defined by the component. * * @fires {CustomEvent<{}>} change - Dispatched when a date is selected. * * @slot left-control - Replaces the icon for the left control button. * @slot right-control - Replaces the icon for the right control button. * * @cssprop --omni-calendar-box-shadow - Calendar container box shadow. * @cssprop --omni-calendar-border-radius - Calendar container border radius. * @cssprop --omni-calendar-z-index - Calendar container z-index. * * @cssprop --omni-calendar-controls-padding - Calendar control bar padding. * @cssprop --omni-calendar-controls-border-bottom - Calendar control bar border bottom. * @cssprop --omni-calendar-controls-background-color - Calendar control bar background color. * @cssprop --omni-calendar-controls-min-height - Calendar control bar minimum height. * * @cssprop --omni-calendar-control-color - Calendar control bar control color. * @cssprop --omni-calendar-control-width - Calendar control bar control width. * * @cssprop --omni-calendar-control-label-width - Calender month/year display width. * @cssprop --omni-calendar-control-label-color - Calendar month/year display color. * @cssprop --omni-calendar-control-label-font-size - Calendar month/year display font size. * @cssprop --omni-calendar-control-label-font-weight - Calendar month/year display font weight. * * @cssprop --omni-calendar-control-label-hover-background-color - Calendar month/year display background color. * * @cssprop --omni-calendar-day-grid-template-columns - Calendar day grid template columns. * @cssprop --omni-calendar-day-grid-auto-rows - Calendar day grid auto rows. * @cssprop --omni-calendar-day-grid-padding - Calendar day grid padding. * @cssprop --omni-calendar-day-grid-line-height - Calendar day grid line height. * @cssprop --omni-calendar-day-grid-background-color - Calendar day grid background color. * * @cssprop --omni-calendar-month-grid-template-columns - Calendar month grid template columns. * @cssprop --omni-calendar-month-grid-auto-rows - Calendar month grid auto rows. * @cssprop --omni-calendar-months-grid-padding - Calendar month grid padding. * @cssprop --omni-calendar-months-grid-background-color - Calendar month grid background color. * * @cssprop --omni-calendar-year-grid-template-columns - Calendar year grid template columns. * @cssprop --omni-calendar-year-grid-auto-rows - Calendar year grid auto rows. * @cssprop --omni-calendar-year-grid-padding - Calendar year grid padding. * @cssprop --omni-calendar-year-grid-background-color - Calendar year grid background color. * * @cssprop --omni-calendar-month-button-padding - Calendar month button padding. * @cssprop --omni-calendar-month-button-background-color - Calendar month button background color. * @cssprop --omni-calendar-month-button-border-color - Calendar month button border color. * @cssprop --omni-calendar-month-button-border-width - Calendar month button border width. * @cssprop --omni-calendar-month-button-border-radius - Calendar month button border radius. * @cssprop --omni-calendar-month-button-margin-left - Calendar month button margin left. * @cssprop --omni-calendar-month-button-margin-right - Calendar month button margin right. * @cssprop --omni-calendar-month-button-color - Calendar month button color * @cssprop --omni-calendar-month-button-font-family - Calendar month button font family. * @cssprop --omni-calendar-month-button-font-size - Calendar month button font size. * @cssprop --omni-calendar-month-button-font-weight - Calendar month button font weight. * @cssprop --omni-calendar-month-button-line-height - Calendar month button line height. * * @cssprop --omni-calendar-month-button-selected-border-radius - Calendar month selected border radius. * @cssprop --omni-calendar-month-button-selected-background-color - Calendar month button selected background color. * @cssprop --omni-calendar-month-button-selected-border-color - Calendar month button selected border color. * @cssprop --omni-calendar-month-button-selected-border-width - Calendar month selected border width. * @cssprop --omni-calendar-month-button-selected-color - Calendar month selected color. * * @cssprop --omni-calendar-month-button-hover-background-color - Calendar month button hover background color. * * @cssprop --omni-calendar-year-button-padding - Calendar year button padding. * @cssprop --omni-calendar-year-button-background-color - Calendar year button background color. * @cssprop --omni-calendar-year-button-border-color - Calendar year button border color. * @cssprop --omni-calendar-year-button-border-width - Calendar year button border width. * @cssprop --omni-calendar-year-button-border-radius - Calendar year button border radius. * @cssprop --omni-calendar-year-button-margin-left - Calendar year button margin left. * @cssprop --omni-calendar-year-button-margin-right - Calendar year button margin right. * @cssprop --omni-calendar-year-button-color - Calendar year button color. * @cssprop --omni-calendar-year-button-font-family - Calendar year button font family. * @cssprop --omni-calendar-year-button-font-size - Calendar year button font size. * @cssprop --omni-calendar-year-button-font-weight - Calendar year button font weight. * @cssprop --omni-calendar-year-button-line-height - Calendar year button line height. * * @cssprop --omni-calendar-year-button-selected-border-radius - Calendar selected year button border radius. * @cssprop --omni-calendar-year-button-selected-background-color - Calendar selected year button background color. * @cssprop --omni-calendar-year-button-selected-border-color - Calendar selected year button border color. * @cssprop --omni-calendar-year-button-selected-border-width - Calendar selected year button border width. * @cssprop --omni-calendar-year-button-selected-color - Calendar year button selected color. * * @cssprop --omni-calendar-year-button-hover-background-color - Calendar year button hover background color. * * @cssprop --omni-calendar-day-name-font-color - Calendar day name font color. * @cssprop --omni-calendar-day-name-font-weight - Calendar day name font weight. * @cssprop --omni-calendar-day-name-font-size - Calendar day name font size. * @cssprop --omni-calendar-day-name-width - Calendar day name width. * @cssprop --omni-calendar-day-name-height - Calendar day name height. * * @cssprop --omni-calendar-day-button-width - Calendar day button width. * @cssprop --omni-calendar-day-button-height - Calendar day button height. * * @cssprop --omni-calendar-day-button-font-size - Calendar day button font size. * @cssprop --omni-calendar-day-button-font-weight - Calendar day button font weight. * @cssprop --omni-calendar-day-button-line-height - Calendar day button line height. * @cssprop --omni-calendar-day-button-color - Calendar day button color. * * @cssprop --omni-calendar-day-button-hover-background-color - Calendar day button hover background color. * * @cssprop --omni-calendar-day-button-excluded-font-color - Calendar day button excluded color. * * @cssprop --omni-calendar-day-current-button-border - Calendar day button current border. * @cssprop --omni-calendar-day-current-button-border-radius - Calendar day button current border radius. * @cssprop --omni-calendar-day-current-button-width - Calendar day button current width. * @cssprop --omni-calendar-day-current-button-height - Calendar day button current height. * * @cssprop --omni-calendar-day-selected-button-color - Calendar day button selected color. * @cssprop --omni-calendar-day-selected-button-border-radius - Calendar day button selected border radius. * @cssprop --omni-calendar-day-selected-button-background-color - Calendar day button selected background color. * @cssprop --omni-calendar-day-selected-button-width - Calendar day button selected width. * @cssprop --omni-calendar-day-selected-button-height - Calendar day button selected height. * */ export declare class Calendar extends OmniElement { private defaultLocale; /** * The locale used for formatting the output of the Calendar. * @attr */ locale: string; /** * The minimum date inclusively allowed to be selected. * @attr [min-date] */ minDate?: string; /** * The maximum date inclusively allowed to be selected. * @attr [max-date] */ maxDate?: string; /** * The value of the Calendar component * @attr */ value?: string; private date; private _selectedMonth; private _selectedYear; private _selectedDecade; private _showState; private _months; private _days; private _updateDateVariablesUpdate; protected shouldUpdate(_changedProperties: PropertyValueMap | Map): boolean; _updateDateVariables(): void; _dateSelect(e: Event, date: DateTime): void; _changeStateSelection(): void; _goToNext(): void; _goToPrevious(): void; _selectYear(year: number): void; _selectMonth(month: number): void; _getRange(start: number, end: number, step?: number): number[]; _getDecadeInterval(year: number): number[]; private _isOutOfRange; static get styles(): import("lit").CSSResultGroup[]; render(): TemplateResult; _renderSelector(): TemplateResult<1>; _renderControlBar(): TemplateResult<1>; _renderDaysGrid(): TemplateResult<1>; _renderDayNameBar(): TemplateResult<1>; _renderCalendar(): TemplateResult<1>; _renderDays(startDate: DateTime, numberOfDays: number): TemplateResult<1>[]; _renderDay(date: DateTime): TemplateResult<1>; _renderMonthsGrid(): TemplateResult<1>; _renderMonthButtons(): TemplateResult<1>[]; _renderMonthButton(month: string, index: number): TemplateResult<1>; _renderYearsGrid(): TemplateResult<1>; _renderYearButtons(): TemplateResult<1>[]; _renderYearButton(year: number): TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'omni-calendar': Calendar; } } //# sourceMappingURL=Calendar.d.ts.map