UNPKG

2.63 kBTypeScriptView Raw
1import type { LitElement, PropertyValues } from 'lit';
2import type { DateTimeFormatter } from 'nodemod/dist/calendar/typings.js';
3import type { startViews } from './constants.js';
4import type { DatePicker } from './date-picker/date-picker.js';
5import type { keyArrowDown, keyArrowLeft, keyArrowRight, keyArrowUp, keyEnd, keyEnter, keyHome, keyPageDown, keyPageUp, keySpace, keyTab } from './key-values.js';
6import type { DatePickerMinMaxProperties, DatePickerMixinProperties, ElementMixinProperties } from './mixins/typings.js';
7import type { Constructor } from './utility-typings.js';
8export type ChangedProperties<T = Record<string, unknown>> = PropertyValues & Map<keyof T, T[keyof T]>;
9export interface CustomEventAction<T extends string, CustomEventDetail> {
10 detail: CustomEventDetail;
11 type: T;
12}
13export interface CustomEventDetail {
14 ['date-updated']: CustomEventAction<'date-updated', CustomEventDetailDateUpdated>;
15 ['first-updated']: CustomEventAction<'first-updated', CustomEventDetailFirstUpdated>;
16 ['year-updated']: CustomEventAction<'year-updated', CustomEventDetailYearUpdated>;
17}
18interface CustomEventDetailDateUpdated extends KeyEvent, DatePickerValues {
19}
20interface CustomEventDetailFirstUpdated extends DatePickerValues {
21 focusableElements: HTMLElement[];
22}
23interface CustomEventDetailYearUpdated {
24 year: number;
25}
26export interface DatePickerProperties extends DatePickerMinMaxProperties, DatePickerMixinProperties, ElementMixinProperties {
27}
28type DatePickerValues = Required<Pick<DatePicker, 'value' | 'valueAsDate' | 'valueAsNumber'>>;
29export interface Formatters extends Pick<DatePicker, 'locale'> {
30 dayFormat: DateTimeFormatter;
31 fullDateFormat: DateTimeFormatter;
32 longWeekdayFormat: DateTimeFormatter;
33 narrowWeekdayFormat: DateTimeFormatter;
34 longMonthFormat: DateTimeFormatter;
35 longMonthYearFormat: DateTimeFormatter;
36 dateFormat: DateTimeFormatter;
37 yearFormat: DateTimeFormatter;
38}
39export type InferredFromSet<SetType> = SetType extends Set<infer T> ? T : never;
40interface KeyEvent {
41 isKeypress: boolean;
42 key?: SupportedKey;
43}
44export type LitConstructor = Constructor<LitElement>;
45export type StartView = StartViewTuple[number];
46export type StartViewTuple = typeof startViews;
47export type SupportedKey = typeof keyArrowDown | typeof keyArrowLeft | typeof keyArrowRight | typeof keyArrowUp | typeof keyEnd | typeof keyEnter | typeof keyHome | typeof keyPageDown | typeof keyPageUp | typeof keySpace | typeof keyTab;
48export interface ValueUpdatedEvent extends KeyEvent {
49 value: string;
50}
51export {};
52//# sourceMappingURL=typings.d.ts.map
\No newline at end of file