@egjs/flicking
Version:
Everyday 30 million people experience. It's reliable, flexible and extendable carousel.
108 lines (107 loc) • 3.89 kB
TypeScript
import Flicking from "../Flicking";
import Panel from "./Panel";
import PanelManager from "./PanelManager";
import StateMachine from "./StateMachine";
import MoveType from "../moves/MoveType";
import { FlickingOptions, FlickingPanel, FlickingStatus, ElementLike, EventType, TriggerCallback, Plugin, DestroyOption, BoundingBox } from "../types";
export default class Viewport {
options: FlickingOptions;
stateMachine: StateMachine;
panelManager: PanelManager;
moveType: MoveType;
private flicking;
private axes;
private panInput;
private viewportElement;
private cameraElement;
private triggerEvent;
private axesHandlers;
private currentPanel;
private nearestPanel;
private visiblePanels;
private plugins;
private panelBboxes;
private state;
constructor(flicking: Flicking, options: FlickingOptions, triggerEvent: Flicking["triggerEvent"]);
moveTo(panel: Panel, destPos: number, eventType: EventType["CHANGE"] | EventType["RESTORE"] | "", axesEvent: any, duration?: number): TriggerCallback;
moveCamera(pos: number, axesEvent?: any): void;
stopCamera: (axesEvent: any) => void;
unCacheBbox(): void;
resize(): void;
findNearestPanel(): Panel | undefined;
findNearestPanelAt(position: number): Panel | undefined;
findNearestIdenticalPanel(panel: Panel): Panel;
findShortestPositionToPanel(panel: Panel): number;
findEstimatedPosition(panel: Panel): number;
addVisiblePanel(panel: Panel): void;
enable(): void;
disable(): void;
insert(index: number, element: ElementLike | ElementLike[]): FlickingPanel[];
replace(index: number, element: ElementLike | ElementLike[]): FlickingPanel[];
remove(index: number, deleteCount?: number): FlickingPanel[];
updateAdaptiveSize(): void;
updateCameraPosition(): void;
updateBbox(): BoundingBox;
updatePlugins(): void;
destroy(option: Partial<DestroyOption>): void;
restore(status: FlickingStatus): void;
calcVisiblePanels(): Panel[];
getCurrentPanel(): Panel | undefined;
getCurrentIndex(): number;
getNearestPanel(): Panel | undefined;
getCurrentProgress(): number;
updateAxesPosition(position: number): void;
getSize(): number;
getScrollArea(): {
prev: number;
next: number;
};
isOutOfBound(): boolean;
canSetBoundMode(): boolean;
getViewportElement(): HTMLElement;
getCameraElement(): HTMLElement;
getScrollAreaSize(): number;
getRelativeHangerPosition(): number;
getHangerPosition(): number;
getCameraPosition(): number;
getPositionOffset(): number;
getCheckedIndexes(): Array<[number, number]>;
getVisiblePanels(): Panel[];
setCurrentPanel(panel: Panel): void;
setLastIndex(index: number): void;
setVisiblePanels(panels: Panel[]): void;
connectAxesHandler(handlers: {
[key: string]: (event: {
[key: string]: any;
}) => any;
}): void;
addPlugins(plugins: Plugin | Plugin[]): this;
removePlugins(plugins: Plugin | Plugin[]): this;
updateCheckedIndexes(changedRange: {
min: number;
max: number;
}): void;
appendUncachedPanelElements(panels: Panel[]): void;
private updateClonePanels;
private getVisibleIndexOf;
private build;
private setElements;
private applyCSSValue;
private setMoveType;
private setAxesInstance;
private refreshPanels;
private setDefaultPanel;
private clonePanels;
private moveToDefaultPanel;
private updateSize;
private updateOriginalPanelPositions;
private updateClonedPanelPositions;
private updateVisiblePanelPositions;
private updateScrollArea;
private checkNeedPanel;
private triggerNeedPanel;
private updateVisiblePanels;
private checkVisiblePanelChange;
private resizePanels;
private createPanInput;
}