UNPKG

@egjs/flicking

Version:

Everyday 30 million people experience. It's reliable, flexible and extendable carousel.

108 lines (107 loc) 3.89 kB
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; }