UNPKG

@gez/date-time-kit

Version:

90 lines (89 loc) 3.58 kB
import { type DateTimeGranularity } from '../../utils'; import { type Ele as CalendarBaseEle, type Weeks } from '../calendar'; import { Ele as HhMmSsMsSelectorEle } from '../hhmmss-ms-list-grp/selector'; import { type BaseAttrs, type BaseEmits, UiBase } from '../web-component-base'; import { Ele as YyyyMmNavEle } from '../yyyymm-nav'; export declare const granularityList: readonly ["millisecond", "second", "minute", "hour", "day", "month", "year"]; export type Granularity = DateTimeGranularity; export interface Attrs extends BaseAttrs { /** * The start time of the calendar display range. * @type {`string | number`} A value that can be passed to the Date constructor. * @default Date.now() */ 'time-start'?: string | number; /** * The end time of the calendar display range. * @type {`string | number`} A value that can be passed to the Date constructor. * @default 'time-start' */ 'time-end': string | number; /** * 选择器的粒度,表示最小可选的时间单位。默认为 millisecond。 * 例如设置为 'minute',则表示只能选择到分钟,秒和毫秒将被忽略。忽略的时间单位视情况重置为 0 或 23 或 59 或 999。 */ 'min-granularity'?: Granularity; /** * Set which day of the week is the first day. * @type `'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'` * @default 'sun' */ 'week-start-at'?: Weeks; } export interface Emits extends BaseEmits { change: { oldStartTime: Date; oldEndTime: Date; newStartTime: Date; newEndTime: Date; }; } /** * 时间段选择器(两个日历) * * 存在一个 timeFormatter 方法,可以重写该方法以自定义时分秒毫秒的回显格式。 */ export declare class Ele extends UiBase<Attrs, Emits> { static readonly tagName: "dt-period-selector"; protected static _style: string; protected static _template: string; static get observedAttributes(): string[]; get timeStart(): number | string | Date; set timeStart(val: number | string | Date); get timeEnd(): number | string | Date; set timeEnd(val: number | string | Date); get weekStartAt(): Weeks; set weekStartAt(val: Weeks); get minGranularity(): Granularity; set minGranularity(val: Granularity); get _staticEls(): { readonly allNav: any[]; readonly startNav: YyyyMmNavEle; readonly endNav: YyyyMmNavEle; readonly calendars: any[]; readonly startCalendar: CalendarBaseEle; readonly endCalendar: CalendarBaseEle; readonly timeSelectors: any[]; readonly startTimeSelector: HhMmSsMsSelectorEle; readonly endTimeSelector: HhMmSsMsSelectorEle; }; private _selectedDate; connectedCallback(): void; protected _onScreenSizeChanged(isSmall: boolean): void; protected _onAttrChanged(name: string, oldValue: string | null, newValue: string | null): void; private _updateNavCtrlBtn; private _render; private _updateDateEcho; private _getTimeSelectorMs; private _updateDatePoint; private _onCalendarSelect; private _onCalendarItemHover; abortSelecting(): void; private _onNavChange; private _onNavOpenToggle; private _onTimeSelectorChange; showCalendarDatePoint(): void; dateFormatter: (time: Date, minGranularity: Granularity, isSmall: boolean) => string; get timeFormatter(): HhMmSsMsSelectorEle["timeFormatter"]; set timeFormatter(fn: HhMmSsMsSelectorEle['timeFormatter']); }