manim-web 0.3.21 → 0.3.23

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 (325) hide show
  1. package/README.md +20 -0
  2. package/dist/{svg-swSF_J59.js → MathJaxBundle-xSidSV0E.js} +18571 -7242
  3. package/dist/animation/Animation.d.ts.map +1 -1
  4. package/dist/animation/AnimationGroup.d.ts.map +1 -1
  5. package/dist/animation/MasterTimeline.d.ts +88 -1
  6. package/dist/animation/MasterTimeline.d.ts.map +1 -1
  7. package/dist/animation/Timeline.d.ts.map +1 -1
  8. package/dist/animation/changing/index.d.ts +2 -2
  9. package/dist/animation/changing/index.d.ts.map +1 -1
  10. package/dist/animation/creation/Create.d.ts.map +1 -1
  11. package/dist/animation/growing/index.d.ts +8 -5
  12. package/dist/animation/growing/index.d.ts.map +1 -1
  13. package/dist/animation/movement/Homotopy.d.ts +37 -7
  14. package/dist/animation/movement/Homotopy.d.ts.map +1 -1
  15. package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -1
  16. package/dist/animation/movement/Rotate.d.ts +2 -7
  17. package/dist/animation/movement/Rotate.d.ts.map +1 -1
  18. package/dist/animation/speed/index.d.ts.map +1 -1
  19. package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -1
  20. package/dist/animation/transform/ApplyPointwiseFunctionToCenter.d.ts.map +1 -1
  21. package/dist/animation/transform/ApplyTransforms.d.ts.map +1 -1
  22. package/dist/animation/transform/MorphStrategy.d.ts +23 -0
  23. package/dist/animation/transform/MorphStrategy.d.ts.map +1 -1
  24. package/dist/animation/transform/PointCloudMorphStrategy.d.ts +18 -0
  25. package/dist/animation/transform/PointCloudMorphStrategy.d.ts.map +1 -0
  26. package/dist/animation/transform/PointMorphStrategy.d.ts +26 -0
  27. package/dist/animation/transform/PointMorphStrategy.d.ts.map +1 -1
  28. package/dist/animation/transform/Transform.d.ts +2 -0
  29. package/dist/animation/transform/Transform.d.ts.map +1 -1
  30. package/dist/animation/transform/TransformMatching.d.ts.map +1 -1
  31. package/dist/animation/utility/index.d.ts +6 -2
  32. package/dist/animation/utility/index.d.ts.map +1 -1
  33. package/dist/core/AnimateProxy.d.ts +3 -5
  34. package/dist/core/AnimateProxy.d.ts.map +1 -1
  35. package/dist/core/Camera.d.ts +40 -0
  36. package/dist/core/Camera.d.ts.map +1 -1
  37. package/dist/core/Camera2DFrame.d.ts +1 -1
  38. package/dist/core/Camera2DFrame.d.ts.map +1 -1
  39. package/dist/core/CameraExtensions.d.ts +33 -1
  40. package/dist/core/CameraExtensions.d.ts.map +1 -1
  41. package/dist/core/CameraFrame.d.ts.map +1 -1
  42. package/dist/core/Group.d.ts +11 -39
  43. package/dist/core/Group.d.ts.map +1 -1
  44. package/dist/core/InteractiveScene.d.ts.map +1 -1
  45. package/dist/core/Lighting.d.ts.map +1 -1
  46. package/dist/core/Mobject.d.ts +246 -11
  47. package/dist/core/Mobject.d.ts.map +1 -1
  48. package/dist/core/MobjectPositioning.d.ts +0 -8
  49. package/dist/core/MobjectPositioning.d.ts.map +1 -1
  50. package/dist/core/MobjectState.d.ts.map +1 -1
  51. package/dist/core/MobjectTraversal.d.ts +3 -0
  52. package/dist/core/MobjectTraversal.d.ts.map +1 -1
  53. package/dist/core/MobjectTypes.d.ts +29 -4
  54. package/dist/core/MobjectTypes.d.ts.map +1 -1
  55. package/dist/core/PointBounds.d.ts +39 -0
  56. package/dist/core/PointBounds.d.ts.map +1 -0
  57. package/dist/core/Renderer.d.ts +3 -0
  58. package/dist/core/Renderer.d.ts.map +1 -1
  59. package/dist/core/Scene.d.ts +82 -0
  60. package/dist/core/Scene.d.ts.map +1 -1
  61. package/dist/core/TexturedMobject.d.ts +12 -0
  62. package/dist/core/TexturedMobject.d.ts.map +1 -1
  63. package/dist/core/ThreeDScene.d.ts +9 -1
  64. package/dist/core/ThreeDScene.d.ts.map +1 -1
  65. package/dist/core/VDict.d.ts +1 -9
  66. package/dist/core/VDict.d.ts.map +1 -1
  67. package/dist/core/VGroup.d.ts +58 -42
  68. package/dist/core/VGroup.d.ts.map +1 -1
  69. package/dist/core/VMobject.d.ts +102 -28
  70. package/dist/core/VMobject.d.ts.map +1 -1
  71. package/dist/core/VMobjectCurveUtils.d.ts +1 -1
  72. package/dist/core/VMobjectCurveUtils.d.ts.map +1 -1
  73. package/dist/core/VMobjectGeometry.d.ts +20 -10
  74. package/dist/core/VMobjectGeometry.d.ts.map +1 -1
  75. package/dist/core/VMobjectRendering.d.ts +5 -0
  76. package/dist/core/VMobjectRendering.d.ts.map +1 -1
  77. package/dist/core/VMobjectStrokeGeometry.d.ts.map +1 -1
  78. package/dist/core/VMobjectTransformAlignment.d.ts +9 -0
  79. package/dist/core/VMobjectTransformAlignment.d.ts.map +1 -1
  80. package/dist/core/ZoomedScene.d.ts +2 -1
  81. package/dist/core/ZoomedScene.d.ts.map +1 -1
  82. package/dist/export/GifExporter.d.ts.map +1 -1
  83. package/dist/export/VideoExporter.d.ts.map +1 -1
  84. package/dist/index.d.ts +5 -4
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +2 -4
  87. package/dist/integrations/react.js +16 -18
  88. package/dist/integrations/vue.js +15 -17
  89. package/dist/interaction/Draggable.d.ts +12 -0
  90. package/dist/interaction/Draggable.d.ts.map +1 -1
  91. package/dist/interaction/OrbitControls.d.ts +1 -1
  92. package/dist/interaction/OrbitControls.d.ts.map +1 -1
  93. package/dist/manim-web.browser.js +12510 -10445
  94. package/dist/mobjects/fractals/MandelbrotSet.d.ts +2 -1
  95. package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -1
  96. package/dist/mobjects/fractals/NewtonFractal.d.ts +2 -1
  97. package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -1
  98. package/dist/mobjects/frame/index.d.ts +3 -12
  99. package/dist/mobjects/frame/index.d.ts.map +1 -1
  100. package/dist/mobjects/geometry/AngleShapes.d.ts +4 -8
  101. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -1
  102. package/dist/mobjects/geometry/AnnularSector.d.ts +4 -74
  103. package/dist/mobjects/geometry/AnnularSector.d.ts.map +1 -1
  104. package/dist/mobjects/geometry/Annulus.d.ts +1 -62
  105. package/dist/mobjects/geometry/Annulus.d.ts.map +1 -1
  106. package/dist/mobjects/geometry/Arc.d.ts +3 -1
  107. package/dist/mobjects/geometry/Arc.d.ts.map +1 -1
  108. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +1 -1
  109. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -1
  110. package/dist/mobjects/geometry/ArcPolygon.d.ts +1 -1
  111. package/dist/mobjects/geometry/ArcPolygon.d.ts.map +1 -1
  112. package/dist/mobjects/geometry/Arrow.d.ts +130 -23
  113. package/dist/mobjects/geometry/Arrow.d.ts.map +1 -1
  114. package/dist/mobjects/geometry/ArrowTips.d.ts +7 -7
  115. package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -1
  116. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -1
  117. package/dist/mobjects/geometry/Circle.d.ts +20 -23
  118. package/dist/mobjects/geometry/Circle.d.ts.map +1 -1
  119. package/dist/mobjects/geometry/CubicBezier.d.ts +1 -1
  120. package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -1
  121. package/dist/mobjects/geometry/CurvedArrow.d.ts +1 -1
  122. package/dist/mobjects/geometry/CurvedArrow.d.ts.map +1 -1
  123. package/dist/mobjects/geometry/CurvedDoubleArrow.d.ts +1 -1
  124. package/dist/mobjects/geometry/CurvedDoubleArrow.d.ts.map +1 -1
  125. package/dist/mobjects/geometry/DashedLine.d.ts +3 -2
  126. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -1
  127. package/dist/mobjects/geometry/DashedVMobject.d.ts +3 -2
  128. package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -1
  129. package/dist/mobjects/geometry/Dot.d.ts +4 -15
  130. package/dist/mobjects/geometry/Dot.d.ts.map +1 -1
  131. package/dist/mobjects/geometry/Ellipse.d.ts +3 -47
  132. package/dist/mobjects/geometry/Ellipse.d.ts.map +1 -1
  133. package/dist/mobjects/geometry/LabeledGeometry.d.ts +5 -5
  134. package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -1
  135. package/dist/mobjects/geometry/Line.d.ts +15 -9
  136. package/dist/mobjects/geometry/Line.d.ts.map +1 -1
  137. package/dist/mobjects/geometry/Polygon.d.ts +1 -1
  138. package/dist/mobjects/geometry/Polygon.d.ts.map +1 -1
  139. package/dist/mobjects/geometry/PolygonExtensions.d.ts +11 -67
  140. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -1
  141. package/dist/mobjects/geometry/Polygram.d.ts +1 -1
  142. package/dist/mobjects/geometry/Polygram.d.ts.map +1 -1
  143. package/dist/mobjects/geometry/Rectangle.d.ts +4 -5
  144. package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -1
  145. package/dist/mobjects/geometry/Sector.d.ts +5 -69
  146. package/dist/mobjects/geometry/Sector.d.ts.map +1 -1
  147. package/dist/mobjects/geometry/ShapeMatchers.d.ts +6 -5
  148. package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -1
  149. package/dist/mobjects/geometry/TangentialArc.d.ts +1 -1
  150. package/dist/mobjects/geometry/TangentialArc.d.ts.map +1 -1
  151. package/dist/mobjects/geometry/segment.d.ts +24 -0
  152. package/dist/mobjects/geometry/segment.d.ts.map +1 -0
  153. package/dist/mobjects/graph/DiGraph.d.ts +1 -4
  154. package/dist/mobjects/graph/DiGraph.d.ts.map +1 -1
  155. package/dist/mobjects/graph/GenericGraph.d.ts +2 -1
  156. package/dist/mobjects/graph/GenericGraph.d.ts.map +1 -1
  157. package/dist/mobjects/graph/Graph.d.ts +1 -4
  158. package/dist/mobjects/graph/Graph.d.ts.map +1 -1
  159. package/dist/mobjects/graph/layoutAlgorithms.d.ts.map +1 -1
  160. package/dist/mobjects/graphing/Axes.d.ts +1 -4
  161. package/dist/mobjects/graphing/Axes.d.ts.map +1 -1
  162. package/dist/mobjects/graphing/BarChart.d.ts +1 -4
  163. package/dist/mobjects/graphing/BarChart.d.ts.map +1 -1
  164. package/dist/mobjects/graphing/ComplexPlane.d.ts +43 -9
  165. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -1
  166. package/dist/mobjects/graphing/FunctionGraph.d.ts +1 -4
  167. package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -1
  168. package/dist/mobjects/graphing/ImplicitFunction.d.ts +1 -4
  169. package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -1
  170. package/dist/mobjects/graphing/NumberLine.d.ts +2 -8
  171. package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -1
  172. package/dist/mobjects/graphing/NumberPlane.d.ts +1 -4
  173. package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -1
  174. package/dist/mobjects/graphing/ParametricFunction.d.ts +1 -4
  175. package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -1
  176. package/dist/mobjects/graphing/Vector.d.ts +1 -4
  177. package/dist/mobjects/graphing/Vector.d.ts.map +1 -1
  178. package/dist/mobjects/graphing/VectorField.d.ts +3 -12
  179. package/dist/mobjects/graphing/VectorField.d.ts.map +1 -1
  180. package/dist/mobjects/image/index.d.ts +6 -4
  181. package/dist/mobjects/image/index.d.ts.map +1 -1
  182. package/dist/mobjects/matrix/Matrix.d.ts +4 -16
  183. package/dist/mobjects/matrix/Matrix.d.ts.map +1 -1
  184. package/dist/mobjects/point/Mobject1D.d.ts +1 -4
  185. package/dist/mobjects/point/Mobject1D.d.ts.map +1 -1
  186. package/dist/mobjects/point/Mobject2D.d.ts +1 -1
  187. package/dist/mobjects/point/Mobject2D.d.ts.map +1 -1
  188. package/dist/mobjects/point/PGroup.d.ts +2 -4
  189. package/dist/mobjects/point/PGroup.d.ts.map +1 -1
  190. package/dist/mobjects/point/PMobject.d.ts +49 -13
  191. package/dist/mobjects/point/PMobject.d.ts.map +1 -1
  192. package/dist/mobjects/point/PointCloudDot.d.ts +1 -4
  193. package/dist/mobjects/point/PointCloudDot.d.ts.map +1 -1
  194. package/dist/mobjects/point/PointMobject.d.ts +13 -17
  195. package/dist/mobjects/point/PointMobject.d.ts.map +1 -1
  196. package/dist/mobjects/probability/DiceFace.d.ts +1 -5
  197. package/dist/mobjects/probability/DiceFace.d.ts.map +1 -1
  198. package/dist/mobjects/probability/SampleSpace.d.ts +1 -5
  199. package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -1
  200. package/dist/mobjects/svg/Brace.d.ts +5 -20
  201. package/dist/mobjects/svg/Brace.d.ts.map +1 -1
  202. package/dist/mobjects/svg/SVGMobject.d.ts +2 -2
  203. package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -1
  204. package/dist/mobjects/table/Table.d.ts +1 -5
  205. package/dist/mobjects/table/Table.d.ts.map +1 -1
  206. package/dist/mobjects/text/Code.d.ts +1 -4
  207. package/dist/mobjects/text/Code.d.ts.map +1 -1
  208. package/dist/mobjects/text/CodeHighlighting.d.ts.map +1 -1
  209. package/dist/mobjects/text/CodeLanguageData.d.ts.map +1 -1
  210. package/dist/mobjects/text/DecimalNumber.d.ts +2 -8
  211. package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -1
  212. package/dist/mobjects/text/GlyphVMobject.d.ts +1 -1
  213. package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -1
  214. package/dist/mobjects/text/MarkupText.d.ts +1 -1
  215. package/dist/mobjects/text/MarkupText.d.ts.map +1 -1
  216. package/dist/mobjects/text/MathJaxBundle.d.ts +7 -0
  217. package/dist/mobjects/text/MathJaxBundle.d.ts.map +1 -0
  218. package/dist/mobjects/text/MathJaxRenderer.d.ts +9 -0
  219. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -1
  220. package/dist/mobjects/text/MathTex.d.ts +17 -4
  221. package/dist/mobjects/text/MathTex.d.ts.map +1 -1
  222. package/dist/mobjects/text/MathTexImage.d.ts +19 -4
  223. package/dist/mobjects/text/MathTexImage.d.ts.map +1 -1
  224. package/dist/mobjects/text/Paragraph.d.ts +1 -1
  225. package/dist/mobjects/text/Paragraph.d.ts.map +1 -1
  226. package/dist/mobjects/text/Tex.d.ts +2 -5
  227. package/dist/mobjects/text/Tex.d.ts.map +1 -1
  228. package/dist/mobjects/text/Text.d.ts +17 -1
  229. package/dist/mobjects/text/Text.d.ts.map +1 -1
  230. package/dist/mobjects/text/TextExtensions.d.ts +3 -12
  231. package/dist/mobjects/text/TextExtensions.d.ts.map +1 -1
  232. package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -1
  233. package/dist/mobjects/text/Variable.d.ts +2 -4
  234. package/dist/mobjects/text/Variable.d.ts.map +1 -1
  235. package/dist/mobjects/text/katexStyles.d.ts.map +1 -1
  236. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -1
  237. package/dist/mobjects/three-d/Arrow3D.d.ts +4 -3
  238. package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -1
  239. package/dist/mobjects/three-d/ConvexHull3D.d.ts +4 -3
  240. package/dist/mobjects/three-d/ConvexHull3D.d.ts.map +1 -1
  241. package/dist/mobjects/three-d/Cube.d.ts +6 -11
  242. package/dist/mobjects/three-d/Cube.d.ts.map +1 -1
  243. package/dist/mobjects/three-d/Cylinder.d.ts +5 -10
  244. package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -1
  245. package/dist/mobjects/three-d/Line3D.d.ts +14 -59
  246. package/dist/mobjects/three-d/Line3D.d.ts.map +1 -1
  247. package/dist/mobjects/three-d/Mobject3D.d.ts +19 -0
  248. package/dist/mobjects/three-d/Mobject3D.d.ts.map +1 -0
  249. package/dist/mobjects/three-d/ParametricSurface.d.ts +1 -1
  250. package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -1
  251. package/dist/mobjects/three-d/Polyhedra.d.ts +7 -6
  252. package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -1
  253. package/dist/mobjects/three-d/Sphere.d.ts +4 -6
  254. package/dist/mobjects/three-d/Sphere.d.ts.map +1 -1
  255. package/dist/mobjects/three-d/Surface3D.d.ts +41 -4
  256. package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -1
  257. package/dist/mobjects/three-d/TexturedSurface.d.ts +4 -3
  258. package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -1
  259. package/dist/mobjects/three-d/ThreeDAxes.d.ts +1 -1
  260. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -1
  261. package/dist/mobjects/three-d/ThreeDExtensions.d.ts +7 -15
  262. package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -1
  263. package/dist/mobjects/three-d/Torus.d.ts +4 -6
  264. package/dist/mobjects/three-d/Torus.d.ts.map +1 -1
  265. package/dist/mobjects/three-d/index.d.ts +1 -0
  266. package/dist/mobjects/three-d/index.d.ts.map +1 -1
  267. package/dist/mobjects/value-tracker/ValueTracker.d.ts +4 -2
  268. package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -1
  269. package/dist/player/Player.d.ts +36 -29
  270. package/dist/player/Player.d.ts.map +1 -1
  271. package/dist/player/PlayerUI.d.ts.map +1 -1
  272. package/dist/player/RecordingScene.d.ts +37 -0
  273. package/dist/player/RecordingScene.d.ts.map +1 -0
  274. package/dist/{src-CW4pfZdP.js → src-Bm3ebFjQ.js} +11003 -8942
  275. package/dist/test-setup/vitest-setup.d.ts +20 -0
  276. package/dist/test-setup/vitest-setup.d.ts.map +1 -0
  277. package/dist/utils/axis.d.ts +4 -0
  278. package/dist/utils/axis.d.ts.map +1 -0
  279. package/dist/utils/logger.d.ts +37 -0
  280. package/dist/utils/logger.d.ts.map +1 -1
  281. package/dist/utils/math.d.ts +4 -0
  282. package/dist/utils/math.d.ts.map +1 -1
  283. package/dist/utils/vectors.d.ts +54 -1
  284. package/dist/utils/vectors.d.ts.map +1 -1
  285. package/package.json +13 -8
  286. package/dist/AmsConfiguration-BMyoprhk.js +0 -847
  287. package/dist/AmsConfiguration-BdxxYRby.js +0 -847
  288. package/dist/ConfigMacrosConfiguration-B8X_JSVI.js +0 -46
  289. package/dist/ConfigMacrosConfiguration-DUxp6DUV.js +0 -46
  290. package/dist/Entities-B1o7gN0J.js +0 -429
  291. package/dist/Entities-C82lnCux.js +0 -429
  292. package/dist/Factory-BKM7FEO-.js +0 -107
  293. package/dist/Factory-D-whCqrb.js +0 -107
  294. package/dist/GifExporter-BrxY_q7e.js +0 -338
  295. package/dist/GifExporter-S2pbxMc5.js +0 -338
  296. package/dist/HtmlNode-BLmQ2r7U.js +0 -981
  297. package/dist/HtmlNode-DXGeKrcW.js +0 -981
  298. package/dist/InputJax-DL9oUQY4.js +0 -41
  299. package/dist/InputJax-DnDWM3Y0.js +0 -41
  300. package/dist/NewcommandConfiguration-BPjclFig.js +0 -32
  301. package/dist/NewcommandConfiguration-bJ6P1rBY.js +0 -32
  302. package/dist/NewcommandMethods-C_E3iLoK.js +0 -187
  303. package/dist/NewcommandMethods-Cb7yFm5P.js +0 -187
  304. package/dist/Options-DRlTi0G8.js +0 -63
  305. package/dist/Options-XPptO-6X.js +0 -63
  306. package/dist/ParseMethods-BMPfzfQC.js +0 -2636
  307. package/dist/ParseMethods-D3_HeS1K.js +0 -2636
  308. package/dist/Styles-Dky5jZUe.js +0 -293
  309. package/dist/Styles-J-6R3Vr8.js +0 -293
  310. package/dist/VideoExporter-6ikT3u9H.js +0 -102
  311. package/dist/VideoExporter-D_RxVahH.js +0 -102
  312. package/dist/html-DU38zqaN.js +0 -829
  313. package/dist/html-DjkQuIHJ.js +0 -829
  314. package/dist/lengths-CP7zmbxJ.js +0 -54
  315. package/dist/lengths-D4tR1gYA.js +0 -54
  316. package/dist/liteAdaptor-BLgze3o2.js +0 -616
  317. package/dist/liteAdaptor-zXv-jsO1.js +0 -616
  318. package/dist/mathjax-7LgaTjtj.js +0 -121
  319. package/dist/mathjax-CoSFlQ0H.js +0 -121
  320. package/dist/mo-C5uLT3Z9.js +0 -2675
  321. package/dist/mo-CNYDGAsg.js +0 -2675
  322. package/dist/rolldown-runtime-DnwLefa7.js +0 -23
  323. package/dist/svg-CYweEoZ1.js +0 -28698
  324. package/dist/tex-C4_queV-.js +0 -1423
  325. package/dist/tex-CA5MLeEe.js +0 -1423
