UNPKG

tdesign-vue

Version:
99 lines (98 loc) 3.69 kB
import Vue from 'vue'; import { Instance } from '@popperjs/core'; import dayjs from 'dayjs'; import { TdTimePickerProps, TdTimeRangePickerProps } from './type'; export declare type TimePickerProps = TdTimePickerProps; export declare type TimeRangePickerProps = TdTimeRangePickerProps; export * from './type'; export declare type TimeInputType = 'hour' | 'minute' | 'second' | 'meridiem'; export declare enum KeyboardDirection { left = 37, up = 38, right = 39, down = 40 } export declare enum EPickerCols { hour = "hour", minute = "minute", second = "second", meridiem = "meridiem" } export interface InputTime { hour: number | string; minute?: number | string; second?: number | string; meridiem: 'AM' | 'PM' | string; } interface TimePickerSetInputValue { (val: dayjs.Dayjs | undefined): InputTime | undefined; } interface TimePickerDayjs2InputTime { (val: dayjs.Dayjs): InputTime; } export interface TimePickerInstance extends Vue { setInputValue: TimePickerSetInputValue; dayjs2InputTime: TimePickerDayjs2InputTime; formatString: string; } export interface PickerData { hour: number | string; minute?: number | string; second?: number | string; meridiem?: 'AM' | 'PM'; } export interface InputEvent extends Event { data?: string; target: HTMLInputElement; } export interface TimeInputEvent { type: TimeInputType; value: number | string; index?: number; } export interface TimePickerPanelInstance extends Vue { renderFooter: () => HTMLElement; renderBody: () => HTMLElement; confirmBtnClick?: () => void; nowAction?: () => void; renderSinglePicker: (index: number) => HTMLElement; handleTimePick: (col: EPickerCols, time: string | number, index: number) => void; scrollToTime: (colIndex: number, col: EPickerCols, time: number | string, behavior: ScrollBehavior) => void; panelColUpdate: () => void; classNames: Array<string>; colValues: Array<dayjs.Dayjs>; cols: Array<EPickerCols>; formatField: Record<string, string>; sectionComponentName: string; rangePicker: boolean; panel: Instance; isFooterDisplay: boolean; localeMeridiems: Array<string>; showNowTime: boolean; } export interface TimePickerPanelColInstance extends Vue { renderScrollers: () => Array<HTMLElement>; renderScroller: (col: EPickerCols) => HTMLElement; renderActiveMask: () => HTMLElement; scrollToTime: (col: EPickerCols, time: number | string, behavior?: ScrollBehavior) => void; getTimeItemHeight: (col: EPickerCols) => number; generateColTime: (col: EPickerCols) => Array<number | string>; generateTimeList: (num: number, step: number) => Array<number>; generateColRows: (col: EPickerCols) => Array<HTMLElement>; calcScrollYDistance: (index: number) => number; calculateTimeIdx(time: number | string, step: number | string, type: EPickerCols): number; splitValue: Record<EPickerCols, number | string>; timeItemCanUsed: (col: EPickerCols, time: string | number) => boolean; handleTimeItemClick: (e: MouseEvent, col: EPickerCols, time: number | string) => void; handleScroll: (col: EPickerCols) => void; isCurrent: (col: EPickerCols, colItem: string | number) => boolean; updateTimeScrollPos: () => void; closestLookup: (availableArr: Array<any>, x: number, step: number) => number; disableFilter: (preIdx: number, col: EPickerCols) => any; getScrollDistance: (col: EPickerCols, time: number | string) => number; valStr: string; isPm: boolean; currentTimes: [number, number, number]; timeArr: [string, string, string]; timeItemMargin: number; }