@gez/date-time-kit
Version:
65 lines (64 loc) • 2.67 kB
TypeScript
import { type TimeGranularity } from '../../utils';
import { Ele as NumListEle } from '../num-list';
import { type BaseAttrs, type BaseEmits, UiBase } from '../web-component-base';
export declare const granularityList: readonly ["millisecond", "second", "minute", "hour"];
export type Granularity = TimeGranularity;
export declare const colOrderList: readonly ["hms", "hsm", "mhs", "msh", "shm", "smh"];
export type ColOrder = (typeof colOrderList)[number] & {
[Symbol.iterator](): IterableIterator<'h' | 'm' | 's'>;
};
export interface Attrs extends BaseAttrs {
millisecond: number;
/**
* 选择器的粒度,表示最大可选的时间单位。默认为 hour。
* 例如设置为 'minute',则表示最大只能选择到分钟,小时将被忽略。
*/
'max-granularity'?: Granularity;
/**
* 选择器的粒度,表示最小可选的时间单位。默认为 millisecond。
* 例如设置为 'minute',则表示只能选择到分钟,秒和毫秒将被忽略。
*/
'min-granularity'?: Granularity;
'col-order'?: ColOrder;
}
export type { BaseEmits };
/** 时分秒毫秒选择器 */
export declare class BaseEle<A extends Attrs, E extends BaseEmits> extends UiBase<A, E> {
protected static _style: string;
protected static _template: string;
static get observedAttributes(): string[];
get _staticEls(): {
readonly cols: HTMLElement;
readonly hCol: HTMLElement;
readonly mCol: HTMLElement;
readonly sCol: HTMLElement;
readonly lists: any[];
readonly hList: NumListEle;
readonly mList: NumListEle;
readonly sList: NumListEle;
readonly msWrapper: HTMLElement;
readonly msInput: HTMLInputElement;
};
/** 当前时间的毫秒数,范围为一天内的毫秒数(0 到 86399999),随着用户选择时实时更新 */
get millisecond(): number;
set millisecond(v: number);
get maxGranularity(): Granularity;
set maxGranularity(v: Granularity);
get minGranularity(): Granularity;
set minGranularity(v: Granularity);
get colOrder(): ColOrder;
set colOrder(v: ColOrder);
protected get _minmaxGran(): {
min: "hour" | "minute" | "second" | "millisecond";
max: "hour" | "minute" | "second" | "millisecond";
};
scrollToCurrentItem(): void;
connectedCallback(): boolean | void;
protected _onAttrChanged(name: string, oldValue: string | null, newValue: string | null): void;
private _renderCols;
private _updateGranularity;
private _updateColsValue;
private _getMsFromEle;
private _onMsInput;
private _onColsSelect;
}