@3mo/date-time-fields
Version:
Date time fields let people select dates, date-ranges, and times.
58 lines • 3.05 kB
TypeScript
import { type HTMLTemplateResult } from '@a11d/lit';
import { InputFieldComponent } from '@3mo/field';
import { type MaterialIcon } from '@3mo/icon';
import { FieldDateTimePrecision } from './FieldDateTimePrecision.js';
import type { Calendar } from './selection/index.js';
/**
* @attr open - Whether the date picker is open
* @attr pickerHidden - Hide the date picker
* @attr shortcutReferenceDate - The date to use as a reference for shortcuts
* @attr precision - The precision of the date picker. Defaults to 'minute'
* @attr min - The minimum selectable date (inclusive). Dates before this are disabled.
* @attr max - The maximum selectable date (inclusive). Dates after this are disabled.
* @attr dateDisabled - A function that determines whether a date should be disabled. Receives a DateTime object and should return a boolean.
*/
export declare abstract class FieldDateTimeBase<T> extends InputFieldComponent<T> {
open: boolean;
pickerHidden: boolean;
shortcutReferenceDate: import("@3mo/date-time/DateTime.js").DateTime;
precision: FieldDateTimePrecision;
min?: DateTime;
max?: DateTime;
dateDisabled?: (date: DateTime) => boolean;
navigationDate: import("@3mo/date-time/DateTime.js").DateTime;
protected readonly calendar?: Calendar;
protected connected(): void;
protected disconnected(): void;
private handleLanguageChange;
protected readonly calendarIconButtonIcon: MaterialIcon;
protected abstract get selectedDate(): DateTime | undefined;
protected get formatOptions(): Intl.DateTimeFormatOptions;
protected valueUpdated(): void;
protected abstract resetNavigationDate(): void;
protected handleChange(value?: T, e?: Event): void;
protected get isActive(): boolean;
protected get placeholder(): string;
static get styles(): import("@a11d/lit").CSSResult;
protected get template(): HTMLTemplateResult;
protected get endSlotTemplate(): HTMLTemplateResult;
protected get inputTemplate(): HTMLTemplateResult;
protected abstract inputValueToValue(value: string): T | undefined;
protected abstract valueToInputValue(value: T | undefined): string;
private get clearIconButtonTemplate();
protected get calendarIconButtonTemplate(): HTMLTemplateResult;
protected get popoverTemplate(): HTMLTemplateResult;
protected get popoverSelectionTemplate(): HTMLTemplateResult;
protected abstract get presetsTemplate(): HTMLTemplateResult;
protected getPresetTemplate(label: string, value: () => T): HTMLTemplateResult;
private isPresetDisabled;
protected get dateTemplate(): HTMLTemplateResult;
protected get calendarTemplate(): HTMLTemplateResult;
protected abstract get calendarValue(): DateTimeRange | undefined;
private get timeTemplate();
private get hourListTemplate();
private get minuteListTemplate();
private get secondListTemplate();
protected handleSelectedDateChange(date: DateTime, precision: FieldDateTimePrecision): void;
}
//# sourceMappingURL=FieldDateTimeBase.d.ts.map