index.d.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. export type AnimationDirection = 1 | -1;
  2. export type AnimationSegment = [number, number];
  3. export type AnimationEventName = 'drawnFrame' | 'enterFrame' | 'loopComplete' | 'complete' | 'segmentStart' | 'destroy' | 'config_ready' | 'data_ready' | 'DOMLoaded' | 'error' | 'data_failed' | 'loaded_images';
  4. export type AnimationEventCallback<T = any> = (args: T) => void;
  5. /** Specifies the data for each event type. */
  6. export interface AnimationEvents {
  7. DOMLoaded: undefined;
  8. complete: BMCompleteEvent;
  9. config_ready: undefined;
  10. data_failed: undefined;
  11. data_ready: undefined;
  12. destroy: BMDestroyEvent;
  13. drawnFrame: BMEnterFrameEvent;
  14. enterFrame: BMEnterFrameEvent;
  15. error: undefined;
  16. loaded_images: undefined;
  17. loopComplete: BMCompleteLoopEvent;
  18. segmentStart: BMSegmentStartEvent;
  19. }
  20. export interface BMCompleteEvent {
  21. direction: number;
  22. type: "complete";
  23. }
  24. export interface BMCompleteLoopEvent {
  25. currentLoop: number;
  26. direction: number;
  27. totalLoops: number;
  28. type: "loopComplete";
  29. }
  30. export interface BMDestroyEvent {
  31. type: "destroy";
  32. }
  33. export interface BMEnterFrameEvent {
  34. /** The current time in frames. */
  35. currentTime: number;
  36. direction: number;
  37. /** The total number of frames. */
  38. totalTime: number;
  39. type: "enterFrame";
  40. }
  41. export interface BMSegmentStartEvent {
  42. firstFrame: number;
  43. totalFrames: number;
  44. type: "segmentStart";
  45. }
  46. export type AnimationItem = {
  47. name: string;
  48. isLoaded: boolean;
  49. currentFrame: number;
  50. currentRawFrame: number;
  51. firstFrame: number;
  52. totalFrames: number;
  53. frameRate: number;
  54. frameMult: number;
  55. playSpeed: number;
  56. playDirection: number;
  57. playCount: number;
  58. isPaused: boolean;
  59. autoplay: boolean;
  60. loop: boolean | number;
  61. renderer: any;
  62. animationID: string;
  63. assetsPath: string;
  64. timeCompleted: number;
  65. segmentPos: number;
  66. isSubframeEnabled: boolean;
  67. segments: AnimationSegment | AnimationSegment[];
  68. play(name?: string): void;
  69. stop(name?: string): void;
  70. togglePause(name?: string): void;
  71. destroy(name?: string): void;
  72. pause(name?: string): void;
  73. goToAndStop(value: number | string, isFrame?: boolean, name?: string): void;
  74. goToAndPlay(value: number | string, isFrame?: boolean, name?: string): void;
  75. includeLayers(data: any): void;
  76. setSegment(init: number, end: number): void;
  77. resetSegments(forceFlag: boolean): void;
  78. hide(): void;
  79. show(): void;
  80. resize(width?: number, height?: number): void;
  81. setSpeed(speed: number): void;
  82. setDirection(direction: AnimationDirection): void;
  83. setLoop(isLooping: boolean): void;
  84. playSegments(segments: AnimationSegment | AnimationSegment[], forceFlag?: boolean): void;
  85. setSubframe(useSubFrames: boolean): void;
  86. getDuration(inFrames?: boolean): number;
  87. triggerEvent<T extends AnimationEventName>(name: T, args: AnimationEvents[T]): void;
  88. addEventListener<T extends AnimationEventName>(name: T, callback: AnimationEventCallback<AnimationEvents[T]>): () => void;
  89. removeEventListener<T extends AnimationEventName>(name: T, callback?: AnimationEventCallback<AnimationEvents[T]>): void;
  90. }
  91. export type BaseRendererConfig = {
  92. imagePreserveAspectRatio?: string;
  93. className?: string;
  94. };
  95. export type SVGRendererConfig = BaseRendererConfig & {
  96. title?: string;
  97. description?: string;
  98. preserveAspectRatio?: string;
  99. progressiveLoad?: boolean;
  100. hideOnTransparent?: boolean;
  101. viewBoxOnly?: boolean;
  102. viewBoxSize?: string;
  103. focusable?: boolean;
  104. filterSize?: FilterSizeConfig;
  105. };
  106. export type CanvasRendererConfig = BaseRendererConfig & {
  107. clearCanvas?: boolean;
  108. context?: CanvasRenderingContext2D;
  109. progressiveLoad?: boolean;
  110. preserveAspectRatio?: string;
  111. dpr?: number;
  112. };
  113. export type HTMLRendererConfig = BaseRendererConfig & {
  114. hideOnTransparent?: boolean;
  115. };
  116. export type RendererType = 'svg' | 'canvas' | 'html';
  117. export type AnimationConfig<T extends RendererType = 'svg'> = {
  118. container: Element;
  119. renderer?: T;
  120. loop?: boolean | number;
  121. autoplay?: boolean;
  122. initialSegment?: AnimationSegment;
  123. name?: string;
  124. assetsPath?: string;
  125. rendererSettings?: {
  126. svg: SVGRendererConfig;
  127. canvas: CanvasRendererConfig;
  128. html: HTMLRendererConfig;
  129. }[T]
  130. audioFactory?(assetPath: string): {
  131. play(): void
  132. seek(): void
  133. playing(): void
  134. rate(): void
  135. setVolume(): void
  136. }
  137. }
  138. export type TextDocumentData = {
  139. t?: string;
  140. s?: number;
  141. f?: string;
  142. ca?: number;
  143. j?: number;
  144. tr?: number;
  145. lh?: number;
  146. ls?: number;
  147. fc?: [number, number, number];
  148. }
  149. export type AnimationConfigWithPath<T extends RendererType = 'svg'> = AnimationConfig<T> & {
  150. path?: string;
  151. }
  152. export type AnimationConfigWithData<T extends RendererType = 'svg'> = AnimationConfig<T> & {
  153. animationData?: any;
  154. }
  155. export type FilterSizeConfig = {
  156. width: string;
  157. height: string;
  158. x: string;
  159. y: string;
  160. };
  161. export type LottiePlayer = {
  162. play(name?: string): void;
  163. pause(name?: string): void;
  164. stop(name?: string): void;
  165. setSpeed(speed: number, name?: string): void;
  166. setDirection(direction: AnimationDirection, name?: string): void;
  167. searchAnimations(animationData?: any, standalone?: boolean, renderer?: string): void;
  168. loadAnimation<T extends RendererType = 'svg'>(params: AnimationConfigWithPath<T> | AnimationConfigWithData<T>): AnimationItem;
  169. destroy(name?: string): void;
  170. registerAnimation(element: Element, animationData?: any): void;
  171. setQuality(quality: string | number): void;
  172. setLocationHref(href: string): void;
  173. setIDPrefix(prefix: string): void;
  174. updateDocumentData(path: (string|number)[], documentData: TextDocumentData, index: number): void;
  175. };
  176. declare const Lottie: LottiePlayer;
  177. export default Lottie;