UNPKG

@ysx-libs/mobile-picker

Version:
48 lines (47 loc) 1.64 kB
export type ValueOrNull<T> = T | null; export type EventHandler<T = Event> = (event: T) => void; export type ClientCoordinate = { clientX: number; clientY: number; }; export type PickerDefScrollShape = 'scale' | 'flat' | 'rotate'; export type PointEventType = PointerEvent | MouseEvent | TouchEvent; export interface MomentumConfig { time: number; distance: number; duration: number; deceleration: number; } export interface ClickToSelectConfig { duration: number; } export interface InnerClickToSelectConfig extends ClickToSelectConfig { enable: boolean; } export interface MouseWheelConfig { speed: number; discreteTime: number; } export interface InnerMouseWheelConfig extends MouseWheelConfig { enable: boolean; } export type ShapeFunc = (y: number, itemHeight: number, items?: HTMLCollection) => void; export interface PickerBaseOptions { usePointerEvents: boolean; scrollShape: PickerDefScrollShape | ShapeFunc; moveThreshold: number; momentum: MomentumConfig | false; itemClassName: string; clickToSelect: boolean | ClickToSelectConfig; mouseWheel: boolean | MouseWheelConfig; onlyLeftButton: boolean; } export type ChangeTrigger = 'click' | 'drag' | 'init' | 'api' | 'wheel' | ''; export interface PickerViewOptions extends PickerBaseOptions { selectedIndex: number; onChange(event: number, trigger: ChangeTrigger): void; } export interface PickerOptions extends PickerBaseOptions { selectedIndexes: number[]; onChange?(event: number[], trigger: ChangeTrigger, colIndex: number): void; }