@lumen5/lottie-web 5.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/.babelrc.json +3 -0
  2. package/.eslintrc.json +46 -0
  3. package/.gitattributes +1 -0
  4. package/.github/FUNDING.yml +1 -0
  5. package/.github/ISSUE_TEMPLATE.md +22 -0
  6. package/.github/workflows/publish.yml +26 -0
  7. package/.github/workflows/testAnimations.yml +29 -0
  8. package/.github/workflows/updateScreenshots.yml +34 -0
  9. package/CHANGELOG.md +601 -0
  10. package/History.md +1230 -0
  11. package/LICENSE.md +21 -0
  12. package/README.md +351 -0
  13. package/bower.json +31 -0
  14. package/build/old_parser/bodymovin_parser.jsx +3023 -0
  15. package/build/old_parser/helperProject.aep +0 -0
  16. package/build/player/cjs/lottie.min.js +18229 -0
  17. package/build/player/cjs/lottie_canvas.min.js +16465 -0
  18. package/build/player/cjs/lottie_html.min.js +16312 -0
  19. package/build/player/cjs/lottie_light.min.js +11584 -0
  20. package/build/player/cjs/lottie_light_canvas.min.js +13518 -0
  21. package/build/player/cjs/lottie_light_html.min.js +12843 -0
  22. package/build/player/cjs/lottie_svg.min.js +15053 -0
  23. package/build/player/esm/lottie.min.js +18225 -0
  24. package/build/player/esm/lottie_canvas.min.js +16461 -0
  25. package/build/player/esm/lottie_html.min.js +16308 -0
  26. package/build/player/esm/lottie_light.min.js +11580 -0
  27. package/build/player/esm/lottie_light_canvas.min.js +13514 -0
  28. package/build/player/esm/lottie_light_html.min.js +12839 -0
  29. package/build/player/esm/lottie_svg.min.js +15049 -0
  30. package/build/player/lottie.d.ts +5 -0
  31. package/build/player/lottie.js +17151 -0
  32. package/build/player/lottie.min.js +1 -0
  33. package/build/player/lottie_canvas.js +15506 -0
  34. package/build/player/lottie_canvas.min.js +1 -0
  35. package/build/player/lottie_canvas_worker.js +18196 -0
  36. package/build/player/lottie_canvas_worker.min.js +15 -0
  37. package/build/player/lottie_html.d.ts +5 -0
  38. package/build/player/lottie_html.js +15354 -0
  39. package/build/player/lottie_html.min.js +1 -0
  40. package/build/player/lottie_light.d.ts +5 -0
  41. package/build/player/lottie_light.js +10854 -0
  42. package/build/player/lottie_light.min.js +1 -0
  43. package/build/player/lottie_light_canvas.d.ts +5 -0
  44. package/build/player/lottie_light_canvas.js +12666 -0
  45. package/build/player/lottie_light_canvas.min.js +1 -0
  46. package/build/player/lottie_light_html.d.ts +5 -0
  47. package/build/player/lottie_light_html.js +12029 -0
  48. package/build/player/lottie_light_html.min.js +1 -0
  49. package/build/player/lottie_svg.d.ts +5 -0
  50. package/build/player/lottie_svg.js +14179 -0
  51. package/build/player/lottie_svg.min.js +1 -0
  52. package/build/player/lottie_worker.js +18196 -0
  53. package/build/player/lottie_worker.min.js +15 -0
  54. package/docs/json/animation.json +101 -0
  55. package/docs/json/effects/angle.json +40 -0
  56. package/docs/json/effects/checkBox.json +40 -0
  57. package/docs/json/effects/color.json +40 -0
  58. package/docs/json/effects/customValue.json +4 -0
  59. package/docs/json/effects/dropDown.json +40 -0
  60. package/docs/json/effects/fill.json +55 -0
  61. package/docs/json/effects/group.json +41 -0
  62. package/docs/json/effects/index.json +51 -0
  63. package/docs/json/effects/layer.json +33 -0
  64. package/docs/json/effects/noValue.json +1 -0
  65. package/docs/json/effects/point.json +43 -0
  66. package/docs/json/effects/proLevels.json +130 -0
  67. package/docs/json/effects/slider.json +40 -0
  68. package/docs/json/effects/stroke.json +64 -0
  69. package/docs/json/effects/tint.json +43 -0
  70. package/docs/json/effects/tritone.json +46 -0
  71. package/docs/json/helpers/blendMode.json +71 -0
  72. package/docs/json/helpers/boolean.json +14 -0
  73. package/docs/json/helpers/composite.json +15 -0
  74. package/docs/json/helpers/lineCap.json +19 -0
  75. package/docs/json/helpers/lineJoin.json +19 -0
  76. package/docs/json/helpers/mask.json +80 -0
  77. package/docs/json/helpers/textBased.json +23 -0
  78. package/docs/json/helpers/textGrouping.json +23 -0
  79. package/docs/json/helpers/textShape.json +31 -0
  80. package/docs/json/helpers/transform.json +146 -0
  81. package/docs/json/layers/image.json +113 -0
  82. package/docs/json/layers/null.json +87 -0
  83. package/docs/json/layers/preComp.json +118 -0
  84. package/docs/json/layers/shape.json +157 -0
  85. package/docs/json/layers/solid.json +120 -0
  86. package/docs/json/layers/text.json +523 -0
  87. package/docs/json/properties/doubleKeyframe.json +50 -0
  88. package/docs/json/properties/multiDimensional.json +21 -0
  89. package/docs/json/properties/multiDimensionalKeyframed.json +35 -0
  90. package/docs/json/properties/offsetKeyframe.json +53 -0
  91. package/docs/json/properties/shape.json +27 -0
  92. package/docs/json/properties/shapeKeyframed.json +35 -0
  93. package/docs/json/properties/shapeProp.json +50 -0
  94. package/docs/json/properties/shapePropKeyframe.json +54 -0
  95. package/docs/json/properties/value.json +21 -0
  96. package/docs/json/properties/valueKeyframe.json +33 -0
  97. package/docs/json/properties/valueKeyframed.json +25 -0
  98. package/docs/json/shapes/ellipse.json +54 -0
  99. package/docs/json/shapes/fill.json +48 -0
  100. package/docs/json/shapes/gFill.json +107 -0
  101. package/docs/json/shapes/gStroke.json +137 -0
  102. package/docs/json/shapes/group.json +89 -0
  103. package/docs/json/shapes/merge.json +27 -0
  104. package/docs/json/shapes/rect.json +66 -0
  105. package/docs/json/shapes/repeater.json +63 -0
  106. package/docs/json/shapes/round.json +35 -0
  107. package/docs/json/shapes/shape.json +40 -0
  108. package/docs/json/shapes/star.json +133 -0
  109. package/docs/json/shapes/stroke.json +78 -0
  110. package/docs/json/shapes/transform.json +102 -0
  111. package/docs/json/shapes/trim.json +61 -0
  112. package/docs/json/sources/chars.json +61 -0
  113. package/docs/json/sources/image.json +31 -0
  114. package/docs/json/sources/precomp.json +39 -0
  115. package/index.d.ts +197 -0
  116. package/package.json +54 -0
  117. package/player/index.html +115 -0
  118. package/player/js/3rd_party/BezierEaser.js +158 -0
  119. package/player/js/3rd_party/howler.js +5 -0
  120. package/player/js/3rd_party/seedrandom.js +237 -0
  121. package/player/js/3rd_party/transformation-matrix.js +449 -0
  122. package/player/js/EffectsManager.js +83 -0
  123. package/player/js/animation/AnimationItem.js +809 -0
  124. package/player/js/animation/AnimationItemWorkerOverride.js +157 -0
  125. package/player/js/animation/AnimationManager.js +248 -0
  126. package/player/js/animation/AnimationManagerWorkerOverride.js +201 -0
  127. package/player/js/effects/EffectsManagerPlaceholder.js +5 -0
  128. package/player/js/effects/SliderEffect.js +37 -0
  129. package/player/js/effects/TransformEffect.js +44 -0
  130. package/player/js/elements/AudioElement.js +102 -0
  131. package/player/js/elements/BaseElement.js +78 -0
  132. package/player/js/elements/BaseTextElement.js +4 -0
  133. package/player/js/elements/CompElement.js +107 -0
  134. package/player/js/elements/FootageElement.js +47 -0
  135. package/player/js/elements/ImageElement.js +42 -0
  136. package/player/js/elements/NullElement.js +39 -0
  137. package/player/js/elements/ShapeElement.js +76 -0
  138. package/player/js/elements/SolidElement.js +23 -0
  139. package/player/js/elements/TextElement.js +94 -0
  140. package/player/js/elements/canvasElements/CVBaseElement.js +167 -0
  141. package/player/js/elements/canvasElements/CVCompBaseElement.js +11 -0
  142. package/player/js/elements/canvasElements/CVCompElement.js +57 -0
  143. package/player/js/elements/canvasElements/CVContextData.js +239 -0
  144. package/player/js/elements/canvasElements/CVEffects.js +57 -0
  145. package/player/js/elements/canvasElements/CVImageElement.js +58 -0
  146. package/player/js/elements/canvasElements/CVMaskElement.js +72 -0
  147. package/player/js/elements/canvasElements/CVShapeElement.js +521 -0
  148. package/player/js/elements/canvasElements/CVSolidElement.js +30 -0
  149. package/player/js/elements/canvasElements/CVTextElement.js +244 -0
  150. package/player/js/elements/canvasElements/effects/CVGaussianBlurEffect.js +29 -0
  151. package/player/js/elements/canvasElements/effects/CVTransformEffect.js +9 -0
  152. package/player/js/elements/helpers/FrameElement.js +54 -0
  153. package/player/js/elements/helpers/HierarchyElement.js +52 -0
  154. package/player/js/elements/helpers/RenderableDOMElement.js +72 -0
  155. package/player/js/elements/helpers/RenderableElement.js +87 -0
  156. package/player/js/elements/helpers/TransformElement.js +140 -0
  157. package/player/js/elements/helpers/shapes/CVShapeData.js +33 -0
  158. package/player/js/elements/helpers/shapes/ProcessedElement.js +6 -0
  159. package/player/js/elements/helpers/shapes/SVGElementsRenderer.js +239 -0
  160. package/player/js/elements/helpers/shapes/SVGFillStyleData.js +18 -0
  161. package/player/js/elements/helpers/shapes/SVGGradientFillStyleData.js +100 -0
  162. package/player/js/elements/helpers/shapes/SVGGradientStrokeStyleData.js +20 -0
  163. package/player/js/elements/helpers/shapes/SVGNoStyleData.js +15 -0
  164. package/player/js/elements/helpers/shapes/SVGShapeData.js +28 -0
  165. package/player/js/elements/helpers/shapes/SVGStrokeStyleData.js +21 -0
  166. package/player/js/elements/helpers/shapes/SVGStyleData.js +19 -0
  167. package/player/js/elements/helpers/shapes/SVGTransformData.js +11 -0
  168. package/player/js/elements/helpers/shapes/ShapeElement.js +5 -0
  169. package/player/js/elements/helpers/shapes/ShapeGroupData.js +9 -0
  170. package/player/js/elements/helpers/shapes/ShapeTransformManager.js +61 -0
  171. package/player/js/elements/htmlElements/HBaseElement.js +88 -0
  172. package/player/js/elements/htmlElements/HCameraElement.js +170 -0
  173. package/player/js/elements/htmlElements/HCompElement.js +61 -0
  174. package/player/js/elements/htmlElements/HEffects.js +3 -0
  175. package/player/js/elements/htmlElements/HImageElement.js +42 -0
  176. package/player/js/elements/htmlElements/HShapeElement.js +261 -0
  177. package/player/js/elements/htmlElements/HSolidElement.js +36 -0
  178. package/player/js/elements/htmlElements/HTextElement.js +290 -0
  179. package/player/js/elements/svgElements/SVGBaseElement.js +181 -0
  180. package/player/js/elements/svgElements/SVGCompElement.js +28 -0
  181. package/player/js/elements/svgElements/SVGEffects.js +70 -0
  182. package/player/js/elements/svgElements/SVGEffectsPlaceholder.js +3 -0
  183. package/player/js/elements/svgElements/SVGShapeElement.js +366 -0
  184. package/player/js/elements/svgElements/SVGTextElement.js +322 -0
  185. package/player/js/elements/svgElements/effects/SVGComposableEffect.js +22 -0
  186. package/player/js/elements/svgElements/effects/SVGDropShadowEffect.js +83 -0
  187. package/player/js/elements/svgElements/effects/SVGFillFilter.js +22 -0
  188. package/player/js/elements/svgElements/effects/SVGGaussianBlurEffect.js +44 -0
  189. package/player/js/elements/svgElements/effects/SVGMatte3Effect.js +101 -0
  190. package/player/js/elements/svgElements/effects/SVGProLevelsFilter.js +108 -0
  191. package/player/js/elements/svgElements/effects/SVGStrokeEffect.js +119 -0
  192. package/player/js/elements/svgElements/effects/SVGTintEffect.js +47 -0
  193. package/player/js/elements/svgElements/effects/SVGTransformEffect.js +10 -0
  194. package/player/js/elements/svgElements/effects/SVGTritoneFilter.js +43 -0
  195. package/player/js/main.js +21 -0
  196. package/player/js/mask.js +239 -0
  197. package/player/js/module.js +153 -0
  198. package/player/js/modules/canvas.js +22 -0
  199. package/player/js/modules/canvas_light.js +25 -0
  200. package/player/js/modules/full.js +70 -0
  201. package/player/js/modules/full_worker.js +0 -0
  202. package/player/js/modules/html.js +37 -0
  203. package/player/js/modules/html_light.js +25 -0
  204. package/player/js/modules/main.js +162 -0
  205. package/player/js/modules/svg.js +37 -0
  206. package/player/js/modules/svg_light.js +25 -0
  207. package/player/js/renderers/BaseRenderer.js +187 -0
  208. package/player/js/renderers/CanvasRenderer.js +67 -0
  209. package/player/js/renderers/CanvasRendererBase.js +318 -0
  210. package/player/js/renderers/CanvasRendererWorkerOverride.js +54 -0
  211. package/player/js/renderers/HybridRenderer.js +47 -0
  212. package/player/js/renderers/HybridRendererBase.js +344 -0
  213. package/player/js/renderers/SVGRenderer.js +82 -0
  214. package/player/js/renderers/SVGRendererBase.js +255 -0
  215. package/player/js/renderers/renderersManager.js +29 -0
  216. package/player/js/utils/BaseEvent.js +42 -0
  217. package/player/js/utils/DataManager.js +676 -0
  218. package/player/js/utils/DataManagerWorkerOverrides.js +13 -0
  219. package/player/js/utils/FontManager.js +443 -0
  220. package/player/js/utils/FontManagerWorkerOverride.js +16 -0
  221. package/player/js/utils/PolynomialBezier.js +253 -0
  222. package/player/js/utils/PropertyFactory.js +489 -0
  223. package/player/js/utils/SlotManager.js +17 -0
  224. package/player/js/utils/TransformProperty.js +251 -0
  225. package/player/js/utils/animationFramePolyFill.js +25 -0
  226. package/player/js/utils/asset_loader.js +53 -0
  227. package/player/js/utils/asset_loader_worker_override.js +3 -0
  228. package/player/js/utils/audio/AudioController.js +85 -0
  229. package/player/js/utils/audio/AudioElement.js +6 -0
  230. package/player/js/utils/bez.js +251 -0
  231. package/player/js/utils/common.js +280 -0
  232. package/player/js/utils/expressions/CompInterface.js +28 -0
  233. package/player/js/utils/expressions/EffectInterface.js +111 -0
  234. package/player/js/utils/expressions/ExpressionManager.js +752 -0
  235. package/player/js/utils/expressions/ExpressionPropertyDecorator.js +463 -0
  236. package/player/js/utils/expressions/ExpressionTextPropertyDecorator.js +40 -0
  237. package/player/js/utils/expressions/ExpressionValue.js +61 -0
  238. package/player/js/utils/expressions/ExpressionValueFactory.js +102 -0
  239. package/player/js/utils/expressions/Expressions.js +48 -0
  240. package/player/js/utils/expressions/FootageInterface.js +60 -0
  241. package/player/js/utils/expressions/InterfacesProvider.js +21 -0
  242. package/player/js/utils/expressions/LayerInterface.js +179 -0
  243. package/player/js/utils/expressions/MaskInterface.js +50 -0
  244. package/player/js/utils/expressions/ProjectInterface.js +31 -0
  245. package/player/js/utils/expressions/PropertyGroupFactory.js +13 -0
  246. package/player/js/utils/expressions/PropertyInterface.js +19 -0
  247. package/player/js/utils/expressions/ShapeInterface.js +543 -0
  248. package/player/js/utils/expressions/TextInterface.js +35 -0
  249. package/player/js/utils/expressions/TextSelectorPropertyDecorator.js +44 -0
  250. package/player/js/utils/expressions/TransformInterface.js +126 -0
  251. package/player/js/utils/expressions/expressionHelpers.js +86 -0
  252. package/player/js/utils/expressions/shapes/ShapePathInterface.js +47 -0
  253. package/player/js/utils/featureSupport.js +16 -0
  254. package/player/js/utils/filters.js +32 -0
  255. package/player/js/utils/functionExtensions.js +27 -0
  256. package/player/js/utils/getFontProperties.js +42 -0
  257. package/player/js/utils/helpers/arrays.js +43 -0
  258. package/player/js/utils/helpers/assetManager.js +96 -0
  259. package/player/js/utils/helpers/blendModes.js +26 -0
  260. package/player/js/utils/helpers/bufferManager.js +61 -0
  261. package/player/js/utils/helpers/dynamicProperties.js +29 -0
  262. package/player/js/utils/helpers/effectTypes.js +3 -0
  263. package/player/js/utils/helpers/html_elements.js +6 -0
  264. package/player/js/utils/helpers/propTypes.js +3 -0
  265. package/player/js/utils/helpers/shapeEnums.js +16 -0
  266. package/player/js/utils/helpers/svg_elements.js +8 -0
  267. package/player/js/utils/imagePreloader.js +213 -0
  268. package/player/js/utils/imagePreloaderWorkerOverride.js +3 -0
  269. package/player/js/utils/markers/markerParser.js +47 -0
  270. package/player/js/utils/pooling/bezier_length_pool.js +20 -0
  271. package/player/js/utils/pooling/point_pool.js +13 -0
  272. package/player/js/utils/pooling/pool_factory.js +44 -0
  273. package/player/js/utils/pooling/pooling.js +15 -0
  274. package/player/js/utils/pooling/segments_length_pool.js +24 -0
  275. package/player/js/utils/pooling/shapeCollection_pool.js +48 -0
  276. package/player/js/utils/pooling/shape_pool.js +44 -0
  277. package/player/js/utils/shapes/DashProperty.js +63 -0
  278. package/player/js/utils/shapes/GradientProperty.js +93 -0
  279. package/player/js/utils/shapes/MouseModifier.js +222 -0
  280. package/player/js/utils/shapes/OffsetPathModifier.js +306 -0
  281. package/player/js/utils/shapes/PuckerAndBloatModifier.js +80 -0
  282. package/player/js/utils/shapes/RepeaterModifier.js +232 -0
  283. package/player/js/utils/shapes/RoundCornersModifier.js +122 -0
  284. package/player/js/utils/shapes/ShapeCollection.js +29 -0
  285. package/player/js/utils/shapes/ShapeModifiers.js +71 -0
  286. package/player/js/utils/shapes/ShapePath.js +100 -0
  287. package/player/js/utils/shapes/ShapeProperty.js +546 -0
  288. package/player/js/utils/shapes/TrimModifier.js +359 -0
  289. package/player/js/utils/shapes/ZigZagModifier.js +174 -0
  290. package/player/js/utils/shapes/shapePathBuilder.js +20 -0
  291. package/player/js/utils/text/LetterProps.js +60 -0
  292. package/player/js/utils/text/TextAnimatorDataProperty.js +34 -0
  293. package/player/js/utils/text/TextAnimatorProperty.js +610 -0
  294. package/player/js/utils/text/TextProperty.js +461 -0
  295. package/player/js/utils/text/TextSelectorProperty.js +179 -0
  296. package/player/js/worker_wrapper.js +1029 -0
  297. package/rollup.config.js +215 -0
  298. package/tasks/build.js +773 -0
  299. package/tasks/build_worker.js +164 -0
  300. package/tasks/watch.js +34 -0
