@egjs/flicking
Version:
Everyday 30 million people experience. It's reliable, flexible and extendable carousel.
59 lines (58 loc) • 2.15 kB
TypeScript
import { MOVE_TYPE } from "../constants/values";
import { FreeControlOptions, SnapControlOptions, StrictControlOptions } from "../control";
import Flicking from "../Flicking";
import { ValueOf } from "./internal";
/**
* HTML `string` of single/mutiple HTMLElement, or an instance of `HTMLElement`
*/
export declare type ElementLike = string | HTMLElement;
/**
* Flicking Plugin
*/
export interface Plugin {
/** Initialize the plugin */
init(flicking: Flicking): void;
/** Destroy plugin and detach all events binded */
destroy(): void;
/** Update plugin to match current Flicking's status */
update(flicking: Flicking): void;
}
/**
* Flicking Status returned by {@link Flicking.getStatus}
*/
export interface Status {
/** An index of the active panel */
index?: number;
/** A info to restore camera {@link Camera.position | position} */
position?: {
/** An index of the panel camera is located at */
panel: number;
/** A progress of the camera position inside the panel */
progressInPanel: number;
};
/** An offset to visible panel's original index. This value is available only when `visiblePanelsOnly` is `true` */
visibleOffset?: number;
/** A data array of panels */
panels: Array<{
/** An index of the panel */
index: number;
/** An `outerHTML` of the panel element */
html?: string;
}>;
}
export declare type MoveTypeOptions<T extends ValueOf<typeof MOVE_TYPE>> = T extends typeof MOVE_TYPE.SNAP ? [T] | [T, Partial<SnapControlOptions>] : T extends typeof MOVE_TYPE.FREE_SCROLL ? [T] | [T, Partial<FreeControlOptions>] : T extends typeof MOVE_TYPE.STRICT ? [T] | [T, Partial<StrictControlOptions>] : [T];
/**
* A current parameters of the Camera for updating {@link AxesController}
* @readonly
*/
export interface ControlParams {
/** A moveable range for Camera */
range: {
min: number;
max: number;
};
/** Current camera position */
position: number;
/** A Boolean indicating whether the {@link Flicking.circular | circular} option is enabled */
circular: boolean;
}