@gez/date-time-kit
Version:
62 lines (61 loc) • 2.45 kB
TypeScript
import { type DateGranularity } from '../../utils';
import { Ele as NumListEle } from '../num-list';
import { type BaseAttrs, type BaseEmits, UiBase } from '../web-component-base';
export declare const granularityList: readonly ["day", "month", "year"];
export type Granularity = DateGranularity;
export declare const colOrderList: readonly ["ymd", "ydm", "myd", "mdy", "dym", "dmy"];
export type ColOrder = (typeof colOrderList)[number] & {
[Symbol.iterator](): IterableIterator<'y' | 'm' | 'd'>;
};
export interface Attrs extends BaseAttrs {
millisecond: number;
/**
* 选择器的粒度,表示最大可选的时间单位。默认为 year。
* 例如设置为 'month',则表示最大只能选择到月份,年将被忽略。
*/
'max-granularity'?: Granularity;
/**
* 选择器的粒度,表示最小可选的时间单位。默认为 second。
* 例如设置为 'month',则表示只能选择到月份,日会将被忽略。
*/
'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 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);
get _staticEls(): {
readonly cols: HTMLElement;
readonly yCol: HTMLElement;
readonly mCol: HTMLElement;
readonly dCol: HTMLElement;
readonly lists: any[];
readonly yList: NumListEle;
readonly mList: NumListEle;
readonly dList: NumListEle;
};
protected get _minmaxGran(): {
min: "month" | "year" | "day";
max: "month" | "year" | "day";
};
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 _onColsSelect;
}