@@ -0,0 +1,162 @@
1
+ import { setLocationHref, setWebWorker } from '../main';
2
+ import animationManager from '../animation/AnimationManager';
3
+ import {
4
+ setDefaultCurveSegments,
5
+ getDefaultCurveSegments,
6
+ roundValues,
7
+ setIdPrefix,
8
+ setSubframeEnabled,
9
+ setExpressionsPlugin,
10
+ } from '../utils/common';
11
+ import PropertyFactory from '../utils/PropertyFactory';
12
+ import ShapePropertyFactory from '../utils/shapes/ShapeProperty';
13
+ import Matrix from '../3rd_party/transformation-matrix';
14
+
15
+ const lottie = {};
16
+ var standalone = '__[STANDALONE]__';
17
+ var animationData = '__[ANIMATIONDATA]__';
18
+ var renderer = '';
19
+
20
+ function setLocation(href) {
21
+ setLocationHref(href);
22
+ }
23
+
24
+ function searchAnimations() {
25
+ if (standalone === true) {
26
+ animationManager.searchAnimations(animationData, standalone, renderer);
27
+ } else {
28
+ animationManager.searchAnimations();
29
+ }
30
+ }
31
+
32
+ function setSubframeRendering(flag) {
33
+ setSubframeEnabled(flag);
34
+ }
35
+
36
+ function setPrefix(prefix) {
37
+ setIdPrefix(prefix);
38
+ }
39
+
40
+ function loadAnimation(params) {
41
+ if (standalone === true) {
42
+ params.animationData = JSON.parse(animationData);
43
+ }
44
+ return animationManager.loadAnimation(params);
45
+ }
46
+
47
+ function setQuality(value) {
48
+ if (typeof value === 'string') {
49
+ switch (value) {
50
+ case 'high':
51
+ setDefaultCurveSegments(200);
52
+ break;
53
+ default:
54
+ case 'medium':
55
+ setDefaultCurveSegments(50);
56
+ break;
57
+ case 'low':
58
+ setDefaultCurveSegments(10);
59
+ break;
60
+ }
61
+ } else if (!isNaN(value) && value > 1) {
62
+ setDefaultCurveSegments(value);
63
+ }
64
+ if (getDefaultCurveSegments() >= 50) {
65
+ roundValues(false);
66
+ } else {
67
+ roundValues(true);
68
+ }
69
+ }
70
+
71
+ function inBrowser() {
72
+ return typeof navigator !== 'undefined';
73
+ }
74
+
75
+ function installPlugin(type, plugin) {
76
+ if (type === 'expressions') {
77
+ setExpressionsPlugin(plugin);
78
+ }
79
+ }
80
+
81
+ function getFactory(name) {
82
+ switch (name) {
83
+ case 'propertyFactory':
84
+ return PropertyFactory;
85
+ case 'shapePropertyFactory':
86
+ return ShapePropertyFactory;
87
+ case 'matrix':
88
+ return Matrix;
89
+ default:
90
+ return null;
91
+ }
92
+ }
93
+
94
+ lottie.play = animationManager.play;
95
+ lottie.pause = animationManager.pause;
96
+ lottie.setLocationHref = setLocation;
97
+ lottie.togglePause = animationManager.togglePause;
98
+ lottie.setSpeed = animationManager.setSpeed;
99
+ lottie.setDirection = animationManager.setDirection;
100
+ lottie.stop = animationManager.stop;
101
+ lottie.searchAnimations = searchAnimations;
102
+ lottie.registerAnimation = animationManager.registerAnimation;
103
+ lottie.loadAnimation = loadAnimation;
104
+ lottie.setSubframeRendering = setSubframeRendering;
105
+ lottie.resize = animationManager.resize;
106
+ // lottie.start = start;
107
+ lottie.goToAndStop = animationManager.goToAndStop;
108
+ lottie.destroy = animationManager.destroy;
109
+ lottie.setQuality = setQuality;
110
+ lottie.inBrowser = inBrowser;
111
+ lottie.installPlugin = installPlugin;
112
+ lottie.freeze = animationManager.freeze;
113
+ lottie.unfreeze = animationManager.unfreeze;
114
+ lottie.setVolume = animationManager.setVolume;
115
+ lottie.mute = animationManager.mute;
116
+ lottie.unmute = animationManager.unmute;
117
+ lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;
118
+ lottie.useWebWorker = setWebWorker;
119
+ lottie.setIDPrefix = setPrefix;
120
+ lottie.__getFactory = getFactory;
121
+ lottie.version = '[[BM_VERSION]]';
122
+
123
+ function checkReady() {
124
+ if (document.readyState === 'complete') {
125
+ clearInterval(readyStateCheckInterval);
126
+ searchAnimations();
127
+ }
128
+ }
129
+
130
+ function getQueryVariable(variable) {
131
+ var vars = queryString.split('&');
132
+ for (var i = 0; i < vars.length; i += 1) {
133
+ var pair = vars[i].split('=');
134
+ if (decodeURIComponent(pair[0]) == variable) { // eslint-disable-line eqeqeq
135
+ return decodeURIComponent(pair[1]);
136
+ }
137
+ }
138
+ return null;
139
+ }
140
+ var queryString = '';
141
+ if (standalone) {
142
+ var scripts = document.getElementsByTagName('script');
143
+ var index = scripts.length - 1;
144
+ var myScript = scripts[index] || {
145
+ src: '',
146
+ };
147
+ queryString = myScript.src ? myScript.src.replace(/^[^\?]+\??/, '') : ''; // eslint-disable-line no-useless-escape
148
+ renderer = getQueryVariable('renderer');
149
+ }
150
+ var readyStateCheckInterval = setInterval(checkReady, 100);
151
+
152
+ // this adds bodymovin to the window object for backwards compatibility
153
+ try {
154
+ if (!(typeof exports === 'object' && typeof module !== 'undefined')
155
+ && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef
156
+ ) {
157
+ window.bodymovin = lottie;
158
+ }
159
+ } catch (err) {
160
+ //
161
+ }
162
+ export default lottie;
@@ -0,0 +1,37 @@
1
+ import lottie from './svg_light';
2
+ import {
3
+ setExpressionsPlugin,
4
+ setExpressionInterfaces,
5
+ } from '../utils/common';
6
+ import Expressions from '../utils/expressions/Expressions';
7
+ import interfacesProvider from '../utils/expressions/InterfacesProvider';
8
+ import expressionPropertyDecorator from '../utils/expressions/ExpressionPropertyDecorator';
9
+ import expressionTextPropertyDecorator from '../utils/expressions/ExpressionTextPropertyDecorator';
10
+ // SVG effects
11
+ import { registerEffect } from '../elements/svgElements/SVGEffects';
12
+ import SVGTintFilter from '../elements/svgElements/effects/SVGTintEffect';
13
+ import SVGFillFilter from '../elements/svgElements/effects/SVGFillFilter';
14
+ import SVGStrokeEffect from '../elements/svgElements/effects/SVGStrokeEffect';
15
+ import SVGTritoneFilter from '../elements/svgElements/effects/SVGTritoneFilter';
16
+ import SVGProLevelsFilter from '../elements/svgElements/effects/SVGProLevelsFilter';
17
+ import SVGDropShadowEffect from '../elements/svgElements/effects/SVGDropShadowEffect';
18
+ import SVGMatte3Effect from '../elements/svgElements/effects/SVGMatte3Effect';
19
+ import SVGGaussianBlurEffect from '../elements/svgElements/effects/SVGGaussianBlurEffect';
20
+ import SVGTransformEffect from '../elements/svgElements/effects/SVGTransformEffect';
21
+
22
+ // Registering expression plugin
23
+ setExpressionsPlugin(Expressions);
24
+ setExpressionInterfaces(interfacesProvider);
25
+ expressionPropertyDecorator();
26
+ expressionTextPropertyDecorator();
27
+ registerEffect(20, SVGTintFilter, true);
28
+ registerEffect(21, SVGFillFilter, true);
29
+ registerEffect(22, SVGStrokeEffect, false);
30
+ registerEffect(23, SVGTritoneFilter, true);
31
+ registerEffect(24, SVGProLevelsFilter, true);
32
+ registerEffect(25, SVGDropShadowEffect, true);
33
+ registerEffect(28, SVGMatte3Effect, false);
34
+ registerEffect(29, SVGGaussianBlurEffect, true);
35
+ registerEffect(35, SVGTransformEffect, false);
36
+
37
+ export default lottie;
@@ -0,0 +1,25 @@
1
+ import lottie from './main';
2
+ import { ShapeModifiers } from '../utils/shapes/ShapeModifiers';
3
+ import TrimModifier from '../utils/shapes/TrimModifier';
4
+ import PuckerAndBloatModifier from '../utils/shapes/PuckerAndBloatModifier';
5
+ import RepeaterModifier from '../utils/shapes/RepeaterModifier';
6
+ import RoundCornersModifier from '../utils/shapes/RoundCornersModifier';
7
+ import ZigZagModifier from '../utils/shapes/ZigZagModifier';
8
+ import OffsetPathModifier from '../utils/shapes/OffsetPathModifier';
9
+ import SVGRenderer from '../renderers/SVGRenderer';
10
+ import {
11
+ registerRenderer,
12
+ } from '../renderers/renderersManager';
13
+
14
+ // Registering renderers
15
+ registerRenderer('svg', SVGRenderer);
16
+
17
+ // Registering shape modifiers
18
+ ShapeModifiers.registerModifier('tm', TrimModifier);
19
+ ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);
20
+ ShapeModifiers.registerModifier('rp', RepeaterModifier);
21
+ ShapeModifiers.registerModifier('rd', RoundCornersModifier);
22
+ ShapeModifiers.registerModifier('zz', ZigZagModifier);
23
+ ShapeModifiers.registerModifier('op', OffsetPathModifier);
24
+
25
+ export default lottie;
@@ -0,0 +1,187 @@
1
+ import FontManager from '../utils/FontManager';
2
+ import slotFactory from '../utils/SlotManager';
3
+ import FootageElement from '../elements/FootageElement';
4
+ import AudioElement from '../elements/AudioElement';
5
+
6
+ function BaseRenderer() {}
7
+ BaseRenderer.prototype.checkLayers = function (num) {
8
+ var i;
9
+ var len = this.layers.length;
10
+ var data;
11
+ this.completeLayers = true;
12
+ for (i = len - 1; i >= 0; i -= 1) {
13
+ if (!this.elements[i]) {
14
+ data = this.layers[i];
15
+ if (data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st)) {
16
+ this.buildItem(i);
17
+ }
18
+ }
19
+ this.completeLayers = this.elements[i] ? this.completeLayers : false;
20
+ }
21
+ this.checkPendingElements();
22
+ };
23
+
24
+ BaseRenderer.prototype.createItem = function (layer) {
25
+ switch (layer.ty) {
26
+ case 2:
27
+ return this.createImage(layer);
28
+ case 0:
29
+ return this.createComp(layer);
30
+ case 1:
31
+ return this.createSolid(layer);
32
+ case 3:
33
+ return this.createNull(layer);
34
+ case 4:
35
+ return this.createShape(layer);
36
+ case 5:
37
+ return this.createText(layer);
38
+ case 6:
39
+ return this.createAudio(layer);
40
+ case 13:
41
+ return this.createCamera(layer);
42
+ case 15:
43
+ return this.createFootage(layer);
44
+ default:
45
+ return this.createNull(layer);
46
+ }
47
+ };
48
+
49
+ BaseRenderer.prototype.createCamera = function () {
50
+ throw new Error('You\'re using a 3d camera. Try the html renderer.');
51
+ };
52
+
53
+ BaseRenderer.prototype.createAudio = function (data) {
54
+ return new AudioElement(data, this.globalData, this);
55
+ };
56
+
57
+ BaseRenderer.prototype.createFootage = function (data) {
58
+ return new FootageElement(data, this.globalData, this);
59
+ };
60
+
61
+ BaseRenderer.prototype.buildAllItems = function () {
62
+ var i;
63
+ var len = this.layers.length;
64
+ for (i = 0; i < len; i += 1) {
65
+ this.buildItem(i);
66
+ }
67
+ this.checkPendingElements();
68
+ };
69
+
70
+ BaseRenderer.prototype.includeLayers = function (newLayers) {
71
+ this.completeLayers = false;
72
+ var i;
73
+ var len = newLayers.length;
74
+ var j;
75
+ var jLen = this.layers.length;
76
+ for (i = 0; i < len; i += 1) {
77
+ j = 0;
78
+ while (j < jLen) {
79
+ if (this.layers[j].id === newLayers[i].id) {
80
+ this.layers[j] = newLayers[i];
81
+ break;
82
+ }
83
+ j += 1;
84
+ }
85
+ }
86
+ };
87
+
88
+ BaseRenderer.prototype.setProjectInterface = function (pInterface) {
89
+ this.globalData.projectInterface = pInterface;
90
+ };
91
+
92
+ BaseRenderer.prototype.initItems = function () {
93
+ if (!this.globalData.progressiveLoad) {
94
+ this.buildAllItems();
95
+ }
96
+ };
97
+ BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {
98
+ var elements = this.elements;
99
+ var layers = this.layers;
100
+ var i = 0;
101
+ var len = layers.length;
102
+ while (i < len) {
103
+ if (layers[i].ind == parentName) { // eslint-disable-line eqeqeq
104
+ if (!elements[i] || elements[i] === true) {
105
+ this.buildItem(i);
106
+ this.addPendingElement(element);
107
+ } else {
108
+ hierarchy.push(elements[i]);
109
+ elements[i].setAsParent();
110
+ if (layers[i].parent !== undefined) {
111
+ this.buildElementParenting(element, layers[i].parent, hierarchy);
112
+ } else {
113
+ element.setHierarchy(hierarchy);
114
+ }
115
+ }
116
+ }
117
+ i += 1;
118
+ }
119
+ };
120
+
121
+ BaseRenderer.prototype.addPendingElement = function (element) {
122
+ this.pendingElements.push(element);
123
+ };
124
+
125
+ BaseRenderer.prototype.searchExtraCompositions = function (assets) {
126
+ var i;
127
+ var len = assets.length;
128
+ for (i = 0; i < len; i += 1) {
129
+ if (assets[i].xt) {
130
+ var comp = this.createComp(assets[i]);
131
+ comp.initExpressions();
132
+ this.globalData.projectInterface.registerComposition(comp);
133
+ }
134
+ }
135
+ };
136
+
137
+ BaseRenderer.prototype.getElementById = function (ind) {
138
+ var i;
139
+ var len = this.elements.length;
140
+ for (i = 0; i < len; i += 1) {
141
+ if (this.elements[i].data.ind === ind) {
142
+ return this.elements[i];
143
+ }
144
+ }
145
+ return null;
146
+ };
147
+
148
+ BaseRenderer.prototype.getElementByPath = function (path) {
149
+ var pathValue = path.shift();
150
+ var element;
151
+ if (typeof pathValue === 'number') {
152
+ element = this.elements[pathValue];
153
+ } else {
154
+ var i;
155
+ var len = this.elements.length;
156
+ for (i = 0; i < len; i += 1) {
157
+ if (this.elements[i].data.nm === pathValue) {
158
+ element = this.elements[i];
159
+ break;
160
+ }
161
+ }
162
+ }
163
+ if (path.length === 0) {
164
+ return element;
165
+ }
166
+ return element.getElementByPath(path);
167
+ };
168
+
169
+ BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {
170
+ this.globalData.fontManager = new FontManager();
171
+ this.globalData.slotManager = slotFactory(animData);
172
+ this.globalData.fontManager.addChars(animData.chars);
173
+ this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);
174
+ this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);
175
+ this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);
176
+ this.globalData.imageLoader = this.animationItem.imagePreloader;
177
+ this.globalData.audioController = this.animationItem.audioController;
178
+ this.globalData.frameId = 0;
179
+ this.globalData.frameRate = animData.fr;
180
+ this.globalData.nm = animData.nm;
181
+ this.globalData.compSize = {
182
+ w: animData.w,
183
+ h: animData.h,
184
+ };
185
+ };
186
+
187
+ export default BaseRenderer;
@@ -0,0 +1,67 @@
1
+ import {
2
+ extendPrototype,
3
+ } from '../utils/functionExtensions';
4
+ import Matrix from '../3rd_party/transformation-matrix';
5
+ import CanvasRendererBase from './CanvasRendererBase';
6
+ import CVContextData from '../elements/canvasElements/CVContextData';
7
+ import CVCompElement from '../elements/canvasElements/CVCompElement';
8
+ import bufferManager from '../utils/helpers/bufferManager';
9
+
10
+ function CanvasRenderer(animationItem, config) {
11
+ this.animationItem = animationItem;
12
+ this.renderConfig = {
13
+ clearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,
14
+ context: (config && config.context) || null,
15
+ progressiveLoad: (config && config.progressiveLoad) || false,
16
+ preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',
17
+ imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',
18
+ contentVisibility: (config && config.contentVisibility) || 'visible',
19
+ className: (config && config.className) || '',
20
+ id: (config && config.id) || '',
21
+ bufferManager: bufferManager,
22
+ runExpressions: !config || config.runExpressions === undefined || config.runExpressions,
23
+ };
24
+ this.renderConfig.dpr = (config && config.dpr) || 1;
25
+ if (this.animationItem.wrapper) {
26
+ this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;
27
+ }
28
+ this.renderedFrame = -1;
29
+ this.globalData = {
30
+ frameNum: -1,
31
+ _mdf: false,
32
+ renderConfig: this.renderConfig,
33
+ currentGlobalAlpha: -1,
34
+ };
35
+ this.contextData = new CVContextData();
36
+ this.elements = [];
37
+ this.pendingElements = [];
38
+ this.transformMat = new Matrix();
39
+ this.completeLayers = false;
40
+ this.rendererType = 'canvas';
41
+ if (this.renderConfig.clearCanvas) {
42
+ this.ctxTransform = this.contextData.transform.bind(this.contextData);
43
+ this.ctxOpacity = this.contextData.opacity.bind(this.contextData);
44
+ this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);
45
+ this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);
46
+ this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);
47
+ this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);
48
+ this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);
49
+ this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);
50
+ this.ctxFill = this.contextData.fill.bind(this.contextData);
51
+ this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);
52
+ this.ctxStroke = this.contextData.stroke.bind(this.contextData);
53
+ this.save = this.contextData.save.bind(this.contextData);
54
+ }
55
+ this.animationItem.addEventListener('error', function (event) {
56
+ if (event.type === 'renderFrameError') {
57
+ this.renderConfig.bufferManager.releaseAll();
58
+ }
59
+ }.bind(this));
60
+ }
61
+ extendPrototype([CanvasRendererBase], CanvasRenderer);
62
+
63
+ CanvasRenderer.prototype.createComp = function (data) {
64
+ return new CVCompElement(data, this.globalData, this);
65
+ };
66
+
67
+ export default CanvasRenderer;