manim-web 0.30.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/integrations/notebook.js +11 -11
- package/dist/integrations/react.js +17 -17
- package/dist/integrations/vue.js +16 -16
- package/dist/interaction/KeyboardInput.d.ts +210 -0
- package/dist/interaction/KeyboardInput.d.ts.map +1 -0
- package/dist/interaction/index.d.ts +1 -0
- package/dist/interaction/index.d.ts.map +1 -1
- package/dist/manim-web.browser.js +700 -572
- package/dist/{src-BGT84Qli.js → src-DegxZDnn.js} +685 -557
- package/package.json +1 -1
|
@@ -47011,7 +47011,7 @@ var pE = class e {
|
|
|
47011
47011
|
if (this.isHeadless) throw Error("export() is not available in headless mode. Create a Scene with a container for rendering and exporting.");
|
|
47012
47012
|
let n = e.slice(e.lastIndexOf(".")).toLowerCase(), r;
|
|
47013
47013
|
if (n === ".gif") {
|
|
47014
|
-
let { GifExporter: n } = await Promise.resolve().then(() =>
|
|
47014
|
+
let { GifExporter: n } = await Promise.resolve().then(() => IW);
|
|
47015
47015
|
r = await new n(this, {
|
|
47016
47016
|
fps: t?.fps,
|
|
47017
47017
|
quality: t?.quality,
|
|
@@ -47023,7 +47023,7 @@ var pE = class e {
|
|
|
47023
47023
|
workers: t?.workers
|
|
47024
47024
|
}).exportTimeline(t?.duration), n.download(r, e);
|
|
47025
47025
|
} else if (n === ".webm" || n === ".mp4" || n === ".mov") {
|
|
47026
|
-
let { VideoExporter: i } = await Promise.resolve().then(() =>
|
|
47026
|
+
let { VideoExporter: i } = await Promise.resolve().then(() => BW), a = n === ".mp4" ? "mp4" : n === ".mov" ? "mov" : "webm";
|
|
47027
47027
|
r = await new i(this, {
|
|
47028
47028
|
fps: t?.fps,
|
|
47029
47029
|
quality: t?.quality,
|
|
@@ -81470,13 +81470,141 @@ var TW = class {
|
|
|
81470
81470
|
_resetTriggers() {
|
|
81471
81471
|
for (let e of this._inputs.values()) e.kind === "trigger" && (e.value = !1);
|
|
81472
81472
|
}
|
|
81473
|
+
}, EW = {
|
|
81474
|
+
" ": "space",
|
|
81475
|
+
spacebar: "space",
|
|
81476
|
+
esc: "escape",
|
|
81477
|
+
del: "delete",
|
|
81478
|
+
up: "arrowup",
|
|
81479
|
+
down: "arrowdown",
|
|
81480
|
+
left: "arrowleft",
|
|
81481
|
+
right: "arrowright"
|
|
81473
81482
|
};
|
|
81483
|
+
function DW(e) {
|
|
81484
|
+
let t = e.toLowerCase();
|
|
81485
|
+
return EW[t] ?? t;
|
|
81486
|
+
}
|
|
81487
|
+
var OW = {
|
|
81488
|
+
right: ["arrowright", "d"],
|
|
81489
|
+
left: ["arrowleft", "a"],
|
|
81490
|
+
up: ["arrowup", "w"],
|
|
81491
|
+
down: ["arrowdown", "s"]
|
|
81492
|
+
};
|
|
81493
|
+
function kW(e) {
|
|
81494
|
+
return e || (typeof window < "u" && typeof window.addEventListener == "function" ? window : typeof document < "u" && typeof document.addEventListener == "function" ? document : null);
|
|
81495
|
+
}
|
|
81496
|
+
var AW = class {
|
|
81497
|
+
_target;
|
|
81498
|
+
_preventDefault;
|
|
81499
|
+
_down = /* @__PURE__ */ new Set();
|
|
81500
|
+
_pressed = /* @__PURE__ */ new Set();
|
|
81501
|
+
_released = /* @__PURE__ */ new Set();
|
|
81502
|
+
_downCallbacks = /* @__PURE__ */ new Map();
|
|
81503
|
+
_upCallbacks = /* @__PURE__ */ new Map();
|
|
81504
|
+
_enabled = !1;
|
|
81505
|
+
_onKeyDown;
|
|
81506
|
+
_onKeyUp;
|
|
81507
|
+
constructor(e = {}, t) {
|
|
81508
|
+
this._target = kW(t), this._preventDefault = Array.isArray(e.preventDefault) ? new Set(e.preventDefault.map(DW)) : e.preventDefault ?? !1, this._onKeyDown = this._handleKeyDown.bind(this), this._onKeyUp = this._handleKeyUp.bind(this), (e.autoEnable ?? !0) && this.enable();
|
|
81509
|
+
}
|
|
81510
|
+
get isEnabled() {
|
|
81511
|
+
return this._enabled;
|
|
81512
|
+
}
|
|
81513
|
+
get hasTarget() {
|
|
81514
|
+
return this._target !== null;
|
|
81515
|
+
}
|
|
81516
|
+
enable() {
|
|
81517
|
+
this._enabled || !this._target || (this._target.addEventListener("keydown", this._onKeyDown), this._target.addEventListener("keyup", this._onKeyUp), this._enabled = !0);
|
|
81518
|
+
}
|
|
81519
|
+
disable() {
|
|
81520
|
+
this._target && (this._target.removeEventListener("keydown", this._onKeyDown), this._target.removeEventListener("keyup", this._onKeyUp)), this._enabled = !1, this.clear();
|
|
81521
|
+
}
|
|
81522
|
+
dispose() {
|
|
81523
|
+
this.disable(), this._downCallbacks.clear(), this._upCallbacks.clear();
|
|
81524
|
+
}
|
|
81525
|
+
clear() {
|
|
81526
|
+
this._down.clear(), this._pressed.clear(), this._released.clear();
|
|
81527
|
+
}
|
|
81528
|
+
isKeyDown(e) {
|
|
81529
|
+
return this._down.has(DW(e));
|
|
81530
|
+
}
|
|
81531
|
+
anyKeyDown() {
|
|
81532
|
+
return this._down.size > 0;
|
|
81533
|
+
}
|
|
81534
|
+
wasPressed(e) {
|
|
81535
|
+
return this._pressed.has(DW(e));
|
|
81536
|
+
}
|
|
81537
|
+
wasReleased(e) {
|
|
81538
|
+
return this._released.has(DW(e));
|
|
81539
|
+
}
|
|
81540
|
+
getAxis() {
|
|
81541
|
+
return [!!this._anyDown(OW.right) - +!!this._anyDown(OW.left), !!this._anyDown(OW.up) - +!!this._anyDown(OW.down)];
|
|
81542
|
+
}
|
|
81543
|
+
getDirectionVector() {
|
|
81544
|
+
let [e, t] = this.getAxis(), n = Math.hypot(e, t);
|
|
81545
|
+
return n === 0 ? [0, 0] : [e / n, t / n];
|
|
81546
|
+
}
|
|
81547
|
+
onKeyDown(e, t) {
|
|
81548
|
+
return this._addCallback(this._downCallbacks, e, t);
|
|
81549
|
+
}
|
|
81550
|
+
onKeyUp(e, t) {
|
|
81551
|
+
return this._addCallback(this._upCallbacks, e, t);
|
|
81552
|
+
}
|
|
81553
|
+
bindBool(e, t, n) {
|
|
81554
|
+
let r = this.onKeyDown(n, () => e.setInput(t, !0)), i = this.onKeyUp(n, () => e.setInput(t, !1));
|
|
81555
|
+
return () => {
|
|
81556
|
+
r(), i();
|
|
81557
|
+
};
|
|
81558
|
+
}
|
|
81559
|
+
bindTrigger(e, t, n) {
|
|
81560
|
+
return this.onKeyDown(n, () => e.fire(t));
|
|
81561
|
+
}
|
|
81562
|
+
bindValue(e, t, n) {
|
|
81563
|
+
let r = n.releasedValue ?? 0, i = this.onKeyDown(t, () => e.setValue(n.heldValue)), a = this.onKeyUp(t, () => e.setValue(r));
|
|
81564
|
+
return () => {
|
|
81565
|
+
i(), a();
|
|
81566
|
+
};
|
|
81567
|
+
}
|
|
81568
|
+
update(e = 0) {
|
|
81569
|
+
this.endFrame();
|
|
81570
|
+
}
|
|
81571
|
+
endFrame() {
|
|
81572
|
+
this._pressed.clear(), this._released.clear();
|
|
81573
|
+
}
|
|
81574
|
+
_anyDown(e) {
|
|
81575
|
+
return e.some((e) => this._down.has(e));
|
|
81576
|
+
}
|
|
81577
|
+
_handleKeyDown(e) {
|
|
81578
|
+
let t = DW(e.key);
|
|
81579
|
+
this._maybePreventDefault(e, t), !(e.repeat || this._down.has(t)) && (this._down.add(t), this._pressed.add(t), this._emit(this._downCallbacks, t, e));
|
|
81580
|
+
}
|
|
81581
|
+
_handleKeyUp(e) {
|
|
81582
|
+
let t = DW(e.key);
|
|
81583
|
+
this._maybePreventDefault(e, t), this._down.delete(t), this._released.add(t), this._emit(this._upCallbacks, t, e);
|
|
81584
|
+
}
|
|
81585
|
+
_maybePreventDefault(e, t) {
|
|
81586
|
+
let n = this._preventDefault;
|
|
81587
|
+
(n === !0 || n instanceof Set && n.has(t)) && e.preventDefault();
|
|
81588
|
+
}
|
|
81589
|
+
_addCallback(e, t, n) {
|
|
81590
|
+
let r = t === "any" ? "any" : DW(t), i = e.get(r) ?? /* @__PURE__ */ new Set();
|
|
81591
|
+
return i.add(n), e.set(r, i), () => {
|
|
81592
|
+
i.delete(n), i.size === 0 && e.delete(r);
|
|
81593
|
+
};
|
|
81594
|
+
}
|
|
81595
|
+
_emit(e, t, n) {
|
|
81596
|
+
e.get(t)?.forEach((e) => e(t, n)), e.get("any")?.forEach((e) => e(t, n));
|
|
81597
|
+
}
|
|
81598
|
+
};
|
|
81599
|
+
function jW(e, t) {
|
|
81600
|
+
return new AW(e, t);
|
|
81601
|
+
}
|
|
81474
81602
|
//#endregion
|
|
81475
81603
|
//#region src/interaction/PanZoomControls.ts
|
|
81476
|
-
function
|
|
81604
|
+
function MW(e, t, n) {
|
|
81477
81605
|
return Math.max(t, Math.min(n, e));
|
|
81478
81606
|
}
|
|
81479
|
-
var
|
|
81607
|
+
var NW = class {
|
|
81480
81608
|
_camera;
|
|
81481
81609
|
_domElement;
|
|
81482
81610
|
_options;
|
|
@@ -81528,7 +81656,7 @@ var DW = class {
|
|
|
81528
81656
|
if (!this._enabled || !this._options.enableZoom) return;
|
|
81529
81657
|
let t = this._eventToNdc(e.clientX, e.clientY);
|
|
81530
81658
|
if (!t) return;
|
|
81531
|
-
let n = this._worldAt(t.x, t.y), r = this._options.invertZoom ? -e.deltaY : e.deltaY, i = Math.exp(r * this._options.zoomSpeed), a = this._baseFrameWidth / this._options.maxZoom, o = this._baseFrameWidth / this._options.minZoom, s =
|
|
81659
|
+
let n = this._worldAt(t.x, t.y), r = this._options.invertZoom ? -e.deltaY : e.deltaY, i = Math.exp(r * this._options.zoomSpeed), a = this._baseFrameWidth / this._options.maxZoom, o = this._baseFrameWidth / this._options.minZoom, s = MW(this._camera.frameWidth * i, a, o) / this._camera.frameWidth;
|
|
81532
81660
|
if (s === 1) return;
|
|
81533
81661
|
this._camera.frameWidth = this._camera.frameWidth * s, this._camera.frameHeight = this._camera.frameHeight * s;
|
|
81534
81662
|
let c = n.x - t.x * this._camera.frameWidth / 2, l = n.y - t.y * this._camera.frameHeight / 2;
|
|
@@ -81577,12 +81705,12 @@ var DW = class {
|
|
|
81577
81705
|
this._options.onChange?.();
|
|
81578
81706
|
}
|
|
81579
81707
|
};
|
|
81580
|
-
function
|
|
81581
|
-
return new
|
|
81708
|
+
function PW(e, t, n) {
|
|
81709
|
+
return new NW(e, t, n);
|
|
81582
81710
|
}
|
|
81583
81711
|
//#endregion
|
|
81584
81712
|
//#region node_modules/gif.js/dist/gif.js
|
|
81585
|
-
var
|
|
81713
|
+
var FW = /* @__PURE__ */ r(((e, t) => {
|
|
81586
81714
|
(function(n) {
|
|
81587
81715
|
if (typeof e == "object" && t !== void 0) t.exports = n();
|
|
81588
81716
|
else if (typeof define == "function" && define.amd) define([], n);
|
|
@@ -81836,10 +81964,10 @@ var kW = /* @__PURE__ */ r(((e, t) => {
|
|
|
81836
81964
|
}]
|
|
81837
81965
|
}, {}, [3])(3);
|
|
81838
81966
|
});
|
|
81839
|
-
})),
|
|
81840
|
-
GifExporter: () =>
|
|
81841
|
-
createGifExporter: () =>
|
|
81842
|
-
}),
|
|
81967
|
+
})), IW = /* @__PURE__ */ t({
|
|
81968
|
+
GifExporter: () => RW,
|
|
81969
|
+
createGifExporter: () => zW
|
|
81970
|
+
}), LW = /* @__PURE__ */ e(FW(), 1), RW = class e {
|
|
81843
81971
|
_scene;
|
|
81844
81972
|
_options;
|
|
81845
81973
|
constructor(e, t) {
|
|
@@ -81857,7 +81985,7 @@ var kW = /* @__PURE__ */ r(((e, t) => {
|
|
|
81857
81985
|
};
|
|
81858
81986
|
}
|
|
81859
81987
|
async exportTimeline(e) {
|
|
81860
|
-
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
|
|
81988
|
+
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 LW.default({
|
|
81861
81989
|
workers: this._options.workers,
|
|
81862
81990
|
quality: this._options.quality,
|
|
81863
81991
|
width: this._options.width,
|
|
@@ -81916,15 +82044,15 @@ var kW = /* @__PURE__ */ r(((e, t) => {
|
|
|
81916
82044
|
e.download(r, t);
|
|
81917
82045
|
}
|
|
81918
82046
|
};
|
|
81919
|
-
function
|
|
81920
|
-
return new
|
|
82047
|
+
function zW(e, t) {
|
|
82048
|
+
return new RW(e, t);
|
|
81921
82049
|
}
|
|
81922
82050
|
//#endregion
|
|
81923
82051
|
//#region src/export/VideoExporter.ts
|
|
81924
|
-
var
|
|
81925
|
-
VideoExporter: () =>
|
|
81926
|
-
createVideoExporter: () =>
|
|
81927
|
-
}),
|
|
82052
|
+
var BW = /* @__PURE__ */ t({
|
|
82053
|
+
VideoExporter: () => VW,
|
|
82054
|
+
createVideoExporter: () => HW
|
|
82055
|
+
}), VW = class e {
|
|
81928
82056
|
_scene;
|
|
81929
82057
|
_options;
|
|
81930
82058
|
_mediaRecorder = null;
|
|
@@ -82016,26 +82144,26 @@ var PW = /* @__PURE__ */ t({
|
|
|
82016
82144
|
return { ...this._options };
|
|
82017
82145
|
}
|
|
82018
82146
|
};
|
|
82019
|
-
function
|
|
82020
|
-
return new
|
|
82147
|
+
function HW(e, t) {
|
|
82148
|
+
return new VW(e, t);
|
|
82021
82149
|
}
|
|
82022
82150
|
//#endregion
|
|
82023
82151
|
//#region src/export/alphaBackground.ts
|
|
82024
|
-
var
|
|
82025
|
-
function
|
|
82152
|
+
var UW = "Transparent export needs a WebGL context created with an alpha channel. Create the Scene with { alpha: true } (or backgroundOpacity < 1) so the canvas carries a real alpha channel to export.", WW = "Transparent export needs access to the WebGL renderer, but the scene did not expose one.";
|
|
82153
|
+
function GW(e) {
|
|
82026
82154
|
let t = e.renderer;
|
|
82027
82155
|
return !t || typeof t.getThreeRenderer != "function" ? null : t.getThreeRenderer() ?? null;
|
|
82028
82156
|
}
|
|
82029
|
-
function
|
|
82157
|
+
function KW(e) {
|
|
82030
82158
|
return e.getContext().getContextAttributes()?.alpha === !0;
|
|
82031
82159
|
}
|
|
82032
|
-
function
|
|
82033
|
-
let t =
|
|
82034
|
-
if (!t) throw Error(
|
|
82035
|
-
if (!
|
|
82160
|
+
function qW(e) {
|
|
82161
|
+
let t = GW(e);
|
|
82162
|
+
if (!t) throw Error(WW);
|
|
82163
|
+
if (!KW(t)) throw Error(UW);
|
|
82036
82164
|
return t;
|
|
82037
82165
|
}
|
|
82038
|
-
async function
|
|
82166
|
+
async function JW(e, t) {
|
|
82039
82167
|
let n = e.getClearAlpha();
|
|
82040
82168
|
e.setClearAlpha(0);
|
|
82041
82169
|
try {
|
|
@@ -82046,7 +82174,7 @@ async function HW(e, t) {
|
|
|
82046
82174
|
}
|
|
82047
82175
|
//#endregion
|
|
82048
82176
|
//#region src/export/FrameExporter.ts
|
|
82049
|
-
function
|
|
82177
|
+
function YW(e, t, n) {
|
|
82050
82178
|
return new Promise((r, i) => {
|
|
82051
82179
|
if (typeof e.toBlob == "function") {
|
|
82052
82180
|
e.toBlob((e) => {
|
|
@@ -82055,22 +82183,22 @@ function UW(e, t, n) {
|
|
|
82055
82183
|
return;
|
|
82056
82184
|
}
|
|
82057
82185
|
try {
|
|
82058
|
-
r(
|
|
82186
|
+
r(XW(e.toDataURL(t, n)));
|
|
82059
82187
|
} catch (e) {
|
|
82060
82188
|
i(e instanceof Error ? e : Error(String(e)));
|
|
82061
82189
|
}
|
|
82062
82190
|
});
|
|
82063
82191
|
}
|
|
82064
|
-
function
|
|
82192
|
+
function XW(e) {
|
|
82065
82193
|
let [t, n] = e.split(","), r = t.match(/data:([^;]+)/), i = r ? r[1] : "image/png", a = atob(n), o = new Uint8Array(a.length);
|
|
82066
82194
|
for (let e = 0; e < a.length; e++) o[e] = a.charCodeAt(e);
|
|
82067
82195
|
return new Blob([o], { type: i });
|
|
82068
82196
|
}
|
|
82069
|
-
async function
|
|
82197
|
+
async function ZW(e, t) {
|
|
82070
82198
|
let n = t?.type ?? "image/png";
|
|
82071
|
-
return t?.transparent ?
|
|
82199
|
+
return t?.transparent ? JW(qW(e), () => (QW(e, t?.time), YW(e.getCanvas(), n, t?.quality))) : (t?.time !== void 0 && e.seek(t.time), YW(e.getCanvas(), n, t?.quality));
|
|
82072
82200
|
}
|
|
82073
|
-
function
|
|
82201
|
+
function QW(e, t) {
|
|
82074
82202
|
if (t !== void 0) {
|
|
82075
82203
|
e.seek(t);
|
|
82076
82204
|
return;
|
|
@@ -82081,29 +82209,29 @@ function KW(e, t) {
|
|
|
82081
82209
|
}
|
|
82082
82210
|
throw Error("Transparent single-frame export needs either a `time` to seek to, or a scene with a render() method, so the frame is re-rendered with a transparent background.");
|
|
82083
82211
|
}
|
|
82084
|
-
async function
|
|
82212
|
+
async function $W(e, t) {
|
|
82085
82213
|
let n = t.fps, r = t.from ?? 0, i = t.to ?? e.getTimelineDuration() ?? 5, a = t.type ?? "image/png", o = t.onProgress ?? (() => {}), s = Math.max(0, i - r), c = Math.ceil(s * n), l = 1 / n, u = async () => {
|
|
82086
82214
|
let n = [];
|
|
82087
82215
|
for (let i = 0; i < c; i++) {
|
|
82088
82216
|
let s = r + i * l;
|
|
82089
82217
|
e.seek(s);
|
|
82090
82218
|
let u = e.getCanvas();
|
|
82091
|
-
n.push(await
|
|
82219
|
+
n.push(await YW(u, a, t.quality)), o((i + 1) / c);
|
|
82092
82220
|
}
|
|
82093
82221
|
return n;
|
|
82094
82222
|
};
|
|
82095
|
-
return t.transparent ?
|
|
82223
|
+
return t.transparent ? JW(qW(e), u) : u();
|
|
82096
82224
|
}
|
|
82097
|
-
function
|
|
82225
|
+
function eG(e, t) {
|
|
82098
82226
|
let n = URL.createObjectURL(e), r = document.createElement("a");
|
|
82099
82227
|
r.href = n, r.download = t, document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(n);
|
|
82100
82228
|
}
|
|
82101
|
-
async function
|
|
82102
|
-
|
|
82229
|
+
async function tG(e, t = "frame.png", n) {
|
|
82230
|
+
eG(await ZW(e, n), t);
|
|
82103
82231
|
}
|
|
82104
82232
|
//#endregion
|
|
82105
82233
|
//#region src/export/WebCodecsExporter.ts
|
|
82106
|
-
var
|
|
82234
|
+
var nG = {
|
|
82107
82235
|
avc: {
|
|
82108
82236
|
encoderCodec: "avc1.42001f",
|
|
82109
82237
|
mp4Codec: "avc",
|
|
@@ -82124,7 +82252,7 @@ var XW = {
|
|
|
82124
82252
|
mp4Codec: "av1",
|
|
82125
82253
|
webmCodec: "V_AV1"
|
|
82126
82254
|
}
|
|
82127
|
-
},
|
|
82255
|
+
}, rG = class e {
|
|
82128
82256
|
_scene;
|
|
82129
82257
|
_options;
|
|
82130
82258
|
constructor(e, t) {
|
|
@@ -82148,8 +82276,8 @@ var XW = {
|
|
|
82148
82276
|
}
|
|
82149
82277
|
async export() {
|
|
82150
82278
|
if (!e.isSupported()) throw Error("WebCodecs VideoEncoder is not available in this environment. Use VideoExporter (MediaRecorder) instead to export video.");
|
|
82151
|
-
let t = this._options, n = t.duration || this._scene.getTimelineDuration() || 5, r = Math.ceil(n * t.fps), i =
|
|
82152
|
-
t.alpha && (this._assertAlphaCodec(), a =
|
|
82279
|
+
let t = this._options, n = t.duration || this._scene.getTimelineDuration() || 5, r = Math.ceil(n * t.fps), i = nG[t.codec], a = null;
|
|
82280
|
+
t.alpha && (this._assertAlphaCodec(), a = qW(this._scene), await this._assertAlphaEncodeSupport(i));
|
|
82153
82281
|
let o = await this._createMuxer(i), s = new window.VideoEncoder({
|
|
82154
82282
|
output: (e, t) => o.addVideoChunk(e, t),
|
|
82155
82283
|
error: (e) => qf.error("WebCodecs encoder error:", e)
|
|
@@ -82173,7 +82301,7 @@ var XW = {
|
|
|
82173
82301
|
s.encode(i, { keyFrame: e % t.keyFrameInterval === 0 }), i.close(), t.onProgress(r === 0 ? 1 : (e + 1) / r);
|
|
82174
82302
|
}
|
|
82175
82303
|
};
|
|
82176
|
-
return a ? await
|
|
82304
|
+
return a ? await JW(a, d) : d(), await s.flush(), s.close(), o.finalize();
|
|
82177
82305
|
}
|
|
82178
82306
|
_assertAlphaCodec() {
|
|
82179
82307
|
let e = this._options;
|
|
@@ -82229,30 +82357,30 @@ var XW = {
|
|
|
82229
82357
|
return { ...this._options };
|
|
82230
82358
|
}
|
|
82231
82359
|
};
|
|
82232
|
-
function
|
|
82233
|
-
return new
|
|
82360
|
+
function iG(e, t) {
|
|
82361
|
+
return new rG(e, t);
|
|
82234
82362
|
}
|
|
82235
82363
|
//#endregion
|
|
82236
82364
|
//#region src/export/chooseExporter.ts
|
|
82237
|
-
function
|
|
82365
|
+
function aG(e = rG.isSupported()) {
|
|
82238
82366
|
return e ? "webcodecs" : "mediarecorder";
|
|
82239
82367
|
}
|
|
82240
82368
|
//#endregion
|
|
82241
82369
|
//#region src/export/SvgExporter.ts
|
|
82242
|
-
var
|
|
82243
|
-
function
|
|
82370
|
+
var oG = 3;
|
|
82371
|
+
function sG(e, t) {
|
|
82244
82372
|
if (!Number.isFinite(e)) return "0";
|
|
82245
82373
|
let n = Number(e.toFixed(t));
|
|
82246
82374
|
return String(Object.is(n, -0) ? 0 : n);
|
|
82247
82375
|
}
|
|
82248
|
-
function
|
|
82376
|
+
function cG(e) {
|
|
82249
82377
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
82250
82378
|
}
|
|
82251
|
-
function
|
|
82379
|
+
function lG(e, t, n) {
|
|
82252
82380
|
let r = e.position.x, i = e.position.y, a = e.frameWidth || 1, o = e.frameHeight || 1;
|
|
82253
82381
|
return (e) => [(e[0] - r) / a * t + t / 2, n / 2 - (e[1] - i) / o * n];
|
|
82254
82382
|
}
|
|
82255
|
-
function
|
|
82383
|
+
function uG(e, t) {
|
|
82256
82384
|
if (!t || t.length <= 1) return [e];
|
|
82257
82385
|
let n = [], r = 0;
|
|
82258
82386
|
for (let i of t) {
|
|
@@ -82261,11 +82389,11 @@ function iG(e, t) {
|
|
|
82261
82389
|
}
|
|
82262
82390
|
return r === e.length ? n : [e];
|
|
82263
82391
|
}
|
|
82264
|
-
function
|
|
82392
|
+
function dG(e, t, n) {
|
|
82265
82393
|
if (e.length < 4) return null;
|
|
82266
82394
|
let r = (e) => {
|
|
82267
82395
|
let [r, i] = t(e);
|
|
82268
|
-
return `${
|
|
82396
|
+
return `${sG(r, n)} ${sG(i, n)}`;
|
|
82269
82397
|
}, i = [`M ${r(e[0])}`], a = Math.floor((e.length - 1) / 3);
|
|
82270
82398
|
for (let t = 0; t < a; t++) {
|
|
82271
82399
|
let n = e[3 * t + 1], a = e[3 * t + 2], o = e[3 * t + 3];
|
|
@@ -82273,65 +82401,65 @@ function aG(e, t, n) {
|
|
|
82273
82401
|
}
|
|
82274
82402
|
return jm(e) && i.push("Z"), i.join(" ");
|
|
82275
82403
|
}
|
|
82276
|
-
function
|
|
82404
|
+
function fG(e) {
|
|
82277
82405
|
return e.style.fillColor ?? e.color;
|
|
82278
82406
|
}
|
|
82279
|
-
function
|
|
82407
|
+
function pG(e, t, n, r) {
|
|
82280
82408
|
let i = e.getPoints();
|
|
82281
82409
|
if (i.length < 4) return null;
|
|
82282
|
-
let a =
|
|
82410
|
+
let a = uG(i, e.getEffectiveSubpathLengths()), o = [];
|
|
82283
82411
|
for (let e of a) {
|
|
82284
|
-
let n =
|
|
82412
|
+
let n = dG(e, t, r);
|
|
82285
82413
|
n && o.push(n);
|
|
82286
82414
|
}
|
|
82287
82415
|
if (o.length === 0) return null;
|
|
82288
82416
|
let s = e.fillOpacity > 0, c = e.strokeWidth > 0;
|
|
82289
82417
|
if (!s && !c) return null;
|
|
82290
82418
|
let l = [`d="${o.join(" ")}"`];
|
|
82291
|
-
return s ? (l.push(`fill="${
|
|
82419
|
+
return s ? (l.push(`fill="${cG(fG(e))}"`), l.push("fill-rule=\"nonzero\""), e.fillOpacity < 1 && l.push(`fill-opacity="${sG(e.fillOpacity, r)}"`)) : l.push("fill=\"none\""), c && (l.push(`stroke="${cG(e.color)}"`), l.push(`stroke-width="${sG(e.strokeWidth * n, r)}"`), l.push("stroke-linejoin=\"round\""), l.push("stroke-linecap=\"round\""), e.opacity < 1 && l.push(`stroke-opacity="${sG(e.opacity, r)}"`)), `<path ${l.join(" ")} />`;
|
|
82292
82420
|
}
|
|
82293
|
-
function
|
|
82421
|
+
function mG(e) {
|
|
82294
82422
|
return e instanceof z && e.getPoints().length >= 4;
|
|
82295
82423
|
}
|
|
82296
|
-
function
|
|
82297
|
-
let n = t?.precision ??
|
|
82424
|
+
function hG(e, t) {
|
|
82425
|
+
let n = t?.precision ?? oG, r = e.getWidth(), i = e.getHeight(), a = e.camera, o = lG(a, r, i), s = .01 * r / (a.frameWidth || 1), c = [];
|
|
82298
82426
|
for (let t of e.mobjects) {
|
|
82299
82427
|
let e = [];
|
|
82300
82428
|
for (let r of t.getFamily()) {
|
|
82301
|
-
if (!
|
|
82302
|
-
let t =
|
|
82429
|
+
if (!mG(r)) continue;
|
|
82430
|
+
let t = pG(r, o, s, n);
|
|
82303
82431
|
t && e.push(t);
|
|
82304
82432
|
}
|
|
82305
82433
|
if (e.length === 0) continue;
|
|
82306
|
-
let r = t.userId ? ` data-mobject-id="${
|
|
82434
|
+
let r = t.userId ? ` data-mobject-id="${cG(t.userId)}"` : "";
|
|
82307
82435
|
c.push(` <g${r}>\n ${e.join("\n ")}\n </g>`);
|
|
82308
82436
|
}
|
|
82309
|
-
let l =
|
|
82310
|
-
return `${`<svg xmlns="http://www.w3.org/2000/svg" width="${l}" height="${u}" viewBox="0 0 ${l} ${u}">`}${t?.background ? `\n <rect x="0" y="0" width="${l}" height="${u}" fill="${
|
|
82437
|
+
let l = sG(r, n), u = sG(i, n);
|
|
82438
|
+
return `${`<svg xmlns="http://www.w3.org/2000/svg" width="${l}" height="${u}" viewBox="0 0 ${l} ${u}">`}${t?.background ? `\n <rect x="0" y="0" width="${l}" height="${u}" fill="${cG(t.background)}" />` : ""}${c.length > 0 ? `\n${c.join("\n")}\n` : "\n"}</svg>`;
|
|
82311
82439
|
}
|
|
82312
|
-
function
|
|
82313
|
-
let n =
|
|
82440
|
+
function gG(e, t) {
|
|
82441
|
+
let n = hG(e, t);
|
|
82314
82442
|
return new Blob([n], { type: "image/svg+xml" });
|
|
82315
82443
|
}
|
|
82316
|
-
function
|
|
82444
|
+
function _G(e, t = "scene.svg", n) {
|
|
82317
82445
|
if (typeof document > "u") throw Error("exportAndDownloadSVG requires a DOM (document is undefined)");
|
|
82318
|
-
|
|
82446
|
+
eG(gG(e, n), t);
|
|
82319
82447
|
}
|
|
82320
82448
|
//#endregion
|
|
82321
82449
|
//#region src/export/SlideDeckExporter.ts
|
|
82322
|
-
var
|
|
82323
|
-
function
|
|
82450
|
+
var vG = "PNG";
|
|
82451
|
+
function yG(e, t) {
|
|
82324
82452
|
return e.seek(t), {
|
|
82325
82453
|
dataUrl: e.getCanvas().toDataURL("image/png"),
|
|
82326
82454
|
width: e.getWidth(),
|
|
82327
82455
|
height: e.getHeight()
|
|
82328
82456
|
};
|
|
82329
82457
|
}
|
|
82330
|
-
async function
|
|
82458
|
+
async function bG(e) {
|
|
82331
82459
|
let { jsPDF: t } = await import("./jspdf.es.min-CvMJL6nS.js");
|
|
82332
82460
|
return new t(e);
|
|
82333
82461
|
}
|
|
82334
|
-
function
|
|
82462
|
+
function xG(e, t, n, r) {
|
|
82335
82463
|
let i = e > 0 ? e : 1, a = t > 0 ? t : 1, o = Math.min(n / i, r / a), s = i * o, c = a * o;
|
|
82336
82464
|
return {
|
|
82337
82465
|
x: (n - s) / 2,
|
|
@@ -82340,33 +82468,33 @@ function hG(e, t, n, r) {
|
|
|
82340
82468
|
h: c
|
|
82341
82469
|
};
|
|
82342
82470
|
}
|
|
82343
|
-
function
|
|
82471
|
+
function SG(e, t) {
|
|
82344
82472
|
return t === "first" ? e.startTime : e.endTime;
|
|
82345
82473
|
}
|
|
82346
|
-
async function
|
|
82474
|
+
async function CG(e, t) {
|
|
82347
82475
|
let n = e.timeline.getSlides();
|
|
82348
82476
|
if (n.length === 0) return null;
|
|
82349
|
-
let r = t?.still ?? "last", i = t?.orientation ?? "landscape", a = t?.pageSize ?? "a4", o = t?.unit ?? "pt", s = t?.imageFormat ??
|
|
82477
|
+
let r = t?.still ?? "last", i = t?.orientation ?? "landscape", a = t?.pageSize ?? "a4", o = t?.unit ?? "pt", s = t?.imageFormat ?? vG, c = t?.background, l = t?.captureSlide ?? yG, u = t?.pdfFactory ?? bG, d = t?.onProgress ?? (() => {}), f = await u({
|
|
82350
82478
|
orientation: i,
|
|
82351
82479
|
unit: o,
|
|
82352
82480
|
format: a
|
|
82353
82481
|
}), p = f.internal.pageSize.getWidth(), m = f.internal.pageSize.getHeight();
|
|
82354
82482
|
for (let t = 0; t < n.length; t++) {
|
|
82355
82483
|
t > 0 && f.addPage(a, i), c && (f.setFillColor(c[0], c[1], c[2]), f.rect(0, 0, p, m, "F"));
|
|
82356
|
-
let o = await l(e.scene,
|
|
82484
|
+
let o = await l(e.scene, SG(n[t], r)), u = xG(o.width, o.height, p, m);
|
|
82357
82485
|
f.addImage(o.dataUrl, s, u.x, u.y, u.w, u.h), d((t + 1) / n.length);
|
|
82358
82486
|
}
|
|
82359
82487
|
return f.output("blob");
|
|
82360
82488
|
}
|
|
82361
|
-
async function
|
|
82489
|
+
async function wG(e, t = "slides.pdf", n) {
|
|
82362
82490
|
if (typeof document > "u") {
|
|
82363
82491
|
qf.warn("exportAndDownloadSlidesToPDF: no DOM available, skipping download.");
|
|
82364
82492
|
return;
|
|
82365
82493
|
}
|
|
82366
|
-
let r = await
|
|
82367
|
-
r &&
|
|
82494
|
+
let r = await CG(e, n);
|
|
82495
|
+
r && eG(r, t);
|
|
82368
82496
|
}
|
|
82369
|
-
async function
|
|
82497
|
+
async function TG() {
|
|
82370
82498
|
let e;
|
|
82371
82499
|
try {
|
|
82372
82500
|
e = await import(
|
|
@@ -82378,14 +82506,14 @@ async function yG() {
|
|
|
82378
82506
|
}
|
|
82379
82507
|
return new (e.default ?? e)();
|
|
82380
82508
|
}
|
|
82381
|
-
async function
|
|
82509
|
+
async function EG(e, t) {
|
|
82382
82510
|
let n = e.timeline.getSlides();
|
|
82383
82511
|
if (n.length === 0) return null;
|
|
82384
|
-
let r = t?.still ?? "last", i = t?.slideWidth ?? 13.333, a = t?.slideHeight ?? 7.5, o = t?.background, s = t?.captureSlide ??
|
|
82512
|
+
let r = t?.still ?? "last", i = t?.slideWidth ?? 13.333, a = t?.slideHeight ?? 7.5, o = t?.background, s = t?.captureSlide ?? yG, c = t?.pptxFactory ?? TG, l = t?.onProgress ?? (() => {}), u = await c();
|
|
82385
82513
|
for (let t = 0; t < n.length; t++) {
|
|
82386
82514
|
let c = u.addSlide();
|
|
82387
82515
|
o && (c.background = { color: o });
|
|
82388
|
-
let d = await s(e.scene,
|
|
82516
|
+
let d = await s(e.scene, SG(n[t], r));
|
|
82389
82517
|
c.addImage({
|
|
82390
82518
|
data: d.dataUrl,
|
|
82391
82519
|
x: 0,
|
|
@@ -82403,7 +82531,7 @@ async function bG(e, t) {
|
|
|
82403
82531
|
}
|
|
82404
82532
|
//#endregion
|
|
82405
82533
|
//#region src/player/ExportSettingsUI.ts
|
|
82406
|
-
var
|
|
82534
|
+
var DG = [
|
|
82407
82535
|
{
|
|
82408
82536
|
id: "current",
|
|
82409
82537
|
label: "Current",
|
|
@@ -82440,11 +82568,11 @@ var xG = [
|
|
|
82440
82568
|
width: 3840,
|
|
82441
82569
|
height: 2160
|
|
82442
82570
|
}
|
|
82443
|
-
],
|
|
82571
|
+
], OG = [
|
|
82444
82572
|
24,
|
|
82445
82573
|
30,
|
|
82446
82574
|
60
|
|
82447
|
-
],
|
|
82575
|
+
], kG = [
|
|
82448
82576
|
{
|
|
82449
82577
|
id: "low",
|
|
82450
82578
|
label: "Low",
|
|
@@ -82460,12 +82588,12 @@ var xG = [
|
|
|
82460
82588
|
label: "High",
|
|
82461
82589
|
value: .9
|
|
82462
82590
|
}
|
|
82463
|
-
],
|
|
82464
|
-
function
|
|
82465
|
-
return Math.round(Math.max(0, Math.min(1, e)) *
|
|
82591
|
+
], AG = 1e7;
|
|
82592
|
+
function jG(e) {
|
|
82593
|
+
return Math.round(Math.max(0, Math.min(1, e)) * AG);
|
|
82466
82594
|
}
|
|
82467
|
-
function
|
|
82468
|
-
let r =
|
|
82595
|
+
function MG(e, t, n) {
|
|
82596
|
+
let r = DG.find((t) => t.id === e);
|
|
82469
82597
|
return !r || r.width === null || r.height === null ? {
|
|
82470
82598
|
width: t,
|
|
82471
82599
|
height: n
|
|
@@ -82474,7 +82602,7 @@ function EG(e, t, n) {
|
|
|
82474
82602
|
height: r.height
|
|
82475
82603
|
};
|
|
82476
82604
|
}
|
|
82477
|
-
var
|
|
82605
|
+
var NG = class {
|
|
82478
82606
|
_element;
|
|
82479
82607
|
_fpsSelect;
|
|
82480
82608
|
_resolutionSelect;
|
|
@@ -82487,22 +82615,22 @@ var DG = class {
|
|
|
82487
82615
|
display: "flex",
|
|
82488
82616
|
flexDirection: "column",
|
|
82489
82617
|
gap: "6px"
|
|
82490
|
-
}), this._element.setAttribute("data-export-settings", ""), this._fpsSelect = this._buildSelect("FPS",
|
|
82618
|
+
}), this._element.setAttribute("data-export-settings", ""), this._fpsSelect = this._buildSelect("FPS", OG.map((e) => ({
|
|
82491
82619
|
value: String(e),
|
|
82492
82620
|
label: `${e} fps`
|
|
82493
|
-
})), String(this._nearestFps(e.fps))), this._resolutionSelect = this._buildSelect("Resolution",
|
|
82621
|
+
})), String(this._nearestFps(e.fps))), this._resolutionSelect = this._buildSelect("Resolution", DG.map((e) => ({
|
|
82494
82622
|
value: e.id,
|
|
82495
82623
|
label: e.label
|
|
82496
|
-
})), "current"), this._qualitySelect = this._buildSelect("Quality",
|
|
82624
|
+
})), "current"), this._qualitySelect = this._buildSelect("Quality", kG.map((e) => ({
|
|
82497
82625
|
value: String(e.value),
|
|
82498
82626
|
label: e.label
|
|
82499
|
-
})), String(
|
|
82627
|
+
})), String(kG[kG.length - 1].value));
|
|
82500
82628
|
}
|
|
82501
82629
|
get element() {
|
|
82502
82630
|
return this._element;
|
|
82503
82631
|
}
|
|
82504
82632
|
getSettings() {
|
|
82505
|
-
let e = parseInt(this._fpsSelect.value, 10), { width: t, height: n } =
|
|
82633
|
+
let e = parseInt(this._fpsSelect.value, 10), { width: t, height: n } = MG(this._resolutionSelect.value, this._defaults.width, this._defaults.height);
|
|
82506
82634
|
return {
|
|
82507
82635
|
fps: e,
|
|
82508
82636
|
width: t,
|
|
@@ -82511,7 +82639,7 @@ var DG = class {
|
|
|
82511
82639
|
};
|
|
82512
82640
|
}
|
|
82513
82641
|
_nearestFps(e) {
|
|
82514
|
-
return
|
|
82642
|
+
return OG.reduce((t, n) => Math.abs(n - e) < Math.abs(t - e) ? n : t);
|
|
82515
82643
|
}
|
|
82516
82644
|
_buildSelect(e, t, n) {
|
|
82517
82645
|
let r = document.createElement("label");
|
|
@@ -82542,7 +82670,7 @@ var DG = class {
|
|
|
82542
82670
|
}
|
|
82543
82671
|
return a.value = n, a.addEventListener("click", (e) => e.stopPropagation()), r.appendChild(i), r.appendChild(a), this._element.appendChild(r), a;
|
|
82544
82672
|
}
|
|
82545
|
-
},
|
|
82673
|
+
}, PG = class {
|
|
82546
82674
|
_container;
|
|
82547
82675
|
_bar;
|
|
82548
82676
|
_playBtn;
|
|
@@ -82578,19 +82706,19 @@ var DG = class {
|
|
|
82578
82706
|
this._container = e, this._callbacks = t, this._autoHideMs = n.autoHideMs ?? 2500, this._exportControls = n.exportControls ?? !1, getComputedStyle(e).position === "static" && (e.style.position = "relative"), e.style.overflow = "hidden", this._bar = this._createBar(), this._playBtn = this._createPlayBtn(), this._prevBtn = this._createNavBtn("prev"), this._nextBtn = this._createNavBtn("next");
|
|
82579
82707
|
let r = this._createProgressBar();
|
|
82580
82708
|
this._progressWrap = r.wrap, this._progressFill = r.fill, this._segmentMarkers = r.markers, this._timeDisplay = this._createTimeDisplay(), this._speedSelect = this._createSpeedSelect(), this._fullscreenBtn = this._createFullscreenBtn(), this._slidesBtn = this._createSlidesBtn(), this._exportBtn = this._createExportBtn();
|
|
82581
|
-
let i =
|
|
82709
|
+
let i = FG("div", {
|
|
82582
82710
|
display: "flex",
|
|
82583
82711
|
alignItems: "center",
|
|
82584
82712
|
gap: "4px"
|
|
82585
82713
|
});
|
|
82586
82714
|
i.appendChild(this._prevBtn), i.appendChild(this._playBtn), i.appendChild(this._nextBtn);
|
|
82587
|
-
let a =
|
|
82715
|
+
let a = FG("div", {
|
|
82588
82716
|
display: "flex",
|
|
82589
82717
|
alignItems: "center",
|
|
82590
82718
|
gap: "8px"
|
|
82591
82719
|
});
|
|
82592
82720
|
a.appendChild(this._timeDisplay), a.appendChild(this._speedSelect), a.appendChild(this._slidesBtn), a.appendChild(this._exportBtnWrapper), a.appendChild(this._fullscreenBtn), this._bar.appendChild(this._progressWrap);
|
|
82593
|
-
let o =
|
|
82721
|
+
let o = FG("div", {
|
|
82594
82722
|
display: "flex",
|
|
82595
82723
|
alignItems: "center",
|
|
82596
82724
|
justifyContent: "space-between",
|
|
@@ -82605,10 +82733,10 @@ var DG = class {
|
|
|
82605
82733
|
let n = e / t * 100;
|
|
82606
82734
|
this._progressFill.style.width = `${n}%`;
|
|
82607
82735
|
}
|
|
82608
|
-
this._timeDisplay.textContent = `${
|
|
82736
|
+
this._timeDisplay.textContent = `${LG(e)} / ${LG(t)}`;
|
|
82609
82737
|
}
|
|
82610
82738
|
setPlaying(e, t = !1) {
|
|
82611
|
-
this._isPlaying = e, t ? (this._playBtn.innerHTML =
|
|
82739
|
+
this._isPlaying = e, t ? (this._playBtn.innerHTML = BG, this._playBtn.title = "Replay (Space)") : (this._playBtn.innerHTML = e ? zG : RG, this._playBtn.title = e ? "Pause (Space)" : "Play (Space)"), e && this._scheduleHide();
|
|
82612
82740
|
}
|
|
82613
82741
|
setSlidesMode(e) {
|
|
82614
82742
|
this._slidesActive = e, this._slidesBtn.style.opacity = e ? "1" : "0.4", this._slidesBtn.style.background = e ? "rgba(74,158,255,0.25)" : "none", this._slidesBtn.title = `Slides mode ${e ? "on" : "off"} (S)`;
|
|
@@ -82618,7 +82746,7 @@ var DG = class {
|
|
|
82618
82746
|
let t = e.getSlides(), n = e.getDuration();
|
|
82619
82747
|
if (!(n <= 0)) for (let e of t) {
|
|
82620
82748
|
if (e.index === 0) continue;
|
|
82621
|
-
let t =
|
|
82749
|
+
let t = FG("div", {
|
|
82622
82750
|
position: "absolute",
|
|
82623
82751
|
left: `${e.startTime / n * 100}%`,
|
|
82624
82752
|
top: "50%",
|
|
@@ -82633,7 +82761,7 @@ var DG = class {
|
|
|
82633
82761
|
}
|
|
82634
82762
|
}
|
|
82635
82763
|
_createBar() {
|
|
82636
|
-
let e =
|
|
82764
|
+
let e = FG("div", {
|
|
82637
82765
|
position: "absolute",
|
|
82638
82766
|
bottom: "0",
|
|
82639
82767
|
left: "0",
|
|
@@ -82651,21 +82779,21 @@ var DG = class {
|
|
|
82651
82779
|
}
|
|
82652
82780
|
_createPlayBtn() {
|
|
82653
82781
|
let e = document.createElement("button");
|
|
82654
|
-
return e.innerHTML =
|
|
82782
|
+
return e.innerHTML = RG, e.title = "Play (Space)", IG(e, "36px", "36px"), e.addEventListener("click", () => this._callbacks.onPlayPause()), e;
|
|
82655
82783
|
}
|
|
82656
82784
|
_createNavBtn(e) {
|
|
82657
82785
|
let t = document.createElement("button");
|
|
82658
|
-
return t.innerHTML = e === "prev" ?
|
|
82786
|
+
return t.innerHTML = e === "prev" ? VG : HG, t.title = e === "prev" ? "Previous (Left arrow)" : "Next (Right arrow)", IG(t, "28px", "28px"), t.addEventListener("click", () => {
|
|
82659
82787
|
e === "prev" ? this._callbacks.onPrev() : this._callbacks.onNext();
|
|
82660
82788
|
}), t;
|
|
82661
82789
|
}
|
|
82662
82790
|
_createProgressBar() {
|
|
82663
|
-
let e =
|
|
82791
|
+
let e = FG("div", {
|
|
82664
82792
|
position: "relative",
|
|
82665
82793
|
height: "16px",
|
|
82666
82794
|
padding: "6px 12px",
|
|
82667
82795
|
cursor: "pointer"
|
|
82668
|
-
}), t =
|
|
82796
|
+
}), t = FG("div", {
|
|
82669
82797
|
position: "absolute",
|
|
82670
82798
|
left: "12px",
|
|
82671
82799
|
right: "12px",
|
|
@@ -82675,14 +82803,14 @@ var DG = class {
|
|
|
82675
82803
|
background: "rgba(255,255,255,0.2)",
|
|
82676
82804
|
borderRadius: "2px",
|
|
82677
82805
|
overflow: "visible"
|
|
82678
|
-
}), n =
|
|
82806
|
+
}), n = FG("div", {
|
|
82679
82807
|
width: "0%",
|
|
82680
82808
|
height: "100%",
|
|
82681
82809
|
background: "#4a9eff",
|
|
82682
82810
|
borderRadius: "2px",
|
|
82683
82811
|
transition: "none",
|
|
82684
82812
|
position: "relative"
|
|
82685
|
-
}), r =
|
|
82813
|
+
}), r = FG("div", {
|
|
82686
82814
|
position: "absolute",
|
|
82687
82815
|
right: "-5px",
|
|
82688
82816
|
top: "50%",
|
|
@@ -82695,7 +82823,7 @@ var DG = class {
|
|
|
82695
82823
|
transition: "transform 0.1s"
|
|
82696
82824
|
});
|
|
82697
82825
|
n.appendChild(r);
|
|
82698
|
-
let i =
|
|
82826
|
+
let i = FG("div", {
|
|
82699
82827
|
width: "0%",
|
|
82700
82828
|
height: "100%",
|
|
82701
82829
|
background: "rgba(255,255,255,0.1)",
|
|
@@ -82704,7 +82832,7 @@ var DG = class {
|
|
|
82704
82832
|
top: "0",
|
|
82705
82833
|
left: "0",
|
|
82706
82834
|
pointerEvents: "none"
|
|
82707
|
-
}), a =
|
|
82835
|
+
}), a = FG("div", {
|
|
82708
82836
|
position: "absolute",
|
|
82709
82837
|
top: "0",
|
|
82710
82838
|
left: "0",
|
|
@@ -82729,7 +82857,7 @@ var DG = class {
|
|
|
82729
82857
|
};
|
|
82730
82858
|
}
|
|
82731
82859
|
_createTimeDisplay() {
|
|
82732
|
-
let e =
|
|
82860
|
+
let e = FG("span", {
|
|
82733
82861
|
fontFamily: "\"SF Mono\", Monaco, Consolas, monospace",
|
|
82734
82862
|
fontSize: "12px",
|
|
82735
82863
|
opacity: "0.8",
|
|
@@ -82771,16 +82899,16 @@ var DG = class {
|
|
|
82771
82899
|
}), e;
|
|
82772
82900
|
}
|
|
82773
82901
|
_createExportBtn() {
|
|
82774
|
-
let e =
|
|
82902
|
+
let e = FG("div", {
|
|
82775
82903
|
position: "relative",
|
|
82776
82904
|
display: "inline-block"
|
|
82777
82905
|
}), t = document.createElement("button");
|
|
82778
|
-
return t.innerHTML =
|
|
82906
|
+
return t.innerHTML = UG, t.title = "Export animation", IG(t, "28px", "28px"), t.addEventListener("click", (e) => {
|
|
82779
82907
|
e.stopPropagation(), this._exportMenu ? this._closeExportMenu() : this._showExportMenu();
|
|
82780
82908
|
}), e.appendChild(t), this._exportBtnWrapper = e, t;
|
|
82781
82909
|
}
|
|
82782
82910
|
_showExportMenu() {
|
|
82783
|
-
let e = this._exportBtn.getBoundingClientRect(), t =
|
|
82911
|
+
let e = this._exportBtn.getBoundingClientRect(), t = FG("div", {
|
|
82784
82912
|
position: "fixed",
|
|
82785
82913
|
top: "0",
|
|
82786
82914
|
left: "0",
|
|
@@ -82791,7 +82919,7 @@ var DG = class {
|
|
|
82791
82919
|
t.setAttribute("data-player-bar", ""), t.addEventListener("mousedown", (e) => {
|
|
82792
82920
|
e.stopPropagation(), e.preventDefault(), this._closeExportMenu();
|
|
82793
82921
|
});
|
|
82794
|
-
let n =
|
|
82922
|
+
let n = FG("div", {
|
|
82795
82923
|
position: "fixed",
|
|
82796
82924
|
bottom: `${window.innerHeight - e.top + 6}px`,
|
|
82797
82925
|
left: `${e.left - 60}px`,
|
|
@@ -82812,7 +82940,7 @@ var DG = class {
|
|
|
82812
82940
|
height: 1080,
|
|
82813
82941
|
fps: 60
|
|
82814
82942
|
};
|
|
82815
|
-
this._exportPanel = new
|
|
82943
|
+
this._exportPanel = new NG(e), n.appendChild(this._exportPanel.element);
|
|
82816
82944
|
}
|
|
82817
82945
|
for (let e of [
|
|
82818
82946
|
{
|
|
@@ -82831,7 +82959,7 @@ var DG = class {
|
|
|
82831
82959
|
desc: "Video file"
|
|
82832
82960
|
}
|
|
82833
82961
|
]) {
|
|
82834
|
-
let t =
|
|
82962
|
+
let t = FG("div", {
|
|
82835
82963
|
padding: "8px 14px",
|
|
82836
82964
|
cursor: "pointer",
|
|
82837
82965
|
fontSize: "13px",
|
|
@@ -82856,7 +82984,7 @@ var DG = class {
|
|
|
82856
82984
|
this._exportMenu && (this._exportMenuBackdrop?.remove(), this._exportMenuBackdrop = null, this._exportMenu.remove(), this._exportMenu = null, this._exportPanel = null);
|
|
82857
82985
|
}
|
|
82858
82986
|
setExportProgress(e) {
|
|
82859
|
-
if (e === null) this._exportBtn.innerHTML =
|
|
82987
|
+
if (e === null) this._exportBtn.innerHTML = UG, this._exportBtn.disabled = !1, this._exportBtn.title = "Export animation";
|
|
82860
82988
|
else {
|
|
82861
82989
|
let t = Math.round(e * 100);
|
|
82862
82990
|
this._exportBtn.innerHTML = `<span style="font-size:10px;font-weight:600">${t}%</span>`, this._exportBtn.disabled = !0, this._exportBtn.title = `Exporting... ${t}%`;
|
|
@@ -82864,7 +82992,7 @@ var DG = class {
|
|
|
82864
82992
|
}
|
|
82865
82993
|
_createSlidesBtn() {
|
|
82866
82994
|
let e = document.createElement("button");
|
|
82867
|
-
return e.innerHTML =
|
|
82995
|
+
return e.innerHTML = WG, e.title = "Slides mode off (S)", IG(e, "28px", "28px"), e.style.opacity = "0.4", e.addEventListener("click", () => {
|
|
82868
82996
|
this._slidesActive = !this._slidesActive, this.setSlidesMode(this._slidesActive), this._callbacks.onSlidesToggle(this._slidesActive);
|
|
82869
82997
|
}), e.addEventListener("mouseenter", () => {
|
|
82870
82998
|
e.style.background = this._slidesActive ? "rgba(74,158,255,0.35)" : "rgba(255,255,255,0.15)";
|
|
@@ -82874,7 +83002,7 @@ var DG = class {
|
|
|
82874
83002
|
}
|
|
82875
83003
|
_createFullscreenBtn() {
|
|
82876
83004
|
let e = document.createElement("button");
|
|
82877
|
-
return e.innerHTML =
|
|
83005
|
+
return e.innerHTML = GG, e.title = "Fullscreen (F)", IG(e, "28px", "28px"), e.addEventListener("click", () => this._callbacks.onFullscreen()), e;
|
|
82878
83006
|
}
|
|
82879
83007
|
_showControls() {
|
|
82880
83008
|
this._isVisible ||= (this._bar.style.opacity = "1", this._bar.style.transform = "translateY(0)", !0), this._scheduleHide();
|
|
@@ -82929,11 +83057,11 @@ var DG = class {
|
|
|
82929
83057
|
this._hideTimeout && clearTimeout(this._hideTimeout), this._container.removeEventListener("mousemove", this._onMouseMove), this._container.removeEventListener("mouseleave", this._onMouseLeave), this._progressWrap.removeEventListener("mousedown", this._onProgressDown), document.removeEventListener("mousemove", this._onProgressMove), document.removeEventListener("mouseup", this._onProgressUp), this._bar.remove();
|
|
82930
83058
|
}
|
|
82931
83059
|
};
|
|
82932
|
-
function
|
|
83060
|
+
function FG(e, t) {
|
|
82933
83061
|
let n = document.createElement(e);
|
|
82934
83062
|
return Object.assign(n.style, t), n;
|
|
82935
83063
|
}
|
|
82936
|
-
function
|
|
83064
|
+
function IG(e, t, n) {
|
|
82937
83065
|
Object.assign(e.style, {
|
|
82938
83066
|
width: t,
|
|
82939
83067
|
height: n,
|
|
@@ -82954,11 +83082,11 @@ function AG(e, t, n) {
|
|
|
82954
83082
|
e.style.background = "none";
|
|
82955
83083
|
});
|
|
82956
83084
|
}
|
|
82957
|
-
function
|
|
83085
|
+
function LG(e) {
|
|
82958
83086
|
let t = Math.floor(e / 60), n = Math.floor(e % 60);
|
|
82959
83087
|
return `${t}:${String(n).padStart(2, "0")}`;
|
|
82960
83088
|
}
|
|
82961
|
-
var
|
|
83089
|
+
var RG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><path d=\"M5 3l10 6-10 6V3z\"/></svg>", zG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><rect x=\"4\" y=\"3\" width=\"3.5\" height=\"12\" rx=\"0.5\"/><rect x=\"10.5\" y=\"3\" width=\"3.5\" height=\"12\" rx=\"0.5\"/></svg>", BG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><path d=\"M9 3a6 6 0 1 0 6 6h-2a4 4 0 1 1-4-4v3l4-3.5L9 1v2z\"/></svg>", VG = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"2\" y=\"3\" width=\"2\" height=\"10\"/><path d=\"M14 3L6 8l8 5V3z\"/></svg>", HG = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"12\" y=\"3\" width=\"2\" height=\"10\"/><path d=\"M2 3l8 5-8 5V3z\"/></svg>", UG = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><path d=\"M8 1L8 10M8 10L5 7M8 10L11 7\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 12v1h10v-1\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\"/></svg>", WG = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"1\" y=\"2\" width=\"14\" height=\"10\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M5 14h6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M6 6l5 3-5 3V6z\"/></svg>", GG = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><path d=\"M2 2h4v2H4v2H2V2zm8 0h4v4h-2V4h-2V2zM2 10h2v2h2v2H2v-4zm10 2h-2v2h4v-4h-2v2z\"/></svg>", KG = class {
|
|
82962
83090
|
_container;
|
|
82963
83091
|
_callbacks;
|
|
82964
83092
|
_onKeyDown;
|
|
@@ -82988,7 +83116,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
82988
83116
|
dispose() {
|
|
82989
83117
|
this._container.removeEventListener("keydown", this._onKeyDown);
|
|
82990
83118
|
}
|
|
82991
|
-
},
|
|
83119
|
+
}, qG = class {
|
|
82992
83120
|
_realScene;
|
|
82993
83121
|
_masterTimeline;
|
|
82994
83122
|
constructor(e, t) {
|
|
@@ -83025,7 +83153,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83025
83153
|
for (let n of e) t.push(n), n instanceof HT && t.push(...this._collectAll(n.animations));
|
|
83026
83154
|
return t;
|
|
83027
83155
|
}
|
|
83028
|
-
},
|
|
83156
|
+
}, JG = [
|
|
83029
83157
|
"mousedown",
|
|
83030
83158
|
"mousemove",
|
|
83031
83159
|
"mouseup",
|
|
@@ -83033,7 +83161,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83033
83161
|
"touchstart",
|
|
83034
83162
|
"touchmove",
|
|
83035
83163
|
"touchend"
|
|
83036
|
-
],
|
|
83164
|
+
], YG = class {
|
|
83037
83165
|
_target;
|
|
83038
83166
|
_scene;
|
|
83039
83167
|
_isIdle;
|
|
@@ -83052,13 +83180,13 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83052
83180
|
}
|
|
83053
83181
|
attach() {
|
|
83054
83182
|
if (!this._attached) {
|
|
83055
|
-
for (let e of
|
|
83183
|
+
for (let e of JG) this._target.addEventListener(e, this._onEvent);
|
|
83056
83184
|
this._attached = !0;
|
|
83057
83185
|
}
|
|
83058
83186
|
}
|
|
83059
83187
|
dispose() {
|
|
83060
83188
|
if (this._attached) {
|
|
83061
|
-
for (let e of
|
|
83189
|
+
for (let e of JG) this._target.removeEventListener(e, this._onEvent);
|
|
83062
83190
|
this._attached = !1, this._renderScheduled = !1;
|
|
83063
83191
|
}
|
|
83064
83192
|
}
|
|
@@ -83070,7 +83198,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83070
83198
|
this._renderScheduled = !1, !(!this._attached || !this._isIdle()) && (this._scene.render(), this._renderCount++);
|
|
83071
83199
|
}));
|
|
83072
83200
|
}
|
|
83073
|
-
},
|
|
83201
|
+
}, XG = class {
|
|
83074
83202
|
_scene;
|
|
83075
83203
|
_masterTimeline;
|
|
83076
83204
|
_ui;
|
|
@@ -83093,7 +83221,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83093
83221
|
_origHeight = 0;
|
|
83094
83222
|
_onFullscreenChange;
|
|
83095
83223
|
constructor(e, t = {}) {
|
|
83096
|
-
this._container = e, this._loop = t.loop ?? !1, this._autoPlay = t.autoPlay ?? !1, this._slidesMode = t.slidesMode ?? !1, this._interactiveSlides = t.interactiveSlides ?? !1, this._exportControls = t.exportControls ?? !1, this._exportFps = t.targetFps ?? 60, this._scene = new pE(e, t), this._masterTimeline = new bB(), this._ui = new
|
|
83224
|
+
this._container = e, this._loop = t.loop ?? !1, this._autoPlay = t.autoPlay ?? !1, this._slidesMode = t.slidesMode ?? !1, this._interactiveSlides = t.interactiveSlides ?? !1, this._exportControls = t.exportControls ?? !1, this._exportFps = t.targetFps ?? 60, this._scene = new pE(e, t), this._masterTimeline = new bB(), this._ui = new PG(e, {
|
|
83097
83225
|
onPlayPause: () => this.togglePlayPause(),
|
|
83098
83226
|
onSeek: (e) => this.seek(e),
|
|
83099
83227
|
onPrev: () => this.prevSegment(),
|
|
@@ -83110,7 +83238,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83110
83238
|
}, {
|
|
83111
83239
|
autoHideMs: t.autoHideMs,
|
|
83112
83240
|
exportControls: this._exportControls
|
|
83113
|
-
}), this._ui.setSlidesMode(this._slidesMode), this._ui.enableScrollScrub(() => this._masterTimeline.getCurrentTime()), this._controller = new
|
|
83241
|
+
}), this._ui.setSlidesMode(this._slidesMode), this._ui.enableScrollScrub(() => this._masterTimeline.getCurrentTime()), this._controller = new KG(e, {
|
|
83114
83242
|
onPlayPause: () => this.togglePlayPause(),
|
|
83115
83243
|
onPrev: () => this.prevSegment(),
|
|
83116
83244
|
onNext: () => this.nextSegment(),
|
|
@@ -83124,10 +83252,10 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83124
83252
|
}, document.addEventListener("fullscreenchange", this._onFullscreenChange), this._interactiveSlides && this._enableSlideInteraction();
|
|
83125
83253
|
}
|
|
83126
83254
|
_enableSlideInteraction() {
|
|
83127
|
-
this._slideInteraction || (this._slideInteraction = new
|
|
83255
|
+
this._slideInteraction || (this._slideInteraction = new YG(this._container, this._scene, () => !this._isPlaying), this._slideInteraction.attach());
|
|
83128
83256
|
}
|
|
83129
83257
|
async sequence(e) {
|
|
83130
|
-
this._masterTimeline = new bB(), this._activeLoopSlideIndex = null, this._slidesTargetSlideIndex = -1, await e(new
|
|
83258
|
+
this._masterTimeline = new bB(), this._activeLoopSlideIndex = null, this._slidesTargetSlideIndex = -1, await e(new qG(this._scene, this._masterTimeline)), this._masterTimeline.finalizeSlides(), this._scene.setTimeline(this._masterTimeline), this._masterTimeline.seek(0), this._scene.render(), this._ui.setSegments(this._masterTimeline), this._ui.updateTime(0, this._masterTimeline.getDuration()), this._autoPlay && this.play();
|
|
83131
83259
|
}
|
|
83132
83260
|
get scene() {
|
|
83133
83261
|
return this._scene;
|
|
@@ -83238,7 +83366,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83238
83366
|
let i = `animation.${e}`, a = this._masterTimeline.getDuration(), o = (e) => this._ui.setExportProgress(e);
|
|
83239
83367
|
this._ui.setExportProgress(0);
|
|
83240
83368
|
try {
|
|
83241
|
-
(e === "webm" || e === "mp4") &&
|
|
83369
|
+
(e === "webm" || e === "mp4") && aG() === "webcodecs" ? await this._exportWithWebCodecs(e === "mp4" ? "mp4" : "webm", t, a, o, i) : await this._scene.export(i, this._buildSceneExportOptions(e, t, a, o));
|
|
83242
83370
|
} catch (e) {
|
|
83243
83371
|
qf.error("Export failed:", e), this._ui.showError(`Export failed: ${e instanceof Error ? e.message : "Unknown error"}`);
|
|
83244
83372
|
} finally {
|
|
@@ -83246,12 +83374,12 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83246
83374
|
}
|
|
83247
83375
|
}
|
|
83248
83376
|
async _exportWithWebCodecs(e, t, n, r, i) {
|
|
83249
|
-
|
|
83377
|
+
eG(await new rG(this._scene, {
|
|
83250
83378
|
format: e,
|
|
83251
83379
|
fps: t?.fps ?? this._exportFps,
|
|
83252
83380
|
width: t?.width ?? this._scene.getWidth(),
|
|
83253
83381
|
height: t?.height ?? this._scene.getHeight(),
|
|
83254
|
-
bitrate:
|
|
83382
|
+
bitrate: jG(t?.quality ?? .9),
|
|
83255
83383
|
duration: n,
|
|
83256
83384
|
onProgress: r
|
|
83257
83385
|
}).export(), i);
|
|
@@ -83312,36 +83440,36 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83312
83440
|
_stopLoop() {
|
|
83313
83441
|
this._animFrameId !== null && (cancelAnimationFrame(this._animFrameId), this._animFrameId = null);
|
|
83314
83442
|
}
|
|
83315
|
-
},
|
|
83443
|
+
}, ZG = {
|
|
83316
83444
|
EXPERIMENTAL_3D_LIGHTING: !1,
|
|
83317
83445
|
WEBGPU_RENDERER: !1,
|
|
83318
83446
|
ADVANCED_TEXT_LAYOUT: !1
|
|
83319
|
-
},
|
|
83320
|
-
function
|
|
83321
|
-
return
|
|
83447
|
+
}, QG = { ...ZG };
|
|
83448
|
+
function $G(e) {
|
|
83449
|
+
return QG[e] ?? !1;
|
|
83322
83450
|
}
|
|
83323
|
-
function
|
|
83324
|
-
|
|
83325
|
-
...
|
|
83451
|
+
function eK(e) {
|
|
83452
|
+
QG = {
|
|
83453
|
+
...QG,
|
|
83326
83454
|
...e
|
|
83327
83455
|
};
|
|
83328
83456
|
}
|
|
83329
|
-
function
|
|
83330
|
-
|
|
83457
|
+
function tK() {
|
|
83458
|
+
QG = { ...ZG };
|
|
83331
83459
|
}
|
|
83332
|
-
function
|
|
83333
|
-
return { ...
|
|
83460
|
+
function nK() {
|
|
83461
|
+
return { ...QG };
|
|
83334
83462
|
}
|
|
83335
83463
|
//#endregion
|
|
83336
83464
|
//#region src/utils/ManimColor.ts
|
|
83337
|
-
var
|
|
83338
|
-
function
|
|
83465
|
+
var rK = /(?:#|0[xX])([A-Fa-f0-9]{3,8})/;
|
|
83466
|
+
function iK(e) {
|
|
83339
83467
|
return Math.min(255, Math.max(0, Math.trunc(e * 255)));
|
|
83340
83468
|
}
|
|
83341
|
-
function
|
|
83342
|
-
return
|
|
83469
|
+
function aK(e) {
|
|
83470
|
+
return iK(e).toString(16).toUpperCase().padStart(2, "0");
|
|
83343
83471
|
}
|
|
83344
|
-
function
|
|
83472
|
+
function oK(e, t) {
|
|
83345
83473
|
let n = e;
|
|
83346
83474
|
(n.length === 3 || n.length === 4) && (n = n.split("").map((e) => e + e).join(""));
|
|
83347
83475
|
let r = t;
|
|
@@ -83354,14 +83482,14 @@ function eK(e, t) {
|
|
|
83354
83482
|
r
|
|
83355
83483
|
];
|
|
83356
83484
|
}
|
|
83357
|
-
function
|
|
83358
|
-
let n =
|
|
83359
|
-
if (n !== null) return
|
|
83485
|
+
function sK(e, t) {
|
|
83486
|
+
let n = rK.exec(e);
|
|
83487
|
+
if (n !== null) return oK(n[1], t);
|
|
83360
83488
|
let r = ml[e.toUpperCase()];
|
|
83361
|
-
if (typeof r == "string") return
|
|
83489
|
+
if (typeof r == "string") return sK(r, t);
|
|
83362
83490
|
throw Error(`Failed to parse a color from "${e}"`);
|
|
83363
83491
|
}
|
|
83364
|
-
function
|
|
83492
|
+
function cK(e, t) {
|
|
83365
83493
|
return [
|
|
83366
83494
|
(e >> 16 & 255) / 255,
|
|
83367
83495
|
(e >> 8 & 255) / 255,
|
|
@@ -83369,7 +83497,7 @@ function nK(e, t) {
|
|
|
83369
83497
|
t
|
|
83370
83498
|
];
|
|
83371
83499
|
}
|
|
83372
|
-
var
|
|
83500
|
+
var lK = class e {
|
|
83373
83501
|
value;
|
|
83374
83502
|
constructor(t, n = 1) {
|
|
83375
83503
|
if (t === null) this.value = [
|
|
@@ -83386,8 +83514,8 @@ var rK = class e {
|
|
|
83386
83514
|
e[2],
|
|
83387
83515
|
e[3]
|
|
83388
83516
|
];
|
|
83389
|
-
} else if (typeof t == "number") this.value =
|
|
83390
|
-
else if (typeof t == "string") this.value =
|
|
83517
|
+
} else if (typeof t == "number") this.value = cK(t, n);
|
|
83518
|
+
else if (typeof t == "string") this.value = sK(t, n);
|
|
83391
83519
|
else if (t.length === 3) this.value = [
|
|
83392
83520
|
t[0],
|
|
83393
83521
|
t[1],
|
|
@@ -83445,18 +83573,18 @@ var rK = class e {
|
|
|
83445
83573
|
toIntRgb() {
|
|
83446
83574
|
let e = this.internalRgba();
|
|
83447
83575
|
return [
|
|
83448
|
-
|
|
83449
|
-
|
|
83450
|
-
|
|
83576
|
+
iK(e[0]),
|
|
83577
|
+
iK(e[1]),
|
|
83578
|
+
iK(e[2])
|
|
83451
83579
|
];
|
|
83452
83580
|
}
|
|
83453
83581
|
toIntRgba() {
|
|
83454
83582
|
let e = this.internalRgba();
|
|
83455
83583
|
return [
|
|
83456
|
-
|
|
83457
|
-
|
|
83458
|
-
|
|
83459
|
-
|
|
83584
|
+
iK(e[0]),
|
|
83585
|
+
iK(e[1]),
|
|
83586
|
+
iK(e[2]),
|
|
83587
|
+
iK(e[3])
|
|
83460
83588
|
];
|
|
83461
83589
|
}
|
|
83462
83590
|
toHex(e = !1) {
|
|
@@ -83465,7 +83593,7 @@ var rK = class e {
|
|
|
83465
83593
|
t[1],
|
|
83466
83594
|
t[2]
|
|
83467
83595
|
]);
|
|
83468
|
-
return e ? n +
|
|
83596
|
+
return e ? n + aK(t[3]) : n;
|
|
83469
83597
|
}
|
|
83470
83598
|
toHsv() {
|
|
83471
83599
|
return jA(this.toRgb());
|
|
@@ -83525,7 +83653,7 @@ var rK = class e {
|
|
|
83525
83653
|
static parse(t, n = 1) {
|
|
83526
83654
|
return Array.isArray(t) && t.some((e) => typeof e != "number") ? t.map((t) => new e(t, n)) : new e(t, n);
|
|
83527
83655
|
}
|
|
83528
|
-
},
|
|
83656
|
+
}, uK = lK, dK = class e extends lK {
|
|
83529
83657
|
hsva;
|
|
83530
83658
|
constructor(e, t = 1) {
|
|
83531
83659
|
if (super(null), e.length === 3) this.hsva = [
|
|
@@ -83594,7 +83722,7 @@ var rK = class e {
|
|
|
83594
83722
|
return this.hsva[2];
|
|
83595
83723
|
}
|
|
83596
83724
|
};
|
|
83597
|
-
function
|
|
83725
|
+
function fK(e) {
|
|
83598
83726
|
let t = e >>> 0;
|
|
83599
83727
|
return () => {
|
|
83600
83728
|
t = t + 1831565813 | 0;
|
|
@@ -83602,18 +83730,18 @@ function oK(e) {
|
|
|
83602
83730
|
return e = e + Math.imul(e ^ e >>> 7, 61 | e) ^ e, ((e ^ e >>> 14) >>> 0) / 4294967296;
|
|
83603
83731
|
};
|
|
83604
83732
|
}
|
|
83605
|
-
var
|
|
83733
|
+
var pK = Array.from(new Set(Object.values(ml))).map((e) => new lK(e)), mK = class {
|
|
83606
83734
|
rng;
|
|
83607
83735
|
colors;
|
|
83608
83736
|
constructor(e, t) {
|
|
83609
|
-
this.rng = e === void 0 ? Math.random :
|
|
83737
|
+
this.rng = e === void 0 ? Math.random : fK(e), this.colors = t === void 0 ? pK : t.map((e) => e instanceof lK ? e : new lK(e));
|
|
83610
83738
|
}
|
|
83611
83739
|
next() {
|
|
83612
83740
|
let e = Math.floor(this.rng() * this.colors.length);
|
|
83613
83741
|
return this.colors[e];
|
|
83614
83742
|
}
|
|
83615
83743
|
};
|
|
83616
|
-
function
|
|
83744
|
+
function hK(e, t, n, r) {
|
|
83617
83745
|
let i = .5 * Xd(n, $d([
|
|
83618
83746
|
r[0] - t[0],
|
|
83619
83747
|
r[1] - t[1],
|
|
@@ -83627,7 +83755,7 @@ function lK(e, t, n, r) {
|
|
|
83627
83755
|
}
|
|
83628
83756
|
//#endregion
|
|
83629
83757
|
//#region src/utils/iterables.ts
|
|
83630
|
-
function
|
|
83758
|
+
function gK(e, t) {
|
|
83631
83759
|
let n = e.length;
|
|
83632
83760
|
if (n === 0) return [];
|
|
83633
83761
|
let r = [];
|
|
@@ -83638,10 +83766,10 @@ function uK(e, t) {
|
|
|
83638
83766
|
}
|
|
83639
83767
|
return r;
|
|
83640
83768
|
}
|
|
83641
|
-
function
|
|
83642
|
-
return
|
|
83769
|
+
function _K(e) {
|
|
83770
|
+
return gK(e, 2);
|
|
83643
83771
|
}
|
|
83644
|
-
function
|
|
83772
|
+
function vK(e) {
|
|
83645
83773
|
let t = [], n = /* @__PURE__ */ new Set();
|
|
83646
83774
|
for (let r = e.length - 1; r >= 0; r--) {
|
|
83647
83775
|
let i = e[r];
|
|
@@ -83649,7 +83777,7 @@ function fK(e) {
|
|
|
83649
83777
|
}
|
|
83650
83778
|
return t.reverse(), t;
|
|
83651
83779
|
}
|
|
83652
|
-
function
|
|
83780
|
+
function yK(e, t, n) {
|
|
83653
83781
|
if (n === void 0) {
|
|
83654
83782
|
let n = new Set(t);
|
|
83655
83783
|
return e.filter((e) => !n.has(e));
|
|
@@ -83657,29 +83785,29 @@ function pK(e, t, n) {
|
|
|
83657
83785
|
let r = new Set(t.map((e) => n(e)));
|
|
83658
83786
|
return e.filter((e) => !r.has(n(e)));
|
|
83659
83787
|
}
|
|
83660
|
-
function
|
|
83661
|
-
return
|
|
83788
|
+
function bK(e, t, n) {
|
|
83789
|
+
return yK(e, t, n).concat(t);
|
|
83662
83790
|
}
|
|
83663
|
-
function
|
|
83791
|
+
function xK(e) {
|
|
83664
83792
|
return typeof e == "string" ? [e] : typeof e == "object" && e && Symbol.iterator in e ? [...e] : [e];
|
|
83665
83793
|
}
|
|
83666
|
-
function
|
|
83794
|
+
function SK(e, t) {
|
|
83667
83795
|
let n = e.length, r = t.length, i = Math.max(n, r), a = [], o = [];
|
|
83668
83796
|
for (let s = 0; s < i; s++) a.push(e[Math.floor(s * n / i)]), o.push(t[Math.floor(s * r / i)]);
|
|
83669
83797
|
return [a, o];
|
|
83670
83798
|
}
|
|
83671
|
-
function
|
|
83799
|
+
function CK(e, t) {
|
|
83672
83800
|
let n = e.length;
|
|
83673
83801
|
if (n > t) throw Error("Trying to stretch array to a length shorter than its own");
|
|
83674
83802
|
let r = [];
|
|
83675
83803
|
for (let i = 0; i < t; i++) r.push(e[Math.floor(i / t * n)]);
|
|
83676
83804
|
return r;
|
|
83677
83805
|
}
|
|
83678
|
-
function*
|
|
83806
|
+
function* wK(...e) {
|
|
83679
83807
|
let t = /* @__PURE__ */ new Set();
|
|
83680
83808
|
for (let n of e) for (let e of n) t.has(e) || (t.add(e), yield e);
|
|
83681
83809
|
}
|
|
83682
|
-
function
|
|
83810
|
+
function TK(e) {
|
|
83683
83811
|
let t = [[]];
|
|
83684
83812
|
for (let n of e) {
|
|
83685
83813
|
let e = t.length;
|
|
@@ -83687,82 +83815,82 @@ function yK(e) {
|
|
|
83687
83815
|
}
|
|
83688
83816
|
return t;
|
|
83689
83817
|
}
|
|
83690
|
-
function
|
|
83818
|
+
function EK(e, t) {
|
|
83691
83819
|
for (let n of e) if (!(n instanceof t)) return !1;
|
|
83692
83820
|
return !0;
|
|
83693
83821
|
}
|
|
83694
|
-
function
|
|
83822
|
+
function DK(...e) {
|
|
83695
83823
|
let t = [];
|
|
83696
83824
|
for (let n of e) for (let e of n) t.push(e);
|
|
83697
83825
|
return t;
|
|
83698
83826
|
}
|
|
83699
|
-
function
|
|
83827
|
+
function OK(e) {
|
|
83700
83828
|
return typeof e == "string" ? [e] : typeof e == "object" && e && Symbol.iterator in e ? [...e] : [e];
|
|
83701
83829
|
}
|
|
83702
|
-
function
|
|
83830
|
+
function kK(e) {
|
|
83703
83831
|
let t = [];
|
|
83704
83832
|
for (let n of e) n && t.push(n);
|
|
83705
83833
|
return t;
|
|
83706
83834
|
}
|
|
83707
|
-
function
|
|
83835
|
+
function AK(e, t) {
|
|
83708
83836
|
let n = Math.max(e.length, t.length), r = [], i = [];
|
|
83709
83837
|
for (let a = 0; a < n; a++) r.push(e[a % e.length]), i.push(t[a % t.length]);
|
|
83710
83838
|
return [r, i];
|
|
83711
83839
|
}
|
|
83712
|
-
function
|
|
83713
|
-
return
|
|
83840
|
+
function jK(e) {
|
|
83841
|
+
return NK(MK(e));
|
|
83714
83842
|
}
|
|
83715
|
-
function
|
|
83843
|
+
function MK(e) {
|
|
83716
83844
|
if (e === null) return "null";
|
|
83717
83845
|
if (e === void 0) return "undefined";
|
|
83718
83846
|
let t = typeof e;
|
|
83719
83847
|
if (t === "string") return `s:${e}`;
|
|
83720
83848
|
if (t === "number" || t === "boolean" || t === "bigint") return `${t[0]}:${String(e)}`;
|
|
83721
|
-
if (e instanceof Set) return `set:[${[...e].map(
|
|
83722
|
-
if (e instanceof Map) return `map:{${[...e.entries()].map(([e, t]) => `${
|
|
83723
|
-
if (Array.isArray(e)) return `arr:[${e.map(
|
|
83849
|
+
if (e instanceof Set) return `set:[${[...e].map(MK).sort().join(",")}]`;
|
|
83850
|
+
if (e instanceof Map) return `map:{${[...e.entries()].map(([e, t]) => `${MK(e)}=${MK(t)}`).sort().join(",")}}`;
|
|
83851
|
+
if (Array.isArray(e)) return `arr:[${e.map(MK).join(",")}]`;
|
|
83724
83852
|
if (t === "object") {
|
|
83725
83853
|
let t = e;
|
|
83726
|
-
return `obj:{${Object.keys(t).sort().map((e) => `${e}=${
|
|
83854
|
+
return `obj:{${Object.keys(t).sort().map((e) => `${e}=${MK(t[e])}`).join(",")}}`;
|
|
83727
83855
|
}
|
|
83728
83856
|
return `${t}:${String(e)}`;
|
|
83729
83857
|
}
|
|
83730
|
-
function
|
|
83858
|
+
function NK(e) {
|
|
83731
83859
|
let t = 2166136261;
|
|
83732
83860
|
for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
|
|
83733
83861
|
return t >>> 0;
|
|
83734
83862
|
}
|
|
83735
83863
|
//#endregion
|
|
83736
83864
|
//#region src/utils/unit.ts
|
|
83737
|
-
function
|
|
83865
|
+
function PK(e) {
|
|
83738
83866
|
return e * pd / hd;
|
|
83739
83867
|
}
|
|
83740
|
-
function
|
|
83868
|
+
function FK(e) {
|
|
83741
83869
|
return e * Math.PI / 180;
|
|
83742
83870
|
}
|
|
83743
|
-
function
|
|
83871
|
+
function IK(e) {
|
|
83744
83872
|
return e;
|
|
83745
83873
|
}
|
|
83746
|
-
function
|
|
83874
|
+
function LK(e, t) {
|
|
83747
83875
|
return e[0] === t[0] && e[1] === t[1] && e[2] === t[2];
|
|
83748
83876
|
}
|
|
83749
|
-
function
|
|
83877
|
+
function RK(e, t) {
|
|
83750
83878
|
let n;
|
|
83751
|
-
if (
|
|
83752
|
-
else if (
|
|
83753
|
-
else if (
|
|
83879
|
+
if (LK(e, Md)) n = pd;
|
|
83880
|
+
else if (LK(e, kd)) n = 8;
|
|
83881
|
+
else if (LK(e, Nd)) throw Error("length of Z axis is undefined");
|
|
83754
83882
|
else throw Error("Percent axis must be the X axis (RIGHT) or Y axis (UP)");
|
|
83755
83883
|
return t / 100 * n;
|
|
83756
83884
|
}
|
|
83757
83885
|
//#endregion
|
|
83758
83886
|
//#region src/utils/debug.ts
|
|
83759
|
-
function
|
|
83887
|
+
function zK(e, t = !1) {
|
|
83760
83888
|
let n = [];
|
|
83761
83889
|
for (let t of e) n.push(...t.getFamily());
|
|
83762
83890
|
return t ? n.filter((e) => e instanceof z && e.hasOwnPoints()) : n;
|
|
83763
83891
|
}
|
|
83764
|
-
function
|
|
83765
|
-
let n = [], r = new Set(
|
|
83892
|
+
function BK(e, t) {
|
|
83893
|
+
let n = [], r = new Set(zK(t)), i = (e, t) => {
|
|
83766
83894
|
for (let r of e) {
|
|
83767
83895
|
if (t.has(r)) continue;
|
|
83768
83896
|
let e = new Set(r.getFamily().filter((e) => t.has(e)));
|
|
@@ -83771,14 +83899,14 @@ function PK(e, t) {
|
|
|
83771
83899
|
};
|
|
83772
83900
|
return i(e, r), n;
|
|
83773
83901
|
}
|
|
83774
|
-
function
|
|
83902
|
+
function VK(e, t = {}) {
|
|
83775
83903
|
let { labelHeight: n = .15 } = t, r = new B();
|
|
83776
83904
|
return e.children.forEach((e, t) => {
|
|
83777
83905
|
let i = new wM({ value: t });
|
|
83778
83906
|
i.setHeight(n), i.moveTo(e), r.add(i);
|
|
83779
83907
|
}), r;
|
|
83780
83908
|
}
|
|
83781
|
-
function
|
|
83909
|
+
function HK(e, t = 0) {
|
|
83782
83910
|
let n = [], r = (e, t) => {
|
|
83783
83911
|
n.push(" ".repeat(t) + `${e.constructor.name} ${e.id}`);
|
|
83784
83912
|
for (let n of e.children) r(n, t + 1);
|
|
@@ -83789,8 +83917,8 @@ function IK(e, t = 0) {
|
|
|
83789
83917
|
}
|
|
83790
83918
|
//#endregion
|
|
83791
83919
|
//#region src/utils/spaceOps.ts
|
|
83792
|
-
var
|
|
83793
|
-
function
|
|
83920
|
+
var UK = 2 * Math.PI;
|
|
83921
|
+
function WK(e) {
|
|
83794
83922
|
let t = e.length, n = e[0].length, r = [];
|
|
83795
83923
|
for (let i = 0; i < n; i++) {
|
|
83796
83924
|
let n = [];
|
|
@@ -83799,20 +83927,20 @@ function RK(e) {
|
|
|
83799
83927
|
}
|
|
83800
83928
|
return r;
|
|
83801
83929
|
}
|
|
83802
|
-
function
|
|
83930
|
+
function GK(e, t) {
|
|
83803
83931
|
return e.map((e) => e.reduce((e, n, r) => e + n * (t[r] ?? 0), 0));
|
|
83804
83932
|
}
|
|
83805
|
-
function
|
|
83933
|
+
function KK(e) {
|
|
83806
83934
|
return e.reduce((e, t) => e + t * t, 0);
|
|
83807
83935
|
}
|
|
83808
|
-
function
|
|
83936
|
+
function qK(e, t) {
|
|
83809
83937
|
return e[0] * t[1] - e[1] * t[0];
|
|
83810
83938
|
}
|
|
83811
|
-
function
|
|
83812
|
-
let n = Math.sqrt(
|
|
83939
|
+
function JK(e, t) {
|
|
83940
|
+
let n = Math.sqrt(KK(e));
|
|
83813
83941
|
return n > 0 ? e.map((e) => e / n) : t ?? e.map(() => 0);
|
|
83814
83942
|
}
|
|
83815
|
-
function
|
|
83943
|
+
function YK(...e) {
|
|
83816
83944
|
if (e.length === 0) return [
|
|
83817
83945
|
1,
|
|
83818
83946
|
0,
|
|
@@ -83831,8 +83959,8 @@ function UK(...e) {
|
|
|
83831
83959
|
}
|
|
83832
83960
|
return t;
|
|
83833
83961
|
}
|
|
83834
|
-
function
|
|
83835
|
-
let r = n ? t :
|
|
83962
|
+
function XK(e, t, n = !1) {
|
|
83963
|
+
let r = n ? t : JK(t), i = Math.sin(e / 2);
|
|
83836
83964
|
return [
|
|
83837
83965
|
Math.cos(e / 2),
|
|
83838
83966
|
i * (r[0] ?? 0),
|
|
@@ -83840,19 +83968,19 @@ function WK(e, t, n = !1) {
|
|
|
83840
83968
|
i * (r[2] ?? 0)
|
|
83841
83969
|
];
|
|
83842
83970
|
}
|
|
83843
|
-
function
|
|
83844
|
-
let t =
|
|
83971
|
+
function ZK(e) {
|
|
83972
|
+
let t = JK(e.slice(1), [
|
|
83845
83973
|
1,
|
|
83846
83974
|
0,
|
|
83847
83975
|
0
|
|
83848
83976
|
]), n = 2 * Math.acos(e[0]);
|
|
83849
|
-
return n >
|
|
83977
|
+
return n > UK / 2 && (n = UK - n, t = [
|
|
83850
83978
|
-t[0],
|
|
83851
83979
|
-t[1],
|
|
83852
83980
|
-t[2]
|
|
83853
83981
|
]), [n, t];
|
|
83854
83982
|
}
|
|
83855
|
-
function
|
|
83983
|
+
function QK(e) {
|
|
83856
83984
|
return [
|
|
83857
83985
|
e[0],
|
|
83858
83986
|
-e[1],
|
|
@@ -83860,7 +83988,7 @@ function KK(e) {
|
|
|
83860
83988
|
-e[3]
|
|
83861
83989
|
];
|
|
83862
83990
|
}
|
|
83863
|
-
function
|
|
83991
|
+
function $K(e, t, n = !1) {
|
|
83864
83992
|
let [r, i, a] = $d(t), o = Math.cos(e), s = Math.sin(e), c = 1 - o, l = [
|
|
83865
83993
|
[
|
|
83866
83994
|
o + r * r * c,
|
|
@@ -83890,7 +84018,7 @@ function qK(e, t, n = !1) {
|
|
|
83890
84018
|
]
|
|
83891
84019
|
] : l;
|
|
83892
84020
|
}
|
|
83893
|
-
function
|
|
84021
|
+
function eq(e) {
|
|
83894
84022
|
let t = Math.cos(e), n = Math.sin(e);
|
|
83895
84023
|
return [
|
|
83896
84024
|
[
|
|
@@ -83910,23 +84038,23 @@ function JK(e) {
|
|
|
83910
84038
|
]
|
|
83911
84039
|
];
|
|
83912
84040
|
}
|
|
83913
|
-
function
|
|
83914
|
-
return (t[0] ?? 0) === 0 && (t[1] ?? 0) === 0 ?
|
|
84041
|
+
function tq(e, t) {
|
|
84042
|
+
return (t[0] ?? 0) === 0 && (t[1] ?? 0) === 0 ? WK(eq(e * Math.sign(t[2] ?? 0))) : WK($K(e, t));
|
|
83915
84043
|
}
|
|
83916
|
-
function
|
|
84044
|
+
function nq(e, t, n = Nd) {
|
|
83917
84045
|
if (e.length > 3) throw Error("Vector must have the correct dimensions.");
|
|
83918
84046
|
let r = e.length === 2 ? [
|
|
83919
84047
|
e[0],
|
|
83920
84048
|
e[1],
|
|
83921
84049
|
0
|
|
83922
|
-
] : e, i =
|
|
84050
|
+
] : e, i = GK($K(t, n), r);
|
|
83923
84051
|
return [
|
|
83924
84052
|
i[0],
|
|
83925
84053
|
i[1],
|
|
83926
84054
|
i[2]
|
|
83927
84055
|
];
|
|
83928
84056
|
}
|
|
83929
|
-
function
|
|
84057
|
+
function rq(e) {
|
|
83930
84058
|
let t = $d(e), n = $d(Zd(t, Md)), r = Zd(n, t);
|
|
83931
84059
|
if (Qd(n) === 0) {
|
|
83932
84060
|
r = $d(Zd(kd, t));
|
|
@@ -83937,27 +84065,27 @@ function ZK(e) {
|
|
|
83937
84065
|
-e[2]
|
|
83938
84066
|
];
|
|
83939
84067
|
}
|
|
83940
|
-
return
|
|
84068
|
+
return WK([
|
|
83941
84069
|
r,
|
|
83942
84070
|
n,
|
|
83943
84071
|
t
|
|
83944
84072
|
]);
|
|
83945
84073
|
}
|
|
83946
|
-
function
|
|
84074
|
+
function iq(e) {
|
|
83947
84075
|
return Math.atan2(e[1] ?? 0, e[0] ?? 0);
|
|
83948
84076
|
}
|
|
83949
|
-
function
|
|
83950
|
-
let n =
|
|
83951
|
-
return 2 * Math.atan2(Math.sqrt(
|
|
84077
|
+
function aq(e, t) {
|
|
84078
|
+
let n = JK(e), r = JK(t), i = n.map((e, t) => e - r[t]), a = n.map((e, t) => e + r[t]);
|
|
84079
|
+
return 2 * Math.atan2(Math.sqrt(KK(i)), Math.sqrt(KK(a)));
|
|
83952
84080
|
}
|
|
83953
|
-
function
|
|
84081
|
+
function oq(e, t, n = 1e-6) {
|
|
83954
84082
|
let r = Math.max(...e.map(Math.abs)), i = Math.max(...t.map(Math.abs)), a;
|
|
83955
84083
|
if (r === 0) {
|
|
83956
84084
|
if (i === 0) return Ad;
|
|
83957
84085
|
a = t.map((e) => e / i);
|
|
83958
84086
|
} else if (i === 0) a = e.map((e) => e / r);
|
|
83959
84087
|
else {
|
|
83960
|
-
let o = e.map((e) => e / r), s = Zd(o, t.map((e) => e / i)), c = Math.sqrt(
|
|
84088
|
+
let o = e.map((e) => e / r), s = Zd(o, t.map((e) => e / i)), c = Math.sqrt(KK(s));
|
|
83961
84089
|
if (c > n) return [
|
|
83962
84090
|
s[0] / c,
|
|
83963
84091
|
s[1] / c,
|
|
@@ -83970,43 +84098,43 @@ function eq(e, t, n = 1e-6) {
|
|
|
83970
84098
|
-a[0] * a[2],
|
|
83971
84099
|
-a[1] * a[2],
|
|
83972
84100
|
a[0] * a[0] + a[1] * a[1]
|
|
83973
|
-
], s = Math.sqrt(
|
|
84101
|
+
], s = Math.sqrt(KK(o));
|
|
83974
84102
|
return [
|
|
83975
84103
|
o[0] / s,
|
|
83976
84104
|
o[1] / s,
|
|
83977
84105
|
o[2] / s
|
|
83978
84106
|
];
|
|
83979
84107
|
}
|
|
83980
|
-
function
|
|
83981
|
-
let n =
|
|
83982
|
-
for (let i = 0; i < e; i++) r.push(
|
|
84108
|
+
function sq(e = 4, t = Md) {
|
|
84109
|
+
let n = UK / e, r = [];
|
|
84110
|
+
for (let i = 0; i < e; i++) r.push(nq(t, i * n));
|
|
83983
84111
|
return r;
|
|
83984
84112
|
}
|
|
83985
|
-
function
|
|
83986
|
-
let n = t.radius ?? 1, r = t.startAngle ?? (e % 2 == 0 ? 0 :
|
|
83987
|
-
return [
|
|
84113
|
+
function cq(e, t = {}) {
|
|
84114
|
+
let n = t.radius ?? 1, r = t.startAngle ?? (e % 2 == 0 ? 0 : UK / 4);
|
|
84115
|
+
return [sq(e, nq([
|
|
83988
84116
|
n,
|
|
83989
84117
|
0,
|
|
83990
84118
|
0
|
|
83991
84119
|
], r)), r];
|
|
83992
84120
|
}
|
|
83993
|
-
function
|
|
84121
|
+
function lq(e) {
|
|
83994
84122
|
return [
|
|
83995
84123
|
e.re,
|
|
83996
84124
|
e.im,
|
|
83997
84125
|
0
|
|
83998
84126
|
];
|
|
83999
84127
|
}
|
|
84000
|
-
function
|
|
84128
|
+
function uq(e) {
|
|
84001
84129
|
return {
|
|
84002
84130
|
re: e[0] ?? 0,
|
|
84003
84131
|
im: e[1] ?? 0
|
|
84004
84132
|
};
|
|
84005
84133
|
}
|
|
84006
|
-
function
|
|
84007
|
-
return (t) =>
|
|
84134
|
+
function dq(e) {
|
|
84135
|
+
return (t) => lq(e(uq(t)));
|
|
84008
84136
|
}
|
|
84009
|
-
function
|
|
84137
|
+
function fq(e) {
|
|
84010
84138
|
let t = [
|
|
84011
84139
|
0,
|
|
84012
84140
|
0,
|
|
@@ -84020,10 +84148,10 @@ function oq(e) {
|
|
|
84020
84148
|
t[2] / n
|
|
84021
84149
|
];
|
|
84022
84150
|
}
|
|
84023
|
-
function
|
|
84024
|
-
return
|
|
84151
|
+
function pq(e, t) {
|
|
84152
|
+
return fq([e, t]);
|
|
84025
84153
|
}
|
|
84026
|
-
function
|
|
84154
|
+
function mq(e, t) {
|
|
84027
84155
|
for (let n of [e, t]) for (let e of n) if ((e[2] ?? 0) !== 0) throw Error("Coords must be in the xy-plane.");
|
|
84028
84156
|
let n = (e) => Zd([
|
|
84029
84157
|
e[0][0],
|
|
@@ -84041,7 +84169,7 @@ function cq(e, t) {
|
|
|
84041
84169
|
0
|
|
84042
84170
|
];
|
|
84043
84171
|
}
|
|
84044
|
-
function
|
|
84172
|
+
function hq(e, t, n, r, i = 1e-5) {
|
|
84045
84173
|
let a = [];
|
|
84046
84174
|
for (let o = 0; o < e.length; o++) {
|
|
84047
84175
|
let s = e[o], c = t[o], l = n[o], u = r[o], d = Zd(u, Zd(c, u)), f = c[0] * d[0] + c[1] * d[1] + c[2] * d[2], p = Math.max(f, i), m = [
|
|
@@ -84057,15 +84185,15 @@ function lq(e, t, n, r, i = 1e-5) {
|
|
|
84057
84185
|
}
|
|
84058
84186
|
return a;
|
|
84059
84187
|
}
|
|
84060
|
-
function
|
|
84188
|
+
function gq(e) {
|
|
84061
84189
|
let t = 0;
|
|
84062
84190
|
for (let n = 0; n < e.length - 1; n++) t += (e[n + 1][0] - e[n][0]) * (e[n][1] + e[n + 1][1]) / 2;
|
|
84063
84191
|
return t;
|
|
84064
84192
|
}
|
|
84065
|
-
function
|
|
84066
|
-
return
|
|
84193
|
+
function _q(e) {
|
|
84194
|
+
return gq(e) > 0 ? "CW" : "CCW";
|
|
84067
84195
|
}
|
|
84068
|
-
function
|
|
84196
|
+
function vq(e) {
|
|
84069
84197
|
let t = Qd(e);
|
|
84070
84198
|
if (t === 0) return [
|
|
84071
84199
|
0,
|
|
@@ -84079,7 +84207,7 @@ function fq(e) {
|
|
|
84079
84207
|
n
|
|
84080
84208
|
];
|
|
84081
84209
|
}
|
|
84082
|
-
function
|
|
84210
|
+
function yq(e) {
|
|
84083
84211
|
let [t, n, r] = e;
|
|
84084
84212
|
return [
|
|
84085
84213
|
t * Math.cos(n) * Math.sin(r),
|
|
@@ -84087,12 +84215,12 @@ function pq(e) {
|
|
|
84087
84215
|
t * Math.cos(r)
|
|
84088
84216
|
];
|
|
84089
84217
|
}
|
|
84090
|
-
function
|
|
84218
|
+
function bq(e, t = Nd) {
|
|
84091
84219
|
let n = e[0], r = e[1], i = Zd([
|
|
84092
84220
|
n[0] - r[0],
|
|
84093
84221
|
n[1] - r[1],
|
|
84094
84222
|
n[2] - r[2]
|
|
84095
|
-
], t), a =
|
|
84223
|
+
], t), a = pq(n, r);
|
|
84096
84224
|
return [[
|
|
84097
84225
|
a[0] + i[0],
|
|
84098
84226
|
a[1] + i[1],
|
|
@@ -84103,7 +84231,7 @@ function mq(e, t = Nd) {
|
|
|
84103
84231
|
a[2] - i[2]
|
|
84104
84232
|
]];
|
|
84105
84233
|
}
|
|
84106
|
-
function
|
|
84234
|
+
function xq(e, t = 2) {
|
|
84107
84235
|
let n = [];
|
|
84108
84236
|
for (let r = 0; r < e; r++) {
|
|
84109
84237
|
let i = [];
|
|
@@ -84112,41 +84240,41 @@ function hq(e, t = 2) {
|
|
|
84112
84240
|
}
|
|
84113
84241
|
return n;
|
|
84114
84242
|
}
|
|
84115
|
-
function
|
|
84243
|
+
function Sq(e) {
|
|
84116
84244
|
let t = 0;
|
|
84117
|
-
for (let [n, r] of
|
|
84118
|
-
let e = ((
|
|
84245
|
+
for (let [n, r] of _K(e)) {
|
|
84246
|
+
let e = ((iq(r) - iq(n) + Math.PI) % UK + UK) % UK - Math.PI;
|
|
84119
84247
|
t += e;
|
|
84120
84248
|
}
|
|
84121
|
-
return t /
|
|
84249
|
+
return t / UK;
|
|
84122
84250
|
}
|
|
84123
84251
|
//#endregion
|
|
84124
84252
|
//#region src/utils/paths.ts
|
|
84125
|
-
var
|
|
84126
|
-
function
|
|
84253
|
+
var Cq = .01;
|
|
84254
|
+
function wq(e, t, n) {
|
|
84127
84255
|
return e.map((e, r) => e.map((e, i) => e + n * (t[r][i] - e)));
|
|
84128
84256
|
}
|
|
84129
|
-
function
|
|
84257
|
+
function Tq(e, t) {
|
|
84130
84258
|
return t.map((t) => t.reduce((t, n, r) => t + n * e[r], 0));
|
|
84131
84259
|
}
|
|
84132
|
-
function
|
|
84133
|
-
return
|
|
84260
|
+
function Eq() {
|
|
84261
|
+
return wq;
|
|
84134
84262
|
}
|
|
84135
|
-
function
|
|
84136
|
-
let r =
|
|
84263
|
+
function Dq(e, t, n = Nd) {
|
|
84264
|
+
let r = JK(n, Nd), i = (e) => t[e] ?? t[0];
|
|
84137
84265
|
return (t, n, a) => {
|
|
84138
|
-
let o =
|
|
84266
|
+
let o = $K(-e, r), s = $K(a * e, r);
|
|
84139
84267
|
return t.map((e, t) => {
|
|
84140
|
-
let r = i(t), c =
|
|
84141
|
-
return
|
|
84268
|
+
let r = i(t), c = Tq(n[t].map((e, t) => e - r[t]), o).map((e, t) => e + r[t]);
|
|
84269
|
+
return Tq(e.map((e, t) => e + a * (c[t] - e)).map((e, t) => e - r[t]), s).map((e, t) => e + r[t]);
|
|
84142
84270
|
});
|
|
84143
84271
|
};
|
|
84144
84272
|
}
|
|
84145
|
-
function
|
|
84146
|
-
if (Math.abs(e) <
|
|
84147
|
-
let n =
|
|
84273
|
+
function Oq(e, t = Nd) {
|
|
84274
|
+
if (Math.abs(e) < Cq) return Eq();
|
|
84275
|
+
let n = JK(t, Nd);
|
|
84148
84276
|
return (t, r, i) => {
|
|
84149
|
-
let a =
|
|
84277
|
+
let a = $K(i * e, n);
|
|
84150
84278
|
return t.map((t, i) => {
|
|
84151
84279
|
let o = r[i].map((e, n) => e - t[n]), s = t.map((e, t) => e + .5 * o[t]);
|
|
84152
84280
|
if (e !== Math.PI) {
|
|
@@ -84157,19 +84285,19 @@ function Sq(e, t = Nd) {
|
|
|
84157
84285
|
], i = 1 / Math.tan(e / 2);
|
|
84158
84286
|
for (let e = 0; e < s.length; e++) s[e] += r[e] * i;
|
|
84159
84287
|
}
|
|
84160
|
-
return
|
|
84288
|
+
return Tq(t.map((e, t) => e - s[t]), a).map((e, t) => e + s[t]);
|
|
84161
84289
|
});
|
|
84162
84290
|
};
|
|
84163
84291
|
}
|
|
84164
|
-
function
|
|
84165
|
-
return
|
|
84292
|
+
function kq() {
|
|
84293
|
+
return Oq(-Math.PI);
|
|
84166
84294
|
}
|
|
84167
|
-
function
|
|
84168
|
-
return
|
|
84295
|
+
function Aq() {
|
|
84296
|
+
return Oq(Math.PI);
|
|
84169
84297
|
}
|
|
84170
84298
|
//#endregion
|
|
84171
84299
|
//#region src/utils/simpleFunctions.ts
|
|
84172
|
-
function
|
|
84300
|
+
function jq(e, t, n, r, i = 1e-4) {
|
|
84173
84301
|
let a = n, o = r, s = (a + o) / 2;
|
|
84174
84302
|
for (; Math.abs(o - a) > i;) {
|
|
84175
84303
|
s = (a + o) / 2;
|
|
@@ -84182,7 +84310,7 @@ function Tq(e, t, n, r, i = 1e-4) {
|
|
|
84182
84310
|
}
|
|
84183
84311
|
return s;
|
|
84184
84312
|
}
|
|
84185
|
-
function
|
|
84313
|
+
function Mq(e, t) {
|
|
84186
84314
|
if (t < 0 || t > e) return 0;
|
|
84187
84315
|
let n = t;
|
|
84188
84316
|
n > e - n && (n = e - n);
|
|
@@ -84190,30 +84318,30 @@ function Eq(e, t) {
|
|
|
84190
84318
|
for (let t = 0; t < n; t++) r = r * (e - t) / (t + 1);
|
|
84191
84319
|
return Math.round(r);
|
|
84192
84320
|
}
|
|
84193
|
-
function
|
|
84321
|
+
function Nq(e, t, n) {
|
|
84194
84322
|
return e < t ? t : e > n ? n : e;
|
|
84195
84323
|
}
|
|
84196
|
-
function
|
|
84324
|
+
function Pq(e) {
|
|
84197
84325
|
return 1 / (1 + Math.exp(-e));
|
|
84198
84326
|
}
|
|
84199
84327
|
//#endregion
|
|
84200
84328
|
//#region src/utils/bezier.ts
|
|
84201
|
-
function
|
|
84329
|
+
function Fq(e, t, n) {
|
|
84202
84330
|
if (Array.isArray(e) && Array.isArray(t)) return e.map((e, r) => (1 - n) * e + n * t[r]);
|
|
84203
84331
|
if (typeof e == "number" && typeof t == "number") return (1 - n) * e + n * t;
|
|
84204
84332
|
throw Error("interpolate: start and end must both be numbers or both be arrays");
|
|
84205
84333
|
}
|
|
84206
|
-
function
|
|
84334
|
+
function Iq(e, t) {
|
|
84207
84335
|
if (Array.isArray(e) && Array.isArray(t)) return e.map((e, n) => (e + t[n]) / 2);
|
|
84208
84336
|
if (typeof e == "number" && typeof t == "number") return (e + t) / 2;
|
|
84209
84337
|
throw Error("mid: start and end must both be numbers or both be arrays");
|
|
84210
84338
|
}
|
|
84211
|
-
function
|
|
84339
|
+
function Lq(e, t, n) {
|
|
84212
84340
|
if (Array.isArray(e) && Array.isArray(t) && Array.isArray(n)) return e.map((e, r) => (n[r] - e) / (t[r] - e));
|
|
84213
84341
|
if (typeof e == "number" && typeof t == "number" && typeof n == "number") return (n - e) / (t - e);
|
|
84214
84342
|
throw Error("inverse_interpolate: start, end and value must all be numbers or all be arrays");
|
|
84215
84343
|
}
|
|
84216
|
-
function
|
|
84344
|
+
function Rq(e, t, n, r, i) {
|
|
84217
84345
|
let a = r - n;
|
|
84218
84346
|
if (Array.isArray(i)) return i.map((r) => {
|
|
84219
84347
|
let i = (r - n) / a;
|
|
@@ -84222,7 +84350,7 @@ function Mq(e, t, n, r, i) {
|
|
|
84222
84350
|
let o = (i - n) / a;
|
|
84223
84351
|
return (1 - o) * e + o * t;
|
|
84224
84352
|
}
|
|
84225
|
-
function
|
|
84353
|
+
function zq(e, t) {
|
|
84226
84354
|
if (e.length === 0) return 0;
|
|
84227
84355
|
let n = e.slice();
|
|
84228
84356
|
for (; n.length > 1;) {
|
|
@@ -84232,7 +84360,7 @@ function Nq(e, t) {
|
|
|
84232
84360
|
}
|
|
84233
84361
|
return n[0];
|
|
84234
84362
|
}
|
|
84235
|
-
function
|
|
84363
|
+
function Bq(e, t) {
|
|
84236
84364
|
if (e.length === 0) return [];
|
|
84237
84365
|
let n = e.map((e) => e.slice());
|
|
84238
84366
|
for (; n.length > 1;) {
|
|
@@ -84242,15 +84370,15 @@ function Pq(e, t) {
|
|
|
84242
84370
|
}
|
|
84243
84371
|
return n[0];
|
|
84244
84372
|
}
|
|
84245
|
-
function
|
|
84373
|
+
function Vq(e) {
|
|
84246
84374
|
if (e.length > 0 && Array.isArray(e[0])) {
|
|
84247
84375
|
let t = e.filter((e) => Array.isArray(e));
|
|
84248
|
-
return (e) =>
|
|
84376
|
+
return (e) => Bq(t, e);
|
|
84249
84377
|
}
|
|
84250
84378
|
let t = e.filter((e) => typeof e == "number");
|
|
84251
|
-
return (e) =>
|
|
84379
|
+
return (e) => zq(t, e);
|
|
84252
84380
|
}
|
|
84253
|
-
function
|
|
84381
|
+
function Hq(e, t) {
|
|
84254
84382
|
let n = e.length, r = e.map((e) => e.slice()), i = Array(n);
|
|
84255
84383
|
i[0] = e[0].slice();
|
|
84256
84384
|
for (let e = 1; e < n; e++) {
|
|
@@ -84259,7 +84387,7 @@ function Iq(e, t) {
|
|
|
84259
84387
|
}
|
|
84260
84388
|
return [...i, ...r];
|
|
84261
84389
|
}
|
|
84262
|
-
function
|
|
84390
|
+
function Uq(e, t) {
|
|
84263
84391
|
if (t <= 1) return e.map((e) => e.slice());
|
|
84264
84392
|
let n = [];
|
|
84265
84393
|
for (let r = 0; r < t; r++) {
|
|
@@ -84268,7 +84396,7 @@ function Lq(e, t) {
|
|
|
84268
84396
|
}
|
|
84269
84397
|
return n;
|
|
84270
84398
|
}
|
|
84271
|
-
function
|
|
84399
|
+
function Wq(e, t) {
|
|
84272
84400
|
let n = e.length;
|
|
84273
84401
|
if (n === 0) return [];
|
|
84274
84402
|
let r = e[0].length, i = [];
|
|
@@ -84279,12 +84407,12 @@ function Rq(e, t) {
|
|
|
84279
84407
|
for (let t = 0; t < n; t++) {
|
|
84280
84408
|
let n = a[t];
|
|
84281
84409
|
if (n <= 0) continue;
|
|
84282
|
-
let i =
|
|
84410
|
+
let i = Uq(e[t], n);
|
|
84283
84411
|
for (let e = 0; e < n; e++) o.push(i.slice(e * r, e * r + r));
|
|
84284
84412
|
}
|
|
84285
84413
|
return o;
|
|
84286
84414
|
}
|
|
84287
|
-
function
|
|
84415
|
+
function Gq(e) {
|
|
84288
84416
|
let t = e[0], n = e[e.length - 1];
|
|
84289
84417
|
for (let e = 0; e < 3; e++) {
|
|
84290
84418
|
let r = t[e] ?? 0, i = n[e] ?? 0, a = 1e-8 + 1e-5 * Math.abs(r);
|
|
@@ -84292,43 +84420,43 @@ function zq(e) {
|
|
|
84292
84420
|
}
|
|
84293
84421
|
return !0;
|
|
84294
84422
|
}
|
|
84295
|
-
function
|
|
84423
|
+
function Kq(e, t) {
|
|
84296
84424
|
return {
|
|
84297
84425
|
re: e.re + t.re,
|
|
84298
84426
|
im: e.im + t.im
|
|
84299
84427
|
};
|
|
84300
84428
|
}
|
|
84301
|
-
function
|
|
84429
|
+
function qq(e, t) {
|
|
84302
84430
|
return {
|
|
84303
84431
|
re: e.re - t.re,
|
|
84304
84432
|
im: e.im - t.im
|
|
84305
84433
|
};
|
|
84306
84434
|
}
|
|
84307
|
-
function
|
|
84435
|
+
function Jq(e, t) {
|
|
84308
84436
|
return {
|
|
84309
84437
|
re: e.re * t.re - e.im * t.im,
|
|
84310
84438
|
im: e.re * t.im + e.im * t.re
|
|
84311
84439
|
};
|
|
84312
84440
|
}
|
|
84313
|
-
function
|
|
84441
|
+
function Yq(e, t) {
|
|
84314
84442
|
let n = t.re * t.re + t.im * t.im;
|
|
84315
84443
|
return {
|
|
84316
84444
|
re: (e.re * t.re + e.im * t.im) / n,
|
|
84317
84445
|
im: (e.im * t.re - e.re * t.im) / n
|
|
84318
84446
|
};
|
|
84319
84447
|
}
|
|
84320
|
-
function
|
|
84448
|
+
function Xq(e, t) {
|
|
84321
84449
|
let n = {
|
|
84322
84450
|
re: e[e.length - 1],
|
|
84323
84451
|
im: 0
|
|
84324
84452
|
};
|
|
84325
|
-
for (let r = e.length - 2; r >= 0; r--) n =
|
|
84453
|
+
for (let r = e.length - 2; r >= 0; r--) n = Kq(Jq(n, t), {
|
|
84326
84454
|
re: e[r],
|
|
84327
84455
|
im: 0
|
|
84328
84456
|
});
|
|
84329
84457
|
return n;
|
|
84330
84458
|
}
|
|
84331
|
-
function
|
|
84459
|
+
function Zq(e) {
|
|
84332
84460
|
let t = e.slice();
|
|
84333
84461
|
for (; t.length > 1 && Math.abs(t[t.length - 1]) < 1e-14;) t.pop();
|
|
84334
84462
|
let n = t.length - 1;
|
|
@@ -84343,17 +84471,17 @@ function Gq(e) {
|
|
|
84343
84471
|
for (let e = 0; e < n; e++) a.push({
|
|
84344
84472
|
re: s.re,
|
|
84345
84473
|
im: s.im
|
|
84346
|
-
}), s =
|
|
84474
|
+
}), s = Jq(s, o);
|
|
84347
84475
|
for (let e = 0; e < 200; e++) {
|
|
84348
84476
|
let e = 0;
|
|
84349
84477
|
for (let t = 0; t < n; t++) {
|
|
84350
|
-
let r =
|
|
84478
|
+
let r = Xq(i, a[t]), o = {
|
|
84351
84479
|
re: 1,
|
|
84352
84480
|
im: 0
|
|
84353
84481
|
};
|
|
84354
|
-
for (let e = 0; e < n; e++) e !== t && (o =
|
|
84355
|
-
let s =
|
|
84356
|
-
a[t] =
|
|
84482
|
+
for (let e = 0; e < n; e++) e !== t && (o = Jq(o, qq(a[t], a[e])));
|
|
84483
|
+
let s = Yq(r, o);
|
|
84484
|
+
a[t] = qq(a[t], s);
|
|
84357
84485
|
let c = Math.hypot(s.re, s.im);
|
|
84358
84486
|
c > e && (e = c);
|
|
84359
84487
|
}
|
|
@@ -84361,98 +84489,98 @@ function Gq(e) {
|
|
|
84361
84489
|
}
|
|
84362
84490
|
return a;
|
|
84363
84491
|
}
|
|
84364
|
-
function
|
|
84492
|
+
function Qq(e, t) {
|
|
84365
84493
|
if (t < 0 || t > e) return 0;
|
|
84366
84494
|
let n = 1;
|
|
84367
84495
|
for (let r = 0; r < t; r++) n = n * (e - r) / (r + 1);
|
|
84368
84496
|
return Math.round(n);
|
|
84369
84497
|
}
|
|
84370
|
-
function
|
|
84498
|
+
function $q(e, t) {
|
|
84371
84499
|
let n = 10 ** t;
|
|
84372
84500
|
return Math.round(e * n) / n;
|
|
84373
84501
|
}
|
|
84374
|
-
function
|
|
84502
|
+
function eJ(e, t, n) {
|
|
84375
84503
|
let r = .5 * 10 ** -n, i = [];
|
|
84376
84504
|
for (let n of e) t.some((e) => Math.abs(n - e) <= r) && !i.some((e) => Math.abs(n - e) <= r) && i.push(n);
|
|
84377
84505
|
return i;
|
|
84378
84506
|
}
|
|
84379
|
-
function
|
|
84507
|
+
function tJ(e, t, n = 1e-6) {
|
|
84380
84508
|
for (let n of t) if (n.length !== e.length) throw Error("proportions_along_bezier_curve_for_point: point and control points have different shapes");
|
|
84381
84509
|
let r = t.length - 1, i = Math.round(Math.log10(1 / n)), a = [];
|
|
84382
84510
|
for (let n = 0; n < e.length; n++) {
|
|
84383
84511
|
let o = e[n], s = t.map((e) => e[n]), c = [];
|
|
84384
84512
|
for (let e = r; e >= 0; e--) {
|
|
84385
|
-
let t =
|
|
84513
|
+
let t = Qq(r, e), n = 1, i = 0;
|
|
84386
84514
|
for (let t = e; t >= 0; t--) {
|
|
84387
|
-
let r =
|
|
84515
|
+
let r = Qq(e, t) * n * s[t];
|
|
84388
84516
|
e === 0 && (r -= o), i += r, n *= -1;
|
|
84389
84517
|
}
|
|
84390
84518
|
c.push(t * i);
|
|
84391
84519
|
}
|
|
84392
84520
|
if (c.every((e) => e === 0)) continue;
|
|
84393
|
-
let l =
|
|
84521
|
+
let l = Zq(c.slice().reverse()).filter((e) => Math.abs(e.im) < 1e-9).map((e) => $q(e.re, i));
|
|
84394
84522
|
a.push(l);
|
|
84395
84523
|
}
|
|
84396
84524
|
if (a.length === 0) return [];
|
|
84397
84525
|
let o = a[0];
|
|
84398
|
-
for (let e = 1; e < a.length; e++) o =
|
|
84526
|
+
for (let e = 1; e < a.length; e++) o = eJ(o, a[e], i);
|
|
84399
84527
|
return o.filter((e) => e >= 0 && e <= 1);
|
|
84400
84528
|
}
|
|
84401
|
-
function
|
|
84402
|
-
return
|
|
84529
|
+
function nJ(e, t, n = 1e-6) {
|
|
84530
|
+
return tJ(e, t, n).length > 0;
|
|
84403
84531
|
}
|
|
84404
84532
|
//#endregion
|
|
84405
84533
|
//#region src/mobjects/three-d/threeDVmobUtils.ts
|
|
84406
|
-
function
|
|
84534
|
+
function rJ(e) {
|
|
84407
84535
|
return [
|
|
84408
84536
|
e[0],
|
|
84409
84537
|
e[1],
|
|
84410
84538
|
e[2]
|
|
84411
84539
|
];
|
|
84412
84540
|
}
|
|
84413
|
-
function
|
|
84541
|
+
function iJ(e) {
|
|
84414
84542
|
return e.filter((e, t) => t % 3 == 0);
|
|
84415
84543
|
}
|
|
84416
|
-
function
|
|
84417
|
-
return [
|
|
84544
|
+
function aJ(e) {
|
|
84545
|
+
return [cJ(e), lJ(e)];
|
|
84418
84546
|
}
|
|
84419
|
-
function
|
|
84547
|
+
function oJ(e) {
|
|
84420
84548
|
return 0;
|
|
84421
84549
|
}
|
|
84422
|
-
function
|
|
84550
|
+
function sJ(e) {
|
|
84423
84551
|
return Math.floor((e.getPoints().length - 1) / 6) * 3;
|
|
84424
84552
|
}
|
|
84425
|
-
function
|
|
84553
|
+
function cJ(e) {
|
|
84426
84554
|
let t = e.getPoints();
|
|
84427
|
-
return t.length === 0 ? [...Fd] :
|
|
84555
|
+
return t.length === 0 ? [...Fd] : rJ(t[oJ(e)]);
|
|
84428
84556
|
}
|
|
84429
|
-
function
|
|
84557
|
+
function lJ(e) {
|
|
84430
84558
|
let t = e.getPoints();
|
|
84431
|
-
return t.length === 0 ? [...Fd] :
|
|
84559
|
+
return t.length === 0 ? [...Fd] : rJ(t[sJ(e)]);
|
|
84432
84560
|
}
|
|
84433
|
-
function
|
|
84561
|
+
function uJ(e, t) {
|
|
84434
84562
|
let n = e.getPoints(), r = n.length;
|
|
84435
|
-
if (
|
|
84436
|
-
let i = t, a = i > 2 ? i - 3 : r - 4, o =
|
|
84563
|
+
if (iJ(n).length <= 2) return [...kd];
|
|
84564
|
+
let i = t, a = i > 2 ? i - 3 : r - 4, o = oq(n[i < r - 3 ? i + 3 : 3].map((e, t) => e - n[i][t]), n[a].map((e, t) => e - n[i][t]));
|
|
84437
84565
|
return Math.hypot(...o) === 0 ? [...kd] : o;
|
|
84438
84566
|
}
|
|
84439
|
-
function
|
|
84440
|
-
return
|
|
84567
|
+
function dJ(e) {
|
|
84568
|
+
return uJ(e, oJ(e));
|
|
84441
84569
|
}
|
|
84442
|
-
function
|
|
84443
|
-
return
|
|
84570
|
+
function fJ(e) {
|
|
84571
|
+
return uJ(e, sJ(e));
|
|
84444
84572
|
}
|
|
84445
84573
|
//#endregion
|
|
84446
84574
|
//#region src/core/SpecialThreeDScene.ts
|
|
84447
|
-
var
|
|
84575
|
+
var pJ = 70 * Nu, mJ = -110 * Nu, hJ = 2, gJ = 48, _J = class extends WE {
|
|
84448
84576
|
cutAxesAtRadius;
|
|
84449
84577
|
_threeDAxesConfig;
|
|
84450
84578
|
_sphereConfig;
|
|
84451
84579
|
_defaultAngledCameraPosition;
|
|
84452
84580
|
constructor(e, t = {}) {
|
|
84453
84581
|
let { cutAxesAtRadius: n = !0, threeDAxesConfig: r = {}, sphereConfig: i = {}, defaultAngledCameraPosition: a = {
|
|
84454
|
-
phi:
|
|
84455
|
-
theta:
|
|
84582
|
+
phi: pJ,
|
|
84583
|
+
theta: mJ
|
|
84456
84584
|
}, phi: o = a.phi, theta: s = a.theta, ...c } = t;
|
|
84457
84585
|
super(e, {
|
|
84458
84586
|
...c,
|
|
@@ -84482,8 +84610,8 @@ var sJ = 70 * Nu, cJ = -110 * Nu, lJ = 2, uJ = 48, dJ = class extends WE {
|
|
|
84482
84610
|
}
|
|
84483
84611
|
getDefaultSphereConfig() {
|
|
84484
84612
|
return {
|
|
84485
|
-
radius:
|
|
84486
|
-
resolution:
|
|
84613
|
+
radius: hJ,
|
|
84614
|
+
resolution: gJ
|
|
84487
84615
|
};
|
|
84488
84616
|
}
|
|
84489
84617
|
getAxes() {
|
|
@@ -84509,36 +84637,36 @@ var sJ = 70 * Nu, cJ = -110 * Nu, lJ = 2, uJ = 48, dJ = class extends WE {
|
|
|
84509
84637
|
};
|
|
84510
84638
|
//#endregion
|
|
84511
84639
|
//#region src/mobjects/text/registerFont.ts
|
|
84512
|
-
function
|
|
84640
|
+
function vJ(e, t) {
|
|
84513
84641
|
if (typeof document > "u" || typeof FontFace > "u" || document.fonts === void 0) return !1;
|
|
84514
84642
|
let n = typeof t == "string" && !/^\s*(url|local)\s*\(/i.test(t) ? `url("${t}")` : t, r = new FontFace(e, n);
|
|
84515
84643
|
return document.fonts.add(r), !0;
|
|
84516
84644
|
}
|
|
84517
84645
|
//#endregion
|
|
84518
84646
|
//#region src/integrations/webcomponent.ts
|
|
84519
|
-
var
|
|
84647
|
+
var yJ = 800, bJ = 450, xJ = { importModule: (e) => import(
|
|
84520
84648
|
/* @vite-ignore */
|
|
84521
84649
|
e
|
|
84522
84650
|
) };
|
|
84523
|
-
function
|
|
84651
|
+
function SJ(e) {
|
|
84524
84652
|
return typeof e.togglePlayPause == "function";
|
|
84525
84653
|
}
|
|
84526
|
-
function
|
|
84654
|
+
function CJ(e) {
|
|
84527
84655
|
try {
|
|
84528
84656
|
e.dispose();
|
|
84529
84657
|
} catch (e) {
|
|
84530
84658
|
qf.error("<manim-scene> failed to dispose instance:", e);
|
|
84531
84659
|
}
|
|
84532
84660
|
}
|
|
84533
|
-
function
|
|
84661
|
+
function wJ(e, t) {
|
|
84534
84662
|
let n = e?.trim();
|
|
84535
84663
|
return n ? /^\d+(\.\d+)?$/.test(n) ? `${n}px` : n : `${t}px`;
|
|
84536
84664
|
}
|
|
84537
|
-
function
|
|
84665
|
+
function TJ(e) {
|
|
84538
84666
|
let t = e?.trim();
|
|
84539
84667
|
return !t || !/^\d+(\.\d+)?$/.test(t) ? null : Number(t);
|
|
84540
84668
|
}
|
|
84541
|
-
var
|
|
84669
|
+
var EJ = typeof HTMLElement < "u" ? HTMLElement : class {}, DJ = class extends EJ {
|
|
84542
84670
|
static get observedAttributes() {
|
|
84543
84671
|
return [
|
|
84544
84672
|
"width",
|
|
@@ -84584,7 +84712,7 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84584
84712
|
}
|
|
84585
84713
|
_applyContainerStyle() {
|
|
84586
84714
|
let e = this._container;
|
|
84587
|
-
e && (e.style.width =
|
|
84715
|
+
e && (e.style.width = wJ(this.getAttribute("width"), yJ), e.style.height = wJ(this.getAttribute("height"), bJ), e.style.position = "relative", e.style.overflow = "hidden", e.style.background = this.getAttribute("background") ?? "");
|
|
84588
84716
|
}
|
|
84589
84717
|
_mount() {
|
|
84590
84718
|
return this._mountPromise = this._doMount(), this._mountPromise;
|
|
@@ -84603,7 +84731,7 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84603
84731
|
return;
|
|
84604
84732
|
}
|
|
84605
84733
|
if (e !== this._loadToken) {
|
|
84606
|
-
|
|
84734
|
+
CJ(r);
|
|
84607
84735
|
return;
|
|
84608
84736
|
}
|
|
84609
84737
|
this._instance = r, this._applyPlaybackOptions();
|
|
@@ -84612,7 +84740,7 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84612
84740
|
if (this._sceneFactory) return this._sceneFactory;
|
|
84613
84741
|
let t = this.getAttribute("src");
|
|
84614
84742
|
if (!t) return null;
|
|
84615
|
-
let n = await
|
|
84743
|
+
let n = await xJ.importModule(t);
|
|
84616
84744
|
if (e !== this._loadToken) return null;
|
|
84617
84745
|
let r = n.default;
|
|
84618
84746
|
return typeof r == "function" ? r : (qf.error(`<manim-scene> module "${t}" has no default-export factory function.`), null);
|
|
@@ -84620,7 +84748,7 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84620
84748
|
_applyPlaybackOptions() {
|
|
84621
84749
|
let e = this._instance;
|
|
84622
84750
|
if (!e) return;
|
|
84623
|
-
let t =
|
|
84751
|
+
let t = SJ(e);
|
|
84624
84752
|
t && (e.loop = this.hasAttribute("loop")), t || this._syncSceneControls(e), this.hasAttribute("autoplay") && !e.isPlaying && (t ? e.play() : e.resume());
|
|
84625
84753
|
}
|
|
84626
84754
|
_syncSceneControls(e) {
|
|
@@ -84630,9 +84758,9 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84630
84758
|
_resizeInstance() {
|
|
84631
84759
|
let e = this._instance;
|
|
84632
84760
|
if (!e) return;
|
|
84633
|
-
let t =
|
|
84761
|
+
let t = TJ(this.getAttribute("width")), n = TJ(this.getAttribute("height"));
|
|
84634
84762
|
if (t === null || n === null) return;
|
|
84635
|
-
let r =
|
|
84763
|
+
let r = SJ(e) ? e.scene : e;
|
|
84636
84764
|
try {
|
|
84637
84765
|
r.resize(t, n);
|
|
84638
84766
|
} catch (e) {
|
|
@@ -84648,78 +84776,78 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84648
84776
|
}
|
|
84649
84777
|
this._controls = null;
|
|
84650
84778
|
}
|
|
84651
|
-
this._instance &&= (
|
|
84779
|
+
this._instance &&= (CJ(this._instance), null);
|
|
84652
84780
|
}
|
|
84653
84781
|
_clearContainerChildren() {
|
|
84654
84782
|
let e = this._container;
|
|
84655
84783
|
if (e) for (; e.firstChild;) e.removeChild(e.firstChild);
|
|
84656
84784
|
}
|
|
84657
84785
|
};
|
|
84658
|
-
function
|
|
84659
|
-
typeof customElements > "u" || typeof HTMLElement > "u" || customElements.get(e) || customElements.define(e,
|
|
84786
|
+
function OJ(e = "manim-scene") {
|
|
84787
|
+
typeof customElements > "u" || typeof HTMLElement > "u" || customElements.get(e) || customElements.define(e, DJ);
|
|
84660
84788
|
}
|
|
84661
84789
|
//#endregion
|
|
84662
84790
|
//#region src/serialization/registry.ts
|
|
84663
|
-
var
|
|
84664
|
-
function
|
|
84665
|
-
|
|
84791
|
+
var kJ = /* @__PURE__ */ new Map();
|
|
84792
|
+
function AJ(e, t) {
|
|
84793
|
+
kJ.set(e, t);
|
|
84666
84794
|
}
|
|
84667
|
-
function
|
|
84668
|
-
|
|
84795
|
+
function jJ(e) {
|
|
84796
|
+
kJ.delete(e);
|
|
84669
84797
|
}
|
|
84670
|
-
function
|
|
84671
|
-
return
|
|
84798
|
+
function MJ(e) {
|
|
84799
|
+
return kJ.get(e);
|
|
84672
84800
|
}
|
|
84673
|
-
function
|
|
84674
|
-
return [...
|
|
84801
|
+
function NJ() {
|
|
84802
|
+
return [...kJ.keys()].sort();
|
|
84675
84803
|
}
|
|
84676
84804
|
//#endregion
|
|
84677
84805
|
//#region src/serialization/props.ts
|
|
84678
|
-
function
|
|
84806
|
+
function PJ(e, t) {
|
|
84679
84807
|
return typeof e == "number" && Number.isFinite(e) ? e : t;
|
|
84680
84808
|
}
|
|
84681
|
-
function
|
|
84809
|
+
function FJ(e, t) {
|
|
84682
84810
|
return typeof e == "string" ? e : t;
|
|
84683
84811
|
}
|
|
84684
|
-
function
|
|
84812
|
+
function IJ(e, t) {
|
|
84685
84813
|
return typeof e == "boolean" ? e : t;
|
|
84686
84814
|
}
|
|
84687
|
-
function
|
|
84815
|
+
function LJ(e) {
|
|
84688
84816
|
return typeof e == "string" ? e : void 0;
|
|
84689
84817
|
}
|
|
84690
|
-
function
|
|
84818
|
+
function RJ(e) {
|
|
84691
84819
|
return Array.isArray(e) && e.length === 3 && e.every((e) => typeof e == "number" && Number.isFinite(e));
|
|
84692
84820
|
}
|
|
84693
|
-
function
|
|
84694
|
-
return
|
|
84821
|
+
function zJ(e, t) {
|
|
84822
|
+
return RJ(e) ? [
|
|
84695
84823
|
e[0],
|
|
84696
84824
|
e[1],
|
|
84697
84825
|
e[2]
|
|
84698
84826
|
] : t;
|
|
84699
84827
|
}
|
|
84700
|
-
function
|
|
84828
|
+
function BJ(e) {
|
|
84701
84829
|
if (!Array.isArray(e)) return [];
|
|
84702
84830
|
let t = [];
|
|
84703
|
-
for (let n of e)
|
|
84831
|
+
for (let n of e) RJ(n) && t.push([
|
|
84704
84832
|
n[0],
|
|
84705
84833
|
n[1],
|
|
84706
84834
|
n[2]
|
|
84707
84835
|
]);
|
|
84708
84836
|
return t;
|
|
84709
84837
|
}
|
|
84710
|
-
function
|
|
84838
|
+
function VJ(e) {
|
|
84711
84839
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
84712
84840
|
}
|
|
84713
84841
|
//#endregion
|
|
84714
84842
|
//#region src/serialization/defaults.ts
|
|
84715
|
-
function
|
|
84716
|
-
return typeof e == "number" && Number.isFinite(e) ? e :
|
|
84843
|
+
function HJ(e) {
|
|
84844
|
+
return typeof e == "number" && Number.isFinite(e) ? e : FJ(e, "normal");
|
|
84717
84845
|
}
|
|
84718
|
-
function
|
|
84846
|
+
function UJ(e) {
|
|
84719
84847
|
return e === "left" || e === "right" ? e : "center";
|
|
84720
84848
|
}
|
|
84721
|
-
function
|
|
84722
|
-
|
|
84849
|
+
function WJ() {
|
|
84850
|
+
AJ("Circle", {
|
|
84723
84851
|
serialize: (e) => {
|
|
84724
84852
|
let t = e;
|
|
84725
84853
|
return {
|
|
@@ -84728,10 +84856,10 @@ function RJ() {
|
|
|
84728
84856
|
};
|
|
84729
84857
|
},
|
|
84730
84858
|
deserialize: (e) => new EO({
|
|
84731
|
-
radius:
|
|
84732
|
-
numPoints:
|
|
84859
|
+
radius: PJ(e.radius, 1),
|
|
84860
|
+
numPoints: PJ(e.numPoints, 64)
|
|
84733
84861
|
})
|
|
84734
|
-
}),
|
|
84862
|
+
}), AJ("Rectangle", {
|
|
84735
84863
|
serialize: (e) => {
|
|
84736
84864
|
let t = e;
|
|
84737
84865
|
return {
|
|
@@ -84740,13 +84868,13 @@ function RJ() {
|
|
|
84740
84868
|
};
|
|
84741
84869
|
},
|
|
84742
84870
|
deserialize: (e) => new GE({
|
|
84743
|
-
width:
|
|
84744
|
-
height:
|
|
84871
|
+
width: PJ(e.width, 2),
|
|
84872
|
+
height: PJ(e.height, 1)
|
|
84745
84873
|
})
|
|
84746
|
-
}),
|
|
84874
|
+
}), AJ("Square", {
|
|
84747
84875
|
serialize: (e) => ({ sideLength: e._width }),
|
|
84748
|
-
deserialize: (e) => new KE({ sideLength:
|
|
84749
|
-
}),
|
|
84876
|
+
deserialize: (e) => new KE({ sideLength: PJ(e.sideLength, 2) })
|
|
84877
|
+
}), AJ("Line", {
|
|
84750
84878
|
serialize: (e) => {
|
|
84751
84879
|
let t = e;
|
|
84752
84880
|
return {
|
|
@@ -84755,27 +84883,27 @@ function RJ() {
|
|
|
84755
84883
|
};
|
|
84756
84884
|
},
|
|
84757
84885
|
deserialize: (e) => new rD({
|
|
84758
|
-
start:
|
|
84886
|
+
start: zJ(e.start, [
|
|
84759
84887
|
0,
|
|
84760
84888
|
0,
|
|
84761
84889
|
0
|
|
84762
84890
|
]),
|
|
84763
|
-
end:
|
|
84891
|
+
end: zJ(e.end, [
|
|
84764
84892
|
1,
|
|
84765
84893
|
0,
|
|
84766
84894
|
0
|
|
84767
84895
|
])
|
|
84768
84896
|
})
|
|
84769
|
-
}),
|
|
84897
|
+
}), AJ("Dot", {
|
|
84770
84898
|
serialize: (e) => ({ radius: e._radius }),
|
|
84771
|
-
deserialize: (e) => new XO({ radius:
|
|
84772
|
-
}),
|
|
84899
|
+
deserialize: (e) => new XO({ radius: PJ(e.radius, .08) })
|
|
84900
|
+
}), AJ("Polygon", {
|
|
84773
84901
|
serialize: (e) => ({
|
|
84774
84902
|
vertices: e.getVertices().map((e) => [...e]),
|
|
84775
84903
|
closed: e._closed
|
|
84776
84904
|
}),
|
|
84777
84905
|
deserialize: (e) => {
|
|
84778
|
-
let t =
|
|
84906
|
+
let t = BJ(e.vertices);
|
|
84779
84907
|
return new DO({
|
|
84780
84908
|
vertices: t.length >= 2 ? t : [[
|
|
84781
84909
|
0,
|
|
@@ -84786,16 +84914,16 @@ function RJ() {
|
|
|
84786
84914
|
0,
|
|
84787
84915
|
0
|
|
84788
84916
|
]],
|
|
84789
|
-
closed:
|
|
84917
|
+
closed: IJ(e.closed, !0)
|
|
84790
84918
|
});
|
|
84791
84919
|
}
|
|
84792
|
-
}),
|
|
84920
|
+
}), AJ("Group", {
|
|
84793
84921
|
serialize: () => ({}),
|
|
84794
84922
|
deserialize: () => new PT()
|
|
84795
|
-
}),
|
|
84923
|
+
}), AJ("VGroup", {
|
|
84796
84924
|
serialize: () => ({}),
|
|
84797
84925
|
deserialize: () => new B()
|
|
84798
|
-
}),
|
|
84926
|
+
}), AJ("Text", {
|
|
84799
84927
|
serialize: (e) => {
|
|
84800
84928
|
let t = e;
|
|
84801
84929
|
return {
|
|
@@ -84810,16 +84938,16 @@ function RJ() {
|
|
|
84810
84938
|
};
|
|
84811
84939
|
},
|
|
84812
84940
|
deserialize: (e) => new Uw({
|
|
84813
|
-
text:
|
|
84814
|
-
fontSize:
|
|
84815
|
-
fontFamily:
|
|
84816
|
-
fontWeight:
|
|
84817
|
-
fontStyle:
|
|
84818
|
-
lineHeight:
|
|
84819
|
-
letterSpacing:
|
|
84820
|
-
textAlign:
|
|
84941
|
+
text: FJ(e.text, ""),
|
|
84942
|
+
fontSize: PJ(e.fontSize, 48),
|
|
84943
|
+
fontFamily: FJ(e.fontFamily, "CMU Serif, Georgia, Times New Roman, serif"),
|
|
84944
|
+
fontWeight: HJ(e.fontWeight),
|
|
84945
|
+
fontStyle: FJ(e.fontStyle, "normal"),
|
|
84946
|
+
lineHeight: PJ(e.lineHeight, 1.2),
|
|
84947
|
+
letterSpacing: PJ(e.letterSpacing, 0),
|
|
84948
|
+
textAlign: UJ(e.textAlign)
|
|
84821
84949
|
})
|
|
84822
|
-
}),
|
|
84950
|
+
}), AJ("MathTex", {
|
|
84823
84951
|
serialize: (e) => {
|
|
84824
84952
|
let t = e;
|
|
84825
84953
|
return {
|
|
@@ -84829,15 +84957,15 @@ function RJ() {
|
|
|
84829
84957
|
};
|
|
84830
84958
|
},
|
|
84831
84959
|
deserialize: (e) => new oM({
|
|
84832
|
-
latex:
|
|
84833
|
-
fontSize:
|
|
84834
|
-
displayMode:
|
|
84960
|
+
latex: FJ(e.latex, ""),
|
|
84961
|
+
fontSize: PJ(e.fontSize, 1),
|
|
84962
|
+
displayMode: IJ(e.displayMode, !0)
|
|
84835
84963
|
})
|
|
84836
84964
|
});
|
|
84837
84965
|
}
|
|
84838
84966
|
//#endregion
|
|
84839
84967
|
//#region src/serialization/types.ts
|
|
84840
|
-
var
|
|
84968
|
+
var GJ = "manim-web-scene", KJ = {
|
|
84841
84969
|
position: [
|
|
84842
84970
|
0,
|
|
84843
84971
|
0,
|
|
@@ -84854,7 +84982,7 @@ var zJ = "manim-web-scene", BJ = {
|
|
|
84854
84982
|
1
|
|
84855
84983
|
]
|
|
84856
84984
|
};
|
|
84857
|
-
function
|
|
84985
|
+
function qJ(e) {
|
|
84858
84986
|
return {
|
|
84859
84987
|
position: [
|
|
84860
84988
|
e.position.x,
|
|
@@ -84873,98 +85001,98 @@ function VJ(e) {
|
|
|
84873
85001
|
]
|
|
84874
85002
|
};
|
|
84875
85003
|
}
|
|
84876
|
-
function
|
|
85004
|
+
function JJ(e) {
|
|
84877
85005
|
let t = {};
|
|
84878
85006
|
return e.strokeColor !== void 0 && (t.strokeColor = e.strokeColor), e.fillColor !== void 0 && (t.fillColor = e.fillColor), typeof e.opacity == "number" && (t.strokeOpacity = e.opacity), typeof e.fillOpacity == "number" && (t.fillOpacity = e.fillOpacity), typeof e.strokeWidth == "number" && (t.strokeWidth = e.strokeWidth), t;
|
|
84879
85007
|
}
|
|
84880
|
-
function
|
|
84881
|
-
let n =
|
|
85008
|
+
function YJ(e, t) {
|
|
85009
|
+
let n = VJ(t) ? t : {}, r = zJ(n.position, KJ.position), i = zJ(n.rotation, KJ.rotation), a = zJ(n.scale, KJ.scale);
|
|
84882
85010
|
e.position.set(r[0], r[1], r[2]), e.rotation.set(i[0], i[1], i[2]), e.scaleVector.set(a[0], a[1], a[2]);
|
|
84883
85011
|
}
|
|
84884
|
-
function
|
|
84885
|
-
let n =
|
|
85012
|
+
function XJ(e, t) {
|
|
85013
|
+
let n = VJ(t) ? t : {};
|
|
84886
85014
|
typeof n.strokeWidth == "number" && e.setStrokeWidth(n.strokeWidth), typeof n.strokeOpacity == "number" && e.setStrokeOpacity(n.strokeOpacity), typeof n.fillOpacity == "number" && e.setFillOpacity(n.fillOpacity);
|
|
84887
|
-
let r =
|
|
85015
|
+
let r = LJ(n.strokeColor), i = LJ(n.fillColor);
|
|
84888
85016
|
r !== void 0 && (e.color = r), r !== void 0 && (e.strokeColor = r), i !== void 0 && (e.fillColor = i);
|
|
84889
85017
|
}
|
|
84890
|
-
function
|
|
84891
|
-
let t = e.constructor.name, n =
|
|
85018
|
+
function ZJ(e) {
|
|
85019
|
+
let t = e.constructor.name, n = MJ(t), r = {
|
|
84892
85020
|
type: t,
|
|
84893
85021
|
props: n ? n.serialize(e) : {},
|
|
84894
|
-
transform:
|
|
84895
|
-
style:
|
|
84896
|
-
children: e.children.map(
|
|
85022
|
+
transform: qJ(e),
|
|
85023
|
+
style: JJ(e),
|
|
85024
|
+
children: e.children.map(ZJ)
|
|
84897
85025
|
};
|
|
84898
85026
|
return n || (r.unknown = !0), r;
|
|
84899
85027
|
}
|
|
84900
|
-
function
|
|
84901
|
-
if (!
|
|
84902
|
-
let t =
|
|
85028
|
+
function QJ(e) {
|
|
85029
|
+
if (!VJ(e) || e.unknown === !0) return null;
|
|
85030
|
+
let t = LJ(e.type);
|
|
84903
85031
|
if (t === void 0) return null;
|
|
84904
|
-
let n =
|
|
85032
|
+
let n = MJ(t);
|
|
84905
85033
|
if (!n) return null;
|
|
84906
|
-
let r =
|
|
84907
|
-
if (
|
|
84908
|
-
let e =
|
|
85034
|
+
let r = VJ(e.props) ? e.props : {}, i = n.deserialize(r);
|
|
85035
|
+
if (YJ(i, e.transform), XJ(i, e.style), Array.isArray(e.children)) for (let t of e.children) {
|
|
85036
|
+
let e = QJ(t);
|
|
84909
85037
|
e && i.add(e);
|
|
84910
85038
|
}
|
|
84911
85039
|
return i;
|
|
84912
85040
|
}
|
|
84913
|
-
function
|
|
85041
|
+
function $J(e) {
|
|
84914
85042
|
let t = [];
|
|
84915
|
-
for (let n of e.mobjects) t.push(
|
|
85043
|
+
for (let n of e.mobjects) t.push(ZJ(n));
|
|
84916
85044
|
return {
|
|
84917
|
-
format:
|
|
85045
|
+
format: GJ,
|
|
84918
85046
|
version: 1,
|
|
84919
85047
|
mobjects: t
|
|
84920
85048
|
};
|
|
84921
85049
|
}
|
|
84922
|
-
function
|
|
84923
|
-
if (!
|
|
85050
|
+
function eY(e, t) {
|
|
85051
|
+
if (!VJ(e) || !Array.isArray(e.mobjects)) return [];
|
|
84924
85052
|
let n = [];
|
|
84925
85053
|
for (let r of e.mobjects) {
|
|
84926
|
-
let e =
|
|
85054
|
+
let e = QJ(r);
|
|
84927
85055
|
e && (t.add(e), n.push(e));
|
|
84928
85056
|
}
|
|
84929
85057
|
return n;
|
|
84930
85058
|
}
|
|
84931
85059
|
//#endregion
|
|
84932
85060
|
//#region src/serialization/urlState.ts
|
|
84933
|
-
var
|
|
85061
|
+
var tY = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", nY = (() => {
|
|
84934
85062
|
let e = /* @__PURE__ */ new Map();
|
|
84935
|
-
for (let t = 0; t < 64; t++) e.set(
|
|
85063
|
+
for (let t = 0; t < 64; t++) e.set(tY.charAt(t), t);
|
|
84936
85064
|
return e;
|
|
84937
85065
|
})();
|
|
84938
|
-
function
|
|
85066
|
+
function rY(e) {
|
|
84939
85067
|
let t = "";
|
|
84940
85068
|
for (let n = 0; n < e.length; n += 3) {
|
|
84941
85069
|
let r = e[n], i = n + 1 < e.length, a = n + 2 < e.length, o = i ? e[n + 1] : 0, s = a ? e[n + 2] : 0, c = r << 16 | o << 8 | s;
|
|
84942
|
-
t +=
|
|
85070
|
+
t += tY.charAt(c >> 18 & 63), t += tY.charAt(c >> 12 & 63), i && (t += tY.charAt(c >> 6 & 63)), a && (t += tY.charAt(c & 63));
|
|
84943
85071
|
}
|
|
84944
85072
|
return t;
|
|
84945
85073
|
}
|
|
84946
|
-
function
|
|
85074
|
+
function iY(e) {
|
|
84947
85075
|
let t = e.length;
|
|
84948
85076
|
if (t % 4 == 1) return null;
|
|
84949
85077
|
let n = [];
|
|
84950
85078
|
for (let r = 0; r < t; r += 4) {
|
|
84951
|
-
let i = Math.min(4, t - r), a =
|
|
85079
|
+
let i = Math.min(4, t - r), a = nY.get(e.charAt(r)), o = nY.get(e.charAt(r + 1));
|
|
84952
85080
|
if (a === void 0 || o === void 0) return null;
|
|
84953
|
-
let s = i > 2 ?
|
|
85081
|
+
let s = i > 2 ? nY.get(e.charAt(r + 2)) : 0, c = i > 3 ? nY.get(e.charAt(r + 3)) : 0;
|
|
84954
85082
|
if (s === void 0 || c === void 0) return null;
|
|
84955
85083
|
let l = a << 18 | o << 12 | s << 6 | c;
|
|
84956
85084
|
n.push(l >> 16 & 255), i > 2 && n.push(l >> 8 & 255), i > 3 && n.push(l & 255);
|
|
84957
85085
|
}
|
|
84958
85086
|
return Uint8Array.from(n);
|
|
84959
85087
|
}
|
|
84960
|
-
function
|
|
85088
|
+
function aY(e) {
|
|
84961
85089
|
let t = JSON.stringify(e), n = typeof t == "string" ? t : "null";
|
|
84962
|
-
return
|
|
85090
|
+
return rY(new TextEncoder().encode(n));
|
|
84963
85091
|
}
|
|
84964
|
-
function
|
|
85092
|
+
function oY(e) {
|
|
84965
85093
|
let t = e.startsWith("#") ? e.slice(1) : e;
|
|
84966
85094
|
if (t.length === 0) return null;
|
|
84967
|
-
let n =
|
|
85095
|
+
let n = iY(t);
|
|
84968
85096
|
if (n === null) return null;
|
|
84969
85097
|
try {
|
|
84970
85098
|
let e = new TextDecoder().decode(n);
|
|
@@ -84973,18 +85101,18 @@ function eY(e) {
|
|
|
84973
85101
|
return null;
|
|
84974
85102
|
}
|
|
84975
85103
|
}
|
|
84976
|
-
function
|
|
85104
|
+
function sY() {
|
|
84977
85105
|
return typeof window < "u" && window.location ? window.location : null;
|
|
84978
85106
|
}
|
|
84979
|
-
function
|
|
85107
|
+
function cY() {
|
|
84980
85108
|
return typeof window < "u" && window.history ? window.history : null;
|
|
84981
85109
|
}
|
|
84982
|
-
function
|
|
84983
|
-
let n =
|
|
85110
|
+
function lY(e, t = {}) {
|
|
85111
|
+
let n = sY();
|
|
84984
85112
|
if (!n) return;
|
|
84985
|
-
let r =
|
|
85113
|
+
let r = aY(e), i = `#${r}`;
|
|
84986
85114
|
if (t.replace) {
|
|
84987
|
-
let e =
|
|
85115
|
+
let e = cY();
|
|
84988
85116
|
if (e && typeof e.replaceState == "function") {
|
|
84989
85117
|
e.replaceState(e.state ?? null, "", i);
|
|
84990
85118
|
return;
|
|
@@ -84992,29 +85120,29 @@ function rY(e, t = {}) {
|
|
|
84992
85120
|
}
|
|
84993
85121
|
n.hash = r;
|
|
84994
85122
|
}
|
|
84995
|
-
function
|
|
84996
|
-
let e =
|
|
84997
|
-
return e ?
|
|
85123
|
+
function uY() {
|
|
85124
|
+
let e = sY();
|
|
85125
|
+
return e ? oY(e.hash) : null;
|
|
84998
85126
|
}
|
|
84999
|
-
function
|
|
85127
|
+
function dY(e) {
|
|
85000
85128
|
if (typeof window > "u" || typeof window.addEventListener != "function") return () => void 0;
|
|
85001
|
-
let t = () => e(
|
|
85129
|
+
let t = () => e(uY());
|
|
85002
85130
|
return window.addEventListener("hashchange", t), () => window.removeEventListener("hashchange", t);
|
|
85003
85131
|
}
|
|
85004
|
-
function
|
|
85132
|
+
function fY(e) {
|
|
85005
85133
|
let t = {};
|
|
85006
85134
|
for (let n of e) t[n.id] = n.get();
|
|
85007
85135
|
return t;
|
|
85008
85136
|
}
|
|
85009
|
-
function
|
|
85137
|
+
function pY(e, t) {
|
|
85010
85138
|
if (typeof t != "object" || !t || Array.isArray(t)) return !1;
|
|
85011
85139
|
let n = t, r = !1;
|
|
85012
85140
|
for (let t of e) Object.prototype.hasOwnProperty.call(n, t.id) && (t.set(n[t.id]), r = !0);
|
|
85013
85141
|
return r;
|
|
85014
85142
|
}
|
|
85015
|
-
function
|
|
85016
|
-
let { replace: n = !0, restoreOnBind: r = !0, listen: i = !0 } = t, a = () =>
|
|
85017
|
-
return r && s(), i && (c =
|
|
85143
|
+
function mY(e, t = {}) {
|
|
85144
|
+
let { replace: n = !0, restoreOnBind: r = !0, listen: i = !0 } = t, a = () => fY(e), o = () => lY(a(), { replace: n }), s = () => pY(e, uY()), c = null;
|
|
85145
|
+
return r && s(), i && (c = dY((t) => pY(e, t))), {
|
|
85018
85146
|
capture: a,
|
|
85019
85147
|
save: o,
|
|
85020
85148
|
restore: s,
|
|
@@ -85025,13 +85153,13 @@ function cY(e, t = {}) {
|
|
|
85025
85153
|
}
|
|
85026
85154
|
//#endregion
|
|
85027
85155
|
//#region src/serialization/parametrized.ts
|
|
85028
|
-
function
|
|
85156
|
+
function hY(e) {
|
|
85029
85157
|
return Array.isArray(e) && e.length === 3 && e.every((e) => typeof e == "number" && Number.isFinite(e));
|
|
85030
85158
|
}
|
|
85031
|
-
function
|
|
85032
|
-
return typeof e == "number" ? "number" : typeof e == "string" ? "string" : typeof e == "boolean" ? "boolean" :
|
|
85159
|
+
function gY(e) {
|
|
85160
|
+
return typeof e == "number" ? "number" : typeof e == "string" ? "string" : typeof e == "boolean" ? "boolean" : hY(e) ? "vec3" : Array.isArray(e) ? "array" : VJ(e) ? "object" : null;
|
|
85033
85161
|
}
|
|
85034
|
-
function
|
|
85162
|
+
function _Y(e, t, n) {
|
|
85035
85163
|
switch (t) {
|
|
85036
85164
|
case "number":
|
|
85037
85165
|
if (typeof e == "number" && Number.isFinite(e)) return e;
|
|
@@ -85042,46 +85170,46 @@ function dY(e, t, n) {
|
|
|
85042
85170
|
return typeof e == "boolean" ? +!!e : n;
|
|
85043
85171
|
case "string": return typeof e == "string" ? e : typeof e == "number" && Number.isFinite(e) || typeof e == "boolean" ? String(e) : n;
|
|
85044
85172
|
case "boolean": return typeof e == "boolean" ? e : e === "true" ? !0 : e === "false" ? !1 : typeof e == "number" && Number.isFinite(e) ? e !== 0 : n;
|
|
85045
|
-
case "vec3": return
|
|
85173
|
+
case "vec3": return zJ(e, hY(n) ? n : [
|
|
85046
85174
|
0,
|
|
85047
85175
|
0,
|
|
85048
85176
|
0
|
|
85049
85177
|
]);
|
|
85050
85178
|
case "array": return Array.isArray(e) ? e : n;
|
|
85051
|
-
case "object": return
|
|
85179
|
+
case "object": return VJ(e) ? e : n;
|
|
85052
85180
|
}
|
|
85053
85181
|
}
|
|
85054
|
-
function
|
|
85055
|
-
let r = e.defaultProps[t], i = e.schema?.[t] ??
|
|
85056
|
-
return i === null ? n === void 0 ? r : n :
|
|
85182
|
+
function vY(e, t, n) {
|
|
85183
|
+
let r = e.defaultProps[t], i = e.schema?.[t] ?? gY(r);
|
|
85184
|
+
return i === null ? n === void 0 ? r : n : _Y(n, i, r);
|
|
85057
85185
|
}
|
|
85058
|
-
function
|
|
85186
|
+
function yY(e, t, n) {
|
|
85059
85187
|
let r = { ...t };
|
|
85060
|
-
if (n) for (let t of Object.keys(n)) Object.prototype.hasOwnProperty.call(e.defaultProps, t) && (r[t] =
|
|
85188
|
+
if (n) for (let t of Object.keys(n)) Object.prototype.hasOwnProperty.call(e.defaultProps, t) && (r[t] = vY(e, t, n[t]));
|
|
85061
85189
|
return r;
|
|
85062
85190
|
}
|
|
85063
|
-
function
|
|
85191
|
+
function bY(e) {
|
|
85064
85192
|
return e;
|
|
85065
85193
|
}
|
|
85066
|
-
function
|
|
85067
|
-
return
|
|
85194
|
+
function xY(e, t) {
|
|
85195
|
+
return yY(e, { ...e.defaultProps }, t);
|
|
85068
85196
|
}
|
|
85069
|
-
function
|
|
85070
|
-
let t =
|
|
85071
|
-
return
|
|
85197
|
+
function SY(e) {
|
|
85198
|
+
let t = uY();
|
|
85199
|
+
return xY(e, VJ(t) ? t : void 0);
|
|
85072
85200
|
}
|
|
85073
|
-
var
|
|
85201
|
+
var CY = async (e, t) => {
|
|
85074
85202
|
if (typeof fetch != "function") throw Error("renderParametrized: no global fetch available. Pass options.fetch to inject one.");
|
|
85075
85203
|
let n = await fetch(e, t);
|
|
85076
85204
|
if (!n.ok) throw Error(`renderParametrized: fetch failed for ${e} (status ${n.status})`);
|
|
85077
85205
|
return n.json();
|
|
85078
85206
|
};
|
|
85079
|
-
function
|
|
85207
|
+
function wY(e, t) {
|
|
85080
85208
|
let n = t.width ?? e.renderer.width, r = t.height ?? e.renderer.height;
|
|
85081
85209
|
(n !== e.renderer.width || r !== e.renderer.height) && e.resize(n, r), typeof t.fps == "number" && Number.isFinite(t.fps) && e.setTargetFps(t.fps);
|
|
85082
85210
|
}
|
|
85083
|
-
async function
|
|
85084
|
-
let r = n.fetch ??
|
|
85211
|
+
async function TY(e, t, n = {}) {
|
|
85212
|
+
let r = n.fetch ?? CY, i = xY(e, t), a, o = {};
|
|
85085
85213
|
if (e.calculateMetadata) {
|
|
85086
85214
|
let t = await e.calculateMetadata({
|
|
85087
85215
|
props: i,
|
|
@@ -85092,7 +85220,7 @@ async function yY(e, t, n = {}) {
|
|
|
85092
85220
|
width: t.width,
|
|
85093
85221
|
height: t.height,
|
|
85094
85222
|
fps: t.fps
|
|
85095
|
-
}, t.props && (i =
|
|
85223
|
+
}, t.props && (i = yY(e, i, t.props));
|
|
85096
85224
|
}
|
|
85097
85225
|
let s = n.scene;
|
|
85098
85226
|
s ||= pE.createHeadless({
|
|
@@ -85100,9 +85228,9 @@ async function yY(e, t, n = {}) {
|
|
|
85100
85228
|
...o.width === void 0 ? {} : { width: o.width },
|
|
85101
85229
|
...o.height === void 0 ? {} : { height: o.height },
|
|
85102
85230
|
...o.fps === void 0 ? {} : { targetFps: o.fps }
|
|
85103
|
-
}),
|
|
85104
|
-
let c =
|
|
85105
|
-
return n.writeUrl &&
|
|
85231
|
+
}), wY(s, o);
|
|
85232
|
+
let c = aY(i);
|
|
85233
|
+
return n.writeUrl && lY(i, { replace: n.urlReplace ?? !0 }), await e.build(s, i, a), {
|
|
85106
85234
|
scene: s,
|
|
85107
85235
|
props: i,
|
|
85108
85236
|
data: a,
|
|
@@ -85117,10 +85245,10 @@ async function yY(e, t, n = {}) {
|
|
|
85117
85245
|
}
|
|
85118
85246
|
//#endregion
|
|
85119
85247
|
//#region src/serialization/index.ts
|
|
85120
|
-
|
|
85248
|
+
WJ();
|
|
85121
85249
|
//#endregion
|
|
85122
85250
|
//#region src/mobjects/geo/geojson.ts
|
|
85123
|
-
function
|
|
85251
|
+
function EY(e) {
|
|
85124
85252
|
if (e.type === "Polygon") {
|
|
85125
85253
|
let t = e.coordinates[0];
|
|
85126
85254
|
return t ? [t] : [];
|
|
@@ -85134,26 +85262,26 @@ function bY(e) {
|
|
|
85134
85262
|
}
|
|
85135
85263
|
//#endregion
|
|
85136
85264
|
//#region src/mobjects/geo/projections.ts
|
|
85137
|
-
var
|
|
85138
|
-
function
|
|
85139
|
-
let { radius: t = 1, centerLon: n = 0, centerLat: r = 0, standardParallel: i = 0 } = e, a = Math.cos(i *
|
|
85140
|
-
return ([e, i]) => [(e - n) *
|
|
85265
|
+
var DY = Math.PI / 180;
|
|
85266
|
+
function OY(e = {}) {
|
|
85267
|
+
let { radius: t = 1, centerLon: n = 0, centerLat: r = 0, standardParallel: i = 0 } = e, a = Math.cos(i * DY);
|
|
85268
|
+
return ([e, i]) => [(e - n) * DY * t * a, (i - r) * DY * t];
|
|
85141
85269
|
}
|
|
85142
|
-
function
|
|
85270
|
+
function kY(e = {}) {
|
|
85143
85271
|
let { radius: t = 1, centerLon: n = 0, maxLatitude: r = 85.05112878 } = e;
|
|
85144
85272
|
return ([e, i]) => {
|
|
85145
|
-
let a = Math.max(-r, Math.min(r, i)) *
|
|
85146
|
-
return [(e - n) *
|
|
85273
|
+
let a = Math.max(-r, Math.min(r, i)) * DY;
|
|
85274
|
+
return [(e - n) * DY * t, t * Math.log(Math.tan(Math.PI / 4 + a / 2))];
|
|
85147
85275
|
};
|
|
85148
85276
|
}
|
|
85149
85277
|
//#endregion
|
|
85150
85278
|
//#region src/mobjects/geo/colorScale.ts
|
|
85151
|
-
var
|
|
85279
|
+
var AY = ["#0d1b2a", "#4cc9f0"], jY = class {
|
|
85152
85280
|
_palette;
|
|
85153
85281
|
_domain;
|
|
85154
85282
|
constructor(e = {}) {
|
|
85155
|
-
let { colors: t =
|
|
85156
|
-
this._palette = wh(t.length > 0 ? t :
|
|
85283
|
+
let { colors: t = AY, domain: n = [0, 1], samples: r = 256 } = e, i = Math.max(2, Math.floor(r));
|
|
85284
|
+
this._palette = wh(t.length > 0 ? t : AY, i), this._domain = [n[0], n[1]];
|
|
85157
85285
|
}
|
|
85158
85286
|
setDomainFromValues(e) {
|
|
85159
85287
|
let t = Infinity, n = -Infinity;
|
|
@@ -85169,7 +85297,7 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85169
85297
|
let a = Math.round(i * (this._palette.length - 1));
|
|
85170
85298
|
return this._palette[a];
|
|
85171
85299
|
}
|
|
85172
|
-
},
|
|
85300
|
+
}, MY = class extends PT {
|
|
85173
85301
|
_projection;
|
|
85174
85302
|
_colorScale;
|
|
85175
85303
|
_regions = [];
|
|
@@ -85177,10 +85305,10 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85177
85305
|
_regionPolygons = [];
|
|
85178
85306
|
constructor(e) {
|
|
85179
85307
|
super();
|
|
85180
|
-
let { geojson: t, value: n, colorScale: r = ["#0d1b2a", "#4cc9f0"], domain: i, fillOpacity: a = 1, noDataColor: o = wl, borderColor: s = "#1b263b", borderWidth: c = 1, projection: l =
|
|
85308
|
+
let { geojson: t, value: n, colorScale: r = ["#0d1b2a", "#4cc9f0"], domain: i, fillOpacity: a = 1, noDataColor: o = wl, borderColor: s = "#1b263b", borderWidth: c = 1, projection: l = OY() } = e;
|
|
85181
85309
|
this._projection = l;
|
|
85182
85310
|
let u = t.features ?? [], d = u.map((e, t) => n(e, t));
|
|
85183
|
-
this._colorScale = new
|
|
85311
|
+
this._colorScale = new jY({
|
|
85184
85312
|
colors: r,
|
|
85185
85313
|
domain: i
|
|
85186
85314
|
}), i || this._colorScale.setDomainFromValues(d.filter((e) => typeof e == "number" && Number.isFinite(e))), u.forEach((e, t) => {
|
|
@@ -85193,7 +85321,7 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85193
85321
|
});
|
|
85194
85322
|
}
|
|
85195
85323
|
_buildRegion(e, t, n) {
|
|
85196
|
-
let r = typeof t == "number" && Number.isFinite(t) ? this._colorScale.colorFor(t) : n.noDataColor, i =
|
|
85324
|
+
let r = typeof t == "number" && Number.isFinite(t) ? this._colorScale.colorFor(t) : n.noDataColor, i = EY(e.geometry), a = [];
|
|
85197
85325
|
for (let e of i) {
|
|
85198
85326
|
let t = this._buildPolygon(e, r, n);
|
|
85199
85327
|
t && a.push(t);
|
|
@@ -85202,7 +85330,7 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85202
85330
|
this.add(o), this._regions.push(o), this._regionColors.push(r), this._regionPolygons.push(a);
|
|
85203
85331
|
}
|
|
85204
85332
|
_buildPolygon(e, t, n) {
|
|
85205
|
-
let r =
|
|
85333
|
+
let r = PY(e);
|
|
85206
85334
|
if (r.length < 3) return null;
|
|
85207
85335
|
let i = new DO({
|
|
85208
85336
|
vertices: r.map((e) => {
|
|
@@ -85238,15 +85366,15 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85238
85366
|
getColorScale() {
|
|
85239
85367
|
return this._colorScale;
|
|
85240
85368
|
}
|
|
85241
|
-
},
|
|
85242
|
-
function
|
|
85369
|
+
}, NY = MY;
|
|
85370
|
+
function PY(e) {
|
|
85243
85371
|
if (e.length < 2) return e;
|
|
85244
85372
|
let t = e[0], n = e[e.length - 1];
|
|
85245
85373
|
return t[0] === n[0] && t[1] === n[1] ? e.slice(0, -1) : e;
|
|
85246
85374
|
}
|
|
85247
85375
|
//#endregion
|
|
85248
85376
|
//#region src/mobjects/geo/Globe.ts
|
|
85249
|
-
var
|
|
85377
|
+
var FY = Math.PI / 180, IY = class extends PT {
|
|
85250
85378
|
_radius;
|
|
85251
85379
|
_center;
|
|
85252
85380
|
_sphere;
|
|
@@ -85294,9 +85422,9 @@ var kY = Math.PI / 180, AY = class extends PT {
|
|
|
85294
85422
|
return [...this._plottedPoints];
|
|
85295
85423
|
}
|
|
85296
85424
|
arc(e, t, n = {}) {
|
|
85297
|
-
let { segments: r = 64, color: i = "#ef476f", lineWidth: a = 2, altitude: o = 0 } = n, s = this._radius * (1 + o), c =
|
|
85425
|
+
let { segments: r = 64, color: i = "#ef476f", lineWidth: a = 2, altitude: o = 0 } = n, s = this._radius * (1 + o), c = LY(e[0], e[1]), l = LY(t[0], t[1]), u = BY(c[0] * l[0] + c[1] * l[1] + c[2] * l[2], -1, 1), d = Math.acos(u), f = Math.sin(d), p = [];
|
|
85298
85426
|
for (let e = 0; e <= r; e++) {
|
|
85299
|
-
let t =
|
|
85427
|
+
let t = RY(c, l, e / r, d, f);
|
|
85300
85428
|
p.push([
|
|
85301
85429
|
this._center[0] + s * t[0],
|
|
85302
85430
|
this._center[1] + s * t[1],
|
|
@@ -85313,8 +85441,8 @@ var kY = Math.PI / 180, AY = class extends PT {
|
|
|
85313
85441
|
}
|
|
85314
85442
|
graticule(e = {}) {
|
|
85315
85443
|
let { latStep: t = 30, lonStep: n = 30, segments: r = 48, color: i = "#8d99ae", lineWidth: a = 1 } = e, o = new PT();
|
|
85316
|
-
for (let e = -180; e < 180; e += n) o.add(this._gridLine(
|
|
85317
|
-
for (let e = -90 + t; e < 90; e += t) o.add(this._gridLine(
|
|
85444
|
+
for (let e = -180; e < 180; e += n) o.add(this._gridLine(VY(e, r), i, a));
|
|
85445
|
+
for (let e = -90 + t; e < 90; e += t) o.add(this._gridLine(HY(e, r), i, a));
|
|
85318
85446
|
return this.add(o), o;
|
|
85319
85447
|
}
|
|
85320
85448
|
_gridLine(e, t, n) {
|
|
@@ -85326,7 +85454,7 @@ var kY = Math.PI / 180, AY = class extends PT {
|
|
|
85326
85454
|
});
|
|
85327
85455
|
}
|
|
85328
85456
|
_surfacePoint(e, t, n) {
|
|
85329
|
-
let r =
|
|
85457
|
+
let r = LY(e, t);
|
|
85330
85458
|
return [
|
|
85331
85459
|
this._center[0] + n * r[0],
|
|
85332
85460
|
this._center[1] + n * r[1],
|
|
@@ -85334,16 +85462,16 @@ var kY = Math.PI / 180, AY = class extends PT {
|
|
|
85334
85462
|
];
|
|
85335
85463
|
}
|
|
85336
85464
|
};
|
|
85337
|
-
function
|
|
85338
|
-
let n = e *
|
|
85465
|
+
function LY(e, t) {
|
|
85466
|
+
let n = e * FY, r = t * FY, i = Math.cos(n);
|
|
85339
85467
|
return [
|
|
85340
85468
|
i * Math.cos(r),
|
|
85341
85469
|
i * Math.sin(r),
|
|
85342
85470
|
Math.sin(n)
|
|
85343
85471
|
];
|
|
85344
85472
|
}
|
|
85345
|
-
function
|
|
85346
|
-
if (i < 1e-9) return
|
|
85473
|
+
function RY(e, t, n, r, i) {
|
|
85474
|
+
if (i < 1e-9) return zY([
|
|
85347
85475
|
e[0] + (t[0] - e[0]) * n,
|
|
85348
85476
|
e[1] + (t[1] - e[1]) * n,
|
|
85349
85477
|
e[2] + (t[2] - e[2]) * n
|
|
@@ -85355,7 +85483,7 @@ function MY(e, t, n, r, i) {
|
|
|
85355
85483
|
e[2] * a + t[2] * o
|
|
85356
85484
|
];
|
|
85357
85485
|
}
|
|
85358
|
-
function
|
|
85486
|
+
function zY(e) {
|
|
85359
85487
|
let t = Math.sqrt(e[0] * e[0] + e[1] * e[1] + e[2] * e[2]) || 1;
|
|
85360
85488
|
return [
|
|
85361
85489
|
e[0] / t,
|
|
@@ -85363,44 +85491,44 @@ function NY(e) {
|
|
|
85363
85491
|
e[2] / t
|
|
85364
85492
|
];
|
|
85365
85493
|
}
|
|
85366
|
-
function
|
|
85494
|
+
function BY(e, t, n) {
|
|
85367
85495
|
return Math.max(t, Math.min(n, e));
|
|
85368
85496
|
}
|
|
85369
|
-
function
|
|
85497
|
+
function VY(e, t) {
|
|
85370
85498
|
let n = [];
|
|
85371
85499
|
for (let r = 0; r <= t; r++) n.push([-90 + 180 * r / t, e]);
|
|
85372
85500
|
return n;
|
|
85373
85501
|
}
|
|
85374
|
-
function
|
|
85502
|
+
function HY(e, t) {
|
|
85375
85503
|
let n = [];
|
|
85376
85504
|
for (let r = 0; r <= t; r++) n.push([e, -180 + 360 * r / t]);
|
|
85377
85505
|
return n;
|
|
85378
85506
|
}
|
|
85379
85507
|
//#endregion
|
|
85380
85508
|
//#region src/mobjects/ml/mlStyles.ts
|
|
85381
|
-
var
|
|
85509
|
+
var UY = {
|
|
85382
85510
|
color: Nl,
|
|
85383
85511
|
fillColor: Nl,
|
|
85384
85512
|
fillOpacity: .3,
|
|
85385
85513
|
strokeWidth: 2
|
|
85386
|
-
},
|
|
85514
|
+
}, WY = {
|
|
85387
85515
|
color: wl,
|
|
85388
85516
|
strokeWidth: 1.5,
|
|
85389
85517
|
opacity: .35
|
|
85390
|
-
},
|
|
85391
|
-
function
|
|
85518
|
+
}, GY = hl;
|
|
85519
|
+
function KY(e, t) {
|
|
85392
85520
|
return {
|
|
85393
85521
|
...e,
|
|
85394
|
-
...
|
|
85522
|
+
...JY(t)
|
|
85395
85523
|
};
|
|
85396
85524
|
}
|
|
85397
|
-
function
|
|
85525
|
+
function qY(e, t) {
|
|
85398
85526
|
return {
|
|
85399
85527
|
...e,
|
|
85400
|
-
...
|
|
85528
|
+
...JY(t)
|
|
85401
85529
|
};
|
|
85402
85530
|
}
|
|
85403
|
-
function
|
|
85531
|
+
function JY(e) {
|
|
85404
85532
|
if (!e) return {};
|
|
85405
85533
|
let t = {};
|
|
85406
85534
|
for (let n of Object.keys(e)) e[n] !== void 0 && (t[n] = e[n]);
|
|
@@ -85408,7 +85536,7 @@ function HY(e) {
|
|
|
85408
85536
|
}
|
|
85409
85537
|
//#endregion
|
|
85410
85538
|
//#region src/mobjects/ml/NeuralNetworkLayer.ts
|
|
85411
|
-
var
|
|
85539
|
+
var YY = class extends B {
|
|
85412
85540
|
_nodes = [];
|
|
85413
85541
|
normalizeTransform(e = this._ownMatrix()) {
|
|
85414
85542
|
return this._flattenAsContainer(e);
|
|
@@ -85422,14 +85550,14 @@ var UY = class extends B {
|
|
|
85422
85550
|
nodeAnchors() {
|
|
85423
85551
|
return this._nodes.map((e) => e.getCenter());
|
|
85424
85552
|
}
|
|
85425
|
-
},
|
|
85553
|
+
}, XY = class extends YY {
|
|
85426
85554
|
_nodeRadius;
|
|
85427
85555
|
_nodeSpacing;
|
|
85428
85556
|
_nodeStyle;
|
|
85429
85557
|
constructor(e = {}) {
|
|
85430
85558
|
super();
|
|
85431
85559
|
let t = e.numNodes ?? 3, n = Math.max(0, Math.floor(t));
|
|
85432
|
-
this._nodeRadius = e.nodeRadius ?? .25, this._nodeSpacing = e.nodeSpacing ?? .7, this._nodeStyle =
|
|
85560
|
+
this._nodeRadius = e.nodeRadius ?? .25, this._nodeSpacing = e.nodeSpacing ?? .7, this._nodeStyle = KY(UY, e.nodeStyle), this._buildNodes(n);
|
|
85433
85561
|
}
|
|
85434
85562
|
_buildNodes(e) {
|
|
85435
85563
|
if (e === 0) return;
|
|
@@ -85458,7 +85586,7 @@ var UY = class extends B {
|
|
|
85458
85586
|
};
|
|
85459
85587
|
//#endregion
|
|
85460
85588
|
//#region src/mobjects/ml/featureMapStack.ts
|
|
85461
|
-
function
|
|
85589
|
+
function ZY(e) {
|
|
85462
85590
|
let { numFeatureMaps: t, mapSize: n, offset: r, style: i } = e, a = Math.max(0, Math.floor(t)), o = a > 0 ? (a - 1) * r : 0, s = n + o, c = [];
|
|
85463
85591
|
for (let e = 0; e < a; e++) {
|
|
85464
85592
|
let t = -o / 2 + e * r, a = o / 2 - e * r, s = new GE({
|
|
@@ -85482,15 +85610,15 @@ function GY(e) {
|
|
|
85482
85610
|
}
|
|
85483
85611
|
//#endregion
|
|
85484
85612
|
//#region src/mobjects/ml/ConvolutionalLayer.ts
|
|
85485
|
-
var
|
|
85613
|
+
var QY = class extends YY {
|
|
85486
85614
|
_width;
|
|
85487
85615
|
constructor(e = {}) {
|
|
85488
85616
|
super();
|
|
85489
|
-
let { nodes: t, width: n } =
|
|
85617
|
+
let { nodes: t, width: n } = ZY({
|
|
85490
85618
|
numFeatureMaps: e.numFeatureMaps ?? 3,
|
|
85491
85619
|
mapSize: e.mapSize ?? .5,
|
|
85492
85620
|
offset: e.offset ?? .15,
|
|
85493
|
-
style:
|
|
85621
|
+
style: KY(UY, e.nodeStyle)
|
|
85494
85622
|
});
|
|
85495
85623
|
this._width = n;
|
|
85496
85624
|
for (let e of t) this._nodes.push(e), this.add(e);
|
|
@@ -85498,15 +85626,15 @@ var KY = class extends UY {
|
|
|
85498
85626
|
layerWidth() {
|
|
85499
85627
|
return this._width;
|
|
85500
85628
|
}
|
|
85501
|
-
},
|
|
85629
|
+
}, $Y = class extends YY {
|
|
85502
85630
|
_width;
|
|
85503
85631
|
constructor(e = {}) {
|
|
85504
85632
|
super();
|
|
85505
|
-
let { nodes: t, width: n } =
|
|
85633
|
+
let { nodes: t, width: n } = ZY({
|
|
85506
85634
|
numFeatureMaps: e.numFeatureMaps ?? 3,
|
|
85507
85635
|
mapSize: e.mapSize ?? .3,
|
|
85508
85636
|
offset: e.offset ?? .12,
|
|
85509
|
-
style:
|
|
85637
|
+
style: KY(UY, e.nodeStyle)
|
|
85510
85638
|
});
|
|
85511
85639
|
this._width = n;
|
|
85512
85640
|
for (let e of t) this._nodes.push(e), this.add(e);
|
|
@@ -85514,7 +85642,7 @@ var KY = class extends UY {
|
|
|
85514
85642
|
layerWidth() {
|
|
85515
85643
|
return this._width;
|
|
85516
85644
|
}
|
|
85517
|
-
},
|
|
85645
|
+
}, eX = class extends YY {
|
|
85518
85646
|
_cols;
|
|
85519
85647
|
_cellSize;
|
|
85520
85648
|
_grid;
|
|
@@ -85522,7 +85650,7 @@ var KY = class extends UY {
|
|
|
85522
85650
|
super();
|
|
85523
85651
|
let t = Math.max(0, Math.floor(e.rows ?? 3));
|
|
85524
85652
|
this._cols = Math.max(0, Math.floor(e.cols ?? 3)), this._cellSize = e.cellSize ?? .25;
|
|
85525
|
-
let n =
|
|
85653
|
+
let n = KY(UY, e.nodeStyle);
|
|
85526
85654
|
this._grid = this._buildGrid(t, this._cols, n), this.add(this._grid), t > 0 && this._cols > 0 && this._nodes.push(this._grid);
|
|
85527
85655
|
}
|
|
85528
85656
|
_buildGrid(e, t, n) {
|
|
@@ -85547,13 +85675,13 @@ var KY = class extends UY {
|
|
|
85547
85675
|
layerWidth() {
|
|
85548
85676
|
return Math.max(this._cols, 1) * this._cellSize;
|
|
85549
85677
|
}
|
|
85550
|
-
},
|
|
85678
|
+
}, tX = class extends B {
|
|
85551
85679
|
_layers;
|
|
85552
85680
|
_connections = [];
|
|
85553
85681
|
_stages = [];
|
|
85554
85682
|
_edgeStyle;
|
|
85555
85683
|
constructor(e = [], t = {}) {
|
|
85556
|
-
super(), this._layers = [...e], this._edgeStyle =
|
|
85684
|
+
super(), this._layers = [...e], this._edgeStyle = qY(WY, t.edgeStyle);
|
|
85557
85685
|
let n = t.layerSpacing ?? 1, r = t.connectAdjacent ?? !0;
|
|
85558
85686
|
this._placeLayers(n), r && this._buildConnections();
|
|
85559
85687
|
for (let e of this._connections) this.add(e);
|
|
@@ -85600,7 +85728,7 @@ var KY = class extends UY {
|
|
|
85600
85728
|
getConnectionStages() {
|
|
85601
85729
|
return this._stages.map((e) => [...e]);
|
|
85602
85730
|
}
|
|
85603
|
-
},
|
|
85731
|
+
}, nX = class extends V {
|
|
85604
85732
|
activation = 0;
|
|
85605
85733
|
_activationColor;
|
|
85606
85734
|
_peakOpacity;
|
|
@@ -85611,7 +85739,7 @@ var KY = class extends UY {
|
|
|
85611
85739
|
super(e, {
|
|
85612
85740
|
duration: t.duration ?? 1,
|
|
85613
85741
|
rateFunc: t.rateFunc ?? (t.restore ? hg : void 0)
|
|
85614
|
-
}), this._activationColor = t.activationColor ??
|
|
85742
|
+
}), this._activationColor = t.activationColor ?? GY, this._peakOpacity = t.peakOpacity ?? 1, this._restore = t.restore ?? !1;
|
|
85615
85743
|
}
|
|
85616
85744
|
begin() {
|
|
85617
85745
|
super.begin(), this._baseOpacity = this.mobject.opacity, this._baseColor = this.mobject.color, this.activation = 0;
|
|
@@ -85627,12 +85755,12 @@ var KY = class extends UY {
|
|
|
85627
85755
|
this._restore ? (this.mobject.setStrokeOpacity(this._baseOpacity), this.mobject.setColor(this._baseColor), this.activation = 0) : this.activation = 1, this.mobject._markDirty(), super.finish();
|
|
85628
85756
|
}
|
|
85629
85757
|
};
|
|
85630
|
-
function
|
|
85631
|
-
return new
|
|
85758
|
+
function rX(e, t) {
|
|
85759
|
+
return new nX(e, t);
|
|
85632
85760
|
}
|
|
85633
85761
|
//#endregion
|
|
85634
85762
|
//#region src/mobjects/ml/forwardPass.ts
|
|
85635
|
-
function
|
|
85763
|
+
function iX(e, t, n) {
|
|
85636
85764
|
let r = e.getConnectionStages(), i = t ? [...r].reverse() : r, a = {
|
|
85637
85765
|
duration: n.gapDuration ?? 1,
|
|
85638
85766
|
activationColor: n.activationColor,
|
|
@@ -85640,13 +85768,13 @@ function QY(e, t, n) {
|
|
|
85640
85768
|
restore: n.restore,
|
|
85641
85769
|
rateFunc: n.rateFunc
|
|
85642
85770
|
};
|
|
85643
|
-
return i.map((e) => new HT(e.map((e) => new
|
|
85771
|
+
return i.map((e) => new HT(e.map((e) => new nX(e, a)), { lagRatio: 0 }));
|
|
85644
85772
|
}
|
|
85645
|
-
function
|
|
85646
|
-
return new pH(
|
|
85773
|
+
function aX(e, t = {}) {
|
|
85774
|
+
return new pH(iX(e, !1, t), { lagRatio: t.lagRatio ?? 1 });
|
|
85647
85775
|
}
|
|
85648
|
-
function
|
|
85649
|
-
return new pH(
|
|
85776
|
+
function oX(e, t = {}) {
|
|
85777
|
+
return new pH(iX(e, !0, t), { lagRatio: t.lagRatio ?? 1 });
|
|
85650
85778
|
}
|
|
85651
85779
|
//#endregion
|
|
85652
|
-
export { mU as Add, OI as AddTextLetterByLetter, VI as AddTextWordByWord, uk as Angle, DT as AnimateProxy, rU as AnimatedBoundary, vz as AnimatedImageMobject, V as Animation, HT as AnimationGroup, Yk as AnnotationDot, RO as AnnularSector, LO as Annulus, jB as ApplyComplexFunction, kB as ApplyFunction, FB as ApplyMatrix, NB as ApplyMethod, TV as ApplyPointwiseFunction, OV as ApplyPointwiseFunctionToCenter, PU as ApplyWave, PO as Arc, FO as ArcBetweenPoints, sL as ArcBrace, BO as ArcPolygon, UO as ArcPolygonFromArcs, vN as AreaChart, lO as AriaNarrator, sD as Arrow, zP as Arrow3D, bk as ArrowCircleFilledTip, yk as ArrowCircleTip, Sk as ArrowSquareFilledTip, xk as ArrowSquareTip, gk as ArrowTip, vk as ArrowTriangleFilledTip, _k as ArrowTriangleTip, xP as ArrowVectorField, ID as AudioAnalyzer, eE as AudioManager, sA as Axes, xl as BLACK, ip as BLEND_MODES, Nl as BLUE, Dl as BLUE_A, Ol as BLUE_B, kl as BLUE_C, Al as BLUE_D, jl as BLUE_E, Hu as BOLD, Zu as BOOK, $O as BackgroundRectangle, eN as BarChart, HU as Blink, Iz as Body, Tk as BooleanResult, kP as Box3D, pP as BoxPlot, aL as Brace, oL as BraceBetweenPoints, cL as BraceLabel, lL as BraceText, SU as Broadcast, JM as BulletedList, JA as COOLWARM, dB as CPK_COLORS, TN as CalendarHeatmap, zT as Camera2D, LT as Camera2DFrame, RT as Camera3D, TO as CameraAnimateProxy, CO as CameraFrame, DN as CandlestickChart, ld as CapStyleType, QH as ChangeDecimalToValue, cU as ChangeSpeed, ZH as ChangingDecimal, oP as ChordArc, cP as ChordDiagram, sP as ChordRibbon, EY as ChoroplethMap, EO as Circle, OU as Circumscribe, rW as Clickable, UB as ClockwiseTransform, GM as Code, TY as ColorScale, ZV as ComplexHomotopy, ZM as ComplexPlane, OM as ComplexValueTracker, jP as Cone, sj as ContourPlot, ZU as Controls, lk as ConvexHull, uF as ConvexHull3D, KY as ConvolutionalLayer, GB as CounterclockwiseTransform, vI as Create, nk as Cross, OP as Cube, YO as CubicBezier, WO as CurvedArrow, GO as CurvedDoubleArrow, jT as CurvesAsSubmobjects, ck as Cutout, XB as CyclicReplace, AP as Cylinder, El as DARKER_GRAY, Pl as DARK_BLUE, ku as DARK_BROWN, Tl as DARK_GRAY, zY as DEFAULT_ACTIVATION_COLOR, fd as DEFAULT_ANIMATION_DURATION, Bu as DEFAULT_ARROW_TIP_LENGTH, yz as DEFAULT_ASPECT_RATIO, IM as DEFAULT_COLOR_SCHEME, zu as DEFAULT_DASH_LENGTH, Lu as DEFAULT_DOT_RADIUS, RY as DEFAULT_EDGE_STYLE, uB as DEFAULT_ELEMENT_COLOR, dd as DEFAULT_FONT_SIZE, _d as DEFAULT_FPS, md as DEFAULT_FRAME_HEIGHT, pd as DEFAULT_FRAME_WIDTH, Sd as DEFAULT_MOBJECT_TO_EDGE_BUFFER, Cd as DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, LY as DEFAULT_NODE_STYLE, gd as DEFAULT_PIXEL_HEIGHT, hd as DEFAULT_PIXEL_WIDTH, nd as DEFAULT_POINTWISE_FUNCTION_RUN_TIME, id as DEFAULT_POINT_DENSITY_1D, rd as DEFAULT_POINT_DENSITY_2D, tN as DEFAULT_SERIES_COLORS, Ru as DEFAULT_SMALL_DOT_RADIUS, JL as DEFAULT_SPRING_COOLING, ud as DEFAULT_STROKE_WIDTH, td as DEFAULT_WAIT_TIME, Nu as DEGREES, Rd as DL, Ad as DOWN, zd as DR, qO as DashedLine, JO as DashedVMobject, uI as DecimalMatrix, CM as DecimalNumber, rL as DecimalTable, kK as Degrees, yR as DiGraph, cB as DiceFace, jk as Difference, Gz as DistanceConstraint, LP as Dodecahedron, mj as DomainColoring, HN as DonutChart, XO as Dot, YP as Dot3D, cD as DoubleArrow, $U as Draggable, bI as DrawBorderThenFill, XY as EdgePulse, fk as Elbow, IO as Ellipse, Mk as Exclusion, DG as ExportSettingsPanel, SG as FPS_PRESETS, wB as FadeIn, EB as FadeOut, iV as FadeToColor, LB as FadeTransform, zB as FadeTransformPieces, WY as FeedForwardLayer, EU as Flash, IU as FocusOn, sR as ForceDirectedLayout, Tj as FourierEpicycles, Ej as FourierSeries, Sz as FullScreenFadeRectangle, xz as FullScreenRectangle, $k as FunctionGraph, bN as GITHUB_GREENS, au as GOLD, eu as GOLD_A, tu as GOLD_B, nu as GOLD_C, ru as GOLD_D, iu as GOLD_E, wl as GRAY, gl as GRAY_A, _l as GRAY_B, vl as GRAY_C, yl as GRAY_D, bl as GRAY_E, ql as GREEN, Vl as GREEN_A, Hl as GREEN_B, Ul as GREEN_C, Wl as GREEN_D, Gl as GREEN_E, LN as GanttChart, _R as GenericGraph, DY as GeoMap, MW as GifExporter, jH as GlitchIn, AY as Globe, vw as GlyphVMobject, _L as GradientVMobject, vR as Graph, PT as Group, iH as GrowArrow, FV as GrowFromCenter, oH as GrowFromEdge, cH as GrowFromPoint, xW as GuardBuilder, qu as HEAVY, aK as HSV, oj as HeatMap, AO as Hexagon, lP as Histogram, XV as Homotopy, tW as Hoverable, Pd as IN, qA as INFERNO, $u as ITALIC, IP as Icosahedron, JY as ImageLayer, l_ as ImageMobject, fA as ImplicitFunction, gF as ImplicitSurface, wU as Indicate, SF as InstancedMobject, wM as Integer, lI as IntegerMatrix, nL as IntegerTable, hE as InteractiveScene, Ak as Intersection, xd as LARGE_BUFF, jd as LEFT, Wu as LIGHT, Sl as LIGHTER_GRAY, Ou as LIGHT_BROWN, Cl as LIGHT_GRAY, Eu as LIGHT_PINK, rk as Label, qk as LabeledArrow, Jk as LabeledDot, Kk as LabeledLine, Xk as LabeledPolygram, pH as LaggedStart, IH as LaggedStartMap, QO as LargeDot, DH as LetterSpacing, gE as Lighting, rD as Line, RP as Line3D, cd as LineJointType, lA as LinearBase, dD as LinearTransformationScene, uA as LogBase, cz as LottieMobject, Au as MANIM_BACKGROUND, vu as MAROON, pu as MAROON_A, mu as MAROON_B, hu as MAROON_C, gu as MAROON_D, _u as MAROON_E, Gu as MEDIUM, bd as MED_LARGE_BUFF, yd as MED_SMALL_BUFF, LM as MONOKAI_COLOR_SCHEME, Zz as MandelbrotSet, ZI as ManimBanner, rK as ManimColor, xJ as ManimSceneElement, xO as MappingCamera, XM as MarkdownText, eM as MarkupText, bB as MasterTimeline, eL as MathTable, oM as MathTex, ZC as MathTexImage, qM as MathTexPart, sM as MathTexSVG, bM as MathTypst, cI as Matrix, _W as MatrixTracker, XD as MidiInput, up as Mobject, Oz as Mobject1D, kz as Mobject2D, aj as Mobject3D, dI as MobjectMatrix, tL as MobjectTable, HF as ModelMobject, hB as MoleculeMobject, aW as MovablePoint, UV as MoveAlongPath, vT as MoveToTarget, zV as MoveToTargetPosition, vO as MovingCamera, ZE as MovingCameraScene, bO as MultiCamera, AK as Munits, Vu as NORMAL, YY as NeuralNetwork, UY as NeuralNetworkLayer, tB as NewtonFractal, IT as NullRenderer, Zk as NumberLine, dA as NumberPlane, ed as OBLIQUE, Du as ORANGE, Fd as ORIGIN, Nd as OUT, FP as Octahedron, VE as OrbitControls, Tz as PGroup, ju as PI, Tu as PINK, s_ as PMobject, Ml as PURE_BLUE, Kl as PURE_GREEN, du as PURE_RED, wu as PURPLE, yu as PURPLE_A, bu as PURPLE_B, xu as PURPLE_C, Su as PURPLE_D, Cu as PURPLE_E, DW as PanZoomControls, Rj as Paragraph, hj as ParametricFunction, UP as ParametricSurface, Mz as ParticleSystem, kL as PatternVMobject, jO as Pentagon, MK as Percent, $V as PhaseFlow, Bz as PhysicsWorld, VN as PieChart, OK as Pixels, QU as PlaybackControls, WG as Player, BG as PlayerController, OG as PlayerUI, Dz as PointCloudDot, Ez as PointMobject, QM as PolarPlane, DO as Polygon, MO as Polygram, NP as Polyhedron, qY as PoolingLayer, _O as PostProcessingPipeline, JP as Prism, RU as Pulse, CG as QUALITY_PRESETS, fu as RED, ou as RED_A, su as RED_B, cu as RED_C, lu as RED_D, uu as RED_E, xG as RESOLUTION_PRESETS, iK as RGBA, Md as RIGHT, kN as RadarChart, cK as RandomColorGenerator, GE as Rectangle, kO as RegularPolygon, sk as RegularPolygram, gU as Remove, AI as RemoveTextLetterByLetter, FT as Renderer, gT as ReplacementTransform, nV as Restore, dk as RightAngle, AV as Rotate, bU as Rotating, ik as RoundedRectangle, ad as SCALE_FACTOR_PER_FONT_POINT, Ku as SEMIBOLD, Xu as SEMILIGHT, vd as SMALL_BUFF, od as START_X, sd as START_Y, WL as SVGMobject, oB as SampleSpace, IR as SankeyDiagram, MR as SankeyLink, jR as SankeyNode, NV as Scale, cA as ScaleBase, QB as ScaleInPlace, dP as ScatterPlot, pE as Scene, ZT as SceneStateManager, bz as ScreenRectangle, zO as Sector, mE as SelectionManager, iB as ShaderMobject, LV as Shift, WU as ShowCreationThenDestruction, UI as ShowIncreasingSubsets, GI as ShowPartial, MU as ShowPassingFlash, BU as ShowPassingFlashWithThinningStrokeWidth, qI as ShowSubmobjectsOneByOne, eV as ShrinkToCenter, KM as SingleStringMathTex, dW as Slider, ZO as SmallDot, QV as SmoothedVectorizedHomotopy, dJ as SpecialThreeDScene, DP as Sphere, uH as SpinInFromNothing, YI as SpiralIn, SO as SplitScreenCamera, Kz as SpringConstraint, KE as Square, iN as StackedBarChart, ak as Star, TW as StateMachine, Ck as StealthTip, yN as StepChart, EP as StreamLines, PH as Succession, HP as Surface, HP as Surface3D, WP as SurfacePresets, ek as SurroundingRectangle, qB as Swap, Mu as TAU, Bl as TEAL, Fl as TEAL_A, Il as TEAL_B, Ll as TEAL_C, Rl as TEAL_D, zl as TEAL_E, Uu as THIN, Ja as THREE, $I as Table, pk as TangentLine, KO as TangentialArc, PP as Tetrahedron, cM as Tex, Ed as TexFontTemplates, wd as TexTemplate, Dd as TexTemplateLibrary, Uw as Text, bw as TextGlyphGroup, Fj as TextOnPath, GP as TexturedSurface, qP as ThreeDAxes, yO as ThreeDCamera, WE as ThreeDScene, XP as ThreeDVMobject, WT as Timeline, NO as TipableVMobject, YM as Title, MP as Torus, tU as TracedPath, mT as Transform, oV as TransformAnimations, VB as TransformFromCopy, cV as TransformMatchingAbstractBase, SV as TransformMatchingCode, hV as TransformMatchingShapes, vV as TransformMatchingTex, ZN as Treemap, OO as Triangle, II as TypeWithCursor, yM as Typst, Id as UL, Qu as ULTRABOLD, Ju as ULTRAHEAVY, Yu as ULTRALIGHT, kd as UP, Ld as UR, SI as Uncreate, tk as Underline, kk as Union, Qk as UnitInterval, RI as UntypeWithCursor, EI as Unwrite, zH as UpdateFromAlphaFunc, LH as UpdateFromFunc, MT as VDict, B as VGroup, KA as VIRIDIS, z as VMobject, UL as VMobjectFromSVGPath, EM as ValueTracker, jM as Variable, lD as Vector, BP as Vector3D, bP as VectorField, gj as VectorFieldVector, uD as VectorScene, NT as VectorizedPoint, FW as VideoExporter, tz as VideoMobject, gP as ViolinPlot, CD as Voiceover, wD as VoiceoverScene, hl as WHITE, vU as Wait, jN as WaterfallChart, TH as WaveLetters, ZW as WebCodecsExporter, gD as WebSpeechSynthesizer, AU as Wiggle, YU as WiggleOutThenIn, wI as Write, Pu as X_AXIS, $l as YELLOW, Jl as YELLOW_A, Yl as YELLOW_B, Xl as YELLOW_C, Zl as YELLOW_D, Ql as YELLOW_E, Fu as Y_AXIS, Iu as Z_AXIS, YE as ZoomDisplayPopOut, XE as ZoomedScene, hU as add, kI as addTextLetterByLetter, HI as addTextWordByWord, Jd as addVec, uK as adjacentNTuples, dK as adjacentPairs, Nj as alignmentToOffset, bK as allElementsAreInstances, CW as allOf, WH as always, HH as alwaysRedraw, JH as alwaysRotate, qH as alwaysShift, GK as angleAxisFromQuaternion, $K as angleBetweenVectors, QK as angleOfVector, iU as animatedBoundary, UT as animationGroup, uO as announceMobject, wW as anyOf, op as applyBlendMode, MB as applyComplexFunction, AB as applyFunction, IB as applyMatrix, bW as applyMatrixLive, PB as applyMethod, MF as applyObjMaterials, EV as applyPointwiseFunction, kV as applyPointwiseFunctionToCenter, fE as applyReducedMotion, FU as applyWave, OC as areKatexStylesLoaded, GH as assertIsMobjectMethod, rO as attachCaptionTrack, EA as averageColor, eX as backwardPass, iI as batch, vB as benzene, Fq as bezier, Rq as bezierRemap, Tq as binarySearch, wR as binaryTree, oI as bindSignalToTracker, cY as bindStateToUrl, ER as bipartiteGraph, ap as blendModeToThree, UU as blink, _N as boxSummary, CU as broadcast, GY as buildFeatureMapStack, ww as buildStyledTextLines, fq as cartesianToSpherical, oq as centerOfMass, eU as changeDecimalToValue, lU as changeSpeed, $H as changingDecimal, Eq as choose, $W as chooseVideoExporterStrategy, $N as chordMatrixFromFlows, kU as circumscribe, TT as clearAnimationOverrides, Dq as clip, Cq as clockwisePath, WB as clockwiseTransform, wh as colorGradient, bA as colorToIntRgb, xA as colorToIntRgba, LA as colorToOklab, VA as colorToOklch, vA as colorToRgb, yA as colorToRgba, tq as compassDirections, bR as completeGraph, aq as complexFuncToR3Func, tH as complexHomotopy, rq as complexToR3, AM as complexValueTracker, xg as compose, tP as computeChordLayout, qL as computeCircularLayout, jj as computeGlyphPlacements, KL as computeLayout, kR as computeSankeyLayout, BN as computeSliceGeometry, YN as computeTreemapLayout, xK as concatenateLists, wq as counterclockwisePath, KB as counterclockwiseTransform, pB as cpkColor, yI as create, nI as createComputed, lB as createDiceRow, rI as createEffect, Cz as createFadeToBlack, wz as createFadeToWhite, NW as createGifExporter, sO as createLiveRegion, tI as createSignal, IW as createVideoExporter, QW as createWebCodecsExporter, Zd as cross, Zd as crossVec, VK as cross2d, Qh as cubicBezier, XH as cycleAnimation, nN as cycleColor, xR as cycleGraph, ZB as cyclicReplace, eY as decodeStateFromHash, mY as defineParametrizedScene, DF as deriveBasePath, kF as deriveMtlUrl, cO as describeMobject, KT as deserializeMobject, JJ as deserializeScene, KJ as deserializeSceneMobject, IF as detectModelFormat, Fk as difference, Xd as dotVec, vg as doubleSmooth, JW as downloadBlob, xI as drawBorderThenFill, xm as earclipTriangulation, $h as ease, sg as easeIn, sg as easeInCubic, Qg as easeInBack, eg as easeInBezier, mg as easeInBounce, Kg as easeInCirc, r_ as easeInElastic, dg as easeInExpo, og as easeInOut, og as easeInOutCubic, e_ as easeInOutBack, ng as easeInOutBezier, o_ as easeInOutBounce, Jg as easeInOutCirc, a_ as easeInOutElastic, Gg as easeInOutExpo, Rg as easeInOutQuad, Vg as easeInOutQuart, Wg as easeInOutQuint, Lg as easeInOutSine, lg as easeInQuad, zg as easeInQuart, Hg as easeInQuint, Fg as easeInSine, cg as easeOut, cg as easeOutCubic, $g as easeOutBack, tg as easeOutBezier, pg as easeOutBounce, qg as easeOutCirc, i_ as easeOutElastic, fg as easeOutExpo, ug as easeOutQuad, Bg as easeOutQuart, Ug as easeOutQuint, Ig as easeOutSine, ZY as edgePulse, dU as emphasizeRegion, $J as encodeStateToHash, EC as ensureKatexStyles, SY as equirectangular, yB as ethanol, Ik as exclusion, jg as exponentialDecay, YW as exportAndDownloadPNG, dG as exportAndDownloadSVG, vG as exportAndDownloadSlidesToPDF, GW as exportFramePNG, qW as exportPNGSequence, uG as exportSVG, _G as exportSlidesToPDF, bG as exportSlidesToPPTX, fN as extent, bY as exteriorRings, NK as extractMobjectFamilyMembers, UH as fAlways, TB as fadeIn, _H as fadeInByLetter, xH as fadeInByWord, DB as fadeOut, aV as fadeToColor, RB as fadeTransform, BB as fadeTransformPieces, lq as findIntersection, DU as flash, LU as focusOn, cR as forceDirectedLayout, QD as formatVttTimestamp, $Y as forwardPass, vj as fourierCoefficients, Sj as fourierSeriesApproximation, rJ as get3dVmobEndCorner, tJ as get3dVmobEndCornerIndex, oJ as get3dVmobEndCornerUnitNormal, $q as get3dVmobGradientStartAndEndPoints, nJ as get3dVmobStartCorner, eJ as get3dVmobStartCornerIndex, aJ as get3dVmobStartCornerUnitNormal, iJ as get3dVmobUnitNormal, tp as getActiveTheme, CT as getAnimationOverride, fI as getDetText, XG as getFeatureFlags, cE as getReducedMotionRunTime, DJ as getSerializableTypes, EJ as getSerializer, lK as getShadedRgb, vh as getSmoothCubicBezierHandlePoints, bD as getSpeechSynthesizer, ep as getTheme, np as getThemeNames, eq as getUnitNormal, gq as getWindingNumber, MH as glitchIn, TR as gridGraph, aH as growArrow, IV as growFromCenter, sH as growFromEdge, lH as growFromPoint, wT as hasAnimationOverride, TK as hashObj, _A as hexToRgb, lN as histogramBins, eH as homotopy, AA as hsvToRgb, FK as indexLabels, TU as indicate, hh as integerInterpolate, kq as interpolate, TA as interpolateColor, WA as interpolateColorOklab, GA as interpolateColorOklch, Pk as intersection, jq as inverseInterpolate, wA as invertColor, cN as iqr, PD as isAudioAnalysisSupported, zq as isClosed, qG as isFeatureEnabled, UC as isMathJaxLoaded, qD as isMidiSupported, sE as isReducedMotionEnabled, mD as isSpeechSupported, mM as isTypstLoaded, KC as katexCanRender, gN as kde, fH as laggedStart, FH as laggedStartMap, Qd as lengthVec, cq as lineIntersection, ig as linear, uU as linearSpeedRamp, Ag as lingering, rf as linspace, pK as listDifferenceUpdate, mK as listUpdate, SK as listify, qf as logger, VH as maintainPositionRelativeTo, iW as makeClickable, eW as makeDraggable, gK as makeEven, wK as makeEvenByCycling, nW as makeHoverable, vW as makeMatrixTracker, cW as makeMovablePoint, OW as makePanZoomControls, pW as makeSlider, hJ as manimElementInternals, hF as marchingCubes, ij as marchingSquares, xB as masterTimeline, Mq as matchInterpolate, pI as matrixToMobject, mI as matrixToTexString, aN as mean, CY as mercator, _B as methane, Aq as mid, sq as midpoint, WV as moveAlongPath, yT as moveToTarget, BV as moveToTargetPosition, pN as niceAxisRange, BK as normSquared, HK as normalize, fB as normalizeElement, $d as normalizeVec, kg as notQuiteThere, RA as oklabToColor, zA as oklabToOklch, HA as oklchToColor, BA as oklchToOklab, Wf as onLog, aY as onUrlStateChange, xj as orderCoefficients, DR as orientPoint, nf as orientation2D, tf as orthonormalFrame, ST as overrideAnimate, xT as overrideAnimation, pD as parseBookmarks, xL as parsePatternDefs, AC as parseSVGPathData, mh as partialBezierPoints, bj as partialSum, Sq as pathAlongArc, xq as pathAlongCircles, SR as pathGraph, qz as pendulum, mq as perpendicularBisector, rH as phaseFlow, pj as phasePortraitColor, Xq as pointLiesOnBezier, yK as powerset, aE as prefersReducedMotion, WC as preloadMathJax, hM as preloadTypst, ET as prepareAnimation, IK as printFamily, Yq as proportionsAlongBezierCurveForPoint, gY as propsFromUrl, zU as pulse, TG as qualityToBitrate, sN as quantile, KK as quaternionConjugate, WK as quaternionFromAngleAxis, UK as quaternionMult, iq as r3ToComplex, kA as randomBrightColor, OA as randomColor, XL as randomSpringPositions, iY as readStateFromUrl, yj as reconstructSample, dE as reducedRunTime, fJ as registerFont, SJ as registerManimElement, wJ as registerSerializableMobject, Qf as registerTheme, nq as regularVertices, _U as remove, fK as removeListRedundancies, CK as removeNones, jI as removeTextLetterByLetter, GC as renderLatexToSVG, yY as renderParametrized, _M as renderTypstToSVG, _T as replacementTransform, YG as resetFeatureFlags, lE as resetReducedMotion, rp as resetThemes, Lz as resolveBounds, Rz as resolveCircleCircle, VY as resolveEdgeStyle, mH as resolveGlyphs, BY as resolveNodeStyle, SL as resolvePatternFill, hY as resolveProps, EG as resolveResolution, rV as restore, $T as restoreMobjectState, PK as restructureListToExcludeCertainFamilyMembers, bg as reverse, SA as rgbToColor, gA as rgbToHex, jA as rgbToHsv, CA as rgbaToColor, SH as riseByLetter, jV as rotate, XK as rotateVector, xU as rotating, JK as rotationAboutZ, qK as rotationMatrix, YK as rotationMatrixTranspose, Dg as runningStart, _g as rushFrom, gg as rushInto, fU as rushRegion, YA as sampleColormap, Aj as sampledPathFromFunction, kj as sampledPathFromPoints, QT as saveMobjectState, PV as scale, $B as scaleInPlace, wH as scalePopByLetter, qd as scaleVec, lG as sceneToSVG, GT as serializeMobject, qJ as serializeScene, GJ as serializeSceneMobject, JG as setFeatureFlags, gz as setGifDecoder, wC as setKatexStylesheetUrl, rz as setLottiePlayerFactory, BC as setMathJaxScriptUrl, FF as setModelLoaderFactory, wF as setMtlLoaderFactory, pO as setPostProcessingModules, mO as setPostProcessingModulesLoader, oE as setReducedMotion, yD as setSpeechSynthesizer, $f as setTheme, fM as setTypstCompiler, RV as shift, uq as shoelace, dq as shoelaceDirection, uE as shouldReduceMotion, GU as showCreationThenDestruction, WI as showIncreasingSubsets, KI as showPartial, NU as showPassingFlash, VU as showPassingFlashWithThinningStrokeWidth, JI as showSubmobjectsOneByOne, tV as shrinkToCenter, Oq as sigmoid, hN as silvermanBandwidth, qR as sketch, wg as slowInto, ag as smooth, pU as smoothSpeedCurve, nH as smoothedVectorizedHomotopy, Pg as smoothererstep, Ng as smootherstep, Mg as smoothstep, XT as snapshotFromJSON, YT as snapshotToJSON, pq as sphericalToCartesian, dH as spinInFromNothing, XI as spiralIn, Iq as splitBezier, kH as spreadOut, Uh as spring, Jz as springChain, YL as springForceConstant, ZL as springLayoutStep, KN as squarify, Tg as squishRateFunc, CR as starGraph, JT as stateFromJSON, qT as stateToJSON, oN as stdDev, yg as stepFunction, _P as stepVectorField, rg as steps, bq as straightPath, _K as stretchArrayToLength, Yd as subVec, Lq as subdivideBezier, NH as succession, GL as svgMobject, PC as svgToVMobjects, JB as swap, KP as texturedSphere, hg as thereAndBack, Eg as thereAndBackWithPause, hq as thickDiagonal, rN as toColorList, nU as tracedPath, sI as trackerToSignal, OH as tracking, hT as transform, sV as transformAnimations, HB as transformFromCopy, CV as transformMatchingCode, gV as transformMatchingShapes, yV as transformMatchingTex, UN as treemapNodeValue, hK as tuplify, YH as turnAnimationIntoUpdater, gH as typeOn, LI as typeWithCursor, CI as uncreate, Nk as union, vK as uniqChain, ef as unitPerpendicularTo, TJ as unregisterSerializableMobject, aI as untrack, zI as untypeWithCursor, DI as unwrite, BH as updateFromAlphaFunc, RH as updateFromFunc, XA as valueToColor, kM as valueTracker, Mj as visibleGlyphChars, tO as voiceoverToVTT, yU as wait, gB as water, EH as waveLetters, SW as when, jU as wiggle, XU as wiggleOutThenIn, Og as wiggleRate, ez as withDropShadow, TI as write, rY as writeStateToUrl, ZK as zToVector };
|
|
85780
|
+
export { mU as Add, OI as AddTextLetterByLetter, VI as AddTextWordByWord, uk as Angle, DT as AnimateProxy, rU as AnimatedBoundary, vz as AnimatedImageMobject, V as Animation, HT as AnimationGroup, Yk as AnnotationDot, RO as AnnularSector, LO as Annulus, jB as ApplyComplexFunction, kB as ApplyFunction, FB as ApplyMatrix, NB as ApplyMethod, TV as ApplyPointwiseFunction, OV as ApplyPointwiseFunctionToCenter, PU as ApplyWave, PO as Arc, FO as ArcBetweenPoints, sL as ArcBrace, BO as ArcPolygon, UO as ArcPolygonFromArcs, vN as AreaChart, lO as AriaNarrator, sD as Arrow, zP as Arrow3D, bk as ArrowCircleFilledTip, yk as ArrowCircleTip, Sk as ArrowSquareFilledTip, xk as ArrowSquareTip, gk as ArrowTip, vk as ArrowTriangleFilledTip, _k as ArrowTriangleTip, xP as ArrowVectorField, ID as AudioAnalyzer, eE as AudioManager, sA as Axes, xl as BLACK, ip as BLEND_MODES, Nl as BLUE, Dl as BLUE_A, Ol as BLUE_B, kl as BLUE_C, Al as BLUE_D, jl as BLUE_E, Hu as BOLD, Zu as BOOK, $O as BackgroundRectangle, eN as BarChart, HU as Blink, Iz as Body, Tk as BooleanResult, kP as Box3D, pP as BoxPlot, aL as Brace, oL as BraceBetweenPoints, cL as BraceLabel, lL as BraceText, SU as Broadcast, JM as BulletedList, JA as COOLWARM, dB as CPK_COLORS, TN as CalendarHeatmap, zT as Camera2D, LT as Camera2DFrame, RT as Camera3D, TO as CameraAnimateProxy, CO as CameraFrame, DN as CandlestickChart, ld as CapStyleType, QH as ChangeDecimalToValue, cU as ChangeSpeed, ZH as ChangingDecimal, oP as ChordArc, cP as ChordDiagram, sP as ChordRibbon, MY as ChoroplethMap, EO as Circle, OU as Circumscribe, rW as Clickable, UB as ClockwiseTransform, GM as Code, jY as ColorScale, ZV as ComplexHomotopy, ZM as ComplexPlane, OM as ComplexValueTracker, jP as Cone, sj as ContourPlot, ZU as Controls, lk as ConvexHull, uF as ConvexHull3D, QY as ConvolutionalLayer, GB as CounterclockwiseTransform, vI as Create, nk as Cross, OP as Cube, YO as CubicBezier, WO as CurvedArrow, GO as CurvedDoubleArrow, jT as CurvesAsSubmobjects, ck as Cutout, XB as CyclicReplace, AP as Cylinder, El as DARKER_GRAY, Pl as DARK_BLUE, ku as DARK_BROWN, Tl as DARK_GRAY, GY as DEFAULT_ACTIVATION_COLOR, fd as DEFAULT_ANIMATION_DURATION, Bu as DEFAULT_ARROW_TIP_LENGTH, yz as DEFAULT_ASPECT_RATIO, IM as DEFAULT_COLOR_SCHEME, zu as DEFAULT_DASH_LENGTH, Lu as DEFAULT_DOT_RADIUS, WY as DEFAULT_EDGE_STYLE, uB as DEFAULT_ELEMENT_COLOR, dd as DEFAULT_FONT_SIZE, _d as DEFAULT_FPS, md as DEFAULT_FRAME_HEIGHT, pd as DEFAULT_FRAME_WIDTH, Sd as DEFAULT_MOBJECT_TO_EDGE_BUFFER, Cd as DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, UY as DEFAULT_NODE_STYLE, gd as DEFAULT_PIXEL_HEIGHT, hd as DEFAULT_PIXEL_WIDTH, nd as DEFAULT_POINTWISE_FUNCTION_RUN_TIME, id as DEFAULT_POINT_DENSITY_1D, rd as DEFAULT_POINT_DENSITY_2D, tN as DEFAULT_SERIES_COLORS, Ru as DEFAULT_SMALL_DOT_RADIUS, JL as DEFAULT_SPRING_COOLING, ud as DEFAULT_STROKE_WIDTH, td as DEFAULT_WAIT_TIME, Nu as DEGREES, Rd as DL, Ad as DOWN, zd as DR, qO as DashedLine, JO as DashedVMobject, uI as DecimalMatrix, CM as DecimalNumber, rL as DecimalTable, FK as Degrees, yR as DiGraph, cB as DiceFace, jk as Difference, Gz as DistanceConstraint, LP as Dodecahedron, mj as DomainColoring, HN as DonutChart, XO as Dot, YP as Dot3D, cD as DoubleArrow, $U as Draggable, bI as DrawBorderThenFill, nX as EdgePulse, fk as Elbow, IO as Ellipse, Mk as Exclusion, NG as ExportSettingsPanel, OG as FPS_PRESETS, wB as FadeIn, EB as FadeOut, iV as FadeToColor, LB as FadeTransform, zB as FadeTransformPieces, XY as FeedForwardLayer, EU as Flash, IU as FocusOn, sR as ForceDirectedLayout, Tj as FourierEpicycles, Ej as FourierSeries, Sz as FullScreenFadeRectangle, xz as FullScreenRectangle, $k as FunctionGraph, bN as GITHUB_GREENS, au as GOLD, eu as GOLD_A, tu as GOLD_B, nu as GOLD_C, ru as GOLD_D, iu as GOLD_E, wl as GRAY, gl as GRAY_A, _l as GRAY_B, vl as GRAY_C, yl as GRAY_D, bl as GRAY_E, ql as GREEN, Vl as GREEN_A, Hl as GREEN_B, Ul as GREEN_C, Wl as GREEN_D, Gl as GREEN_E, LN as GanttChart, _R as GenericGraph, NY as GeoMap, RW as GifExporter, jH as GlitchIn, IY as Globe, vw as GlyphVMobject, _L as GradientVMobject, vR as Graph, PT as Group, iH as GrowArrow, FV as GrowFromCenter, oH as GrowFromEdge, cH as GrowFromPoint, xW as GuardBuilder, qu as HEAVY, dK as HSV, oj as HeatMap, AO as Hexagon, lP as Histogram, XV as Homotopy, tW as Hoverable, Pd as IN, qA as INFERNO, $u as ITALIC, IP as Icosahedron, eX as ImageLayer, l_ as ImageMobject, fA as ImplicitFunction, gF as ImplicitSurface, wU as Indicate, SF as InstancedMobject, wM as Integer, lI as IntegerMatrix, nL as IntegerTable, hE as InteractiveScene, Ak as Intersection, AW as KeyboardInput, xd as LARGE_BUFF, jd as LEFT, Wu as LIGHT, Sl as LIGHTER_GRAY, Ou as LIGHT_BROWN, Cl as LIGHT_GRAY, Eu as LIGHT_PINK, rk as Label, qk as LabeledArrow, Jk as LabeledDot, Kk as LabeledLine, Xk as LabeledPolygram, pH as LaggedStart, IH as LaggedStartMap, QO as LargeDot, DH as LetterSpacing, gE as Lighting, rD as Line, RP as Line3D, cd as LineJointType, lA as LinearBase, dD as LinearTransformationScene, uA as LogBase, cz as LottieMobject, Au as MANIM_BACKGROUND, vu as MAROON, pu as MAROON_A, mu as MAROON_B, hu as MAROON_C, gu as MAROON_D, _u as MAROON_E, Gu as MEDIUM, bd as MED_LARGE_BUFF, yd as MED_SMALL_BUFF, LM as MONOKAI_COLOR_SCHEME, Zz as MandelbrotSet, ZI as ManimBanner, lK as ManimColor, DJ as ManimSceneElement, xO as MappingCamera, XM as MarkdownText, eM as MarkupText, bB as MasterTimeline, eL as MathTable, oM as MathTex, ZC as MathTexImage, qM as MathTexPart, sM as MathTexSVG, bM as MathTypst, cI as Matrix, _W as MatrixTracker, XD as MidiInput, up as Mobject, Oz as Mobject1D, kz as Mobject2D, aj as Mobject3D, dI as MobjectMatrix, tL as MobjectTable, HF as ModelMobject, hB as MoleculeMobject, aW as MovablePoint, UV as MoveAlongPath, vT as MoveToTarget, zV as MoveToTargetPosition, vO as MovingCamera, ZE as MovingCameraScene, bO as MultiCamera, IK as Munits, Vu as NORMAL, tX as NeuralNetwork, YY as NeuralNetworkLayer, tB as NewtonFractal, IT as NullRenderer, Zk as NumberLine, dA as NumberPlane, ed as OBLIQUE, Du as ORANGE, Fd as ORIGIN, Nd as OUT, FP as Octahedron, VE as OrbitControls, Tz as PGroup, ju as PI, Tu as PINK, s_ as PMobject, Ml as PURE_BLUE, Kl as PURE_GREEN, du as PURE_RED, wu as PURPLE, yu as PURPLE_A, bu as PURPLE_B, xu as PURPLE_C, Su as PURPLE_D, Cu as PURPLE_E, NW as PanZoomControls, Rj as Paragraph, hj as ParametricFunction, UP as ParametricSurface, Mz as ParticleSystem, kL as PatternVMobject, jO as Pentagon, RK as Percent, $V as PhaseFlow, Bz as PhysicsWorld, VN as PieChart, PK as Pixels, QU as PlaybackControls, XG as Player, KG as PlayerController, PG as PlayerUI, Dz as PointCloudDot, Ez as PointMobject, QM as PolarPlane, DO as Polygon, MO as Polygram, NP as Polyhedron, $Y as PoolingLayer, _O as PostProcessingPipeline, JP as Prism, RU as Pulse, kG as QUALITY_PRESETS, fu as RED, ou as RED_A, su as RED_B, cu as RED_C, lu as RED_D, uu as RED_E, DG as RESOLUTION_PRESETS, uK as RGBA, Md as RIGHT, kN as RadarChart, mK as RandomColorGenerator, GE as Rectangle, kO as RegularPolygon, sk as RegularPolygram, gU as Remove, AI as RemoveTextLetterByLetter, FT as Renderer, gT as ReplacementTransform, nV as Restore, dk as RightAngle, AV as Rotate, bU as Rotating, ik as RoundedRectangle, ad as SCALE_FACTOR_PER_FONT_POINT, Ku as SEMIBOLD, Xu as SEMILIGHT, vd as SMALL_BUFF, od as START_X, sd as START_Y, WL as SVGMobject, oB as SampleSpace, IR as SankeyDiagram, MR as SankeyLink, jR as SankeyNode, NV as Scale, cA as ScaleBase, QB as ScaleInPlace, dP as ScatterPlot, pE as Scene, ZT as SceneStateManager, bz as ScreenRectangle, zO as Sector, mE as SelectionManager, iB as ShaderMobject, LV as Shift, WU as ShowCreationThenDestruction, UI as ShowIncreasingSubsets, GI as ShowPartial, MU as ShowPassingFlash, BU as ShowPassingFlashWithThinningStrokeWidth, qI as ShowSubmobjectsOneByOne, eV as ShrinkToCenter, KM as SingleStringMathTex, dW as Slider, ZO as SmallDot, QV as SmoothedVectorizedHomotopy, _J as SpecialThreeDScene, DP as Sphere, uH as SpinInFromNothing, YI as SpiralIn, SO as SplitScreenCamera, Kz as SpringConstraint, KE as Square, iN as StackedBarChart, ak as Star, TW as StateMachine, Ck as StealthTip, yN as StepChart, EP as StreamLines, PH as Succession, HP as Surface, HP as Surface3D, WP as SurfacePresets, ek as SurroundingRectangle, qB as Swap, Mu as TAU, Bl as TEAL, Fl as TEAL_A, Il as TEAL_B, Ll as TEAL_C, Rl as TEAL_D, zl as TEAL_E, Uu as THIN, Ja as THREE, $I as Table, pk as TangentLine, KO as TangentialArc, PP as Tetrahedron, cM as Tex, Ed as TexFontTemplates, wd as TexTemplate, Dd as TexTemplateLibrary, Uw as Text, bw as TextGlyphGroup, Fj as TextOnPath, GP as TexturedSurface, qP as ThreeDAxes, yO as ThreeDCamera, WE as ThreeDScene, XP as ThreeDVMobject, WT as Timeline, NO as TipableVMobject, YM as Title, MP as Torus, tU as TracedPath, mT as Transform, oV as TransformAnimations, VB as TransformFromCopy, cV as TransformMatchingAbstractBase, SV as TransformMatchingCode, hV as TransformMatchingShapes, vV as TransformMatchingTex, ZN as Treemap, OO as Triangle, II as TypeWithCursor, yM as Typst, Id as UL, Qu as ULTRABOLD, Ju as ULTRAHEAVY, Yu as ULTRALIGHT, kd as UP, Ld as UR, SI as Uncreate, tk as Underline, kk as Union, Qk as UnitInterval, RI as UntypeWithCursor, EI as Unwrite, zH as UpdateFromAlphaFunc, LH as UpdateFromFunc, MT as VDict, B as VGroup, KA as VIRIDIS, z as VMobject, UL as VMobjectFromSVGPath, EM as ValueTracker, jM as Variable, lD as Vector, BP as Vector3D, bP as VectorField, gj as VectorFieldVector, uD as VectorScene, NT as VectorizedPoint, VW as VideoExporter, tz as VideoMobject, gP as ViolinPlot, CD as Voiceover, wD as VoiceoverScene, hl as WHITE, vU as Wait, jN as WaterfallChart, TH as WaveLetters, rG as WebCodecsExporter, gD as WebSpeechSynthesizer, AU as Wiggle, YU as WiggleOutThenIn, wI as Write, Pu as X_AXIS, $l as YELLOW, Jl as YELLOW_A, Yl as YELLOW_B, Xl as YELLOW_C, Zl as YELLOW_D, Ql as YELLOW_E, Fu as Y_AXIS, Iu as Z_AXIS, YE as ZoomDisplayPopOut, XE as ZoomedScene, hU as add, kI as addTextLetterByLetter, HI as addTextWordByWord, Jd as addVec, gK as adjacentNTuples, _K as adjacentPairs, Nj as alignmentToOffset, EK as allElementsAreInstances, CW as allOf, WH as always, HH as alwaysRedraw, JH as alwaysRotate, qH as alwaysShift, ZK as angleAxisFromQuaternion, aq as angleBetweenVectors, iq as angleOfVector, iU as animatedBoundary, UT as animationGroup, uO as announceMobject, wW as anyOf, op as applyBlendMode, MB as applyComplexFunction, AB as applyFunction, IB as applyMatrix, bW as applyMatrixLive, PB as applyMethod, MF as applyObjMaterials, EV as applyPointwiseFunction, kV as applyPointwiseFunctionToCenter, fE as applyReducedMotion, FU as applyWave, OC as areKatexStylesLoaded, GH as assertIsMobjectMethod, rO as attachCaptionTrack, EA as averageColor, oX as backwardPass, iI as batch, vB as benzene, Vq as bezier, Wq as bezierRemap, jq as binarySearch, wR as binaryTree, oI as bindSignalToTracker, mY as bindStateToUrl, ER as bipartiteGraph, ap as blendModeToThree, UU as blink, _N as boxSummary, CU as broadcast, ZY as buildFeatureMapStack, ww as buildStyledTextLines, vq as cartesianToSpherical, fq as centerOfMass, eU as changeDecimalToValue, lU as changeSpeed, $H as changingDecimal, Mq as choose, aG as chooseVideoExporterStrategy, $N as chordMatrixFromFlows, kU as circumscribe, TT as clearAnimationOverrides, Nq as clip, kq as clockwisePath, WB as clockwiseTransform, wh as colorGradient, bA as colorToIntRgb, xA as colorToIntRgba, LA as colorToOklab, VA as colorToOklch, vA as colorToRgb, yA as colorToRgba, sq as compassDirections, bR as completeGraph, dq as complexFuncToR3Func, tH as complexHomotopy, lq as complexToR3, AM as complexValueTracker, xg as compose, tP as computeChordLayout, qL as computeCircularLayout, jj as computeGlyphPlacements, KL as computeLayout, kR as computeSankeyLayout, BN as computeSliceGeometry, YN as computeTreemapLayout, DK as concatenateLists, Aq as counterclockwisePath, KB as counterclockwiseTransform, pB as cpkColor, yI as create, nI as createComputed, lB as createDiceRow, rI as createEffect, Cz as createFadeToBlack, wz as createFadeToWhite, zW as createGifExporter, sO as createLiveRegion, tI as createSignal, HW as createVideoExporter, iG as createWebCodecsExporter, Zd as cross, Zd as crossVec, qK as cross2d, Qh as cubicBezier, XH as cycleAnimation, nN as cycleColor, xR as cycleGraph, ZB as cyclicReplace, oY as decodeStateFromHash, bY as defineParametrizedScene, DF as deriveBasePath, kF as deriveMtlUrl, cO as describeMobject, KT as deserializeMobject, eY as deserializeScene, QJ as deserializeSceneMobject, IF as detectModelFormat, Fk as difference, Xd as dotVec, vg as doubleSmooth, eG as downloadBlob, xI as drawBorderThenFill, xm as earclipTriangulation, $h as ease, sg as easeIn, sg as easeInCubic, Qg as easeInBack, eg as easeInBezier, mg as easeInBounce, Kg as easeInCirc, r_ as easeInElastic, dg as easeInExpo, og as easeInOut, og as easeInOutCubic, e_ as easeInOutBack, ng as easeInOutBezier, o_ as easeInOutBounce, Jg as easeInOutCirc, a_ as easeInOutElastic, Gg as easeInOutExpo, Rg as easeInOutQuad, Vg as easeInOutQuart, Wg as easeInOutQuint, Lg as easeInOutSine, lg as easeInQuad, zg as easeInQuart, Hg as easeInQuint, Fg as easeInSine, cg as easeOut, cg as easeOutCubic, $g as easeOutBack, tg as easeOutBezier, pg as easeOutBounce, qg as easeOutCirc, i_ as easeOutElastic, fg as easeOutExpo, ug as easeOutQuad, Bg as easeOutQuart, Ug as easeOutQuint, Ig as easeOutSine, rX as edgePulse, dU as emphasizeRegion, aY as encodeStateToHash, EC as ensureKatexStyles, OY as equirectangular, yB as ethanol, Ik as exclusion, jg as exponentialDecay, tG as exportAndDownloadPNG, _G as exportAndDownloadSVG, wG as exportAndDownloadSlidesToPDF, ZW as exportFramePNG, $W as exportPNGSequence, gG as exportSVG, CG as exportSlidesToPDF, EG as exportSlidesToPPTX, fN as extent, EY as exteriorRings, zK as extractMobjectFamilyMembers, UH as fAlways, TB as fadeIn, _H as fadeInByLetter, xH as fadeInByWord, DB as fadeOut, aV as fadeToColor, RB as fadeTransform, BB as fadeTransformPieces, hq as findIntersection, DU as flash, LU as focusOn, cR as forceDirectedLayout, QD as formatVttTimestamp, aX as forwardPass, vj as fourierCoefficients, Sj as fourierSeriesApproximation, lJ as get3dVmobEndCorner, sJ as get3dVmobEndCornerIndex, fJ as get3dVmobEndCornerUnitNormal, aJ as get3dVmobGradientStartAndEndPoints, cJ as get3dVmobStartCorner, oJ as get3dVmobStartCornerIndex, dJ as get3dVmobStartCornerUnitNormal, uJ as get3dVmobUnitNormal, tp as getActiveTheme, CT as getAnimationOverride, fI as getDetText, nK as getFeatureFlags, cE as getReducedMotionRunTime, NJ as getSerializableTypes, MJ as getSerializer, hK as getShadedRgb, vh as getSmoothCubicBezierHandlePoints, bD as getSpeechSynthesizer, ep as getTheme, np as getThemeNames, oq as getUnitNormal, Sq as getWindingNumber, MH as glitchIn, TR as gridGraph, aH as growArrow, IV as growFromCenter, sH as growFromEdge, lH as growFromPoint, wT as hasAnimationOverride, jK as hashObj, _A as hexToRgb, lN as histogramBins, eH as homotopy, AA as hsvToRgb, VK as indexLabels, TU as indicate, hh as integerInterpolate, Fq as interpolate, TA as interpolateColor, WA as interpolateColorOklab, GA as interpolateColorOklch, Pk as intersection, Lq as inverseInterpolate, wA as invertColor, cN as iqr, PD as isAudioAnalysisSupported, Gq as isClosed, $G as isFeatureEnabled, UC as isMathJaxLoaded, qD as isMidiSupported, sE as isReducedMotionEnabled, mD as isSpeechSupported, mM as isTypstLoaded, KC as katexCanRender, gN as kde, fH as laggedStart, FH as laggedStartMap, Qd as lengthVec, mq as lineIntersection, ig as linear, uU as linearSpeedRamp, Ag as lingering, rf as linspace, yK as listDifferenceUpdate, bK as listUpdate, OK as listify, qf as logger, VH as maintainPositionRelativeTo, iW as makeClickable, eW as makeDraggable, SK as makeEven, AK as makeEvenByCycling, nW as makeHoverable, jW as makeKeyboardInput, vW as makeMatrixTracker, cW as makeMovablePoint, PW as makePanZoomControls, pW as makeSlider, xJ as manimElementInternals, hF as marchingCubes, ij as marchingSquares, xB as masterTimeline, Rq as matchInterpolate, pI as matrixToMobject, mI as matrixToTexString, aN as mean, kY as mercator, _B as methane, Iq as mid, pq as midpoint, WV as moveAlongPath, yT as moveToTarget, BV as moveToTargetPosition, pN as niceAxisRange, KK as normSquared, JK as normalize, fB as normalizeElement, DW as normalizeKey, $d as normalizeVec, kg as notQuiteThere, RA as oklabToColor, zA as oklabToOklch, HA as oklchToColor, BA as oklchToOklab, Wf as onLog, dY as onUrlStateChange, xj as orderCoefficients, DR as orientPoint, nf as orientation2D, tf as orthonormalFrame, ST as overrideAnimate, xT as overrideAnimation, pD as parseBookmarks, xL as parsePatternDefs, AC as parseSVGPathData, mh as partialBezierPoints, bj as partialSum, Oq as pathAlongArc, Dq as pathAlongCircles, SR as pathGraph, qz as pendulum, bq as perpendicularBisector, rH as phaseFlow, pj as phasePortraitColor, nJ as pointLiesOnBezier, TK as powerset, aE as prefersReducedMotion, WC as preloadMathJax, hM as preloadTypst, ET as prepareAnimation, HK as printFamily, tJ as proportionsAlongBezierCurveForPoint, SY as propsFromUrl, zU as pulse, jG as qualityToBitrate, sN as quantile, QK as quaternionConjugate, XK as quaternionFromAngleAxis, YK as quaternionMult, uq as r3ToComplex, kA as randomBrightColor, OA as randomColor, XL as randomSpringPositions, uY as readStateFromUrl, yj as reconstructSample, dE as reducedRunTime, vJ as registerFont, OJ as registerManimElement, AJ as registerSerializableMobject, Qf as registerTheme, cq as regularVertices, _U as remove, vK as removeListRedundancies, kK as removeNones, jI as removeTextLetterByLetter, GC as renderLatexToSVG, TY as renderParametrized, _M as renderTypstToSVG, _T as replacementTransform, tK as resetFeatureFlags, lE as resetReducedMotion, rp as resetThemes, Lz as resolveBounds, Rz as resolveCircleCircle, qY as resolveEdgeStyle, mH as resolveGlyphs, KY as resolveNodeStyle, SL as resolvePatternFill, xY as resolveProps, MG as resolveResolution, rV as restore, $T as restoreMobjectState, BK as restructureListToExcludeCertainFamilyMembers, bg as reverse, SA as rgbToColor, gA as rgbToHex, jA as rgbToHsv, CA as rgbaToColor, SH as riseByLetter, jV as rotate, nq as rotateVector, xU as rotating, eq as rotationAboutZ, $K as rotationMatrix, tq as rotationMatrixTranspose, Dg as runningStart, _g as rushFrom, gg as rushInto, fU as rushRegion, YA as sampleColormap, Aj as sampledPathFromFunction, kj as sampledPathFromPoints, QT as saveMobjectState, PV as scale, $B as scaleInPlace, wH as scalePopByLetter, qd as scaleVec, hG as sceneToSVG, GT as serializeMobject, $J as serializeScene, ZJ as serializeSceneMobject, eK as setFeatureFlags, gz as setGifDecoder, wC as setKatexStylesheetUrl, rz as setLottiePlayerFactory, BC as setMathJaxScriptUrl, FF as setModelLoaderFactory, wF as setMtlLoaderFactory, pO as setPostProcessingModules, mO as setPostProcessingModulesLoader, oE as setReducedMotion, yD as setSpeechSynthesizer, $f as setTheme, fM as setTypstCompiler, RV as shift, gq as shoelace, _q as shoelaceDirection, uE as shouldReduceMotion, GU as showCreationThenDestruction, WI as showIncreasingSubsets, KI as showPartial, NU as showPassingFlash, VU as showPassingFlashWithThinningStrokeWidth, JI as showSubmobjectsOneByOne, tV as shrinkToCenter, Pq as sigmoid, hN as silvermanBandwidth, qR as sketch, wg as slowInto, ag as smooth, pU as smoothSpeedCurve, nH as smoothedVectorizedHomotopy, Pg as smoothererstep, Ng as smootherstep, Mg as smoothstep, XT as snapshotFromJSON, YT as snapshotToJSON, yq as sphericalToCartesian, dH as spinInFromNothing, XI as spiralIn, Hq as splitBezier, kH as spreadOut, Uh as spring, Jz as springChain, YL as springForceConstant, ZL as springLayoutStep, KN as squarify, Tg as squishRateFunc, CR as starGraph, JT as stateFromJSON, qT as stateToJSON, oN as stdDev, yg as stepFunction, _P as stepVectorField, rg as steps, Eq as straightPath, CK as stretchArrayToLength, Yd as subVec, Uq as subdivideBezier, NH as succession, GL as svgMobject, PC as svgToVMobjects, JB as swap, KP as texturedSphere, hg as thereAndBack, Eg as thereAndBackWithPause, xq as thickDiagonal, rN as toColorList, nU as tracedPath, sI as trackerToSignal, OH as tracking, hT as transform, sV as transformAnimations, HB as transformFromCopy, CV as transformMatchingCode, gV as transformMatchingShapes, yV as transformMatchingTex, UN as treemapNodeValue, xK as tuplify, YH as turnAnimationIntoUpdater, gH as typeOn, LI as typeWithCursor, CI as uncreate, Nk as union, wK as uniqChain, ef as unitPerpendicularTo, jJ as unregisterSerializableMobject, aI as untrack, zI as untypeWithCursor, DI as unwrite, BH as updateFromAlphaFunc, RH as updateFromFunc, XA as valueToColor, kM as valueTracker, Mj as visibleGlyphChars, tO as voiceoverToVTT, yU as wait, gB as water, EH as waveLetters, SW as when, jU as wiggle, XU as wiggleOutThenIn, Og as wiggleRate, ez as withDropShadow, TI as write, lY as writeStateToUrl, rq as zToVector };
|