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.
- package/README.md +20 -0
- package/dist/{svg-swSF_J59.js → MathJaxBundle-xSidSV0E.js} +18571 -7242
- package/dist/animation/Animation.d.ts.map +1 -1
- package/dist/animation/AnimationGroup.d.ts.map +1 -1
- package/dist/animation/MasterTimeline.d.ts +88 -1
- package/dist/animation/MasterTimeline.d.ts.map +1 -1
- package/dist/animation/Timeline.d.ts.map +1 -1
- package/dist/animation/changing/index.d.ts +2 -2
- package/dist/animation/changing/index.d.ts.map +1 -1
- package/dist/animation/creation/Create.d.ts.map +1 -1
- package/dist/animation/growing/index.d.ts +8 -5
- package/dist/animation/growing/index.d.ts.map +1 -1
- package/dist/animation/movement/Homotopy.d.ts +37 -7
- package/dist/animation/movement/Homotopy.d.ts.map +1 -1
- package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -1
- package/dist/animation/movement/Rotate.d.ts +2 -7
- package/dist/animation/movement/Rotate.d.ts.map +1 -1
- package/dist/animation/speed/index.d.ts.map +1 -1
- package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -1
- package/dist/animation/transform/ApplyPointwiseFunctionToCenter.d.ts.map +1 -1
- package/dist/animation/transform/ApplyTransforms.d.ts.map +1 -1
- package/dist/animation/transform/MorphStrategy.d.ts +23 -0
- package/dist/animation/transform/MorphStrategy.d.ts.map +1 -1
- package/dist/animation/transform/PointCloudMorphStrategy.d.ts +18 -0
- package/dist/animation/transform/PointCloudMorphStrategy.d.ts.map +1 -0
- package/dist/animation/transform/PointMorphStrategy.d.ts +26 -0
- package/dist/animation/transform/PointMorphStrategy.d.ts.map +1 -1
- package/dist/animation/transform/Transform.d.ts +2 -0
- package/dist/animation/transform/Transform.d.ts.map +1 -1
- package/dist/animation/transform/TransformMatching.d.ts.map +1 -1
- package/dist/animation/utility/index.d.ts +6 -2
- package/dist/animation/utility/index.d.ts.map +1 -1
- package/dist/core/AnimateProxy.d.ts +3 -5
- package/dist/core/AnimateProxy.d.ts.map +1 -1
- package/dist/core/Camera.d.ts +40 -0
- package/dist/core/Camera.d.ts.map +1 -1
- package/dist/core/Camera2DFrame.d.ts +1 -1
- package/dist/core/Camera2DFrame.d.ts.map +1 -1
- package/dist/core/CameraExtensions.d.ts +33 -1
- package/dist/core/CameraExtensions.d.ts.map +1 -1
- package/dist/core/CameraFrame.d.ts.map +1 -1
- package/dist/core/Group.d.ts +11 -39
- package/dist/core/Group.d.ts.map +1 -1
- package/dist/core/InteractiveScene.d.ts.map +1 -1
- package/dist/core/Lighting.d.ts.map +1 -1
- package/dist/core/Mobject.d.ts +246 -11
- package/dist/core/Mobject.d.ts.map +1 -1
- package/dist/core/MobjectPositioning.d.ts +0 -8
- package/dist/core/MobjectPositioning.d.ts.map +1 -1
- package/dist/core/MobjectState.d.ts.map +1 -1
- package/dist/core/MobjectTraversal.d.ts +3 -0
- package/dist/core/MobjectTraversal.d.ts.map +1 -1
- package/dist/core/MobjectTypes.d.ts +29 -4
- package/dist/core/MobjectTypes.d.ts.map +1 -1
- package/dist/core/PointBounds.d.ts +39 -0
- package/dist/core/PointBounds.d.ts.map +1 -0
- package/dist/core/Renderer.d.ts +3 -0
- package/dist/core/Renderer.d.ts.map +1 -1
- package/dist/core/Scene.d.ts +82 -0
- package/dist/core/Scene.d.ts.map +1 -1
- package/dist/core/TexturedMobject.d.ts +12 -0
- package/dist/core/TexturedMobject.d.ts.map +1 -1
- package/dist/core/ThreeDScene.d.ts +9 -1
- package/dist/core/ThreeDScene.d.ts.map +1 -1
- package/dist/core/VDict.d.ts +1 -9
- package/dist/core/VDict.d.ts.map +1 -1
- package/dist/core/VGroup.d.ts +58 -42
- package/dist/core/VGroup.d.ts.map +1 -1
- package/dist/core/VMobject.d.ts +102 -28
- package/dist/core/VMobject.d.ts.map +1 -1
- package/dist/core/VMobjectCurveUtils.d.ts +1 -1
- package/dist/core/VMobjectCurveUtils.d.ts.map +1 -1
- package/dist/core/VMobjectGeometry.d.ts +20 -10
- package/dist/core/VMobjectGeometry.d.ts.map +1 -1
- package/dist/core/VMobjectRendering.d.ts +5 -0
- package/dist/core/VMobjectRendering.d.ts.map +1 -1
- package/dist/core/VMobjectStrokeGeometry.d.ts.map +1 -1
- package/dist/core/VMobjectTransformAlignment.d.ts +9 -0
- package/dist/core/VMobjectTransformAlignment.d.ts.map +1 -1
- package/dist/core/ZoomedScene.d.ts +2 -1
- package/dist/core/ZoomedScene.d.ts.map +1 -1
- package/dist/export/GifExporter.d.ts.map +1 -1
- package/dist/export/VideoExporter.d.ts.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/integrations/react.js +16 -18
- package/dist/integrations/vue.js +15 -17
- package/dist/interaction/Draggable.d.ts +12 -0
- package/dist/interaction/Draggable.d.ts.map +1 -1
- package/dist/interaction/OrbitControls.d.ts +1 -1
- package/dist/interaction/OrbitControls.d.ts.map +1 -1
- package/dist/manim-web.browser.js +12510 -10445
- package/dist/mobjects/fractals/MandelbrotSet.d.ts +2 -1
- package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -1
- package/dist/mobjects/fractals/NewtonFractal.d.ts +2 -1
- package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -1
- package/dist/mobjects/frame/index.d.ts +3 -12
- package/dist/mobjects/frame/index.d.ts.map +1 -1
- package/dist/mobjects/geometry/AngleShapes.d.ts +4 -8
- package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -1
- package/dist/mobjects/geometry/AnnularSector.d.ts +4 -74
- package/dist/mobjects/geometry/AnnularSector.d.ts.map +1 -1
- package/dist/mobjects/geometry/Annulus.d.ts +1 -62
- package/dist/mobjects/geometry/Annulus.d.ts.map +1 -1
- package/dist/mobjects/geometry/Arc.d.ts +3 -1
- package/dist/mobjects/geometry/Arc.d.ts.map +1 -1
- package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +1 -1
- package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -1
- package/dist/mobjects/geometry/ArcPolygon.d.ts +1 -1
- package/dist/mobjects/geometry/ArcPolygon.d.ts.map +1 -1
- package/dist/mobjects/geometry/Arrow.d.ts +130 -23
- package/dist/mobjects/geometry/Arrow.d.ts.map +1 -1
- package/dist/mobjects/geometry/ArrowTips.d.ts +7 -7
- package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -1
- package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -1
- package/dist/mobjects/geometry/Circle.d.ts +20 -23
- package/dist/mobjects/geometry/Circle.d.ts.map +1 -1
- package/dist/mobjects/geometry/CubicBezier.d.ts +1 -1
- package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -1
- package/dist/mobjects/geometry/CurvedArrow.d.ts +1 -1
- package/dist/mobjects/geometry/CurvedArrow.d.ts.map +1 -1
- package/dist/mobjects/geometry/CurvedDoubleArrow.d.ts +1 -1
- package/dist/mobjects/geometry/CurvedDoubleArrow.d.ts.map +1 -1
- package/dist/mobjects/geometry/DashedLine.d.ts +3 -2
- package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -1
- package/dist/mobjects/geometry/DashedVMobject.d.ts +3 -2
- package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -1
- package/dist/mobjects/geometry/Dot.d.ts +4 -15
- package/dist/mobjects/geometry/Dot.d.ts.map +1 -1
- package/dist/mobjects/geometry/Ellipse.d.ts +3 -47
- package/dist/mobjects/geometry/Ellipse.d.ts.map +1 -1
- package/dist/mobjects/geometry/LabeledGeometry.d.ts +5 -5
- package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -1
- package/dist/mobjects/geometry/Line.d.ts +15 -9
- package/dist/mobjects/geometry/Line.d.ts.map +1 -1
- package/dist/mobjects/geometry/Polygon.d.ts +1 -1
- package/dist/mobjects/geometry/Polygon.d.ts.map +1 -1
- package/dist/mobjects/geometry/PolygonExtensions.d.ts +11 -67
- package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -1
- package/dist/mobjects/geometry/Polygram.d.ts +1 -1
- package/dist/mobjects/geometry/Polygram.d.ts.map +1 -1
- package/dist/mobjects/geometry/Rectangle.d.ts +4 -5
- package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -1
- package/dist/mobjects/geometry/Sector.d.ts +5 -69
- package/dist/mobjects/geometry/Sector.d.ts.map +1 -1
- package/dist/mobjects/geometry/ShapeMatchers.d.ts +6 -5
- package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -1
- package/dist/mobjects/geometry/TangentialArc.d.ts +1 -1
- package/dist/mobjects/geometry/TangentialArc.d.ts.map +1 -1
- package/dist/mobjects/geometry/segment.d.ts +24 -0
- package/dist/mobjects/geometry/segment.d.ts.map +1 -0
- package/dist/mobjects/graph/DiGraph.d.ts +1 -4
- package/dist/mobjects/graph/DiGraph.d.ts.map +1 -1
- package/dist/mobjects/graph/GenericGraph.d.ts +2 -1
- package/dist/mobjects/graph/GenericGraph.d.ts.map +1 -1
- package/dist/mobjects/graph/Graph.d.ts +1 -4
- package/dist/mobjects/graph/Graph.d.ts.map +1 -1
- package/dist/mobjects/graph/layoutAlgorithms.d.ts.map +1 -1
- package/dist/mobjects/graphing/Axes.d.ts +1 -4
- package/dist/mobjects/graphing/Axes.d.ts.map +1 -1
- package/dist/mobjects/graphing/BarChart.d.ts +1 -4
- package/dist/mobjects/graphing/BarChart.d.ts.map +1 -1
- package/dist/mobjects/graphing/ComplexPlane.d.ts +43 -9
- package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -1
- package/dist/mobjects/graphing/FunctionGraph.d.ts +1 -4
- package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -1
- package/dist/mobjects/graphing/ImplicitFunction.d.ts +1 -4
- package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -1
- package/dist/mobjects/graphing/NumberLine.d.ts +2 -8
- package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -1
- package/dist/mobjects/graphing/NumberPlane.d.ts +1 -4
- package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -1
- package/dist/mobjects/graphing/ParametricFunction.d.ts +1 -4
- package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -1
- package/dist/mobjects/graphing/Vector.d.ts +1 -4
- package/dist/mobjects/graphing/Vector.d.ts.map +1 -1
- package/dist/mobjects/graphing/VectorField.d.ts +3 -12
- package/dist/mobjects/graphing/VectorField.d.ts.map +1 -1
- package/dist/mobjects/image/index.d.ts +6 -4
- package/dist/mobjects/image/index.d.ts.map +1 -1
- package/dist/mobjects/matrix/Matrix.d.ts +4 -16
- package/dist/mobjects/matrix/Matrix.d.ts.map +1 -1
- package/dist/mobjects/point/Mobject1D.d.ts +1 -4
- package/dist/mobjects/point/Mobject1D.d.ts.map +1 -1
- package/dist/mobjects/point/Mobject2D.d.ts +1 -1
- package/dist/mobjects/point/Mobject2D.d.ts.map +1 -1
- package/dist/mobjects/point/PGroup.d.ts +2 -4
- package/dist/mobjects/point/PGroup.d.ts.map +1 -1
- package/dist/mobjects/point/PMobject.d.ts +49 -13
- package/dist/mobjects/point/PMobject.d.ts.map +1 -1
- package/dist/mobjects/point/PointCloudDot.d.ts +1 -4
- package/dist/mobjects/point/PointCloudDot.d.ts.map +1 -1
- package/dist/mobjects/point/PointMobject.d.ts +13 -17
- package/dist/mobjects/point/PointMobject.d.ts.map +1 -1
- package/dist/mobjects/probability/DiceFace.d.ts +1 -5
- package/dist/mobjects/probability/DiceFace.d.ts.map +1 -1
- package/dist/mobjects/probability/SampleSpace.d.ts +1 -5
- package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -1
- package/dist/mobjects/svg/Brace.d.ts +5 -20
- package/dist/mobjects/svg/Brace.d.ts.map +1 -1
- package/dist/mobjects/svg/SVGMobject.d.ts +2 -2
- package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -1
- package/dist/mobjects/table/Table.d.ts +1 -5
- package/dist/mobjects/table/Table.d.ts.map +1 -1
- package/dist/mobjects/text/Code.d.ts +1 -4
- package/dist/mobjects/text/Code.d.ts.map +1 -1
- package/dist/mobjects/text/CodeHighlighting.d.ts.map +1 -1
- package/dist/mobjects/text/CodeLanguageData.d.ts.map +1 -1
- package/dist/mobjects/text/DecimalNumber.d.ts +2 -8
- package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -1
- package/dist/mobjects/text/GlyphVMobject.d.ts +1 -1
- package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -1
- package/dist/mobjects/text/MarkupText.d.ts +1 -1
- package/dist/mobjects/text/MarkupText.d.ts.map +1 -1
- package/dist/mobjects/text/MathJaxBundle.d.ts +7 -0
- package/dist/mobjects/text/MathJaxBundle.d.ts.map +1 -0
- package/dist/mobjects/text/MathJaxRenderer.d.ts +9 -0
- package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -1
- package/dist/mobjects/text/MathTex.d.ts +17 -4
- package/dist/mobjects/text/MathTex.d.ts.map +1 -1
- package/dist/mobjects/text/MathTexImage.d.ts +19 -4
- package/dist/mobjects/text/MathTexImage.d.ts.map +1 -1
- package/dist/mobjects/text/Paragraph.d.ts +1 -1
- package/dist/mobjects/text/Paragraph.d.ts.map +1 -1
- package/dist/mobjects/text/Tex.d.ts +2 -5
- package/dist/mobjects/text/Tex.d.ts.map +1 -1
- package/dist/mobjects/text/Text.d.ts +17 -1
- package/dist/mobjects/text/Text.d.ts.map +1 -1
- package/dist/mobjects/text/TextExtensions.d.ts +3 -12
- package/dist/mobjects/text/TextExtensions.d.ts.map +1 -1
- package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -1
- package/dist/mobjects/text/Variable.d.ts +2 -4
- package/dist/mobjects/text/Variable.d.ts.map +1 -1
- package/dist/mobjects/text/katexStyles.d.ts.map +1 -1
- package/dist/mobjects/text/svgPathParser.d.ts.map +1 -1
- package/dist/mobjects/three-d/Arrow3D.d.ts +4 -3
- package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -1
- package/dist/mobjects/three-d/ConvexHull3D.d.ts +4 -3
- package/dist/mobjects/three-d/ConvexHull3D.d.ts.map +1 -1
- package/dist/mobjects/three-d/Cube.d.ts +6 -11
- package/dist/mobjects/three-d/Cube.d.ts.map +1 -1
- package/dist/mobjects/three-d/Cylinder.d.ts +5 -10
- package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -1
- package/dist/mobjects/three-d/Line3D.d.ts +14 -59
- package/dist/mobjects/three-d/Line3D.d.ts.map +1 -1
- package/dist/mobjects/three-d/Mobject3D.d.ts +19 -0
- package/dist/mobjects/three-d/Mobject3D.d.ts.map +1 -0
- package/dist/mobjects/three-d/ParametricSurface.d.ts +1 -1
- package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -1
- package/dist/mobjects/three-d/Polyhedra.d.ts +7 -6
- package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -1
- package/dist/mobjects/three-d/Sphere.d.ts +4 -6
- package/dist/mobjects/three-d/Sphere.d.ts.map +1 -1
- package/dist/mobjects/three-d/Surface3D.d.ts +41 -4
- package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -1
- package/dist/mobjects/three-d/TexturedSurface.d.ts +4 -3
- package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -1
- package/dist/mobjects/three-d/ThreeDAxes.d.ts +1 -1
- package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -1
- package/dist/mobjects/three-d/ThreeDExtensions.d.ts +7 -15
- package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -1
- package/dist/mobjects/three-d/Torus.d.ts +4 -6
- package/dist/mobjects/three-d/Torus.d.ts.map +1 -1
- package/dist/mobjects/three-d/index.d.ts +1 -0
- package/dist/mobjects/three-d/index.d.ts.map +1 -1
- package/dist/mobjects/value-tracker/ValueTracker.d.ts +4 -2
- package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -1
- package/dist/player/Player.d.ts +36 -29
- package/dist/player/Player.d.ts.map +1 -1
- package/dist/player/PlayerUI.d.ts.map +1 -1
- package/dist/player/RecordingScene.d.ts +37 -0
- package/dist/player/RecordingScene.d.ts.map +1 -0
- package/dist/{src-CW4pfZdP.js → src-Bm3ebFjQ.js} +11003 -8942
- package/dist/test-setup/vitest-setup.d.ts +20 -0
- package/dist/test-setup/vitest-setup.d.ts.map +1 -0
- package/dist/utils/axis.d.ts +4 -0
- package/dist/utils/axis.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +37 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/math.d.ts +4 -0
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/vectors.d.ts +54 -1
- package/dist/utils/vectors.d.ts.map +1 -1
- package/package.json +13 -8
- package/dist/AmsConfiguration-BMyoprhk.js +0 -847
- package/dist/AmsConfiguration-BdxxYRby.js +0 -847
- package/dist/ConfigMacrosConfiguration-B8X_JSVI.js +0 -46
- package/dist/ConfigMacrosConfiguration-DUxp6DUV.js +0 -46
- package/dist/Entities-B1o7gN0J.js +0 -429
- package/dist/Entities-C82lnCux.js +0 -429
- package/dist/Factory-BKM7FEO-.js +0 -107
- package/dist/Factory-D-whCqrb.js +0 -107
- package/dist/GifExporter-BrxY_q7e.js +0 -338
- package/dist/GifExporter-S2pbxMc5.js +0 -338
- package/dist/HtmlNode-BLmQ2r7U.js +0 -981
- package/dist/HtmlNode-DXGeKrcW.js +0 -981
- package/dist/InputJax-DL9oUQY4.js +0 -41
- package/dist/InputJax-DnDWM3Y0.js +0 -41
- package/dist/NewcommandConfiguration-BPjclFig.js +0 -32
- package/dist/NewcommandConfiguration-bJ6P1rBY.js +0 -32
- package/dist/NewcommandMethods-C_E3iLoK.js +0 -187
- package/dist/NewcommandMethods-Cb7yFm5P.js +0 -187
- package/dist/Options-DRlTi0G8.js +0 -63
- package/dist/Options-XPptO-6X.js +0 -63
- package/dist/ParseMethods-BMPfzfQC.js +0 -2636
- package/dist/ParseMethods-D3_HeS1K.js +0 -2636
- package/dist/Styles-Dky5jZUe.js +0 -293
- package/dist/Styles-J-6R3Vr8.js +0 -293
- package/dist/VideoExporter-6ikT3u9H.js +0 -102
- package/dist/VideoExporter-D_RxVahH.js +0 -102
- package/dist/html-DU38zqaN.js +0 -829
- package/dist/html-DjkQuIHJ.js +0 -829
- package/dist/lengths-CP7zmbxJ.js +0 -54
- package/dist/lengths-D4tR1gYA.js +0 -54
- package/dist/liteAdaptor-BLgze3o2.js +0 -616
- package/dist/liteAdaptor-zXv-jsO1.js +0 -616
- package/dist/mathjax-7LgaTjtj.js +0 -121
- package/dist/mathjax-CoSFlQ0H.js +0 -121
- package/dist/mo-C5uLT3Z9.js +0 -2675
- package/dist/mo-CNYDGAsg.js +0 -2675
- package/dist/rolldown-runtime-DnwLefa7.js +0 -23
- package/dist/svg-CYweEoZ1.js +0 -28698
- package/dist/tex-C4_queV-.js +0 -1423
- 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 };
|