import Scheduler, { SchedulerParams } from './Scheduler'; import { NotUndefined } from "./common/type-utils"; export interface SwiperSchedulerParams { /** * 最小输出数组长度 * */ minCount?: number; dataSource?: T[]; defaultMarkIndex?: number; loop?: boolean; onSwiperRestart?: (detail: { swiperIndex: number; markIndex: number; key: string; source: T[]; }) => void; /** * swiperIndex 变更, 传递给swiper 来跳转 * @param detail */ onSwiperIndexChange?: (detail: { swiperIndex: number; markIndex: number; }) => void; /** * swiper 数据变更, 提供给外界重新渲染 swiper items * @param source */ onSwiperSourceChange?: (source: T[]) => void; /** * 当前的 数据索引变更, 提供给外面知道现在处于哪一条数据上 * @param detail */ onMarkIndexChange?: (detail: { markIndex: number; }) => void; /** * 当前的 数据索引变更前拦截函数 */ onBeforeMarkIndexChange?: (detail: { fromIndex: number; toIndex: number; }) => (Promise | (boolean | undefined)); } declare class SwiperScheduler extends Scheduler { dataSource: T[]; markIndexOfDelay: number; source: T[]; onSwiperRestart: SwiperSchedulerParams['onSwiperRestart']; onMarkIndexChange: SwiperSchedulerParams['onMarkIndexChange']; onSwiperIndexChange: SwiperSchedulerParams['onSwiperIndexChange']; onSwiperSourceChange: SwiperSchedulerParams['onSwiperSourceChange']; constructor(params: SwiperSchedulerParams); get circular(): boolean; updateDataSource(value: T[]): T[]; nextSection(): Promise<{ swiperIndex: number; markIndex: number; }>; prevSection(): Promise<{ swiperIndex: number; markIndex: number; }>; setup(params: Partial>): void; /** * 判断当前swiperIndex是否是active状态 * @param index */ getActiveStatusBySwiperIndex(index: number): boolean; toSection(dataIndex: number): Promise<{ swiperIndex: number; markIndex: number; }>; offsetSection(step: number): Promise<{ swiperIndex: number; markIndex: number; }>; emitRestart({ containerIndex, dataIndex }: Parameters>[0]): T[]; emitSwiperIndexChange({ containerIndex, dataIndex }: Parameters>[0]): void; emitMarkIndexChange({ dataIndex }: Parameters>[0]): void; recompute(): T[]; private setMarkIndex; private setSwiperIndex; private setSource; private updateMarkIndexOfDelay; } export default SwiperScheduler;