import { PickerColumn } from './type'; import { KeysType } from '../common'; export interface PickerOptions { defaultIndex?: number; keys?: KeysType; defaultPickerColumns?: PickerColumn; el: HTMLElement | HTMLDivElement | HTMLUListElement; onChange: (index: number) => void; swipeDuration?: string | number; prefixCls: string; } export declare function stopPropagation(event: Event): void; export declare function preventDefault(event: Event, isStopPropagation?: boolean): void; /** * constant var */ export declare const DEFAULT_ITEM_HEIGHT = 40; export declare const ANIMATION_TIME_LIMIT = 460; export declare const ANIMATION_DISTANCE_LIMIT = 15; /** * @name picker * @description 阻尼参数来源iscroll5,灵感来自mui.picker * @param {[HTMLDivElement]} el [picker-item的DOM元素] * @param {[Function]} onChange [发生change事件时候的回调] * @param {[Number]} defaultIndex [picker-item开始的索引值] */ declare class Picker { holder: HTMLElement | HTMLUListElement; options: PickerOptions; list: HTMLUListElement | null; elementItems: HTMLLIElement[]; height: number; curIndex: number; itemClassName: string; itemSelectedClassName: string; itemHeight: number; lastMoveTime: number; lastMoveStart: number; stopInertiaMove: boolean; startY: number; isPicking: boolean; offsetYOfStartBound: number; offsetYOfEndBound: number; offsetY: number; offsetYOfStart: number; offsetYOfEnd: number; curValue: string | null; onChange: (index: number) => void; itemGroupHeight: number; indicatorOffset: number; swipeDuration?: number | string; pickerColumns: PickerColumn; prefixCls: string; constructor(options: PickerOptions); init(): void; /** * @description 获取所有的列表DOM元素 */ updateItems(): void; /** * @description 初始化滚动参数 */ initScrollParams(): void; bindEvent(): void; touchStartHandler(event: TouchEvent): void; getCount(): number; getRange(thresholdA?: number, thresholdB?: number): { min: number; max: number; }; touchMoveHandler(event: TouchEvent): void; touchEndHandler(event: TouchEvent): void; /** * @description 更新惯性参数 * @param event * @param isStart */ updateInertiaParams(event: TouchEvent, isStart: boolean): void; /** * @description 根据计算的物理惯性距离滚动 * @param now * @param startOffsetY * @param dist * @param duration */ scrollDist(now: number, startOffsetY: number, dist: number, duration: number): void; /** * @description 更新picker,一般当数据变化需要ui更新的时候调用 */ update(options?: any): void; /** * @description 更新picker索引,数据变化时调用 * @param index * @param duration */ updateIndex(index: number, options?: any): void; /** * @description 更新数据源 */ updateOptions(options?: PickerColumn): void; /** * @description 获取当前索引 */ getCurIndex(): number; /** * @description 适配3d, TBD * @param index */ fix3d(index: number): void; /** * @description 设置item样式 */ setSelectedClassName(): void; /** * 设置当前picker的滚动位移 * @param offsetY */ setOffsetY(offsetY: number): void; /** * @description 结束滚动时的回调 */ endScroll(): void; destroy(): void; } export default Picker;