@3mo/date-time-fields
Version:
Date time fields let people select dates, date-ranges, and times.
51 lines • 2.62 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'
*/
export declare abstract class FieldDateTimeBase<T> extends InputFieldComponent<T> {
open: boolean;
pickerHidden: boolean;
shortcutReferenceDate: import("@3mo/date-time/DateTime.js").DateTime;
precision: FieldDateTimePrecision;
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;
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