@@ -1,338 +0,0 @@
1
- import { i as e, n as t, r as n, t as r } from "./rolldown-runtime-DnwLefa7.js";
2
- //#region node_modules/gif.js/dist/gif.js
3
- var i = /* @__PURE__ */ r(((e, t) => {
4
- (function(n) {
5
- if (typeof e == "object" && t !== void 0) t.exports = n();
6
- else if (typeof define == "function" && define.amd) define([], n);
7
- else {
8
- var r = typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : this;
9
- r.GIF = n();
10
- }
11
- })(function() {
12
- return function e(t, r, i) {
13
- function a(s, c) {
14
- if (!r[s]) {
15
- if (!t[s]) {
16
- var l = typeof n == "function" && n;
17
- if (!c && l) return l(s, !0);
18
- if (o) return o(s, !0);
19
- var u = /* @__PURE__ */ Error("Cannot find module '" + s + "'");
20
- throw u.code = "MODULE_NOT_FOUND", u;
21
- }
22
- var d = r[s] = { exports: {} };
23
- t[s][0].call(d.exports, function(e) {
24
- var n = t[s][1][e];
25
- return a(n || e);
26
- }, d, d.exports, e, t, r, i);
27
- }
28
- return r[s].exports;
29
- }
30
- for (var o = typeof n == "function" && n, s = 0; s < i.length; s++) a(i[s]);
31
- return a;
32
- }({
33
- 1: [function(e, t, n) {
34
- function r() {
35
- this._events = this._events || {}, this._maxListeners = this._maxListeners || void 0;
36
- }
37
- t.exports = r, r.EventEmitter = r, r.prototype._events = void 0, r.prototype._maxListeners = void 0, r.defaultMaxListeners = 10, r.prototype.setMaxListeners = function(e) {
38
- if (!a(e) || e < 0 || isNaN(e)) throw TypeError("n must be a positive number");
39
- return this._maxListeners = e, this;
40
- }, r.prototype.emit = function(e) {
41
- var t, n, r, a, c, l;
42
- if (this._events ||= {}, e === "error" && (!this._events.error || o(this._events.error) && !this._events.error.length)) {
43
- if (t = arguments[1], t instanceof Error) throw t;
44
- var u = /* @__PURE__ */ Error("Uncaught, unspecified \"error\" event. (" + t + ")");
45
- throw u.context = t, u;
46
- }
47
- if (n = this._events[e], s(n)) return !1;
48
- if (i(n)) switch (arguments.length) {
49
- case 1:
50
- n.call(this);
51
- break;
52
- case 2:
53
- n.call(this, arguments[1]);
54
- break;
55
- case 3:
56
- n.call(this, arguments[1], arguments[2]);
57
- break;
58
- default: a = Array.prototype.slice.call(arguments, 1), n.apply(this, a);
59
- }
60
- else if (o(n)) for (a = Array.prototype.slice.call(arguments, 1), l = n.slice(), r = l.length, c = 0; c < r; c++) l[c].apply(this, a);
61
- return !0;
62
- }, r.prototype.addListener = function(e, t) {
63
- var n;
64
- if (!i(t)) throw TypeError("listener must be a function");
65
- return this._events ||= {}, this._events.newListener && this.emit("newListener", e, i(t.listener) ? t.listener : t), this._events[e] ? o(this._events[e]) ? this._events[e].push(t) : this._events[e] = [this._events[e], t] : this._events[e] = t, o(this._events[e]) && !this._events[e].warned && (n = s(this._maxListeners) ? r.defaultMaxListeners : this._maxListeners, n && n > 0 && this._events[e].length > n && (this._events[e].warned = !0, console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[e].length), typeof console.trace == "function" && console.trace())), this;
66
- }, r.prototype.on = r.prototype.addListener, r.prototype.once = function(e, t) {
67
- if (!i(t)) throw TypeError("listener must be a function");
68
- var n = !1;
69
- function r() {
70
- this.removeListener(e, r), n || (n = !0, t.apply(this, arguments));
71
- }
72
- return r.listener = t, this.on(e, r), this;
73
- }, r.prototype.removeListener = function(e, t) {
74
- var n, r, a, s;
75
- if (!i(t)) throw TypeError("listener must be a function");
76
- if (!this._events || !this._events[e]) return this;
77
- if (n = this._events[e], a = n.length, r = -1, n === t || i(n.listener) && n.listener === t) delete this._events[e], this._events.removeListener && this.emit("removeListener", e, t);
78
- else if (o(n)) {
79
- for (s = a; s-- > 0;) if (n[s] === t || n[s].listener && n[s].listener === t) {
80
- r = s;
81
- break;
82
- }
83
- if (r < 0) return this;
84
- n.length === 1 ? (n.length = 0, delete this._events[e]) : n.splice(r, 1), this._events.removeListener && this.emit("removeListener", e, t);
85
- }
86
- return this;
87
- }, r.prototype.removeAllListeners = function(e) {
88
- var t, n;
89
- if (!this._events) return this;
90
- if (!this._events.removeListener) return arguments.length === 0 ? this._events = {} : this._events[e] && delete this._events[e], this;
91
- if (arguments.length === 0) {
92
- for (t in this._events) t !== "removeListener" && this.removeAllListeners(t);
93
- return this.removeAllListeners("removeListener"), this._events = {}, this;
94
- }
95
- if (n = this._events[e], i(n)) this.removeListener(e, n);
96
- else if (n) for (; n.length;) this.removeListener(e, n[n.length - 1]);
97
- return delete this._events[e], this;
98
- }, r.prototype.listeners = function(e) {
99
- return !this._events || !this._events[e] ? [] : i(this._events[e]) ? [this._events[e]] : this._events[e].slice();
100
- }, r.prototype.listenerCount = function(e) {
101
- if (this._events) {
102
- var t = this._events[e];
103
- if (i(t)) return 1;
104
- if (t) return t.length;
105
- }
106
- return 0;
107
- }, r.listenerCount = function(e, t) {
108
- return e.listenerCount(t);
109
- };
110
- function i(e) {
111
- return typeof e == "function";
112
- }
113
- function a(e) {
114
- return typeof e == "number";
115
- }
116
- function o(e) {
117
- return typeof e == "object" && !!e;
118
- }
119
- function s(e) {
120
- return e === void 0;
121
- }
122
- }, {}],
123
- 2: [function(e, t, n) {
124
- var r, i, a, o, s = navigator.userAgent.toLowerCase();
125
- o = navigator.platform.toLowerCase(), r = s.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/) || [
126
- null,
127
- "unknown",
128
- 0
129
- ], a = r[1] === "ie" && document.documentMode, i = {
130
- name: r[1] === "version" ? r[3] : r[1],
131
- version: a || parseFloat(r[1] === "opera" && r[4] ? r[4] : r[2]),
132
- platform: { name: s.match(/ip(?:ad|od|hone)/) ? "ios" : (s.match(/(?:webos|android)/) || o.match(/mac|win|linux/) || ["other"])[0] }
133
- }, i[i.name] = !0, i[i.name + parseInt(i.version, 10)] = !0, i.platform[i.platform.name] = !0, t.exports = i;
134
- }, {}],
135
- 3: [function(e, t, n) {
136
- var r, i, a, o = function(e, t) {
137
- for (var n in t) s.call(t, n) && (e[n] = t[n]);
138
- function r() {
139
- this.constructor = e;
140
- }
141
- return r.prototype = t.prototype, e.prototype = new r(), e.__super__ = t.prototype, e;
142
- }, s = {}.hasOwnProperty, c = [].indexOf || function(e) {
143
- for (var t = 0, n = this.length; t < n; t++) if (t in this && this[t] === e) return t;
144
- return -1;
145
- }, l = [].slice;
146
- r = e("events").EventEmitter, a = e("./browser.coffee"), i = function(e) {
147
- var t, n;
148
- o(r, e), t = {
149
- workerScript: "gif.worker.js",
150
- workers: 2,
151
- repeat: 0,
152
- background: "#fff",
153
- quality: 10,
154
- width: null,
155
- height: null,
156
- transparent: null,
157
- debug: !1,
158
- dither: !1
159
- }, n = {
160
- delay: 500,
161
- copy: !1
162
- };
163
- function r(e) {
164
- var n, r, i;
165
- for (r in this.running = !1, this.options = {}, this.frames = [], this.freeWorkers = [], this.activeWorkers = [], this.setOptions(e), t) i = t[r], (n = this.options)[r] ?? (n[r] = i);
166
- }
167
- return r.prototype.setOption = function(e, t) {
168
- if (this.options[e] = t, this._canvas != null && (e === "width" || e === "height")) return this._canvas[e] = t;
169
- }, r.prototype.setOptions = function(e) {
170
- var t, n = [], r;
171
- for (t in e) s.call(e, t) && (r = e[t], n.push(this.setOption(t, r)));
172
- return n;
173
- }, r.prototype.addFrame = function(e, t) {
174
- var r, i;
175
- for (i in t ??= {}, r = {}, r.transparent = this.options.transparent, n) r[i] = t[i] || n[i];
176
- if (this.options.width ?? this.setOption("width", e.width), this.options.height ?? this.setOption("height", e.height), typeof ImageData < "u" && ImageData !== null && e instanceof ImageData) r.data = e.data;
177
- else if (typeof CanvasRenderingContext2D < "u" && CanvasRenderingContext2D !== null && e instanceof CanvasRenderingContext2D || typeof WebGLRenderingContext < "u" && WebGLRenderingContext !== null && e instanceof WebGLRenderingContext) t.copy ? r.data = this.getContextData(e) : r.context = e;
178
- else if (e.childNodes != null) t.copy ? r.data = this.getImageData(e) : r.image = e;
179
- else throw Error("Invalid image");
180
- return this.frames.push(r);
181
- }, r.prototype.render = function() {
182
- var e, t, n;
183
- if (this.running) throw Error("Already running");
184
- if (this.options.width == null || this.options.height == null) throw Error("Width and height must be set prior to rendering");
185
- if (this.running = !0, this.nextFrame = 0, this.finishedFrames = 0, this.imageParts = function() {
186
- var e, t, n = [];
187
- for (e = 0, t = this.frames.length; 0 <= t ? e < t : e > t; 0 <= t ? ++e : --e) n.push(null);
188
- return n;
189
- }.call(this), t = this.spawnWorkers(), this.options.globalPalette === !0) this.renderNextFrame();
190
- else for (e = 0, n = t; 0 <= n ? e < n : e > n; 0 <= n ? ++e : --e) this.renderNextFrame();
191
- return this.emit("start"), this.emit("progress", 0);
192
- }, r.prototype.abort = function() {
193
- for (var e; e = this.activeWorkers.shift(), e != null;) this.log("killing active worker"), e.terminate();
194
- return this.running = !1, this.emit("abort");
195
- }, r.prototype.spawnWorkers = function() {
196
- var e = Math.min(this.options.workers, this.frames.length), t, n;
197
- return (function() {
198
- n = [];
199
- for (var r = t = this.freeWorkers.length; t <= e ? r < e : r > e; t <= e ? r++ : r--) n.push(r);
200
- return n;
201
- }).apply(this).forEach(function(e) {
202
- return function(t) {
203
- var n;
204
- return e.log("spawning worker " + t), n = new Worker(e.options.workerScript), n.onmessage = function(t) {
205
- return e.activeWorkers.splice(e.activeWorkers.indexOf(n), 1), e.freeWorkers.push(n), e.frameFinished(t.data);
206
- }, e.freeWorkers.push(n);
207
- };
208
- }(this)), e;
209
- }, r.prototype.frameFinished = function(e) {
210
- var t, n;
211
- if (this.log("frame " + e.index + " finished - " + this.activeWorkers.length + " active"), this.finishedFrames++, this.emit("progress", this.finishedFrames / this.frames.length), this.imageParts[e.index] = e, this.options.globalPalette === !0 && (this.options.globalPalette = e.globalPalette, this.log("global palette analyzed"), this.frames.length > 2)) for (t = 1, n = this.freeWorkers.length; 1 <= n ? t < n : t > n; 1 <= n ? ++t : --t) this.renderNextFrame();
212
- return c.call(this.imageParts, null) >= 0 ? this.renderNextFrame() : this.finishRendering();
213
- }, r.prototype.finishRendering = function() {
214
- var e, t, n, r, i, a, o, s = 0, c, l, u, d, f, p = this.imageParts, m, h;
215
- for (i = 0, c = p.length; i < c; i++) t = p[i], s += (t.data.length - 1) * t.pageSize + t.cursor;
216
- for (s += t.pageSize - t.cursor, this.log("rendering finished - filesize " + Math.round(s / 1e3) + "kb"), e = new Uint8Array(s), d = 0, m = this.imageParts, a = 0, l = m.length; a < l; a++) for (t = m[a], h = t.data, n = o = 0, u = h.length; o < u; n = ++o) f = h[n], e.set(f, d), n === t.data.length - 1 ? d += t.cursor : d += t.pageSize;
217
- return r = new Blob([e], { type: "image/gif" }), this.emit("finished", r, e);
218
- }, r.prototype.renderNextFrame = function() {
219
- var e, t, n;
220
- if (this.freeWorkers.length === 0) throw Error("No free workers");
221
- if (!(this.nextFrame >= this.frames.length)) return e = this.frames[this.nextFrame++], n = this.freeWorkers.shift(), t = this.getTask(e), this.log("starting frame " + (t.index + 1) + " of " + this.frames.length), this.activeWorkers.push(n), n.postMessage(t);
222
- }, r.prototype.getContextData = function(e) {
223
- return e.getImageData(0, 0, this.options.width, this.options.height).data;
224
- }, r.prototype.getImageData = function(e) {
225
- var t;
226
- return this._canvas ?? (this._canvas = document.createElement("canvas"), this._canvas.width = this.options.width, this._canvas.height = this.options.height), t = this._canvas.getContext("2d"), t.setFill = this.options.background, t.fillRect(0, 0, this.options.width, this.options.height), t.drawImage(e, 0, 0), this.getContextData(t);
227
- }, r.prototype.getTask = function(e) {
228
- var t = this.frames.indexOf(e), n = {
229
- index: t,
230
- last: t === this.frames.length - 1,
231
- delay: e.delay,
232
- transparent: e.transparent,
233
- width: this.options.width,
234
- height: this.options.height,
235
- quality: this.options.quality,
236
- dither: this.options.dither,
237
- globalPalette: this.options.globalPalette,
238
- repeat: this.options.repeat,
239
- canTransfer: a.name === "chrome"
240
- };
241
- if (e.data != null) n.data = e.data;
242
- else if (e.context != null) n.data = this.getContextData(e.context);
243
- else if (e.image != null) n.data = this.getImageData(e.image);
244
- else throw Error("Invalid frame");
245
- return n;
246
- }, r.prototype.log = function() {
247
- var e = 1 <= arguments.length ? l.call(arguments, 0) : [];
248
- if (this.options.debug) return console.log.apply(console, e);
249
- }, r;
250
- }(r), t.exports = i;
251
- }, {
252
- "./browser.coffee": 2,
253
- events: 1
254
- }]
255
- }, {}, [3])(3);
256
- });
257
- })), a = /* @__PURE__ */ t({
258
- GifExporter: () => s,
259
- createGifExporter: () => c
260
- }), o = /* @__PURE__ */ e(i(), 1), s = class e {
261
- _scene;
262
- _options;
263
- constructor(e, t) {
264
- this._scene = e, this._options = {
265
- fps: t?.fps ?? 30,
266
- quality: t?.quality ?? 10,
267
- width: t?.width ?? e.renderer.width,
268
- height: t?.height ?? e.renderer.height,
269
- duration: t?.duration ?? 0,
270
- workers: t?.workers ?? 4,
271
- repeat: t?.repeat ?? 0,
272
- onProgress: t?.onProgress ?? (() => {})
273
- };
274
- }
275
- async exportTimeline(e) {
276
- let t = (e || this._options.duration || this._getTimelineDuration()) ?? 5, n = Math.ceil(t * this._options.fps), r = Math.round(1e3 / this._options.fps), i = await this._createWorkerBlobUrl(), a = new o.default({
277
- workers: this._options.workers,
278
- quality: this._options.quality,
279
- width: this._options.width,
280
- height: this._options.height,
281
- repeat: this._options.repeat,
282
- workerScript: i
283
- }), s = this._scene.getCanvas(), c = document.createElement("canvas");
284
- c.width = this._options.width, c.height = this._options.height;
285
- let l = c.getContext("2d");
286
- for (let e = 0; e < n; e++) {
287
- let t = e / this._options.fps;
288
- this._scene.seek(t), l.clearRect(0, 0, c.width, c.height), l.drawImage(s, 0, 0, c.width, c.height);
289
- let i = l.getImageData(0, 0, c.width, c.height);
290
- a.addFrame(i, { delay: r }), this._options.onProgress(e / n * .5);
291
- }
292
- return new Promise((e, t) => {
293
- let n = setTimeout(() => {
294
- a.abort(), URL.revokeObjectURL(i), t(/* @__PURE__ */ Error("GIF encoding timed out after 60 seconds"));
295
- }, 6e4);
296
- a.on("progress", (e) => {
297
- this._options.onProgress(.5 + e * .5);
298
- }), a.on("finished", (t) => {
299
- clearTimeout(n), URL.revokeObjectURL(i), e(t);
300
- }), a.on("abort", () => {
301
- clearTimeout(n), URL.revokeObjectURL(i), t(/* @__PURE__ */ Error("GIF encoding was aborted"));
302
- });
303
- try {
304
- a.render();
305
- } catch (e) {
306
- clearTimeout(n), URL.revokeObjectURL(i), t(e);
307
- }
308
- });
309
- }
310
- _getTimelineDuration() {
311
- let e = this._scene.timeline;
312
- return e ? e.getDuration() : null;
313
- }
314
- async _createWorkerBlobUrl() {
315
- let e = await fetch("/node_modules/gif.js/dist/gif.worker.js");
316
- if (!e.ok) {
317
- let e = await fetch("https://cdn.jsdelivr.net/npm/gif.js@0.2.0/dist/gif.worker.js");
318
- if (!e.ok) throw Error("Failed to load gif.js worker script");
319
- let t = await e.text();
320
- return URL.createObjectURL(new Blob([t], { type: "application/javascript" }));
321
- }
322
- let t = await e.text();
323
- return URL.createObjectURL(new Blob([t], { type: "application/javascript" }));
324
- }
325
- static download(e, t = "animation.gif") {
326
- let n = URL.createObjectURL(e), r = document.createElement("a");
327
- r.href = n, r.download = t, document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(n);
328
- }
329
- async exportAndDownload(t = "animation.gif", n) {
330
- let r = await this.exportTimeline(n);
331
- e.download(r, t);
332
- }
333
- };
334
- function c(e, t) {
335
- return new s(e, t);
336
- }
337
- //#endregion
338
- export { a as n, c as r, s as t };
@@ -1,338 +0,0 @@
1
- import { i as e, n as t, r as n, t as r } from "./rolldown-runtime-DnwLefa7.js";
2
- //#region node_modules/gif.js/dist/gif.js
3
- var i = /* @__PURE__ */ r(((e, t) => {
4
- (function(n) {
5
- if (typeof e == "object" && t !== void 0) t.exports = n();
6
- else if (typeof define == "function" && define.amd) define([], n);
7
- else {
8
- var r = typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : this;
9
- r.GIF = n();
10
- }
11
- })(function() {
12
- return function e(t, r, i) {
13
- function a(s, c) {
14
- if (!r[s]) {
15
- if (!t[s]) {
16
- var l = typeof n == "function" && n;
17
- if (!c && l) return l(s, !0);
18
- if (o) return o(s, !0);
19
- var u = /* @__PURE__ */ Error("Cannot find module '" + s + "'");
20
- throw u.code = "MODULE_NOT_FOUND", u;
21
- }
22
- var d = r[s] = { exports: {} };
23
- t[s][0].call(d.exports, function(e) {
24
- var n = t[s][1][e];
25
- return a(n || e);
26
- }, d, d.exports, e, t, r, i);
27
- }
28
- return r[s].exports;
29
- }
30
- for (var o = typeof n == "function" && n, s = 0; s < i.length; s++) a(i[s]);
31
- return a;
32
- }({
33
- 1: [function(e, t, n) {
34
- function r() {
35
- this._events = this._events || {}, this._maxListeners = this._maxListeners || void 0;
36
- }
37
- t.exports = r, r.EventEmitter = r, r.prototype._events = void 0, r.prototype._maxListeners = void 0, r.defaultMaxListeners = 10, r.prototype.setMaxListeners = function(e) {
38
- if (!a(e) || e < 0 || isNaN(e)) throw TypeError("n must be a positive number");
39
- return this._maxListeners = e, this;
40
- }, r.prototype.emit = function(e) {
41
- var t, n, r, a, c, l;
42
- if (this._events ||= {}, e === "error" && (!this._events.error || o(this._events.error) && !this._events.error.length)) {
43
- if (t = arguments[1], t instanceof Error) throw t;
44
- var u = /* @__PURE__ */ Error("Uncaught, unspecified \"error\" event. (" + t + ")");
45
- throw u.context = t, u;
46
- }
47
- if (n = this._events[e], s(n)) return !1;
48
- if (i(n)) switch (arguments.length) {
49
- case 1:
50
- n.call(this);
51
- break;
52
- case 2:
53
- n.call(this, arguments[1]);
54
- break;
55
- case 3:
56
- n.call(this, arguments[1], arguments[2]);
57
- break;
58
- default: a = Array.prototype.slice.call(arguments, 1), n.apply(this, a);
59
- }
60
- else if (o(n)) for (a = Array.prototype.slice.call(arguments, 1), l = n.slice(), r = l.length, c = 0; c < r; c++) l[c].apply(this, a);
61
- return !0;
62
- }, r.prototype.addListener = function(e, t) {
63
- var n;
64
- if (!i(t)) throw TypeError("listener must be a function");
65
- return this._events ||= {}, this._events.newListener && this.emit("newListener", e, i(t.listener) ? t.listener : t), this._events[e] ? o(this._events[e]) ? this._events[e].push(t) : this._events[e] = [this._events[e], t] : this._events[e] = t, o(this._events[e]) && !this._events[e].warned && (n = s(this._maxListeners) ? r.defaultMaxListeners : this._maxListeners, n && n > 0 && this._events[e].length > n && (this._events[e].warned = !0, console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[e].length), typeof console.trace == "function" && console.trace())), this;
66
- }, r.prototype.on = r.prototype.addListener, r.prototype.once = function(e, t) {
67
- if (!i(t)) throw TypeError("listener must be a function");
68
- var n = !1;
69
- function r() {
70
- this.removeListener(e, r), n || (n = !0, t.apply(this, arguments));
71
- }
72
- return r.listener = t, this.on(e, r), this;
73
- }, r.prototype.removeListener = function(e, t) {
74
- var n, r, a, s;
75
- if (!i(t)) throw TypeError("listener must be a function");
76
- if (!this._events || !this._events[e]) return this;
77
- if (n = this._events[e], a = n.length, r = -1, n === t || i(n.listener) && n.listener === t) delete this._events[e], this._events.removeListener && this.emit("removeListener", e, t);
78
- else if (o(n)) {
79
- for (s = a; s-- > 0;) if (n[s] === t || n[s].listener && n[s].listener === t) {
80
- r = s;
81
- break;
82
- }
83
- if (r < 0) return this;
84
- n.length === 1 ? (n.length = 0, delete this._events[e]) : n.splice(r, 1), this._events.removeListener && this.emit("removeListener", e, t);
85
- }
86
- return this;
87
- }, r.prototype.removeAllListeners = function(e) {
88
- var t, n;
89
- if (!this._events) return this;
90
- if (!this._events.removeListener) return arguments.length === 0 ? this._events = {} : this._events[e] && delete this._events[e], this;
91
- if (arguments.length === 0) {
92
- for (t in this._events) t !== "removeListener" && this.removeAllListeners(t);
93
- return this.removeAllListeners("removeListener"), this._events = {}, this;
94
- }
95
- if (n = this._events[e], i(n)) this.removeListener(e, n);
96
- else if (n) for (; n.length;) this.removeListener(e, n[n.length - 1]);
97
- return delete this._events[e], this;
98
- }, r.prototype.listeners = function(e) {
99
- return !this._events || !this._events[e] ? [] : i(this._events[e]) ? [this._events[e]] : this._events[e].slice();
100
- }, r.prototype.listenerCount = function(e) {
101
- if (this._events) {
102
- var t = this._events[e];
103
- if (i(t)) return 1;
104
- if (t) return t.length;
105
- }
106
- return 0;
107
- }, r.listenerCount = function(e, t) {
108
- return e.listenerCount(t);
109
- };
110
- function i(e) {
111
- return typeof e == "function";
112
- }
113
- function a(e) {
114
- return typeof e == "number";
115
- }
116
- function o(e) {
117
- return typeof e == "object" && !!e;
118
- }
119
- function s(e) {
120
- return e === void 0;
121
- }
122
- }, {}],
123
- 2: [function(e, t, n) {
124
- var r, i, a, o, s = navigator.userAgent.toLowerCase();
125
- o = navigator.platform.toLowerCase(), r = s.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/) || [
126
- null,
127
- "unknown",
128
- 0
129
- ], a = r[1] === "ie" && document.documentMode, i = {
130
- name: r[1] === "version" ? r[3] : r[1],
131
- version: a || parseFloat(r[1] === "opera" && r[4] ? r[4] : r[2]),
132
- platform: { name: s.match(/ip(?:ad|od|hone)/) ? "ios" : (s.match(/(?:webos|android)/) || o.match(/mac|win|linux/) || ["other"])[0] }
133
- }, i[i.name] = !0, i[i.name + parseInt(i.version, 10)] = !0, i.platform[i.platform.name] = !0, t.exports = i;
134
- }, {}],
135
- 3: [function(e, t, n) {
136
- var r, i, a, o = function(e, t) {
137
- for (var n in t) s.call(t, n) && (e[n] = t[n]);
138
- function r() {
139
- this.constructor = e;
140
- }
141
- return r.prototype = t.prototype, e.prototype = new r(), e.__super__ = t.prototype, e;
142
- }, s = {}.hasOwnProperty, c = [].indexOf || function(e) {
143
- for (var t = 0, n = this.length; t < n; t++) if (t in this && this[t] === e) return t;
144
- return -1;
145
- }, l = [].slice;
146
- r = e("events").EventEmitter, a = e("./browser.coffee"), i = function(e) {
147
- var t, n;
148
- o(r, e), t = {
149
- workerScript: "gif.worker.js",
150
- workers: 2,
151
- repeat: 0,
152
- background: "#fff",
153
- quality: 10,
154
- width: null,
155
- height: null,
156
- transparent: null,
157
- debug: !1,
158
- dither: !1
159
- }, n = {
160
- delay: 500,
161
- copy: !1
162
- };
163
- function r(e) {
164
- var n, r, i;
165
- for (r in this.running = !1, this.options = {}, this.frames = [], this.freeWorkers = [], this.activeWorkers = [], this.setOptions(e), t) i = t[r], (n = this.options)[r] ?? (n[r] = i);
166
- }
167
- return r.prototype.setOption = function(e, t) {
168
- if (this.options[e] = t, this._canvas != null && (e === "width" || e === "height")) return this._canvas[e] = t;
169
- }, r.prototype.setOptions = function(e) {
170
- var t, n = [], r;
171
- for (t in e) s.call(e, t) && (r = e[t], n.push(this.setOption(t, r)));
172
- return n;
173
- }, r.prototype.addFrame = function(e, t) {
174
- var r, i;
175
- for (i in t ??= {}, r = {}, r.transparent = this.options.transparent, n) r[i] = t[i] || n[i];
176
- if (this.options.width ?? this.setOption("width", e.width), this.options.height ?? this.setOption("height", e.height), typeof ImageData < "u" && ImageData !== null && e instanceof ImageData) r.data = e.data;
177
- else if (typeof CanvasRenderingContext2D < "u" && CanvasRenderingContext2D !== null && e instanceof CanvasRenderingContext2D || typeof WebGLRenderingContext < "u" && WebGLRenderingContext !== null && e instanceof WebGLRenderingContext) t.copy ? r.data = this.getContextData(e) : r.context = e;
178
- else if (e.childNodes != null) t.copy ? r.data = this.getImageData(e) : r.image = e;
179
- else throw Error("Invalid image");
180
- return this.frames.push(r);
181
- }, r.prototype.render = function() {
182
- var e, t, n;
183
- if (this.running) throw Error("Already running");
184
- if (this.options.width == null || this.options.height == null) throw Error("Width and height must be set prior to rendering");
185
- if (this.running = !0, this.nextFrame = 0, this.finishedFrames = 0, this.imageParts = function() {
186
- var e, t, n = [];
187
- for (e = 0, t = this.frames.length; 0 <= t ? e < t : e > t; 0 <= t ? ++e : --e) n.push(null);
188
- return n;
189
- }.call(this), t = this.spawnWorkers(), this.options.globalPalette === !0) this.renderNextFrame();
190
- else for (e = 0, n = t; 0 <= n ? e < n : e > n; 0 <= n ? ++e : --e) this.renderNextFrame();
191
- return this.emit("start"), this.emit("progress", 0);
192
- }, r.prototype.abort = function() {
193
- for (var e; e = this.activeWorkers.shift(), e != null;) this.log("killing active worker"), e.terminate();
194
- return this.running = !1, this.emit("abort");
195
- }, r.prototype.spawnWorkers = function() {
196
- var e = Math.min(this.options.workers, this.frames.length), t, n;
197
- return (function() {
198
- n = [];
199
- for (var r = t = this.freeWorkers.length; t <= e ? r < e : r > e; t <= e ? r++ : r--) n.push(r);
200
- return n;
201
- }).apply(this).forEach(function(e) {
202
- return function(t) {
203
- var n;
204
- return e.log("spawning worker " + t), n = new Worker(e.options.workerScript), n.onmessage = function(t) {
205
- return e.activeWorkers.splice(e.activeWorkers.indexOf(n), 1), e.freeWorkers.push(n), e.frameFinished(t.data);
206
- }, e.freeWorkers.push(n);
207
- };
208
- }(this)), e;
209
- }, r.prototype.frameFinished = function(e) {
210
- var t, n;
211
- if (this.log("frame " + e.index + " finished - " + this.activeWorkers.length + " active"), this.finishedFrames++, this.emit("progress", this.finishedFrames / this.frames.length), this.imageParts[e.index] = e, this.options.globalPalette === !0 && (this.options.globalPalette = e.globalPalette, this.log("global palette analyzed"), this.frames.length > 2)) for (t = 1, n = this.freeWorkers.length; 1 <= n ? t < n : t > n; 1 <= n ? ++t : --t) this.renderNextFrame();
212
- return c.call(this.imageParts, null) >= 0 ? this.renderNextFrame() : this.finishRendering();
213
- }, r.prototype.finishRendering = function() {
214
- var e, t, n, r, i, a, o, s = 0, c, l, u, d, f, p = this.imageParts, m, h;
215
- for (i = 0, c = p.length; i < c; i++) t = p[i], s += (t.data.length - 1) * t.pageSize + t.cursor;
216
- for (s += t.pageSize - t.cursor, this.log("rendering finished - filesize " + Math.round(s / 1e3) + "kb"), e = new Uint8Array(s), d = 0, m = this.imageParts, a = 0, l = m.length; a < l; a++) for (t = m[a], h = t.data, n = o = 0, u = h.length; o < u; n = ++o) f = h[n], e.set(f, d), n === t.data.length - 1 ? d += t.cursor : d += t.pageSize;
217
- return r = new Blob([e], { type: "image/gif" }), this.emit("finished", r, e);
218
- }, r.prototype.renderNextFrame = function() {
219
- var e, t, n;
220
- if (this.freeWorkers.length === 0) throw Error("No free workers");
221
- if (!(this.nextFrame >= this.frames.length)) return e = this.frames[this.nextFrame++], n = this.freeWorkers.shift(), t = this.getTask(e), this.log("starting frame " + (t.index + 1) + " of " + this.frames.length), this.activeWorkers.push(n), n.postMessage(t);
222
- }, r.prototype.getContextData = function(e) {
223
- return e.getImageData(0, 0, this.options.width, this.options.height).data;
224
- }, r.prototype.getImageData = function(e) {
225
- var t;
226
- return this._canvas ?? (this._canvas = document.createElement("canvas"), this._canvas.width = this.options.width, this._canvas.height = this.options.height), t = this._canvas.getContext("2d"), t.setFill = this.options.background, t.fillRect(0, 0, this.options.width, this.options.height), t.drawImage(e, 0, 0), this.getContextData(t);
227
- }, r.prototype.getTask = function(e) {
228
- var t = this.frames.indexOf(e), n = {
229
- index: t,
230
- last: t === this.frames.length - 1,
231
- delay: e.delay,
232
- transparent: e.transparent,
233
- width: this.options.width,
234
- height: this.options.height,
235
- quality: this.options.quality,
236
- dither: this.options.dither,
237
- globalPalette: this.options.globalPalette,
238
- repeat: this.options.repeat,
239
- canTransfer: a.name === "chrome"
240
- };
241
- if (e.data != null) n.data = e.data;
242
- else if (e.context != null) n.data = this.getContextData(e.context);
243
- else if (e.image != null) n.data = this.getImageData(e.image);
244
- else throw Error("Invalid frame");
245
- return n;
246
- }, r.prototype.log = function() {
247
- var e = 1 <= arguments.length ? l.call(arguments, 0) : [];
248
- if (this.options.debug) return console.log.apply(console, e);
249
- }, r;
250
- }(r), t.exports = i;
251
- }, {
252
- "./browser.coffee": 2,
253
- events: 1
254
- }]
255
- }, {}, [3])(3);
256
- });
257
- })), a = /* @__PURE__ */ t({
258
- GifExporter: () => s,
259
- createGifExporter: () => c
260
- }), o = /* @__PURE__ */ e(i(), 1), s = class e {
261
- _scene;
262
- _options;
263
- constructor(e, t) {
264
- this._scene = e, this._options = {
265
- fps: t?.fps ?? 30,
266
- quality: t?.quality ?? 10,
267
- width: t?.width ?? e.renderer.width,
268
- height: t?.height ?? e.renderer.height,
269
- duration: t?.duration ?? 0,
270
- workers: t?.workers ?? 4,
271
- repeat: t?.repeat ?? 0,
272
- onProgress: t?.onProgress ?? (() => {})
273
- };
274
- }
275
- async exportTimeline(e) {
276
- let t = (e || this._options.duration || this._getTimelineDuration()) ?? 5, n = Math.ceil(t * this._options.fps), r = Math.round(1e3 / this._options.fps), i = await this._createWorkerBlobUrl(), a = new o.default({
277
- workers: this._options.workers,
278
- quality: this._options.quality,
279
- width: this._options.width,
280
- height: this._options.height,
281
- repeat: this._options.repeat,
282
- workerScript: i
283
- }), s = this._scene.getCanvas(), c = document.createElement("canvas");
284
- c.width = this._options.width, c.height = this._options.height;
285
- let l = c.getContext("2d");
286
- for (let e = 0; e < n; e++) {
287
- let t = e / this._options.fps;
288
- this._scene.seek(t), l.clearRect(0, 0, c.width, c.height), l.drawImage(s, 0, 0, c.width, c.height);
289
- let i = l.getImageData(0, 0, c.width, c.height);
290
- a.addFrame(i, { delay: r }), this._options.onProgress(e / n * .5);
291
- }
292
- return new Promise((e, t) => {
293
- let n = setTimeout(() => {
294
- a.abort(), URL.revokeObjectURL(i), t(/* @__PURE__ */ Error("GIF encoding timed out after 60 seconds"));
295
- }, 6e4);
296
- a.on("progress", (e) => {
297
- this._options.onProgress(.5 + e * .5);
298
- }), a.on("finished", (t) => {
299
- clearTimeout(n), URL.revokeObjectURL(i), e(t);
300
- }), a.on("abort", () => {
301
- clearTimeout(n), URL.revokeObjectURL(i), t(/* @__PURE__ */ Error("GIF encoding was aborted"));
302
- });
303
- try {
304
- a.render();
305
- } catch (e) {
306
- clearTimeout(n), URL.revokeObjectURL(i), t(e);
307
- }
308
- });
309
- }
310
- _getTimelineDuration() {
311
- let e = this._scene.timeline;
312
- return e ? e.getDuration() : null;
313
- }
314
- async _createWorkerBlobUrl() {
315
- let e = await fetch("/node_modules/gif.js/dist/gif.worker.js");
316
- if (!e.ok) {
317
- let e = await fetch("https://cdn.jsdelivr.net/npm/gif.js@0.2.0/dist/gif.worker.js");
318
- if (!e.ok) throw Error("Failed to load gif.js worker script");
319
- let t = await e.text();
320
- return URL.createObjectURL(new Blob([t], { type: "application/javascript" }));
321
- }
322
- let t = await e.text();
323
- return URL.createObjectURL(new Blob([t], { type: "application/javascript" }));
324
- }
325
- static download(e, t = "animation.gif") {
326
- let n = URL.createObjectURL(e), r = document.createElement("a");
327
- r.href = n, r.download = t, document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(n);
328
- }
329
- async exportAndDownload(t = "animation.gif", n) {
330
- let r = await this.exportTimeline(n);
331
- e.download(r, t);
332
- }
333
- };
334
- function c(e, t) {
335
- return new s(e, t);
336
- }
337
- //#endregion
338
- export { a as n, c as r, s as t };