UNPKG

lottie-web

Version:

After Effects plugin for exporting animations to SVG + JavaScript or canvas + JavaScript

149 lines (134 loc) 4.85 kB
export type AnimationDirection = 1 | -1; export type AnimationSegment = [number, number]; export type AnimationEventName = 'enterFrame' | 'loopComplete' | 'complete' | 'segmentStart' | 'destroy' | 'config_ready' | 'data_ready' | 'DOMLoaded' | 'error' | 'data_failed' | 'loaded_images'; export type AnimationEventCallback<T = any> = (args: T) => void; export type AnimationItem = { name: string; isLoaded: boolean; currentFrame: number; currentRawFrame: number; firstFrame: number; totalFrames: number; frameRate: number; frameMult: number; playSpeed: number; playDirection: number; playCount: number; isPaused: boolean; autoplay: boolean; loop: boolean | number; renderer: any; animationID: string; assetsPath: string; timeCompleted: number; segmentPos: number; isSubframeEnabled: boolean; segments: AnimationSegment | AnimationSegment[]; play(name?: string): void; stop(name?: string): void; togglePause(name?: string): void; destroy(name?: string): void; pause(name?: string): void; goToAndStop(value: number | string, isFrame?: boolean, name?: string): void; goToAndPlay(value: number | string, isFrame?: boolean, name?: string): void; includeLayers(data: any): void; setSegment(init: number, end: number): void; resetSegments(forceFlag: boolean): void; hide(): void; show(): void; resize(): void; setSpeed(speed: number): void; setDirection(direction: AnimationDirection): void; playSegments(segments: AnimationSegment | AnimationSegment[], forceFlag?: boolean): void; setSubframe(useSubFrames: boolean): void; getDuration(inFrames?: boolean): number; triggerEvent<T = any>(name: AnimationEventName, args: T): void; addEventListener<T = any>(name: AnimationEventName, callback: AnimationEventCallback<T>): () => void; removeEventListener<T = any>(name: AnimationEventName, callback?: AnimationEventCallback<T>): void; } export type BaseRendererConfig = { imagePreserveAspectRatio?: string; className?: string; }; export type SVGRendererConfig = BaseRendererConfig & { title?: string; description?: string; preserveAspectRatio?: string; progressiveLoad?: boolean; hideOnTransparent?: boolean; viewBoxOnly?: boolean; viewBoxSize?: string; focusable?: boolean; filterSize?: FilterSizeConfig; }; export type CanvasRendererConfig = BaseRendererConfig & { clearCanvas?: boolean; context?: CanvasRenderingContext2D; progressiveLoad?: boolean; preserveAspectRatio?: string; }; export type HTMLRendererConfig = BaseRendererConfig & { hideOnTransparent?: boolean; }; export type RendererType = 'svg' | 'canvas' | 'html'; export type AnimationConfig<T extends RendererType = 'svg'> = { container: Element; renderer?: T; loop?: boolean | number; autoplay?: boolean; initialSegment?: AnimationSegment; name?: string; assetsPath?: string; rendererSettings?: { svg: SVGRendererConfig; canvas: CanvasRendererConfig; html: HTMLRendererConfig; }[T] audioFactory?(assetPath: string): { play(): void seek(): void playing(): void rate(): void setVolume(): void } } export type TextDocumentData = { t?: string; s?: number; f?: string; ca?: number; j?: number; tr?: number; lh?: number; ls?: number; fc?: [number, number, number]; } export type AnimationConfigWithPath<T extends RendererType = 'svg'> = AnimationConfig<T> & { path?: string; } export type AnimationConfigWithData<T extends RendererType = 'svg'> = AnimationConfig<T> & { animationData?: any; } export type FilterSizeConfig = { width: string; height: string; x: string; y: string; }; export type LottiePlayer = { play(name?: string): void; pause(name?: string): void; stop(name?: string): void; setSpeed(speed: number, name?: string): void; setDirection(direction: AnimationDirection, name?: string): void; searchAnimations(animationData?: any, standalone?: boolean, renderer?: string): void; loadAnimation<T extends RendererType = 'svg'>(params: AnimationConfigWithPath<T> | AnimationConfigWithData<T>): AnimationItem; destroy(name?: string): void; registerAnimation(element: Element, animationData?: any): void; setQuality(quality: string | number): void; setLocationHref(href: string): void; setIDPrefix(prefix: string): void; updateDocumentData(path: (string|number)[], documentData: TextDocumentData, index: number): void; }; declare const Lottie: LottiePlayer; export default Lottie;