manim-web 0.30.0 → 0.32.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 +2 -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/GamepadInput.d.ts +273 -0
- package/dist/interaction/GamepadInput.d.ts.map +1 -0
- package/dist/interaction/KeyboardInput.d.ts +210 -0
- package/dist/interaction/KeyboardInput.d.ts.map +1 -0
- package/dist/interaction/index.d.ts +2 -0
- package/dist/interaction/index.d.ts.map +1 -1
- package/dist/manim-web.browser.js +928 -572
- package/dist/{src-BGT84Qli.js → src-CaFgSOIB.js} +913 -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(() => qW);
|
|
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(() => ZW), 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,369 @@ 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
|
+
}
|
|
81602
|
+
//#endregion
|
|
81603
|
+
//#region src/interaction/GamepadInput.ts
|
|
81604
|
+
var MW = {
|
|
81605
|
+
A: 0,
|
|
81606
|
+
B: 1,
|
|
81607
|
+
X: 2,
|
|
81608
|
+
Y: 3,
|
|
81609
|
+
LB: 4,
|
|
81610
|
+
RB: 5,
|
|
81611
|
+
LT: 6,
|
|
81612
|
+
RT: 7,
|
|
81613
|
+
select: 8,
|
|
81614
|
+
start: 9,
|
|
81615
|
+
L3: 10,
|
|
81616
|
+
R3: 11,
|
|
81617
|
+
dpadUp: 12,
|
|
81618
|
+
dpadDown: 13,
|
|
81619
|
+
dpadLeft: 14,
|
|
81620
|
+
dpadRight: 15,
|
|
81621
|
+
guide: 16
|
|
81622
|
+
}, NW = {
|
|
81623
|
+
leftX: 0,
|
|
81624
|
+
leftY: 1,
|
|
81625
|
+
rightX: 2,
|
|
81626
|
+
rightY: 3
|
|
81627
|
+
}, PW = {
|
|
81628
|
+
cross: "A",
|
|
81629
|
+
circle: "B",
|
|
81630
|
+
square: "X",
|
|
81631
|
+
triangle: "Y",
|
|
81632
|
+
l1: "LB",
|
|
81633
|
+
r1: "RB",
|
|
81634
|
+
l2: "LT",
|
|
81635
|
+
r2: "RT",
|
|
81636
|
+
back: "select",
|
|
81637
|
+
view: "select",
|
|
81638
|
+
menu: "start",
|
|
81639
|
+
home: "guide",
|
|
81640
|
+
up: "dpadUp",
|
|
81641
|
+
down: "dpadDown",
|
|
81642
|
+
left: "dpadLeft",
|
|
81643
|
+
right: "dpadRight"
|
|
81644
|
+
}, FW = Object.fromEntries(Object.entries(MW).map(([e, t]) => [e.toLowerCase(), t]));
|
|
81645
|
+
function IW(e) {
|
|
81646
|
+
if (typeof e == "number") return e;
|
|
81647
|
+
let t = e.toLowerCase(), n = PW[t];
|
|
81648
|
+
return n ? MW[n] : FW[t] ?? -1;
|
|
81649
|
+
}
|
|
81650
|
+
function LW(e) {
|
|
81651
|
+
return e || (typeof navigator < "u" && typeof navigator.getGamepads == "function" ? () => navigator.getGamepads() : null);
|
|
81652
|
+
}
|
|
81653
|
+
function RW(e) {
|
|
81654
|
+
return e || (typeof window < "u" && typeof window.addEventListener == "function" ? window : null);
|
|
81655
|
+
}
|
|
81656
|
+
function zW() {
|
|
81657
|
+
return LW() !== null;
|
|
81658
|
+
}
|
|
81659
|
+
var BW = class {
|
|
81660
|
+
_getGamepads;
|
|
81661
|
+
_eventTarget;
|
|
81662
|
+
_gamepadIndex;
|
|
81663
|
+
_deadzone;
|
|
81664
|
+
_down = /* @__PURE__ */ new Set();
|
|
81665
|
+
_pressed = /* @__PURE__ */ new Set();
|
|
81666
|
+
_released = /* @__PURE__ */ new Set();
|
|
81667
|
+
_axes = [];
|
|
81668
|
+
_buttonValues = [];
|
|
81669
|
+
_downCallbacks = /* @__PURE__ */ new Map();
|
|
81670
|
+
_upCallbacks = /* @__PURE__ */ new Map();
|
|
81671
|
+
_enabled = !1;
|
|
81672
|
+
_onConnect;
|
|
81673
|
+
_onDisconnect;
|
|
81674
|
+
constructor(e = {}, t, n) {
|
|
81675
|
+
this._getGamepads = LW(t), this._eventTarget = RW(n), this._gamepadIndex = e.gamepadIndex, this._deadzone = e.deadzone ?? .1, this._onConnect = this._handleConnect.bind(this), this._onDisconnect = this._handleDisconnect.bind(this), (e.autoEnable ?? !0) && this.enable();
|
|
81676
|
+
}
|
|
81677
|
+
get isEnabled() {
|
|
81678
|
+
return this._enabled;
|
|
81679
|
+
}
|
|
81680
|
+
get hasSource() {
|
|
81681
|
+
return this._getGamepads !== null;
|
|
81682
|
+
}
|
|
81683
|
+
get hasTarget() {
|
|
81684
|
+
return this._eventTarget !== null;
|
|
81685
|
+
}
|
|
81686
|
+
enable() {
|
|
81687
|
+
this._enabled ||= (this._eventTarget && (this._eventTarget.addEventListener("gamepadconnected", this._onConnect), this._eventTarget.addEventListener("gamepaddisconnected", this._onDisconnect)), !0);
|
|
81688
|
+
}
|
|
81689
|
+
disable() {
|
|
81690
|
+
this._eventTarget && (this._eventTarget.removeEventListener("gamepadconnected", this._onConnect), this._eventTarget.removeEventListener("gamepaddisconnected", this._onDisconnect)), this._enabled = !1, this.clear();
|
|
81691
|
+
}
|
|
81692
|
+
dispose() {
|
|
81693
|
+
this.disable(), this._downCallbacks.clear(), this._upCallbacks.clear();
|
|
81694
|
+
}
|
|
81695
|
+
clear() {
|
|
81696
|
+
this._down.clear(), this._pressed.clear(), this._released.clear(), this._axes = [], this._buttonValues = [];
|
|
81697
|
+
}
|
|
81698
|
+
poll() {
|
|
81699
|
+
this._pressed.clear(), this._released.clear();
|
|
81700
|
+
let e = this._readActivePad();
|
|
81701
|
+
if (!e) {
|
|
81702
|
+
this._releaseAll(), this._axes = [], this._buttonValues = [];
|
|
81703
|
+
return;
|
|
81704
|
+
}
|
|
81705
|
+
let t = e.buttons;
|
|
81706
|
+
for (let n = 0; n < t.length; n += 1) {
|
|
81707
|
+
let r = t[n]?.pressed ?? !1, i = this._down.has(n);
|
|
81708
|
+
r && !i ? (this._down.add(n), this._pressed.add(n), this._emit(this._downCallbacks, n, e)) : !r && i && (this._down.delete(n), this._released.add(n), this._emit(this._upCallbacks, n, e));
|
|
81709
|
+
}
|
|
81710
|
+
for (let n of [...this._down]) n >= t.length && (this._down.delete(n), this._released.add(n), this._emit(this._upCallbacks, n, e));
|
|
81711
|
+
this._axes = [...e.axes], this._buttonValues = t.map((e) => e?.value ?? 0);
|
|
81712
|
+
}
|
|
81713
|
+
update(e = 0) {
|
|
81714
|
+
this.poll();
|
|
81715
|
+
}
|
|
81716
|
+
isButtonDown(e) {
|
|
81717
|
+
let t = IW(e);
|
|
81718
|
+
return t >= 0 && this._down.has(t);
|
|
81719
|
+
}
|
|
81720
|
+
anyButtonDown() {
|
|
81721
|
+
return this._down.size > 0;
|
|
81722
|
+
}
|
|
81723
|
+
wasButtonPressed(e) {
|
|
81724
|
+
let t = IW(e);
|
|
81725
|
+
return t >= 0 && this._pressed.has(t);
|
|
81726
|
+
}
|
|
81727
|
+
wasButtonReleased(e) {
|
|
81728
|
+
let t = IW(e);
|
|
81729
|
+
return t >= 0 && this._released.has(t);
|
|
81730
|
+
}
|
|
81731
|
+
getButtonValue(e) {
|
|
81732
|
+
let t = IW(e);
|
|
81733
|
+
return t < 0 ? 0 : this._buttonValues[t] ?? 0;
|
|
81734
|
+
}
|
|
81735
|
+
getAxis(e, t = this._deadzone) {
|
|
81736
|
+
return this._applyDeadzone(this._axes[e] ?? 0, t);
|
|
81737
|
+
}
|
|
81738
|
+
getLeftStick() {
|
|
81739
|
+
return [this.getAxis(NW.leftX), 0 - this.getAxis(NW.leftY)];
|
|
81740
|
+
}
|
|
81741
|
+
getRightStick() {
|
|
81742
|
+
return [this.getAxis(NW.rightX), 0 - this.getAxis(NW.rightY)];
|
|
81743
|
+
}
|
|
81744
|
+
getDirectionVector() {
|
|
81745
|
+
let e = !!this.isButtonDown("dpadRight") - +!!this.isButtonDown("dpadLeft"), t = !!this.isButtonDown("dpadUp") - +!!this.isButtonDown("dpadDown");
|
|
81746
|
+
if (e !== 0 || t !== 0) return VW(e, t);
|
|
81747
|
+
let [n, r] = this.getLeftStick();
|
|
81748
|
+
return VW(n, r);
|
|
81749
|
+
}
|
|
81750
|
+
getConnectedGamepads() {
|
|
81751
|
+
if (!this._getGamepads) return [];
|
|
81752
|
+
try {
|
|
81753
|
+
return [...this._getGamepads()].filter((e) => e != null && (e.connected ?? !0));
|
|
81754
|
+
} catch {
|
|
81755
|
+
return [];
|
|
81756
|
+
}
|
|
81757
|
+
}
|
|
81758
|
+
onButtonDown(e, t) {
|
|
81759
|
+
return this._addCallback(this._downCallbacks, e, t);
|
|
81760
|
+
}
|
|
81761
|
+
onButtonUp(e, t) {
|
|
81762
|
+
return this._addCallback(this._upCallbacks, e, t);
|
|
81763
|
+
}
|
|
81764
|
+
bindBool(e, t, n) {
|
|
81765
|
+
let r = this.onButtonDown(n, () => e.setInput(t, !0)), i = this.onButtonUp(n, () => e.setInput(t, !1));
|
|
81766
|
+
return () => {
|
|
81767
|
+
r(), i();
|
|
81768
|
+
};
|
|
81769
|
+
}
|
|
81770
|
+
bindTrigger(e, t, n) {
|
|
81771
|
+
return this.onButtonDown(n, () => e.fire(t));
|
|
81772
|
+
}
|
|
81773
|
+
bindValue(e, t, n) {
|
|
81774
|
+
let r = n.releasedValue ?? 0, i = this.onButtonDown(t, () => e.setValue(n.heldValue)), a = this.onButtonUp(t, () => e.setValue(r));
|
|
81775
|
+
return () => {
|
|
81776
|
+
i(), a();
|
|
81777
|
+
};
|
|
81778
|
+
}
|
|
81779
|
+
_readActivePad() {
|
|
81780
|
+
if (!this._getGamepads) return null;
|
|
81781
|
+
let e;
|
|
81782
|
+
try {
|
|
81783
|
+
e = this._getGamepads() ?? [];
|
|
81784
|
+
} catch {
|
|
81785
|
+
return null;
|
|
81786
|
+
}
|
|
81787
|
+
if (this._gamepadIndex != null) return e[this._gamepadIndex] ?? null;
|
|
81788
|
+
for (let t of e) if (t && (t.connected ?? !0)) return t;
|
|
81789
|
+
return null;
|
|
81790
|
+
}
|
|
81791
|
+
_releaseAll() {
|
|
81792
|
+
if (this._down.size !== 0) {
|
|
81793
|
+
for (let e of [...this._down]) this._released.add(e), this._emit(this._upCallbacks, e, null);
|
|
81794
|
+
this._down.clear();
|
|
81795
|
+
}
|
|
81796
|
+
}
|
|
81797
|
+
_applyDeadzone(e, t) {
|
|
81798
|
+
return Math.abs(e) < t ? 0 : e;
|
|
81799
|
+
}
|
|
81800
|
+
_addCallback(e, t, n) {
|
|
81801
|
+
let r = this._callbackKey(t), i = e.get(r) ?? /* @__PURE__ */ new Set();
|
|
81802
|
+
return i.add(n), e.set(r, i), () => {
|
|
81803
|
+
i.delete(n), i.size === 0 && e.delete(r);
|
|
81804
|
+
};
|
|
81805
|
+
}
|
|
81806
|
+
_callbackKey(e) {
|
|
81807
|
+
if (e === "any") return "any";
|
|
81808
|
+
let t = IW(e);
|
|
81809
|
+
return t < 0 && qf.warn(`[manim-web] GamepadInput: unknown button "${String(e)}".`), t;
|
|
81810
|
+
}
|
|
81811
|
+
_emit(e, t, n) {
|
|
81812
|
+
e.get(t)?.forEach((e) => e(t, n)), e.get("any")?.forEach((e) => e(t, n));
|
|
81813
|
+
}
|
|
81814
|
+
_handleConnect(e) {
|
|
81815
|
+
let t = e.gamepad;
|
|
81816
|
+
qf.info(`[manim-web] GamepadInput: gamepad connected (index ${t?.index ?? "?"}).`);
|
|
81817
|
+
}
|
|
81818
|
+
_handleDisconnect(e) {
|
|
81819
|
+
let t = e.gamepad;
|
|
81820
|
+
qf.info(`[manim-web] GamepadInput: gamepad disconnected (index ${t?.index ?? "?"}).`);
|
|
81821
|
+
}
|
|
81822
|
+
};
|
|
81823
|
+
function VW(e, t) {
|
|
81824
|
+
let n = Math.hypot(e, t);
|
|
81825
|
+
return n === 0 ? [0, 0] : [e / n, t / n];
|
|
81826
|
+
}
|
|
81827
|
+
function HW(e, t, n) {
|
|
81828
|
+
return new BW(e, t, n);
|
|
81829
|
+
}
|
|
81474
81830
|
//#endregion
|
|
81475
81831
|
//#region src/interaction/PanZoomControls.ts
|
|
81476
|
-
function
|
|
81832
|
+
function UW(e, t, n) {
|
|
81477
81833
|
return Math.max(t, Math.min(n, e));
|
|
81478
81834
|
}
|
|
81479
|
-
var
|
|
81835
|
+
var WW = class {
|
|
81480
81836
|
_camera;
|
|
81481
81837
|
_domElement;
|
|
81482
81838
|
_options;
|
|
@@ -81528,7 +81884,7 @@ var DW = class {
|
|
|
81528
81884
|
if (!this._enabled || !this._options.enableZoom) return;
|
|
81529
81885
|
let t = this._eventToNdc(e.clientX, e.clientY);
|
|
81530
81886
|
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 =
|
|
81887
|
+
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 = UW(this._camera.frameWidth * i, a, o) / this._camera.frameWidth;
|
|
81532
81888
|
if (s === 1) return;
|
|
81533
81889
|
this._camera.frameWidth = this._camera.frameWidth * s, this._camera.frameHeight = this._camera.frameHeight * s;
|
|
81534
81890
|
let c = n.x - t.x * this._camera.frameWidth / 2, l = n.y - t.y * this._camera.frameHeight / 2;
|
|
@@ -81577,12 +81933,12 @@ var DW = class {
|
|
|
81577
81933
|
this._options.onChange?.();
|
|
81578
81934
|
}
|
|
81579
81935
|
};
|
|
81580
|
-
function
|
|
81581
|
-
return new
|
|
81936
|
+
function GW(e, t, n) {
|
|
81937
|
+
return new WW(e, t, n);
|
|
81582
81938
|
}
|
|
81583
81939
|
//#endregion
|
|
81584
81940
|
//#region node_modules/gif.js/dist/gif.js
|
|
81585
|
-
var
|
|
81941
|
+
var KW = /* @__PURE__ */ r(((e, t) => {
|
|
81586
81942
|
(function(n) {
|
|
81587
81943
|
if (typeof e == "object" && t !== void 0) t.exports = n();
|
|
81588
81944
|
else if (typeof define == "function" && define.amd) define([], n);
|
|
@@ -81836,10 +82192,10 @@ var kW = /* @__PURE__ */ r(((e, t) => {
|
|
|
81836
82192
|
}]
|
|
81837
82193
|
}, {}, [3])(3);
|
|
81838
82194
|
});
|
|
81839
|
-
})),
|
|
81840
|
-
GifExporter: () =>
|
|
81841
|
-
createGifExporter: () =>
|
|
81842
|
-
}),
|
|
82195
|
+
})), qW = /* @__PURE__ */ t({
|
|
82196
|
+
GifExporter: () => YW,
|
|
82197
|
+
createGifExporter: () => XW
|
|
82198
|
+
}), JW = /* @__PURE__ */ e(KW(), 1), YW = class e {
|
|
81843
82199
|
_scene;
|
|
81844
82200
|
_options;
|
|
81845
82201
|
constructor(e, t) {
|
|
@@ -81857,7 +82213,7 @@ var kW = /* @__PURE__ */ r(((e, t) => {
|
|
|
81857
82213
|
};
|
|
81858
82214
|
}
|
|
81859
82215
|
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
|
|
82216
|
+
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 JW.default({
|
|
81861
82217
|
workers: this._options.workers,
|
|
81862
82218
|
quality: this._options.quality,
|
|
81863
82219
|
width: this._options.width,
|
|
@@ -81916,15 +82272,15 @@ var kW = /* @__PURE__ */ r(((e, t) => {
|
|
|
81916
82272
|
e.download(r, t);
|
|
81917
82273
|
}
|
|
81918
82274
|
};
|
|
81919
|
-
function
|
|
81920
|
-
return new
|
|
82275
|
+
function XW(e, t) {
|
|
82276
|
+
return new YW(e, t);
|
|
81921
82277
|
}
|
|
81922
82278
|
//#endregion
|
|
81923
82279
|
//#region src/export/VideoExporter.ts
|
|
81924
|
-
var
|
|
81925
|
-
VideoExporter: () =>
|
|
81926
|
-
createVideoExporter: () =>
|
|
81927
|
-
}),
|
|
82280
|
+
var ZW = /* @__PURE__ */ t({
|
|
82281
|
+
VideoExporter: () => QW,
|
|
82282
|
+
createVideoExporter: () => $W
|
|
82283
|
+
}), QW = class e {
|
|
81928
82284
|
_scene;
|
|
81929
82285
|
_options;
|
|
81930
82286
|
_mediaRecorder = null;
|
|
@@ -82016,26 +82372,26 @@ var PW = /* @__PURE__ */ t({
|
|
|
82016
82372
|
return { ...this._options };
|
|
82017
82373
|
}
|
|
82018
82374
|
};
|
|
82019
|
-
function
|
|
82020
|
-
return new
|
|
82375
|
+
function $W(e, t) {
|
|
82376
|
+
return new QW(e, t);
|
|
82021
82377
|
}
|
|
82022
82378
|
//#endregion
|
|
82023
82379
|
//#region src/export/alphaBackground.ts
|
|
82024
|
-
var
|
|
82025
|
-
function
|
|
82380
|
+
var eG = "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.", tG = "Transparent export needs access to the WebGL renderer, but the scene did not expose one.";
|
|
82381
|
+
function nG(e) {
|
|
82026
82382
|
let t = e.renderer;
|
|
82027
82383
|
return !t || typeof t.getThreeRenderer != "function" ? null : t.getThreeRenderer() ?? null;
|
|
82028
82384
|
}
|
|
82029
|
-
function
|
|
82385
|
+
function rG(e) {
|
|
82030
82386
|
return e.getContext().getContextAttributes()?.alpha === !0;
|
|
82031
82387
|
}
|
|
82032
|
-
function
|
|
82033
|
-
let t =
|
|
82034
|
-
if (!t) throw Error(
|
|
82035
|
-
if (!
|
|
82388
|
+
function iG(e) {
|
|
82389
|
+
let t = nG(e);
|
|
82390
|
+
if (!t) throw Error(tG);
|
|
82391
|
+
if (!rG(t)) throw Error(eG);
|
|
82036
82392
|
return t;
|
|
82037
82393
|
}
|
|
82038
|
-
async function
|
|
82394
|
+
async function aG(e, t) {
|
|
82039
82395
|
let n = e.getClearAlpha();
|
|
82040
82396
|
e.setClearAlpha(0);
|
|
82041
82397
|
try {
|
|
@@ -82046,7 +82402,7 @@ async function HW(e, t) {
|
|
|
82046
82402
|
}
|
|
82047
82403
|
//#endregion
|
|
82048
82404
|
//#region src/export/FrameExporter.ts
|
|
82049
|
-
function
|
|
82405
|
+
function oG(e, t, n) {
|
|
82050
82406
|
return new Promise((r, i) => {
|
|
82051
82407
|
if (typeof e.toBlob == "function") {
|
|
82052
82408
|
e.toBlob((e) => {
|
|
@@ -82055,22 +82411,22 @@ function UW(e, t, n) {
|
|
|
82055
82411
|
return;
|
|
82056
82412
|
}
|
|
82057
82413
|
try {
|
|
82058
|
-
r(
|
|
82414
|
+
r(sG(e.toDataURL(t, n)));
|
|
82059
82415
|
} catch (e) {
|
|
82060
82416
|
i(e instanceof Error ? e : Error(String(e)));
|
|
82061
82417
|
}
|
|
82062
82418
|
});
|
|
82063
82419
|
}
|
|
82064
|
-
function
|
|
82420
|
+
function sG(e) {
|
|
82065
82421
|
let [t, n] = e.split(","), r = t.match(/data:([^;]+)/), i = r ? r[1] : "image/png", a = atob(n), o = new Uint8Array(a.length);
|
|
82066
82422
|
for (let e = 0; e < a.length; e++) o[e] = a.charCodeAt(e);
|
|
82067
82423
|
return new Blob([o], { type: i });
|
|
82068
82424
|
}
|
|
82069
|
-
async function
|
|
82425
|
+
async function cG(e, t) {
|
|
82070
82426
|
let n = t?.type ?? "image/png";
|
|
82071
|
-
return t?.transparent ?
|
|
82427
|
+
return t?.transparent ? aG(iG(e), () => (lG(e, t?.time), oG(e.getCanvas(), n, t?.quality))) : (t?.time !== void 0 && e.seek(t.time), oG(e.getCanvas(), n, t?.quality));
|
|
82072
82428
|
}
|
|
82073
|
-
function
|
|
82429
|
+
function lG(e, t) {
|
|
82074
82430
|
if (t !== void 0) {
|
|
82075
82431
|
e.seek(t);
|
|
82076
82432
|
return;
|
|
@@ -82081,29 +82437,29 @@ function KW(e, t) {
|
|
|
82081
82437
|
}
|
|
82082
82438
|
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
82439
|
}
|
|
82084
|
-
async function
|
|
82440
|
+
async function uG(e, t) {
|
|
82085
82441
|
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
82442
|
let n = [];
|
|
82087
82443
|
for (let i = 0; i < c; i++) {
|
|
82088
82444
|
let s = r + i * l;
|
|
82089
82445
|
e.seek(s);
|
|
82090
82446
|
let u = e.getCanvas();
|
|
82091
|
-
n.push(await
|
|
82447
|
+
n.push(await oG(u, a, t.quality)), o((i + 1) / c);
|
|
82092
82448
|
}
|
|
82093
82449
|
return n;
|
|
82094
82450
|
};
|
|
82095
|
-
return t.transparent ?
|
|
82451
|
+
return t.transparent ? aG(iG(e), u) : u();
|
|
82096
82452
|
}
|
|
82097
|
-
function
|
|
82453
|
+
function dG(e, t) {
|
|
82098
82454
|
let n = URL.createObjectURL(e), r = document.createElement("a");
|
|
82099
82455
|
r.href = n, r.download = t, document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(n);
|
|
82100
82456
|
}
|
|
82101
|
-
async function
|
|
82102
|
-
|
|
82457
|
+
async function fG(e, t = "frame.png", n) {
|
|
82458
|
+
dG(await cG(e, n), t);
|
|
82103
82459
|
}
|
|
82104
82460
|
//#endregion
|
|
82105
82461
|
//#region src/export/WebCodecsExporter.ts
|
|
82106
|
-
var
|
|
82462
|
+
var pG = {
|
|
82107
82463
|
avc: {
|
|
82108
82464
|
encoderCodec: "avc1.42001f",
|
|
82109
82465
|
mp4Codec: "avc",
|
|
@@ -82124,7 +82480,7 @@ var XW = {
|
|
|
82124
82480
|
mp4Codec: "av1",
|
|
82125
82481
|
webmCodec: "V_AV1"
|
|
82126
82482
|
}
|
|
82127
|
-
},
|
|
82483
|
+
}, mG = class e {
|
|
82128
82484
|
_scene;
|
|
82129
82485
|
_options;
|
|
82130
82486
|
constructor(e, t) {
|
|
@@ -82148,8 +82504,8 @@ var XW = {
|
|
|
82148
82504
|
}
|
|
82149
82505
|
async export() {
|
|
82150
82506
|
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 =
|
|
82507
|
+
let t = this._options, n = t.duration || this._scene.getTimelineDuration() || 5, r = Math.ceil(n * t.fps), i = pG[t.codec], a = null;
|
|
82508
|
+
t.alpha && (this._assertAlphaCodec(), a = iG(this._scene), await this._assertAlphaEncodeSupport(i));
|
|
82153
82509
|
let o = await this._createMuxer(i), s = new window.VideoEncoder({
|
|
82154
82510
|
output: (e, t) => o.addVideoChunk(e, t),
|
|
82155
82511
|
error: (e) => qf.error("WebCodecs encoder error:", e)
|
|
@@ -82173,7 +82529,7 @@ var XW = {
|
|
|
82173
82529
|
s.encode(i, { keyFrame: e % t.keyFrameInterval === 0 }), i.close(), t.onProgress(r === 0 ? 1 : (e + 1) / r);
|
|
82174
82530
|
}
|
|
82175
82531
|
};
|
|
82176
|
-
return a ? await
|
|
82532
|
+
return a ? await aG(a, d) : d(), await s.flush(), s.close(), o.finalize();
|
|
82177
82533
|
}
|
|
82178
82534
|
_assertAlphaCodec() {
|
|
82179
82535
|
let e = this._options;
|
|
@@ -82229,30 +82585,30 @@ var XW = {
|
|
|
82229
82585
|
return { ...this._options };
|
|
82230
82586
|
}
|
|
82231
82587
|
};
|
|
82232
|
-
function
|
|
82233
|
-
return new
|
|
82588
|
+
function hG(e, t) {
|
|
82589
|
+
return new mG(e, t);
|
|
82234
82590
|
}
|
|
82235
82591
|
//#endregion
|
|
82236
82592
|
//#region src/export/chooseExporter.ts
|
|
82237
|
-
function
|
|
82593
|
+
function gG(e = mG.isSupported()) {
|
|
82238
82594
|
return e ? "webcodecs" : "mediarecorder";
|
|
82239
82595
|
}
|
|
82240
82596
|
//#endregion
|
|
82241
82597
|
//#region src/export/SvgExporter.ts
|
|
82242
|
-
var
|
|
82243
|
-
function
|
|
82598
|
+
var _G = 3;
|
|
82599
|
+
function vG(e, t) {
|
|
82244
82600
|
if (!Number.isFinite(e)) return "0";
|
|
82245
82601
|
let n = Number(e.toFixed(t));
|
|
82246
82602
|
return String(Object.is(n, -0) ? 0 : n);
|
|
82247
82603
|
}
|
|
82248
|
-
function
|
|
82604
|
+
function yG(e) {
|
|
82249
82605
|
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
82250
82606
|
}
|
|
82251
|
-
function
|
|
82607
|
+
function bG(e, t, n) {
|
|
82252
82608
|
let r = e.position.x, i = e.position.y, a = e.frameWidth || 1, o = e.frameHeight || 1;
|
|
82253
82609
|
return (e) => [(e[0] - r) / a * t + t / 2, n / 2 - (e[1] - i) / o * n];
|
|
82254
82610
|
}
|
|
82255
|
-
function
|
|
82611
|
+
function xG(e, t) {
|
|
82256
82612
|
if (!t || t.length <= 1) return [e];
|
|
82257
82613
|
let n = [], r = 0;
|
|
82258
82614
|
for (let i of t) {
|
|
@@ -82261,11 +82617,11 @@ function iG(e, t) {
|
|
|
82261
82617
|
}
|
|
82262
82618
|
return r === e.length ? n : [e];
|
|
82263
82619
|
}
|
|
82264
|
-
function
|
|
82620
|
+
function SG(e, t, n) {
|
|
82265
82621
|
if (e.length < 4) return null;
|
|
82266
82622
|
let r = (e) => {
|
|
82267
82623
|
let [r, i] = t(e);
|
|
82268
|
-
return `${
|
|
82624
|
+
return `${vG(r, n)} ${vG(i, n)}`;
|
|
82269
82625
|
}, i = [`M ${r(e[0])}`], a = Math.floor((e.length - 1) / 3);
|
|
82270
82626
|
for (let t = 0; t < a; t++) {
|
|
82271
82627
|
let n = e[3 * t + 1], a = e[3 * t + 2], o = e[3 * t + 3];
|
|
@@ -82273,65 +82629,65 @@ function aG(e, t, n) {
|
|
|
82273
82629
|
}
|
|
82274
82630
|
return jm(e) && i.push("Z"), i.join(" ");
|
|
82275
82631
|
}
|
|
82276
|
-
function
|
|
82632
|
+
function CG(e) {
|
|
82277
82633
|
return e.style.fillColor ?? e.color;
|
|
82278
82634
|
}
|
|
82279
|
-
function
|
|
82635
|
+
function wG(e, t, n, r) {
|
|
82280
82636
|
let i = e.getPoints();
|
|
82281
82637
|
if (i.length < 4) return null;
|
|
82282
|
-
let a =
|
|
82638
|
+
let a = xG(i, e.getEffectiveSubpathLengths()), o = [];
|
|
82283
82639
|
for (let e of a) {
|
|
82284
|
-
let n =
|
|
82640
|
+
let n = SG(e, t, r);
|
|
82285
82641
|
n && o.push(n);
|
|
82286
82642
|
}
|
|
82287
82643
|
if (o.length === 0) return null;
|
|
82288
82644
|
let s = e.fillOpacity > 0, c = e.strokeWidth > 0;
|
|
82289
82645
|
if (!s && !c) return null;
|
|
82290
82646
|
let l = [`d="${o.join(" ")}"`];
|
|
82291
|
-
return s ? (l.push(`fill="${
|
|
82647
|
+
return s ? (l.push(`fill="${yG(CG(e))}"`), l.push("fill-rule=\"nonzero\""), e.fillOpacity < 1 && l.push(`fill-opacity="${vG(e.fillOpacity, r)}"`)) : l.push("fill=\"none\""), c && (l.push(`stroke="${yG(e.color)}"`), l.push(`stroke-width="${vG(e.strokeWidth * n, r)}"`), l.push("stroke-linejoin=\"round\""), l.push("stroke-linecap=\"round\""), e.opacity < 1 && l.push(`stroke-opacity="${vG(e.opacity, r)}"`)), `<path ${l.join(" ")} />`;
|
|
82292
82648
|
}
|
|
82293
|
-
function
|
|
82649
|
+
function TG(e) {
|
|
82294
82650
|
return e instanceof z && e.getPoints().length >= 4;
|
|
82295
82651
|
}
|
|
82296
|
-
function
|
|
82297
|
-
let n = t?.precision ??
|
|
82652
|
+
function EG(e, t) {
|
|
82653
|
+
let n = t?.precision ?? _G, r = e.getWidth(), i = e.getHeight(), a = e.camera, o = bG(a, r, i), s = .01 * r / (a.frameWidth || 1), c = [];
|
|
82298
82654
|
for (let t of e.mobjects) {
|
|
82299
82655
|
let e = [];
|
|
82300
82656
|
for (let r of t.getFamily()) {
|
|
82301
|
-
if (!
|
|
82302
|
-
let t =
|
|
82657
|
+
if (!TG(r)) continue;
|
|
82658
|
+
let t = wG(r, o, s, n);
|
|
82303
82659
|
t && e.push(t);
|
|
82304
82660
|
}
|
|
82305
82661
|
if (e.length === 0) continue;
|
|
82306
|
-
let r = t.userId ? ` data-mobject-id="${
|
|
82662
|
+
let r = t.userId ? ` data-mobject-id="${yG(t.userId)}"` : "";
|
|
82307
82663
|
c.push(` <g${r}>\n ${e.join("\n ")}\n </g>`);
|
|
82308
82664
|
}
|
|
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="${
|
|
82665
|
+
let l = vG(r, n), u = vG(i, n);
|
|
82666
|
+
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="${yG(t.background)}" />` : ""}${c.length > 0 ? `\n${c.join("\n")}\n` : "\n"}</svg>`;
|
|
82311
82667
|
}
|
|
82312
|
-
function
|
|
82313
|
-
let n =
|
|
82668
|
+
function DG(e, t) {
|
|
82669
|
+
let n = EG(e, t);
|
|
82314
82670
|
return new Blob([n], { type: "image/svg+xml" });
|
|
82315
82671
|
}
|
|
82316
|
-
function
|
|
82672
|
+
function OG(e, t = "scene.svg", n) {
|
|
82317
82673
|
if (typeof document > "u") throw Error("exportAndDownloadSVG requires a DOM (document is undefined)");
|
|
82318
|
-
|
|
82674
|
+
dG(DG(e, n), t);
|
|
82319
82675
|
}
|
|
82320
82676
|
//#endregion
|
|
82321
82677
|
//#region src/export/SlideDeckExporter.ts
|
|
82322
|
-
var
|
|
82323
|
-
function
|
|
82678
|
+
var kG = "PNG";
|
|
82679
|
+
function AG(e, t) {
|
|
82324
82680
|
return e.seek(t), {
|
|
82325
82681
|
dataUrl: e.getCanvas().toDataURL("image/png"),
|
|
82326
82682
|
width: e.getWidth(),
|
|
82327
82683
|
height: e.getHeight()
|
|
82328
82684
|
};
|
|
82329
82685
|
}
|
|
82330
|
-
async function
|
|
82686
|
+
async function jG(e) {
|
|
82331
82687
|
let { jsPDF: t } = await import("./jspdf.es.min-CvMJL6nS.js");
|
|
82332
82688
|
return new t(e);
|
|
82333
82689
|
}
|
|
82334
|
-
function
|
|
82690
|
+
function MG(e, t, n, r) {
|
|
82335
82691
|
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
82692
|
return {
|
|
82337
82693
|
x: (n - s) / 2,
|
|
@@ -82340,33 +82696,33 @@ function hG(e, t, n, r) {
|
|
|
82340
82696
|
h: c
|
|
82341
82697
|
};
|
|
82342
82698
|
}
|
|
82343
|
-
function
|
|
82699
|
+
function NG(e, t) {
|
|
82344
82700
|
return t === "first" ? e.startTime : e.endTime;
|
|
82345
82701
|
}
|
|
82346
|
-
async function
|
|
82702
|
+
async function PG(e, t) {
|
|
82347
82703
|
let n = e.timeline.getSlides();
|
|
82348
82704
|
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 ??
|
|
82705
|
+
let r = t?.still ?? "last", i = t?.orientation ?? "landscape", a = t?.pageSize ?? "a4", o = t?.unit ?? "pt", s = t?.imageFormat ?? kG, c = t?.background, l = t?.captureSlide ?? AG, u = t?.pdfFactory ?? jG, d = t?.onProgress ?? (() => {}), f = await u({
|
|
82350
82706
|
orientation: i,
|
|
82351
82707
|
unit: o,
|
|
82352
82708
|
format: a
|
|
82353
82709
|
}), p = f.internal.pageSize.getWidth(), m = f.internal.pageSize.getHeight();
|
|
82354
82710
|
for (let t = 0; t < n.length; t++) {
|
|
82355
82711
|
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,
|
|
82712
|
+
let o = await l(e.scene, NG(n[t], r)), u = MG(o.width, o.height, p, m);
|
|
82357
82713
|
f.addImage(o.dataUrl, s, u.x, u.y, u.w, u.h), d((t + 1) / n.length);
|
|
82358
82714
|
}
|
|
82359
82715
|
return f.output("blob");
|
|
82360
82716
|
}
|
|
82361
|
-
async function
|
|
82717
|
+
async function FG(e, t = "slides.pdf", n) {
|
|
82362
82718
|
if (typeof document > "u") {
|
|
82363
82719
|
qf.warn("exportAndDownloadSlidesToPDF: no DOM available, skipping download.");
|
|
82364
82720
|
return;
|
|
82365
82721
|
}
|
|
82366
|
-
let r = await
|
|
82367
|
-
r &&
|
|
82722
|
+
let r = await PG(e, n);
|
|
82723
|
+
r && dG(r, t);
|
|
82368
82724
|
}
|
|
82369
|
-
async function
|
|
82725
|
+
async function IG() {
|
|
82370
82726
|
let e;
|
|
82371
82727
|
try {
|
|
82372
82728
|
e = await import(
|
|
@@ -82378,14 +82734,14 @@ async function yG() {
|
|
|
82378
82734
|
}
|
|
82379
82735
|
return new (e.default ?? e)();
|
|
82380
82736
|
}
|
|
82381
|
-
async function
|
|
82737
|
+
async function LG(e, t) {
|
|
82382
82738
|
let n = e.timeline.getSlides();
|
|
82383
82739
|
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 ??
|
|
82740
|
+
let r = t?.still ?? "last", i = t?.slideWidth ?? 13.333, a = t?.slideHeight ?? 7.5, o = t?.background, s = t?.captureSlide ?? AG, c = t?.pptxFactory ?? IG, l = t?.onProgress ?? (() => {}), u = await c();
|
|
82385
82741
|
for (let t = 0; t < n.length; t++) {
|
|
82386
82742
|
let c = u.addSlide();
|
|
82387
82743
|
o && (c.background = { color: o });
|
|
82388
|
-
let d = await s(e.scene,
|
|
82744
|
+
let d = await s(e.scene, NG(n[t], r));
|
|
82389
82745
|
c.addImage({
|
|
82390
82746
|
data: d.dataUrl,
|
|
82391
82747
|
x: 0,
|
|
@@ -82403,7 +82759,7 @@ async function bG(e, t) {
|
|
|
82403
82759
|
}
|
|
82404
82760
|
//#endregion
|
|
82405
82761
|
//#region src/player/ExportSettingsUI.ts
|
|
82406
|
-
var
|
|
82762
|
+
var RG = [
|
|
82407
82763
|
{
|
|
82408
82764
|
id: "current",
|
|
82409
82765
|
label: "Current",
|
|
@@ -82440,11 +82796,11 @@ var xG = [
|
|
|
82440
82796
|
width: 3840,
|
|
82441
82797
|
height: 2160
|
|
82442
82798
|
}
|
|
82443
|
-
],
|
|
82799
|
+
], zG = [
|
|
82444
82800
|
24,
|
|
82445
82801
|
30,
|
|
82446
82802
|
60
|
|
82447
|
-
],
|
|
82803
|
+
], BG = [
|
|
82448
82804
|
{
|
|
82449
82805
|
id: "low",
|
|
82450
82806
|
label: "Low",
|
|
@@ -82460,12 +82816,12 @@ var xG = [
|
|
|
82460
82816
|
label: "High",
|
|
82461
82817
|
value: .9
|
|
82462
82818
|
}
|
|
82463
|
-
],
|
|
82464
|
-
function
|
|
82465
|
-
return Math.round(Math.max(0, Math.min(1, e)) *
|
|
82819
|
+
], VG = 1e7;
|
|
82820
|
+
function HG(e) {
|
|
82821
|
+
return Math.round(Math.max(0, Math.min(1, e)) * VG);
|
|
82466
82822
|
}
|
|
82467
|
-
function
|
|
82468
|
-
let r =
|
|
82823
|
+
function UG(e, t, n) {
|
|
82824
|
+
let r = RG.find((t) => t.id === e);
|
|
82469
82825
|
return !r || r.width === null || r.height === null ? {
|
|
82470
82826
|
width: t,
|
|
82471
82827
|
height: n
|
|
@@ -82474,7 +82830,7 @@ function EG(e, t, n) {
|
|
|
82474
82830
|
height: r.height
|
|
82475
82831
|
};
|
|
82476
82832
|
}
|
|
82477
|
-
var
|
|
82833
|
+
var WG = class {
|
|
82478
82834
|
_element;
|
|
82479
82835
|
_fpsSelect;
|
|
82480
82836
|
_resolutionSelect;
|
|
@@ -82487,22 +82843,22 @@ var DG = class {
|
|
|
82487
82843
|
display: "flex",
|
|
82488
82844
|
flexDirection: "column",
|
|
82489
82845
|
gap: "6px"
|
|
82490
|
-
}), this._element.setAttribute("data-export-settings", ""), this._fpsSelect = this._buildSelect("FPS",
|
|
82846
|
+
}), this._element.setAttribute("data-export-settings", ""), this._fpsSelect = this._buildSelect("FPS", zG.map((e) => ({
|
|
82491
82847
|
value: String(e),
|
|
82492
82848
|
label: `${e} fps`
|
|
82493
|
-
})), String(this._nearestFps(e.fps))), this._resolutionSelect = this._buildSelect("Resolution",
|
|
82849
|
+
})), String(this._nearestFps(e.fps))), this._resolutionSelect = this._buildSelect("Resolution", RG.map((e) => ({
|
|
82494
82850
|
value: e.id,
|
|
82495
82851
|
label: e.label
|
|
82496
|
-
})), "current"), this._qualitySelect = this._buildSelect("Quality",
|
|
82852
|
+
})), "current"), this._qualitySelect = this._buildSelect("Quality", BG.map((e) => ({
|
|
82497
82853
|
value: String(e.value),
|
|
82498
82854
|
label: e.label
|
|
82499
|
-
})), String(
|
|
82855
|
+
})), String(BG[BG.length - 1].value));
|
|
82500
82856
|
}
|
|
82501
82857
|
get element() {
|
|
82502
82858
|
return this._element;
|
|
82503
82859
|
}
|
|
82504
82860
|
getSettings() {
|
|
82505
|
-
let e = parseInt(this._fpsSelect.value, 10), { width: t, height: n } =
|
|
82861
|
+
let e = parseInt(this._fpsSelect.value, 10), { width: t, height: n } = UG(this._resolutionSelect.value, this._defaults.width, this._defaults.height);
|
|
82506
82862
|
return {
|
|
82507
82863
|
fps: e,
|
|
82508
82864
|
width: t,
|
|
@@ -82511,7 +82867,7 @@ var DG = class {
|
|
|
82511
82867
|
};
|
|
82512
82868
|
}
|
|
82513
82869
|
_nearestFps(e) {
|
|
82514
|
-
return
|
|
82870
|
+
return zG.reduce((t, n) => Math.abs(n - e) < Math.abs(t - e) ? n : t);
|
|
82515
82871
|
}
|
|
82516
82872
|
_buildSelect(e, t, n) {
|
|
82517
82873
|
let r = document.createElement("label");
|
|
@@ -82542,7 +82898,7 @@ var DG = class {
|
|
|
82542
82898
|
}
|
|
82543
82899
|
return a.value = n, a.addEventListener("click", (e) => e.stopPropagation()), r.appendChild(i), r.appendChild(a), this._element.appendChild(r), a;
|
|
82544
82900
|
}
|
|
82545
|
-
},
|
|
82901
|
+
}, GG = class {
|
|
82546
82902
|
_container;
|
|
82547
82903
|
_bar;
|
|
82548
82904
|
_playBtn;
|
|
@@ -82578,19 +82934,19 @@ var DG = class {
|
|
|
82578
82934
|
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
82935
|
let r = this._createProgressBar();
|
|
82580
82936
|
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 =
|
|
82937
|
+
let i = KG("div", {
|
|
82582
82938
|
display: "flex",
|
|
82583
82939
|
alignItems: "center",
|
|
82584
82940
|
gap: "4px"
|
|
82585
82941
|
});
|
|
82586
82942
|
i.appendChild(this._prevBtn), i.appendChild(this._playBtn), i.appendChild(this._nextBtn);
|
|
82587
|
-
let a =
|
|
82943
|
+
let a = KG("div", {
|
|
82588
82944
|
display: "flex",
|
|
82589
82945
|
alignItems: "center",
|
|
82590
82946
|
gap: "8px"
|
|
82591
82947
|
});
|
|
82592
82948
|
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 =
|
|
82949
|
+
let o = KG("div", {
|
|
82594
82950
|
display: "flex",
|
|
82595
82951
|
alignItems: "center",
|
|
82596
82952
|
justifyContent: "space-between",
|
|
@@ -82605,10 +82961,10 @@ var DG = class {
|
|
|
82605
82961
|
let n = e / t * 100;
|
|
82606
82962
|
this._progressFill.style.width = `${n}%`;
|
|
82607
82963
|
}
|
|
82608
|
-
this._timeDisplay.textContent = `${
|
|
82964
|
+
this._timeDisplay.textContent = `${JG(e)} / ${JG(t)}`;
|
|
82609
82965
|
}
|
|
82610
82966
|
setPlaying(e, t = !1) {
|
|
82611
|
-
this._isPlaying = e, t ? (this._playBtn.innerHTML =
|
|
82967
|
+
this._isPlaying = e, t ? (this._playBtn.innerHTML = ZG, this._playBtn.title = "Replay (Space)") : (this._playBtn.innerHTML = e ? XG : YG, this._playBtn.title = e ? "Pause (Space)" : "Play (Space)"), e && this._scheduleHide();
|
|
82612
82968
|
}
|
|
82613
82969
|
setSlidesMode(e) {
|
|
82614
82970
|
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 +82974,7 @@ var DG = class {
|
|
|
82618
82974
|
let t = e.getSlides(), n = e.getDuration();
|
|
82619
82975
|
if (!(n <= 0)) for (let e of t) {
|
|
82620
82976
|
if (e.index === 0) continue;
|
|
82621
|
-
let t =
|
|
82977
|
+
let t = KG("div", {
|
|
82622
82978
|
position: "absolute",
|
|
82623
82979
|
left: `${e.startTime / n * 100}%`,
|
|
82624
82980
|
top: "50%",
|
|
@@ -82633,7 +82989,7 @@ var DG = class {
|
|
|
82633
82989
|
}
|
|
82634
82990
|
}
|
|
82635
82991
|
_createBar() {
|
|
82636
|
-
let e =
|
|
82992
|
+
let e = KG("div", {
|
|
82637
82993
|
position: "absolute",
|
|
82638
82994
|
bottom: "0",
|
|
82639
82995
|
left: "0",
|
|
@@ -82651,21 +83007,21 @@ var DG = class {
|
|
|
82651
83007
|
}
|
|
82652
83008
|
_createPlayBtn() {
|
|
82653
83009
|
let e = document.createElement("button");
|
|
82654
|
-
return e.innerHTML =
|
|
83010
|
+
return e.innerHTML = YG, e.title = "Play (Space)", qG(e, "36px", "36px"), e.addEventListener("click", () => this._callbacks.onPlayPause()), e;
|
|
82655
83011
|
}
|
|
82656
83012
|
_createNavBtn(e) {
|
|
82657
83013
|
let t = document.createElement("button");
|
|
82658
|
-
return t.innerHTML = e === "prev" ?
|
|
83014
|
+
return t.innerHTML = e === "prev" ? QG : $G, t.title = e === "prev" ? "Previous (Left arrow)" : "Next (Right arrow)", qG(t, "28px", "28px"), t.addEventListener("click", () => {
|
|
82659
83015
|
e === "prev" ? this._callbacks.onPrev() : this._callbacks.onNext();
|
|
82660
83016
|
}), t;
|
|
82661
83017
|
}
|
|
82662
83018
|
_createProgressBar() {
|
|
82663
|
-
let e =
|
|
83019
|
+
let e = KG("div", {
|
|
82664
83020
|
position: "relative",
|
|
82665
83021
|
height: "16px",
|
|
82666
83022
|
padding: "6px 12px",
|
|
82667
83023
|
cursor: "pointer"
|
|
82668
|
-
}), t =
|
|
83024
|
+
}), t = KG("div", {
|
|
82669
83025
|
position: "absolute",
|
|
82670
83026
|
left: "12px",
|
|
82671
83027
|
right: "12px",
|
|
@@ -82675,14 +83031,14 @@ var DG = class {
|
|
|
82675
83031
|
background: "rgba(255,255,255,0.2)",
|
|
82676
83032
|
borderRadius: "2px",
|
|
82677
83033
|
overflow: "visible"
|
|
82678
|
-
}), n =
|
|
83034
|
+
}), n = KG("div", {
|
|
82679
83035
|
width: "0%",
|
|
82680
83036
|
height: "100%",
|
|
82681
83037
|
background: "#4a9eff",
|
|
82682
83038
|
borderRadius: "2px",
|
|
82683
83039
|
transition: "none",
|
|
82684
83040
|
position: "relative"
|
|
82685
|
-
}), r =
|
|
83041
|
+
}), r = KG("div", {
|
|
82686
83042
|
position: "absolute",
|
|
82687
83043
|
right: "-5px",
|
|
82688
83044
|
top: "50%",
|
|
@@ -82695,7 +83051,7 @@ var DG = class {
|
|
|
82695
83051
|
transition: "transform 0.1s"
|
|
82696
83052
|
});
|
|
82697
83053
|
n.appendChild(r);
|
|
82698
|
-
let i =
|
|
83054
|
+
let i = KG("div", {
|
|
82699
83055
|
width: "0%",
|
|
82700
83056
|
height: "100%",
|
|
82701
83057
|
background: "rgba(255,255,255,0.1)",
|
|
@@ -82704,7 +83060,7 @@ var DG = class {
|
|
|
82704
83060
|
top: "0",
|
|
82705
83061
|
left: "0",
|
|
82706
83062
|
pointerEvents: "none"
|
|
82707
|
-
}), a =
|
|
83063
|
+
}), a = KG("div", {
|
|
82708
83064
|
position: "absolute",
|
|
82709
83065
|
top: "0",
|
|
82710
83066
|
left: "0",
|
|
@@ -82729,7 +83085,7 @@ var DG = class {
|
|
|
82729
83085
|
};
|
|
82730
83086
|
}
|
|
82731
83087
|
_createTimeDisplay() {
|
|
82732
|
-
let e =
|
|
83088
|
+
let e = KG("span", {
|
|
82733
83089
|
fontFamily: "\"SF Mono\", Monaco, Consolas, monospace",
|
|
82734
83090
|
fontSize: "12px",
|
|
82735
83091
|
opacity: "0.8",
|
|
@@ -82771,16 +83127,16 @@ var DG = class {
|
|
|
82771
83127
|
}), e;
|
|
82772
83128
|
}
|
|
82773
83129
|
_createExportBtn() {
|
|
82774
|
-
let e =
|
|
83130
|
+
let e = KG("div", {
|
|
82775
83131
|
position: "relative",
|
|
82776
83132
|
display: "inline-block"
|
|
82777
83133
|
}), t = document.createElement("button");
|
|
82778
|
-
return t.innerHTML =
|
|
83134
|
+
return t.innerHTML = eK, t.title = "Export animation", qG(t, "28px", "28px"), t.addEventListener("click", (e) => {
|
|
82779
83135
|
e.stopPropagation(), this._exportMenu ? this._closeExportMenu() : this._showExportMenu();
|
|
82780
83136
|
}), e.appendChild(t), this._exportBtnWrapper = e, t;
|
|
82781
83137
|
}
|
|
82782
83138
|
_showExportMenu() {
|
|
82783
|
-
let e = this._exportBtn.getBoundingClientRect(), t =
|
|
83139
|
+
let e = this._exportBtn.getBoundingClientRect(), t = KG("div", {
|
|
82784
83140
|
position: "fixed",
|
|
82785
83141
|
top: "0",
|
|
82786
83142
|
left: "0",
|
|
@@ -82791,7 +83147,7 @@ var DG = class {
|
|
|
82791
83147
|
t.setAttribute("data-player-bar", ""), t.addEventListener("mousedown", (e) => {
|
|
82792
83148
|
e.stopPropagation(), e.preventDefault(), this._closeExportMenu();
|
|
82793
83149
|
});
|
|
82794
|
-
let n =
|
|
83150
|
+
let n = KG("div", {
|
|
82795
83151
|
position: "fixed",
|
|
82796
83152
|
bottom: `${window.innerHeight - e.top + 6}px`,
|
|
82797
83153
|
left: `${e.left - 60}px`,
|
|
@@ -82812,7 +83168,7 @@ var DG = class {
|
|
|
82812
83168
|
height: 1080,
|
|
82813
83169
|
fps: 60
|
|
82814
83170
|
};
|
|
82815
|
-
this._exportPanel = new
|
|
83171
|
+
this._exportPanel = new WG(e), n.appendChild(this._exportPanel.element);
|
|
82816
83172
|
}
|
|
82817
83173
|
for (let e of [
|
|
82818
83174
|
{
|
|
@@ -82831,7 +83187,7 @@ var DG = class {
|
|
|
82831
83187
|
desc: "Video file"
|
|
82832
83188
|
}
|
|
82833
83189
|
]) {
|
|
82834
|
-
let t =
|
|
83190
|
+
let t = KG("div", {
|
|
82835
83191
|
padding: "8px 14px",
|
|
82836
83192
|
cursor: "pointer",
|
|
82837
83193
|
fontSize: "13px",
|
|
@@ -82856,7 +83212,7 @@ var DG = class {
|
|
|
82856
83212
|
this._exportMenu && (this._exportMenuBackdrop?.remove(), this._exportMenuBackdrop = null, this._exportMenu.remove(), this._exportMenu = null, this._exportPanel = null);
|
|
82857
83213
|
}
|
|
82858
83214
|
setExportProgress(e) {
|
|
82859
|
-
if (e === null) this._exportBtn.innerHTML =
|
|
83215
|
+
if (e === null) this._exportBtn.innerHTML = eK, this._exportBtn.disabled = !1, this._exportBtn.title = "Export animation";
|
|
82860
83216
|
else {
|
|
82861
83217
|
let t = Math.round(e * 100);
|
|
82862
83218
|
this._exportBtn.innerHTML = `<span style="font-size:10px;font-weight:600">${t}%</span>`, this._exportBtn.disabled = !0, this._exportBtn.title = `Exporting... ${t}%`;
|
|
@@ -82864,7 +83220,7 @@ var DG = class {
|
|
|
82864
83220
|
}
|
|
82865
83221
|
_createSlidesBtn() {
|
|
82866
83222
|
let e = document.createElement("button");
|
|
82867
|
-
return e.innerHTML =
|
|
83223
|
+
return e.innerHTML = tK, e.title = "Slides mode off (S)", qG(e, "28px", "28px"), e.style.opacity = "0.4", e.addEventListener("click", () => {
|
|
82868
83224
|
this._slidesActive = !this._slidesActive, this.setSlidesMode(this._slidesActive), this._callbacks.onSlidesToggle(this._slidesActive);
|
|
82869
83225
|
}), e.addEventListener("mouseenter", () => {
|
|
82870
83226
|
e.style.background = this._slidesActive ? "rgba(74,158,255,0.35)" : "rgba(255,255,255,0.15)";
|
|
@@ -82874,7 +83230,7 @@ var DG = class {
|
|
|
82874
83230
|
}
|
|
82875
83231
|
_createFullscreenBtn() {
|
|
82876
83232
|
let e = document.createElement("button");
|
|
82877
|
-
return e.innerHTML =
|
|
83233
|
+
return e.innerHTML = nK, e.title = "Fullscreen (F)", qG(e, "28px", "28px"), e.addEventListener("click", () => this._callbacks.onFullscreen()), e;
|
|
82878
83234
|
}
|
|
82879
83235
|
_showControls() {
|
|
82880
83236
|
this._isVisible ||= (this._bar.style.opacity = "1", this._bar.style.transform = "translateY(0)", !0), this._scheduleHide();
|
|
@@ -82929,11 +83285,11 @@ var DG = class {
|
|
|
82929
83285
|
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
83286
|
}
|
|
82931
83287
|
};
|
|
82932
|
-
function
|
|
83288
|
+
function KG(e, t) {
|
|
82933
83289
|
let n = document.createElement(e);
|
|
82934
83290
|
return Object.assign(n.style, t), n;
|
|
82935
83291
|
}
|
|
82936
|
-
function
|
|
83292
|
+
function qG(e, t, n) {
|
|
82937
83293
|
Object.assign(e.style, {
|
|
82938
83294
|
width: t,
|
|
82939
83295
|
height: n,
|
|
@@ -82954,11 +83310,11 @@ function AG(e, t, n) {
|
|
|
82954
83310
|
e.style.background = "none";
|
|
82955
83311
|
});
|
|
82956
83312
|
}
|
|
82957
|
-
function
|
|
83313
|
+
function JG(e) {
|
|
82958
83314
|
let t = Math.floor(e / 60), n = Math.floor(e % 60);
|
|
82959
83315
|
return `${t}:${String(n).padStart(2, "0")}`;
|
|
82960
83316
|
}
|
|
82961
|
-
var
|
|
83317
|
+
var YG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><path d=\"M5 3l10 6-10 6V3z\"/></svg>", XG = "<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>", ZG = "<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>", QG = "<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>", $G = "<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>", eK = "<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>", tK = "<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>", nK = "<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>", rK = class {
|
|
82962
83318
|
_container;
|
|
82963
83319
|
_callbacks;
|
|
82964
83320
|
_onKeyDown;
|
|
@@ -82988,7 +83344,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
82988
83344
|
dispose() {
|
|
82989
83345
|
this._container.removeEventListener("keydown", this._onKeyDown);
|
|
82990
83346
|
}
|
|
82991
|
-
},
|
|
83347
|
+
}, iK = class {
|
|
82992
83348
|
_realScene;
|
|
82993
83349
|
_masterTimeline;
|
|
82994
83350
|
constructor(e, t) {
|
|
@@ -83025,7 +83381,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83025
83381
|
for (let n of e) t.push(n), n instanceof HT && t.push(...this._collectAll(n.animations));
|
|
83026
83382
|
return t;
|
|
83027
83383
|
}
|
|
83028
|
-
},
|
|
83384
|
+
}, aK = [
|
|
83029
83385
|
"mousedown",
|
|
83030
83386
|
"mousemove",
|
|
83031
83387
|
"mouseup",
|
|
@@ -83033,7 +83389,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83033
83389
|
"touchstart",
|
|
83034
83390
|
"touchmove",
|
|
83035
83391
|
"touchend"
|
|
83036
|
-
],
|
|
83392
|
+
], oK = class {
|
|
83037
83393
|
_target;
|
|
83038
83394
|
_scene;
|
|
83039
83395
|
_isIdle;
|
|
@@ -83052,13 +83408,13 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83052
83408
|
}
|
|
83053
83409
|
attach() {
|
|
83054
83410
|
if (!this._attached) {
|
|
83055
|
-
for (let e of
|
|
83411
|
+
for (let e of aK) this._target.addEventListener(e, this._onEvent);
|
|
83056
83412
|
this._attached = !0;
|
|
83057
83413
|
}
|
|
83058
83414
|
}
|
|
83059
83415
|
dispose() {
|
|
83060
83416
|
if (this._attached) {
|
|
83061
|
-
for (let e of
|
|
83417
|
+
for (let e of aK) this._target.removeEventListener(e, this._onEvent);
|
|
83062
83418
|
this._attached = !1, this._renderScheduled = !1;
|
|
83063
83419
|
}
|
|
83064
83420
|
}
|
|
@@ -83070,7 +83426,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83070
83426
|
this._renderScheduled = !1, !(!this._attached || !this._isIdle()) && (this._scene.render(), this._renderCount++);
|
|
83071
83427
|
}));
|
|
83072
83428
|
}
|
|
83073
|
-
},
|
|
83429
|
+
}, sK = class {
|
|
83074
83430
|
_scene;
|
|
83075
83431
|
_masterTimeline;
|
|
83076
83432
|
_ui;
|
|
@@ -83093,7 +83449,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83093
83449
|
_origHeight = 0;
|
|
83094
83450
|
_onFullscreenChange;
|
|
83095
83451
|
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
|
|
83452
|
+
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 GG(e, {
|
|
83097
83453
|
onPlayPause: () => this.togglePlayPause(),
|
|
83098
83454
|
onSeek: (e) => this.seek(e),
|
|
83099
83455
|
onPrev: () => this.prevSegment(),
|
|
@@ -83110,7 +83466,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83110
83466
|
}, {
|
|
83111
83467
|
autoHideMs: t.autoHideMs,
|
|
83112
83468
|
exportControls: this._exportControls
|
|
83113
|
-
}), this._ui.setSlidesMode(this._slidesMode), this._ui.enableScrollScrub(() => this._masterTimeline.getCurrentTime()), this._controller = new
|
|
83469
|
+
}), this._ui.setSlidesMode(this._slidesMode), this._ui.enableScrollScrub(() => this._masterTimeline.getCurrentTime()), this._controller = new rK(e, {
|
|
83114
83470
|
onPlayPause: () => this.togglePlayPause(),
|
|
83115
83471
|
onPrev: () => this.prevSegment(),
|
|
83116
83472
|
onNext: () => this.nextSegment(),
|
|
@@ -83124,10 +83480,10 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83124
83480
|
}, document.addEventListener("fullscreenchange", this._onFullscreenChange), this._interactiveSlides && this._enableSlideInteraction();
|
|
83125
83481
|
}
|
|
83126
83482
|
_enableSlideInteraction() {
|
|
83127
|
-
this._slideInteraction || (this._slideInteraction = new
|
|
83483
|
+
this._slideInteraction || (this._slideInteraction = new oK(this._container, this._scene, () => !this._isPlaying), this._slideInteraction.attach());
|
|
83128
83484
|
}
|
|
83129
83485
|
async sequence(e) {
|
|
83130
|
-
this._masterTimeline = new bB(), this._activeLoopSlideIndex = null, this._slidesTargetSlideIndex = -1, await e(new
|
|
83486
|
+
this._masterTimeline = new bB(), this._activeLoopSlideIndex = null, this._slidesTargetSlideIndex = -1, await e(new iK(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
83487
|
}
|
|
83132
83488
|
get scene() {
|
|
83133
83489
|
return this._scene;
|
|
@@ -83238,7 +83594,7 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83238
83594
|
let i = `animation.${e}`, a = this._masterTimeline.getDuration(), o = (e) => this._ui.setExportProgress(e);
|
|
83239
83595
|
this._ui.setExportProgress(0);
|
|
83240
83596
|
try {
|
|
83241
|
-
(e === "webm" || e === "mp4") &&
|
|
83597
|
+
(e === "webm" || e === "mp4") && gG() === "webcodecs" ? await this._exportWithWebCodecs(e === "mp4" ? "mp4" : "webm", t, a, o, i) : await this._scene.export(i, this._buildSceneExportOptions(e, t, a, o));
|
|
83242
83598
|
} catch (e) {
|
|
83243
83599
|
qf.error("Export failed:", e), this._ui.showError(`Export failed: ${e instanceof Error ? e.message : "Unknown error"}`);
|
|
83244
83600
|
} finally {
|
|
@@ -83246,12 +83602,12 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83246
83602
|
}
|
|
83247
83603
|
}
|
|
83248
83604
|
async _exportWithWebCodecs(e, t, n, r, i) {
|
|
83249
|
-
|
|
83605
|
+
dG(await new mG(this._scene, {
|
|
83250
83606
|
format: e,
|
|
83251
83607
|
fps: t?.fps ?? this._exportFps,
|
|
83252
83608
|
width: t?.width ?? this._scene.getWidth(),
|
|
83253
83609
|
height: t?.height ?? this._scene.getHeight(),
|
|
83254
|
-
bitrate:
|
|
83610
|
+
bitrate: HG(t?.quality ?? .9),
|
|
83255
83611
|
duration: n,
|
|
83256
83612
|
onProgress: r
|
|
83257
83613
|
}).export(), i);
|
|
@@ -83312,36 +83668,36 @@ var MG = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
|
|
|
83312
83668
|
_stopLoop() {
|
|
83313
83669
|
this._animFrameId !== null && (cancelAnimationFrame(this._animFrameId), this._animFrameId = null);
|
|
83314
83670
|
}
|
|
83315
|
-
},
|
|
83671
|
+
}, cK = {
|
|
83316
83672
|
EXPERIMENTAL_3D_LIGHTING: !1,
|
|
83317
83673
|
WEBGPU_RENDERER: !1,
|
|
83318
83674
|
ADVANCED_TEXT_LAYOUT: !1
|
|
83319
|
-
},
|
|
83320
|
-
function
|
|
83321
|
-
return
|
|
83675
|
+
}, lK = { ...cK };
|
|
83676
|
+
function uK(e) {
|
|
83677
|
+
return lK[e] ?? !1;
|
|
83322
83678
|
}
|
|
83323
|
-
function
|
|
83324
|
-
|
|
83325
|
-
...
|
|
83679
|
+
function dK(e) {
|
|
83680
|
+
lK = {
|
|
83681
|
+
...lK,
|
|
83326
83682
|
...e
|
|
83327
83683
|
};
|
|
83328
83684
|
}
|
|
83329
|
-
function
|
|
83330
|
-
|
|
83685
|
+
function fK() {
|
|
83686
|
+
lK = { ...cK };
|
|
83331
83687
|
}
|
|
83332
|
-
function
|
|
83333
|
-
return { ...
|
|
83688
|
+
function pK() {
|
|
83689
|
+
return { ...lK };
|
|
83334
83690
|
}
|
|
83335
83691
|
//#endregion
|
|
83336
83692
|
//#region src/utils/ManimColor.ts
|
|
83337
|
-
var
|
|
83338
|
-
function
|
|
83693
|
+
var mK = /(?:#|0[xX])([A-Fa-f0-9]{3,8})/;
|
|
83694
|
+
function hK(e) {
|
|
83339
83695
|
return Math.min(255, Math.max(0, Math.trunc(e * 255)));
|
|
83340
83696
|
}
|
|
83341
|
-
function
|
|
83342
|
-
return
|
|
83697
|
+
function gK(e) {
|
|
83698
|
+
return hK(e).toString(16).toUpperCase().padStart(2, "0");
|
|
83343
83699
|
}
|
|
83344
|
-
function
|
|
83700
|
+
function _K(e, t) {
|
|
83345
83701
|
let n = e;
|
|
83346
83702
|
(n.length === 3 || n.length === 4) && (n = n.split("").map((e) => e + e).join(""));
|
|
83347
83703
|
let r = t;
|
|
@@ -83354,14 +83710,14 @@ function eK(e, t) {
|
|
|
83354
83710
|
r
|
|
83355
83711
|
];
|
|
83356
83712
|
}
|
|
83357
|
-
function
|
|
83358
|
-
let n =
|
|
83359
|
-
if (n !== null) return
|
|
83713
|
+
function vK(e, t) {
|
|
83714
|
+
let n = mK.exec(e);
|
|
83715
|
+
if (n !== null) return _K(n[1], t);
|
|
83360
83716
|
let r = ml[e.toUpperCase()];
|
|
83361
|
-
if (typeof r == "string") return
|
|
83717
|
+
if (typeof r == "string") return vK(r, t);
|
|
83362
83718
|
throw Error(`Failed to parse a color from "${e}"`);
|
|
83363
83719
|
}
|
|
83364
|
-
function
|
|
83720
|
+
function yK(e, t) {
|
|
83365
83721
|
return [
|
|
83366
83722
|
(e >> 16 & 255) / 255,
|
|
83367
83723
|
(e >> 8 & 255) / 255,
|
|
@@ -83369,7 +83725,7 @@ function nK(e, t) {
|
|
|
83369
83725
|
t
|
|
83370
83726
|
];
|
|
83371
83727
|
}
|
|
83372
|
-
var
|
|
83728
|
+
var bK = class e {
|
|
83373
83729
|
value;
|
|
83374
83730
|
constructor(t, n = 1) {
|
|
83375
83731
|
if (t === null) this.value = [
|
|
@@ -83386,8 +83742,8 @@ var rK = class e {
|
|
|
83386
83742
|
e[2],
|
|
83387
83743
|
e[3]
|
|
83388
83744
|
];
|
|
83389
|
-
} else if (typeof t == "number") this.value =
|
|
83390
|
-
else if (typeof t == "string") this.value =
|
|
83745
|
+
} else if (typeof t == "number") this.value = yK(t, n);
|
|
83746
|
+
else if (typeof t == "string") this.value = vK(t, n);
|
|
83391
83747
|
else if (t.length === 3) this.value = [
|
|
83392
83748
|
t[0],
|
|
83393
83749
|
t[1],
|
|
@@ -83445,18 +83801,18 @@ var rK = class e {
|
|
|
83445
83801
|
toIntRgb() {
|
|
83446
83802
|
let e = this.internalRgba();
|
|
83447
83803
|
return [
|
|
83448
|
-
|
|
83449
|
-
|
|
83450
|
-
|
|
83804
|
+
hK(e[0]),
|
|
83805
|
+
hK(e[1]),
|
|
83806
|
+
hK(e[2])
|
|
83451
83807
|
];
|
|
83452
83808
|
}
|
|
83453
83809
|
toIntRgba() {
|
|
83454
83810
|
let e = this.internalRgba();
|
|
83455
83811
|
return [
|
|
83456
|
-
|
|
83457
|
-
|
|
83458
|
-
|
|
83459
|
-
|
|
83812
|
+
hK(e[0]),
|
|
83813
|
+
hK(e[1]),
|
|
83814
|
+
hK(e[2]),
|
|
83815
|
+
hK(e[3])
|
|
83460
83816
|
];
|
|
83461
83817
|
}
|
|
83462
83818
|
toHex(e = !1) {
|
|
@@ -83465,7 +83821,7 @@ var rK = class e {
|
|
|
83465
83821
|
t[1],
|
|
83466
83822
|
t[2]
|
|
83467
83823
|
]);
|
|
83468
|
-
return e ? n +
|
|
83824
|
+
return e ? n + gK(t[3]) : n;
|
|
83469
83825
|
}
|
|
83470
83826
|
toHsv() {
|
|
83471
83827
|
return jA(this.toRgb());
|
|
@@ -83525,7 +83881,7 @@ var rK = class e {
|
|
|
83525
83881
|
static parse(t, n = 1) {
|
|
83526
83882
|
return Array.isArray(t) && t.some((e) => typeof e != "number") ? t.map((t) => new e(t, n)) : new e(t, n);
|
|
83527
83883
|
}
|
|
83528
|
-
},
|
|
83884
|
+
}, xK = bK, SK = class e extends bK {
|
|
83529
83885
|
hsva;
|
|
83530
83886
|
constructor(e, t = 1) {
|
|
83531
83887
|
if (super(null), e.length === 3) this.hsva = [
|
|
@@ -83594,7 +83950,7 @@ var rK = class e {
|
|
|
83594
83950
|
return this.hsva[2];
|
|
83595
83951
|
}
|
|
83596
83952
|
};
|
|
83597
|
-
function
|
|
83953
|
+
function CK(e) {
|
|
83598
83954
|
let t = e >>> 0;
|
|
83599
83955
|
return () => {
|
|
83600
83956
|
t = t + 1831565813 | 0;
|
|
@@ -83602,18 +83958,18 @@ function oK(e) {
|
|
|
83602
83958
|
return e = e + Math.imul(e ^ e >>> 7, 61 | e) ^ e, ((e ^ e >>> 14) >>> 0) / 4294967296;
|
|
83603
83959
|
};
|
|
83604
83960
|
}
|
|
83605
|
-
var
|
|
83961
|
+
var wK = Array.from(new Set(Object.values(ml))).map((e) => new bK(e)), TK = class {
|
|
83606
83962
|
rng;
|
|
83607
83963
|
colors;
|
|
83608
83964
|
constructor(e, t) {
|
|
83609
|
-
this.rng = e === void 0 ? Math.random :
|
|
83965
|
+
this.rng = e === void 0 ? Math.random : CK(e), this.colors = t === void 0 ? wK : t.map((e) => e instanceof bK ? e : new bK(e));
|
|
83610
83966
|
}
|
|
83611
83967
|
next() {
|
|
83612
83968
|
let e = Math.floor(this.rng() * this.colors.length);
|
|
83613
83969
|
return this.colors[e];
|
|
83614
83970
|
}
|
|
83615
83971
|
};
|
|
83616
|
-
function
|
|
83972
|
+
function EK(e, t, n, r) {
|
|
83617
83973
|
let i = .5 * Xd(n, $d([
|
|
83618
83974
|
r[0] - t[0],
|
|
83619
83975
|
r[1] - t[1],
|
|
@@ -83627,7 +83983,7 @@ function lK(e, t, n, r) {
|
|
|
83627
83983
|
}
|
|
83628
83984
|
//#endregion
|
|
83629
83985
|
//#region src/utils/iterables.ts
|
|
83630
|
-
function
|
|
83986
|
+
function DK(e, t) {
|
|
83631
83987
|
let n = e.length;
|
|
83632
83988
|
if (n === 0) return [];
|
|
83633
83989
|
let r = [];
|
|
@@ -83638,10 +83994,10 @@ function uK(e, t) {
|
|
|
83638
83994
|
}
|
|
83639
83995
|
return r;
|
|
83640
83996
|
}
|
|
83641
|
-
function
|
|
83642
|
-
return
|
|
83997
|
+
function OK(e) {
|
|
83998
|
+
return DK(e, 2);
|
|
83643
83999
|
}
|
|
83644
|
-
function
|
|
84000
|
+
function kK(e) {
|
|
83645
84001
|
let t = [], n = /* @__PURE__ */ new Set();
|
|
83646
84002
|
for (let r = e.length - 1; r >= 0; r--) {
|
|
83647
84003
|
let i = e[r];
|
|
@@ -83649,7 +84005,7 @@ function fK(e) {
|
|
|
83649
84005
|
}
|
|
83650
84006
|
return t.reverse(), t;
|
|
83651
84007
|
}
|
|
83652
|
-
function
|
|
84008
|
+
function AK(e, t, n) {
|
|
83653
84009
|
if (n === void 0) {
|
|
83654
84010
|
let n = new Set(t);
|
|
83655
84011
|
return e.filter((e) => !n.has(e));
|
|
@@ -83657,29 +84013,29 @@ function pK(e, t, n) {
|
|
|
83657
84013
|
let r = new Set(t.map((e) => n(e)));
|
|
83658
84014
|
return e.filter((e) => !r.has(n(e)));
|
|
83659
84015
|
}
|
|
83660
|
-
function
|
|
83661
|
-
return
|
|
84016
|
+
function jK(e, t, n) {
|
|
84017
|
+
return AK(e, t, n).concat(t);
|
|
83662
84018
|
}
|
|
83663
|
-
function
|
|
84019
|
+
function MK(e) {
|
|
83664
84020
|
return typeof e == "string" ? [e] : typeof e == "object" && e && Symbol.iterator in e ? [...e] : [e];
|
|
83665
84021
|
}
|
|
83666
|
-
function
|
|
84022
|
+
function NK(e, t) {
|
|
83667
84023
|
let n = e.length, r = t.length, i = Math.max(n, r), a = [], o = [];
|
|
83668
84024
|
for (let s = 0; s < i; s++) a.push(e[Math.floor(s * n / i)]), o.push(t[Math.floor(s * r / i)]);
|
|
83669
84025
|
return [a, o];
|
|
83670
84026
|
}
|
|
83671
|
-
function
|
|
84027
|
+
function PK(e, t) {
|
|
83672
84028
|
let n = e.length;
|
|
83673
84029
|
if (n > t) throw Error("Trying to stretch array to a length shorter than its own");
|
|
83674
84030
|
let r = [];
|
|
83675
84031
|
for (let i = 0; i < t; i++) r.push(e[Math.floor(i / t * n)]);
|
|
83676
84032
|
return r;
|
|
83677
84033
|
}
|
|
83678
|
-
function*
|
|
84034
|
+
function* FK(...e) {
|
|
83679
84035
|
let t = /* @__PURE__ */ new Set();
|
|
83680
84036
|
for (let n of e) for (let e of n) t.has(e) || (t.add(e), yield e);
|
|
83681
84037
|
}
|
|
83682
|
-
function
|
|
84038
|
+
function IK(e) {
|
|
83683
84039
|
let t = [[]];
|
|
83684
84040
|
for (let n of e) {
|
|
83685
84041
|
let e = t.length;
|
|
@@ -83687,82 +84043,82 @@ function yK(e) {
|
|
|
83687
84043
|
}
|
|
83688
84044
|
return t;
|
|
83689
84045
|
}
|
|
83690
|
-
function
|
|
84046
|
+
function LK(e, t) {
|
|
83691
84047
|
for (let n of e) if (!(n instanceof t)) return !1;
|
|
83692
84048
|
return !0;
|
|
83693
84049
|
}
|
|
83694
|
-
function
|
|
84050
|
+
function RK(...e) {
|
|
83695
84051
|
let t = [];
|
|
83696
84052
|
for (let n of e) for (let e of n) t.push(e);
|
|
83697
84053
|
return t;
|
|
83698
84054
|
}
|
|
83699
|
-
function
|
|
84055
|
+
function zK(e) {
|
|
83700
84056
|
return typeof e == "string" ? [e] : typeof e == "object" && e && Symbol.iterator in e ? [...e] : [e];
|
|
83701
84057
|
}
|
|
83702
|
-
function
|
|
84058
|
+
function BK(e) {
|
|
83703
84059
|
let t = [];
|
|
83704
84060
|
for (let n of e) n && t.push(n);
|
|
83705
84061
|
return t;
|
|
83706
84062
|
}
|
|
83707
|
-
function
|
|
84063
|
+
function VK(e, t) {
|
|
83708
84064
|
let n = Math.max(e.length, t.length), r = [], i = [];
|
|
83709
84065
|
for (let a = 0; a < n; a++) r.push(e[a % e.length]), i.push(t[a % t.length]);
|
|
83710
84066
|
return [r, i];
|
|
83711
84067
|
}
|
|
83712
|
-
function
|
|
83713
|
-
return
|
|
84068
|
+
function HK(e) {
|
|
84069
|
+
return WK(UK(e));
|
|
83714
84070
|
}
|
|
83715
|
-
function
|
|
84071
|
+
function UK(e) {
|
|
83716
84072
|
if (e === null) return "null";
|
|
83717
84073
|
if (e === void 0) return "undefined";
|
|
83718
84074
|
let t = typeof e;
|
|
83719
84075
|
if (t === "string") return `s:${e}`;
|
|
83720
84076
|
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(
|
|
84077
|
+
if (e instanceof Set) return `set:[${[...e].map(UK).sort().join(",")}]`;
|
|
84078
|
+
if (e instanceof Map) return `map:{${[...e.entries()].map(([e, t]) => `${UK(e)}=${UK(t)}`).sort().join(",")}}`;
|
|
84079
|
+
if (Array.isArray(e)) return `arr:[${e.map(UK).join(",")}]`;
|
|
83724
84080
|
if (t === "object") {
|
|
83725
84081
|
let t = e;
|
|
83726
|
-
return `obj:{${Object.keys(t).sort().map((e) => `${e}=${
|
|
84082
|
+
return `obj:{${Object.keys(t).sort().map((e) => `${e}=${UK(t[e])}`).join(",")}}`;
|
|
83727
84083
|
}
|
|
83728
84084
|
return `${t}:${String(e)}`;
|
|
83729
84085
|
}
|
|
83730
|
-
function
|
|
84086
|
+
function WK(e) {
|
|
83731
84087
|
let t = 2166136261;
|
|
83732
84088
|
for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
|
|
83733
84089
|
return t >>> 0;
|
|
83734
84090
|
}
|
|
83735
84091
|
//#endregion
|
|
83736
84092
|
//#region src/utils/unit.ts
|
|
83737
|
-
function
|
|
84093
|
+
function GK(e) {
|
|
83738
84094
|
return e * pd / hd;
|
|
83739
84095
|
}
|
|
83740
|
-
function
|
|
84096
|
+
function KK(e) {
|
|
83741
84097
|
return e * Math.PI / 180;
|
|
83742
84098
|
}
|
|
83743
|
-
function
|
|
84099
|
+
function qK(e) {
|
|
83744
84100
|
return e;
|
|
83745
84101
|
}
|
|
83746
|
-
function
|
|
84102
|
+
function JK(e, t) {
|
|
83747
84103
|
return e[0] === t[0] && e[1] === t[1] && e[2] === t[2];
|
|
83748
84104
|
}
|
|
83749
|
-
function
|
|
84105
|
+
function YK(e, t) {
|
|
83750
84106
|
let n;
|
|
83751
|
-
if (
|
|
83752
|
-
else if (
|
|
83753
|
-
else if (
|
|
84107
|
+
if (JK(e, Md)) n = pd;
|
|
84108
|
+
else if (JK(e, kd)) n = 8;
|
|
84109
|
+
else if (JK(e, Nd)) throw Error("length of Z axis is undefined");
|
|
83754
84110
|
else throw Error("Percent axis must be the X axis (RIGHT) or Y axis (UP)");
|
|
83755
84111
|
return t / 100 * n;
|
|
83756
84112
|
}
|
|
83757
84113
|
//#endregion
|
|
83758
84114
|
//#region src/utils/debug.ts
|
|
83759
|
-
function
|
|
84115
|
+
function XK(e, t = !1) {
|
|
83760
84116
|
let n = [];
|
|
83761
84117
|
for (let t of e) n.push(...t.getFamily());
|
|
83762
84118
|
return t ? n.filter((e) => e instanceof z && e.hasOwnPoints()) : n;
|
|
83763
84119
|
}
|
|
83764
|
-
function
|
|
83765
|
-
let n = [], r = new Set(
|
|
84120
|
+
function ZK(e, t) {
|
|
84121
|
+
let n = [], r = new Set(XK(t)), i = (e, t) => {
|
|
83766
84122
|
for (let r of e) {
|
|
83767
84123
|
if (t.has(r)) continue;
|
|
83768
84124
|
let e = new Set(r.getFamily().filter((e) => t.has(e)));
|
|
@@ -83771,14 +84127,14 @@ function PK(e, t) {
|
|
|
83771
84127
|
};
|
|
83772
84128
|
return i(e, r), n;
|
|
83773
84129
|
}
|
|
83774
|
-
function
|
|
84130
|
+
function QK(e, t = {}) {
|
|
83775
84131
|
let { labelHeight: n = .15 } = t, r = new B();
|
|
83776
84132
|
return e.children.forEach((e, t) => {
|
|
83777
84133
|
let i = new wM({ value: t });
|
|
83778
84134
|
i.setHeight(n), i.moveTo(e), r.add(i);
|
|
83779
84135
|
}), r;
|
|
83780
84136
|
}
|
|
83781
|
-
function
|
|
84137
|
+
function $K(e, t = 0) {
|
|
83782
84138
|
let n = [], r = (e, t) => {
|
|
83783
84139
|
n.push(" ".repeat(t) + `${e.constructor.name} ${e.id}`);
|
|
83784
84140
|
for (let n of e.children) r(n, t + 1);
|
|
@@ -83789,8 +84145,8 @@ function IK(e, t = 0) {
|
|
|
83789
84145
|
}
|
|
83790
84146
|
//#endregion
|
|
83791
84147
|
//#region src/utils/spaceOps.ts
|
|
83792
|
-
var
|
|
83793
|
-
function
|
|
84148
|
+
var eq = 2 * Math.PI;
|
|
84149
|
+
function tq(e) {
|
|
83794
84150
|
let t = e.length, n = e[0].length, r = [];
|
|
83795
84151
|
for (let i = 0; i < n; i++) {
|
|
83796
84152
|
let n = [];
|
|
@@ -83799,20 +84155,20 @@ function RK(e) {
|
|
|
83799
84155
|
}
|
|
83800
84156
|
return r;
|
|
83801
84157
|
}
|
|
83802
|
-
function
|
|
84158
|
+
function nq(e, t) {
|
|
83803
84159
|
return e.map((e) => e.reduce((e, n, r) => e + n * (t[r] ?? 0), 0));
|
|
83804
84160
|
}
|
|
83805
|
-
function
|
|
84161
|
+
function rq(e) {
|
|
83806
84162
|
return e.reduce((e, t) => e + t * t, 0);
|
|
83807
84163
|
}
|
|
83808
|
-
function
|
|
84164
|
+
function iq(e, t) {
|
|
83809
84165
|
return e[0] * t[1] - e[1] * t[0];
|
|
83810
84166
|
}
|
|
83811
|
-
function
|
|
83812
|
-
let n = Math.sqrt(
|
|
84167
|
+
function aq(e, t) {
|
|
84168
|
+
let n = Math.sqrt(rq(e));
|
|
83813
84169
|
return n > 0 ? e.map((e) => e / n) : t ?? e.map(() => 0);
|
|
83814
84170
|
}
|
|
83815
|
-
function
|
|
84171
|
+
function oq(...e) {
|
|
83816
84172
|
if (e.length === 0) return [
|
|
83817
84173
|
1,
|
|
83818
84174
|
0,
|
|
@@ -83831,8 +84187,8 @@ function UK(...e) {
|
|
|
83831
84187
|
}
|
|
83832
84188
|
return t;
|
|
83833
84189
|
}
|
|
83834
|
-
function
|
|
83835
|
-
let r = n ? t :
|
|
84190
|
+
function sq(e, t, n = !1) {
|
|
84191
|
+
let r = n ? t : aq(t), i = Math.sin(e / 2);
|
|
83836
84192
|
return [
|
|
83837
84193
|
Math.cos(e / 2),
|
|
83838
84194
|
i * (r[0] ?? 0),
|
|
@@ -83840,19 +84196,19 @@ function WK(e, t, n = !1) {
|
|
|
83840
84196
|
i * (r[2] ?? 0)
|
|
83841
84197
|
];
|
|
83842
84198
|
}
|
|
83843
|
-
function
|
|
83844
|
-
let t =
|
|
84199
|
+
function cq(e) {
|
|
84200
|
+
let t = aq(e.slice(1), [
|
|
83845
84201
|
1,
|
|
83846
84202
|
0,
|
|
83847
84203
|
0
|
|
83848
84204
|
]), n = 2 * Math.acos(e[0]);
|
|
83849
|
-
return n >
|
|
84205
|
+
return n > eq / 2 && (n = eq - n, t = [
|
|
83850
84206
|
-t[0],
|
|
83851
84207
|
-t[1],
|
|
83852
84208
|
-t[2]
|
|
83853
84209
|
]), [n, t];
|
|
83854
84210
|
}
|
|
83855
|
-
function
|
|
84211
|
+
function lq(e) {
|
|
83856
84212
|
return [
|
|
83857
84213
|
e[0],
|
|
83858
84214
|
-e[1],
|
|
@@ -83860,7 +84216,7 @@ function KK(e) {
|
|
|
83860
84216
|
-e[3]
|
|
83861
84217
|
];
|
|
83862
84218
|
}
|
|
83863
|
-
function
|
|
84219
|
+
function uq(e, t, n = !1) {
|
|
83864
84220
|
let [r, i, a] = $d(t), o = Math.cos(e), s = Math.sin(e), c = 1 - o, l = [
|
|
83865
84221
|
[
|
|
83866
84222
|
o + r * r * c,
|
|
@@ -83890,7 +84246,7 @@ function qK(e, t, n = !1) {
|
|
|
83890
84246
|
]
|
|
83891
84247
|
] : l;
|
|
83892
84248
|
}
|
|
83893
|
-
function
|
|
84249
|
+
function dq(e) {
|
|
83894
84250
|
let t = Math.cos(e), n = Math.sin(e);
|
|
83895
84251
|
return [
|
|
83896
84252
|
[
|
|
@@ -83910,23 +84266,23 @@ function JK(e) {
|
|
|
83910
84266
|
]
|
|
83911
84267
|
];
|
|
83912
84268
|
}
|
|
83913
|
-
function
|
|
83914
|
-
return (t[0] ?? 0) === 0 && (t[1] ?? 0) === 0 ?
|
|
84269
|
+
function fq(e, t) {
|
|
84270
|
+
return (t[0] ?? 0) === 0 && (t[1] ?? 0) === 0 ? tq(dq(e * Math.sign(t[2] ?? 0))) : tq(uq(e, t));
|
|
83915
84271
|
}
|
|
83916
|
-
function
|
|
84272
|
+
function pq(e, t, n = Nd) {
|
|
83917
84273
|
if (e.length > 3) throw Error("Vector must have the correct dimensions.");
|
|
83918
84274
|
let r = e.length === 2 ? [
|
|
83919
84275
|
e[0],
|
|
83920
84276
|
e[1],
|
|
83921
84277
|
0
|
|
83922
|
-
] : e, i =
|
|
84278
|
+
] : e, i = nq(uq(t, n), r);
|
|
83923
84279
|
return [
|
|
83924
84280
|
i[0],
|
|
83925
84281
|
i[1],
|
|
83926
84282
|
i[2]
|
|
83927
84283
|
];
|
|
83928
84284
|
}
|
|
83929
|
-
function
|
|
84285
|
+
function mq(e) {
|
|
83930
84286
|
let t = $d(e), n = $d(Zd(t, Md)), r = Zd(n, t);
|
|
83931
84287
|
if (Qd(n) === 0) {
|
|
83932
84288
|
r = $d(Zd(kd, t));
|
|
@@ -83937,27 +84293,27 @@ function ZK(e) {
|
|
|
83937
84293
|
-e[2]
|
|
83938
84294
|
];
|
|
83939
84295
|
}
|
|
83940
|
-
return
|
|
84296
|
+
return tq([
|
|
83941
84297
|
r,
|
|
83942
84298
|
n,
|
|
83943
84299
|
t
|
|
83944
84300
|
]);
|
|
83945
84301
|
}
|
|
83946
|
-
function
|
|
84302
|
+
function hq(e) {
|
|
83947
84303
|
return Math.atan2(e[1] ?? 0, e[0] ?? 0);
|
|
83948
84304
|
}
|
|
83949
|
-
function
|
|
83950
|
-
let n =
|
|
83951
|
-
return 2 * Math.atan2(Math.sqrt(
|
|
84305
|
+
function gq(e, t) {
|
|
84306
|
+
let n = aq(e), r = aq(t), i = n.map((e, t) => e - r[t]), a = n.map((e, t) => e + r[t]);
|
|
84307
|
+
return 2 * Math.atan2(Math.sqrt(rq(i)), Math.sqrt(rq(a)));
|
|
83952
84308
|
}
|
|
83953
|
-
function
|
|
84309
|
+
function _q(e, t, n = 1e-6) {
|
|
83954
84310
|
let r = Math.max(...e.map(Math.abs)), i = Math.max(...t.map(Math.abs)), a;
|
|
83955
84311
|
if (r === 0) {
|
|
83956
84312
|
if (i === 0) return Ad;
|
|
83957
84313
|
a = t.map((e) => e / i);
|
|
83958
84314
|
} else if (i === 0) a = e.map((e) => e / r);
|
|
83959
84315
|
else {
|
|
83960
|
-
let o = e.map((e) => e / r), s = Zd(o, t.map((e) => e / i)), c = Math.sqrt(
|
|
84316
|
+
let o = e.map((e) => e / r), s = Zd(o, t.map((e) => e / i)), c = Math.sqrt(rq(s));
|
|
83961
84317
|
if (c > n) return [
|
|
83962
84318
|
s[0] / c,
|
|
83963
84319
|
s[1] / c,
|
|
@@ -83970,43 +84326,43 @@ function eq(e, t, n = 1e-6) {
|
|
|
83970
84326
|
-a[0] * a[2],
|
|
83971
84327
|
-a[1] * a[2],
|
|
83972
84328
|
a[0] * a[0] + a[1] * a[1]
|
|
83973
|
-
], s = Math.sqrt(
|
|
84329
|
+
], s = Math.sqrt(rq(o));
|
|
83974
84330
|
return [
|
|
83975
84331
|
o[0] / s,
|
|
83976
84332
|
o[1] / s,
|
|
83977
84333
|
o[2] / s
|
|
83978
84334
|
];
|
|
83979
84335
|
}
|
|
83980
|
-
function
|
|
83981
|
-
let n =
|
|
83982
|
-
for (let i = 0; i < e; i++) r.push(
|
|
84336
|
+
function vq(e = 4, t = Md) {
|
|
84337
|
+
let n = eq / e, r = [];
|
|
84338
|
+
for (let i = 0; i < e; i++) r.push(pq(t, i * n));
|
|
83983
84339
|
return r;
|
|
83984
84340
|
}
|
|
83985
|
-
function
|
|
83986
|
-
let n = t.radius ?? 1, r = t.startAngle ?? (e % 2 == 0 ? 0 :
|
|
83987
|
-
return [
|
|
84341
|
+
function yq(e, t = {}) {
|
|
84342
|
+
let n = t.radius ?? 1, r = t.startAngle ?? (e % 2 == 0 ? 0 : eq / 4);
|
|
84343
|
+
return [vq(e, pq([
|
|
83988
84344
|
n,
|
|
83989
84345
|
0,
|
|
83990
84346
|
0
|
|
83991
84347
|
], r)), r];
|
|
83992
84348
|
}
|
|
83993
|
-
function
|
|
84349
|
+
function bq(e) {
|
|
83994
84350
|
return [
|
|
83995
84351
|
e.re,
|
|
83996
84352
|
e.im,
|
|
83997
84353
|
0
|
|
83998
84354
|
];
|
|
83999
84355
|
}
|
|
84000
|
-
function
|
|
84356
|
+
function xq(e) {
|
|
84001
84357
|
return {
|
|
84002
84358
|
re: e[0] ?? 0,
|
|
84003
84359
|
im: e[1] ?? 0
|
|
84004
84360
|
};
|
|
84005
84361
|
}
|
|
84006
|
-
function
|
|
84007
|
-
return (t) =>
|
|
84362
|
+
function Sq(e) {
|
|
84363
|
+
return (t) => bq(e(xq(t)));
|
|
84008
84364
|
}
|
|
84009
|
-
function
|
|
84365
|
+
function Cq(e) {
|
|
84010
84366
|
let t = [
|
|
84011
84367
|
0,
|
|
84012
84368
|
0,
|
|
@@ -84020,10 +84376,10 @@ function oq(e) {
|
|
|
84020
84376
|
t[2] / n
|
|
84021
84377
|
];
|
|
84022
84378
|
}
|
|
84023
|
-
function
|
|
84024
|
-
return
|
|
84379
|
+
function wq(e, t) {
|
|
84380
|
+
return Cq([e, t]);
|
|
84025
84381
|
}
|
|
84026
|
-
function
|
|
84382
|
+
function Tq(e, t) {
|
|
84027
84383
|
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
84384
|
let n = (e) => Zd([
|
|
84029
84385
|
e[0][0],
|
|
@@ -84041,7 +84397,7 @@ function cq(e, t) {
|
|
|
84041
84397
|
0
|
|
84042
84398
|
];
|
|
84043
84399
|
}
|
|
84044
|
-
function
|
|
84400
|
+
function Eq(e, t, n, r, i = 1e-5) {
|
|
84045
84401
|
let a = [];
|
|
84046
84402
|
for (let o = 0; o < e.length; o++) {
|
|
84047
84403
|
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 +84413,15 @@ function lq(e, t, n, r, i = 1e-5) {
|
|
|
84057
84413
|
}
|
|
84058
84414
|
return a;
|
|
84059
84415
|
}
|
|
84060
|
-
function
|
|
84416
|
+
function Dq(e) {
|
|
84061
84417
|
let t = 0;
|
|
84062
84418
|
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
84419
|
return t;
|
|
84064
84420
|
}
|
|
84065
|
-
function
|
|
84066
|
-
return
|
|
84421
|
+
function Oq(e) {
|
|
84422
|
+
return Dq(e) > 0 ? "CW" : "CCW";
|
|
84067
84423
|
}
|
|
84068
|
-
function
|
|
84424
|
+
function kq(e) {
|
|
84069
84425
|
let t = Qd(e);
|
|
84070
84426
|
if (t === 0) return [
|
|
84071
84427
|
0,
|
|
@@ -84079,7 +84435,7 @@ function fq(e) {
|
|
|
84079
84435
|
n
|
|
84080
84436
|
];
|
|
84081
84437
|
}
|
|
84082
|
-
function
|
|
84438
|
+
function Aq(e) {
|
|
84083
84439
|
let [t, n, r] = e;
|
|
84084
84440
|
return [
|
|
84085
84441
|
t * Math.cos(n) * Math.sin(r),
|
|
@@ -84087,12 +84443,12 @@ function pq(e) {
|
|
|
84087
84443
|
t * Math.cos(r)
|
|
84088
84444
|
];
|
|
84089
84445
|
}
|
|
84090
|
-
function
|
|
84446
|
+
function jq(e, t = Nd) {
|
|
84091
84447
|
let n = e[0], r = e[1], i = Zd([
|
|
84092
84448
|
n[0] - r[0],
|
|
84093
84449
|
n[1] - r[1],
|
|
84094
84450
|
n[2] - r[2]
|
|
84095
|
-
], t), a =
|
|
84451
|
+
], t), a = wq(n, r);
|
|
84096
84452
|
return [[
|
|
84097
84453
|
a[0] + i[0],
|
|
84098
84454
|
a[1] + i[1],
|
|
@@ -84103,7 +84459,7 @@ function mq(e, t = Nd) {
|
|
|
84103
84459
|
a[2] - i[2]
|
|
84104
84460
|
]];
|
|
84105
84461
|
}
|
|
84106
|
-
function
|
|
84462
|
+
function Mq(e, t = 2) {
|
|
84107
84463
|
let n = [];
|
|
84108
84464
|
for (let r = 0; r < e; r++) {
|
|
84109
84465
|
let i = [];
|
|
@@ -84112,41 +84468,41 @@ function hq(e, t = 2) {
|
|
|
84112
84468
|
}
|
|
84113
84469
|
return n;
|
|
84114
84470
|
}
|
|
84115
|
-
function
|
|
84471
|
+
function Nq(e) {
|
|
84116
84472
|
let t = 0;
|
|
84117
|
-
for (let [n, r] of
|
|
84118
|
-
let e = ((
|
|
84473
|
+
for (let [n, r] of OK(e)) {
|
|
84474
|
+
let e = ((hq(r) - hq(n) + Math.PI) % eq + eq) % eq - Math.PI;
|
|
84119
84475
|
t += e;
|
|
84120
84476
|
}
|
|
84121
|
-
return t /
|
|
84477
|
+
return t / eq;
|
|
84122
84478
|
}
|
|
84123
84479
|
//#endregion
|
|
84124
84480
|
//#region src/utils/paths.ts
|
|
84125
|
-
var
|
|
84126
|
-
function
|
|
84481
|
+
var Pq = .01;
|
|
84482
|
+
function Fq(e, t, n) {
|
|
84127
84483
|
return e.map((e, r) => e.map((e, i) => e + n * (t[r][i] - e)));
|
|
84128
84484
|
}
|
|
84129
|
-
function
|
|
84485
|
+
function Iq(e, t) {
|
|
84130
84486
|
return t.map((t) => t.reduce((t, n, r) => t + n * e[r], 0));
|
|
84131
84487
|
}
|
|
84132
|
-
function
|
|
84133
|
-
return
|
|
84488
|
+
function Lq() {
|
|
84489
|
+
return Fq;
|
|
84134
84490
|
}
|
|
84135
|
-
function
|
|
84136
|
-
let r =
|
|
84491
|
+
function Rq(e, t, n = Nd) {
|
|
84492
|
+
let r = aq(n, Nd), i = (e) => t[e] ?? t[0];
|
|
84137
84493
|
return (t, n, a) => {
|
|
84138
|
-
let o =
|
|
84494
|
+
let o = uq(-e, r), s = uq(a * e, r);
|
|
84139
84495
|
return t.map((e, t) => {
|
|
84140
|
-
let r = i(t), c =
|
|
84141
|
-
return
|
|
84496
|
+
let r = i(t), c = Iq(n[t].map((e, t) => e - r[t]), o).map((e, t) => e + r[t]);
|
|
84497
|
+
return Iq(e.map((e, t) => e + a * (c[t] - e)).map((e, t) => e - r[t]), s).map((e, t) => e + r[t]);
|
|
84142
84498
|
});
|
|
84143
84499
|
};
|
|
84144
84500
|
}
|
|
84145
|
-
function
|
|
84146
|
-
if (Math.abs(e) <
|
|
84147
|
-
let n =
|
|
84501
|
+
function zq(e, t = Nd) {
|
|
84502
|
+
if (Math.abs(e) < Pq) return Lq();
|
|
84503
|
+
let n = aq(t, Nd);
|
|
84148
84504
|
return (t, r, i) => {
|
|
84149
|
-
let a =
|
|
84505
|
+
let a = uq(i * e, n);
|
|
84150
84506
|
return t.map((t, i) => {
|
|
84151
84507
|
let o = r[i].map((e, n) => e - t[n]), s = t.map((e, t) => e + .5 * o[t]);
|
|
84152
84508
|
if (e !== Math.PI) {
|
|
@@ -84157,19 +84513,19 @@ function Sq(e, t = Nd) {
|
|
|
84157
84513
|
], i = 1 / Math.tan(e / 2);
|
|
84158
84514
|
for (let e = 0; e < s.length; e++) s[e] += r[e] * i;
|
|
84159
84515
|
}
|
|
84160
|
-
return
|
|
84516
|
+
return Iq(t.map((e, t) => e - s[t]), a).map((e, t) => e + s[t]);
|
|
84161
84517
|
});
|
|
84162
84518
|
};
|
|
84163
84519
|
}
|
|
84164
|
-
function
|
|
84165
|
-
return
|
|
84520
|
+
function Bq() {
|
|
84521
|
+
return zq(-Math.PI);
|
|
84166
84522
|
}
|
|
84167
|
-
function
|
|
84168
|
-
return
|
|
84523
|
+
function Vq() {
|
|
84524
|
+
return zq(Math.PI);
|
|
84169
84525
|
}
|
|
84170
84526
|
//#endregion
|
|
84171
84527
|
//#region src/utils/simpleFunctions.ts
|
|
84172
|
-
function
|
|
84528
|
+
function Hq(e, t, n, r, i = 1e-4) {
|
|
84173
84529
|
let a = n, o = r, s = (a + o) / 2;
|
|
84174
84530
|
for (; Math.abs(o - a) > i;) {
|
|
84175
84531
|
s = (a + o) / 2;
|
|
@@ -84182,7 +84538,7 @@ function Tq(e, t, n, r, i = 1e-4) {
|
|
|
84182
84538
|
}
|
|
84183
84539
|
return s;
|
|
84184
84540
|
}
|
|
84185
|
-
function
|
|
84541
|
+
function Uq(e, t) {
|
|
84186
84542
|
if (t < 0 || t > e) return 0;
|
|
84187
84543
|
let n = t;
|
|
84188
84544
|
n > e - n && (n = e - n);
|
|
@@ -84190,30 +84546,30 @@ function Eq(e, t) {
|
|
|
84190
84546
|
for (let t = 0; t < n; t++) r = r * (e - t) / (t + 1);
|
|
84191
84547
|
return Math.round(r);
|
|
84192
84548
|
}
|
|
84193
|
-
function
|
|
84549
|
+
function Wq(e, t, n) {
|
|
84194
84550
|
return e < t ? t : e > n ? n : e;
|
|
84195
84551
|
}
|
|
84196
|
-
function
|
|
84552
|
+
function Gq(e) {
|
|
84197
84553
|
return 1 / (1 + Math.exp(-e));
|
|
84198
84554
|
}
|
|
84199
84555
|
//#endregion
|
|
84200
84556
|
//#region src/utils/bezier.ts
|
|
84201
|
-
function
|
|
84557
|
+
function Kq(e, t, n) {
|
|
84202
84558
|
if (Array.isArray(e) && Array.isArray(t)) return e.map((e, r) => (1 - n) * e + n * t[r]);
|
|
84203
84559
|
if (typeof e == "number" && typeof t == "number") return (1 - n) * e + n * t;
|
|
84204
84560
|
throw Error("interpolate: start and end must both be numbers or both be arrays");
|
|
84205
84561
|
}
|
|
84206
|
-
function
|
|
84562
|
+
function qq(e, t) {
|
|
84207
84563
|
if (Array.isArray(e) && Array.isArray(t)) return e.map((e, n) => (e + t[n]) / 2);
|
|
84208
84564
|
if (typeof e == "number" && typeof t == "number") return (e + t) / 2;
|
|
84209
84565
|
throw Error("mid: start and end must both be numbers or both be arrays");
|
|
84210
84566
|
}
|
|
84211
|
-
function
|
|
84567
|
+
function Jq(e, t, n) {
|
|
84212
84568
|
if (Array.isArray(e) && Array.isArray(t) && Array.isArray(n)) return e.map((e, r) => (n[r] - e) / (t[r] - e));
|
|
84213
84569
|
if (typeof e == "number" && typeof t == "number" && typeof n == "number") return (n - e) / (t - e);
|
|
84214
84570
|
throw Error("inverse_interpolate: start, end and value must all be numbers or all be arrays");
|
|
84215
84571
|
}
|
|
84216
|
-
function
|
|
84572
|
+
function Yq(e, t, n, r, i) {
|
|
84217
84573
|
let a = r - n;
|
|
84218
84574
|
if (Array.isArray(i)) return i.map((r) => {
|
|
84219
84575
|
let i = (r - n) / a;
|
|
@@ -84222,7 +84578,7 @@ function Mq(e, t, n, r, i) {
|
|
|
84222
84578
|
let o = (i - n) / a;
|
|
84223
84579
|
return (1 - o) * e + o * t;
|
|
84224
84580
|
}
|
|
84225
|
-
function
|
|
84581
|
+
function Xq(e, t) {
|
|
84226
84582
|
if (e.length === 0) return 0;
|
|
84227
84583
|
let n = e.slice();
|
|
84228
84584
|
for (; n.length > 1;) {
|
|
@@ -84232,7 +84588,7 @@ function Nq(e, t) {
|
|
|
84232
84588
|
}
|
|
84233
84589
|
return n[0];
|
|
84234
84590
|
}
|
|
84235
|
-
function
|
|
84591
|
+
function Zq(e, t) {
|
|
84236
84592
|
if (e.length === 0) return [];
|
|
84237
84593
|
let n = e.map((e) => e.slice());
|
|
84238
84594
|
for (; n.length > 1;) {
|
|
@@ -84242,15 +84598,15 @@ function Pq(e, t) {
|
|
|
84242
84598
|
}
|
|
84243
84599
|
return n[0];
|
|
84244
84600
|
}
|
|
84245
|
-
function
|
|
84601
|
+
function Qq(e) {
|
|
84246
84602
|
if (e.length > 0 && Array.isArray(e[0])) {
|
|
84247
84603
|
let t = e.filter((e) => Array.isArray(e));
|
|
84248
|
-
return (e) =>
|
|
84604
|
+
return (e) => Zq(t, e);
|
|
84249
84605
|
}
|
|
84250
84606
|
let t = e.filter((e) => typeof e == "number");
|
|
84251
|
-
return (e) =>
|
|
84607
|
+
return (e) => Xq(t, e);
|
|
84252
84608
|
}
|
|
84253
|
-
function
|
|
84609
|
+
function $q(e, t) {
|
|
84254
84610
|
let n = e.length, r = e.map((e) => e.slice()), i = Array(n);
|
|
84255
84611
|
i[0] = e[0].slice();
|
|
84256
84612
|
for (let e = 1; e < n; e++) {
|
|
@@ -84259,7 +84615,7 @@ function Iq(e, t) {
|
|
|
84259
84615
|
}
|
|
84260
84616
|
return [...i, ...r];
|
|
84261
84617
|
}
|
|
84262
|
-
function
|
|
84618
|
+
function eJ(e, t) {
|
|
84263
84619
|
if (t <= 1) return e.map((e) => e.slice());
|
|
84264
84620
|
let n = [];
|
|
84265
84621
|
for (let r = 0; r < t; r++) {
|
|
@@ -84268,7 +84624,7 @@ function Lq(e, t) {
|
|
|
84268
84624
|
}
|
|
84269
84625
|
return n;
|
|
84270
84626
|
}
|
|
84271
|
-
function
|
|
84627
|
+
function tJ(e, t) {
|
|
84272
84628
|
let n = e.length;
|
|
84273
84629
|
if (n === 0) return [];
|
|
84274
84630
|
let r = e[0].length, i = [];
|
|
@@ -84279,12 +84635,12 @@ function Rq(e, t) {
|
|
|
84279
84635
|
for (let t = 0; t < n; t++) {
|
|
84280
84636
|
let n = a[t];
|
|
84281
84637
|
if (n <= 0) continue;
|
|
84282
|
-
let i =
|
|
84638
|
+
let i = eJ(e[t], n);
|
|
84283
84639
|
for (let e = 0; e < n; e++) o.push(i.slice(e * r, e * r + r));
|
|
84284
84640
|
}
|
|
84285
84641
|
return o;
|
|
84286
84642
|
}
|
|
84287
|
-
function
|
|
84643
|
+
function nJ(e) {
|
|
84288
84644
|
let t = e[0], n = e[e.length - 1];
|
|
84289
84645
|
for (let e = 0; e < 3; e++) {
|
|
84290
84646
|
let r = t[e] ?? 0, i = n[e] ?? 0, a = 1e-8 + 1e-5 * Math.abs(r);
|
|
@@ -84292,43 +84648,43 @@ function zq(e) {
|
|
|
84292
84648
|
}
|
|
84293
84649
|
return !0;
|
|
84294
84650
|
}
|
|
84295
|
-
function
|
|
84651
|
+
function rJ(e, t) {
|
|
84296
84652
|
return {
|
|
84297
84653
|
re: e.re + t.re,
|
|
84298
84654
|
im: e.im + t.im
|
|
84299
84655
|
};
|
|
84300
84656
|
}
|
|
84301
|
-
function
|
|
84657
|
+
function iJ(e, t) {
|
|
84302
84658
|
return {
|
|
84303
84659
|
re: e.re - t.re,
|
|
84304
84660
|
im: e.im - t.im
|
|
84305
84661
|
};
|
|
84306
84662
|
}
|
|
84307
|
-
function
|
|
84663
|
+
function aJ(e, t) {
|
|
84308
84664
|
return {
|
|
84309
84665
|
re: e.re * t.re - e.im * t.im,
|
|
84310
84666
|
im: e.re * t.im + e.im * t.re
|
|
84311
84667
|
};
|
|
84312
84668
|
}
|
|
84313
|
-
function
|
|
84669
|
+
function oJ(e, t) {
|
|
84314
84670
|
let n = t.re * t.re + t.im * t.im;
|
|
84315
84671
|
return {
|
|
84316
84672
|
re: (e.re * t.re + e.im * t.im) / n,
|
|
84317
84673
|
im: (e.im * t.re - e.re * t.im) / n
|
|
84318
84674
|
};
|
|
84319
84675
|
}
|
|
84320
|
-
function
|
|
84676
|
+
function sJ(e, t) {
|
|
84321
84677
|
let n = {
|
|
84322
84678
|
re: e[e.length - 1],
|
|
84323
84679
|
im: 0
|
|
84324
84680
|
};
|
|
84325
|
-
for (let r = e.length - 2; r >= 0; r--) n =
|
|
84681
|
+
for (let r = e.length - 2; r >= 0; r--) n = rJ(aJ(n, t), {
|
|
84326
84682
|
re: e[r],
|
|
84327
84683
|
im: 0
|
|
84328
84684
|
});
|
|
84329
84685
|
return n;
|
|
84330
84686
|
}
|
|
84331
|
-
function
|
|
84687
|
+
function cJ(e) {
|
|
84332
84688
|
let t = e.slice();
|
|
84333
84689
|
for (; t.length > 1 && Math.abs(t[t.length - 1]) < 1e-14;) t.pop();
|
|
84334
84690
|
let n = t.length - 1;
|
|
@@ -84343,17 +84699,17 @@ function Gq(e) {
|
|
|
84343
84699
|
for (let e = 0; e < n; e++) a.push({
|
|
84344
84700
|
re: s.re,
|
|
84345
84701
|
im: s.im
|
|
84346
|
-
}), s =
|
|
84702
|
+
}), s = aJ(s, o);
|
|
84347
84703
|
for (let e = 0; e < 200; e++) {
|
|
84348
84704
|
let e = 0;
|
|
84349
84705
|
for (let t = 0; t < n; t++) {
|
|
84350
|
-
let r =
|
|
84706
|
+
let r = sJ(i, a[t]), o = {
|
|
84351
84707
|
re: 1,
|
|
84352
84708
|
im: 0
|
|
84353
84709
|
};
|
|
84354
|
-
for (let e = 0; e < n; e++) e !== t && (o =
|
|
84355
|
-
let s =
|
|
84356
|
-
a[t] =
|
|
84710
|
+
for (let e = 0; e < n; e++) e !== t && (o = aJ(o, iJ(a[t], a[e])));
|
|
84711
|
+
let s = oJ(r, o);
|
|
84712
|
+
a[t] = iJ(a[t], s);
|
|
84357
84713
|
let c = Math.hypot(s.re, s.im);
|
|
84358
84714
|
c > e && (e = c);
|
|
84359
84715
|
}
|
|
@@ -84361,98 +84717,98 @@ function Gq(e) {
|
|
|
84361
84717
|
}
|
|
84362
84718
|
return a;
|
|
84363
84719
|
}
|
|
84364
|
-
function
|
|
84720
|
+
function lJ(e, t) {
|
|
84365
84721
|
if (t < 0 || t > e) return 0;
|
|
84366
84722
|
let n = 1;
|
|
84367
84723
|
for (let r = 0; r < t; r++) n = n * (e - r) / (r + 1);
|
|
84368
84724
|
return Math.round(n);
|
|
84369
84725
|
}
|
|
84370
|
-
function
|
|
84726
|
+
function uJ(e, t) {
|
|
84371
84727
|
let n = 10 ** t;
|
|
84372
84728
|
return Math.round(e * n) / n;
|
|
84373
84729
|
}
|
|
84374
|
-
function
|
|
84730
|
+
function dJ(e, t, n) {
|
|
84375
84731
|
let r = .5 * 10 ** -n, i = [];
|
|
84376
84732
|
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
84733
|
return i;
|
|
84378
84734
|
}
|
|
84379
|
-
function
|
|
84735
|
+
function fJ(e, t, n = 1e-6) {
|
|
84380
84736
|
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
84737
|
let r = t.length - 1, i = Math.round(Math.log10(1 / n)), a = [];
|
|
84382
84738
|
for (let n = 0; n < e.length; n++) {
|
|
84383
84739
|
let o = e[n], s = t.map((e) => e[n]), c = [];
|
|
84384
84740
|
for (let e = r; e >= 0; e--) {
|
|
84385
|
-
let t =
|
|
84741
|
+
let t = lJ(r, e), n = 1, i = 0;
|
|
84386
84742
|
for (let t = e; t >= 0; t--) {
|
|
84387
|
-
let r =
|
|
84743
|
+
let r = lJ(e, t) * n * s[t];
|
|
84388
84744
|
e === 0 && (r -= o), i += r, n *= -1;
|
|
84389
84745
|
}
|
|
84390
84746
|
c.push(t * i);
|
|
84391
84747
|
}
|
|
84392
84748
|
if (c.every((e) => e === 0)) continue;
|
|
84393
|
-
let l =
|
|
84749
|
+
let l = cJ(c.slice().reverse()).filter((e) => Math.abs(e.im) < 1e-9).map((e) => uJ(e.re, i));
|
|
84394
84750
|
a.push(l);
|
|
84395
84751
|
}
|
|
84396
84752
|
if (a.length === 0) return [];
|
|
84397
84753
|
let o = a[0];
|
|
84398
|
-
for (let e = 1; e < a.length; e++) o =
|
|
84754
|
+
for (let e = 1; e < a.length; e++) o = dJ(o, a[e], i);
|
|
84399
84755
|
return o.filter((e) => e >= 0 && e <= 1);
|
|
84400
84756
|
}
|
|
84401
|
-
function
|
|
84402
|
-
return
|
|
84757
|
+
function pJ(e, t, n = 1e-6) {
|
|
84758
|
+
return fJ(e, t, n).length > 0;
|
|
84403
84759
|
}
|
|
84404
84760
|
//#endregion
|
|
84405
84761
|
//#region src/mobjects/three-d/threeDVmobUtils.ts
|
|
84406
|
-
function
|
|
84762
|
+
function mJ(e) {
|
|
84407
84763
|
return [
|
|
84408
84764
|
e[0],
|
|
84409
84765
|
e[1],
|
|
84410
84766
|
e[2]
|
|
84411
84767
|
];
|
|
84412
84768
|
}
|
|
84413
|
-
function
|
|
84769
|
+
function hJ(e) {
|
|
84414
84770
|
return e.filter((e, t) => t % 3 == 0);
|
|
84415
84771
|
}
|
|
84416
|
-
function
|
|
84417
|
-
return [
|
|
84772
|
+
function gJ(e) {
|
|
84773
|
+
return [yJ(e), bJ(e)];
|
|
84418
84774
|
}
|
|
84419
|
-
function
|
|
84775
|
+
function _J(e) {
|
|
84420
84776
|
return 0;
|
|
84421
84777
|
}
|
|
84422
|
-
function
|
|
84778
|
+
function vJ(e) {
|
|
84423
84779
|
return Math.floor((e.getPoints().length - 1) / 6) * 3;
|
|
84424
84780
|
}
|
|
84425
|
-
function
|
|
84781
|
+
function yJ(e) {
|
|
84426
84782
|
let t = e.getPoints();
|
|
84427
|
-
return t.length === 0 ? [...Fd] :
|
|
84783
|
+
return t.length === 0 ? [...Fd] : mJ(t[_J(e)]);
|
|
84428
84784
|
}
|
|
84429
|
-
function
|
|
84785
|
+
function bJ(e) {
|
|
84430
84786
|
let t = e.getPoints();
|
|
84431
|
-
return t.length === 0 ? [...Fd] :
|
|
84787
|
+
return t.length === 0 ? [...Fd] : mJ(t[vJ(e)]);
|
|
84432
84788
|
}
|
|
84433
|
-
function
|
|
84789
|
+
function xJ(e, t) {
|
|
84434
84790
|
let n = e.getPoints(), r = n.length;
|
|
84435
|
-
if (
|
|
84436
|
-
let i = t, a = i > 2 ? i - 3 : r - 4, o =
|
|
84791
|
+
if (hJ(n).length <= 2) return [...kd];
|
|
84792
|
+
let i = t, a = i > 2 ? i - 3 : r - 4, o = _q(n[i < r - 3 ? i + 3 : 3].map((e, t) => e - n[i][t]), n[a].map((e, t) => e - n[i][t]));
|
|
84437
84793
|
return Math.hypot(...o) === 0 ? [...kd] : o;
|
|
84438
84794
|
}
|
|
84439
|
-
function
|
|
84440
|
-
return
|
|
84795
|
+
function SJ(e) {
|
|
84796
|
+
return xJ(e, _J(e));
|
|
84441
84797
|
}
|
|
84442
|
-
function
|
|
84443
|
-
return
|
|
84798
|
+
function CJ(e) {
|
|
84799
|
+
return xJ(e, vJ(e));
|
|
84444
84800
|
}
|
|
84445
84801
|
//#endregion
|
|
84446
84802
|
//#region src/core/SpecialThreeDScene.ts
|
|
84447
|
-
var
|
|
84803
|
+
var wJ = 70 * Nu, TJ = -110 * Nu, EJ = 2, DJ = 48, OJ = class extends WE {
|
|
84448
84804
|
cutAxesAtRadius;
|
|
84449
84805
|
_threeDAxesConfig;
|
|
84450
84806
|
_sphereConfig;
|
|
84451
84807
|
_defaultAngledCameraPosition;
|
|
84452
84808
|
constructor(e, t = {}) {
|
|
84453
84809
|
let { cutAxesAtRadius: n = !0, threeDAxesConfig: r = {}, sphereConfig: i = {}, defaultAngledCameraPosition: a = {
|
|
84454
|
-
phi:
|
|
84455
|
-
theta:
|
|
84810
|
+
phi: wJ,
|
|
84811
|
+
theta: TJ
|
|
84456
84812
|
}, phi: o = a.phi, theta: s = a.theta, ...c } = t;
|
|
84457
84813
|
super(e, {
|
|
84458
84814
|
...c,
|
|
@@ -84482,8 +84838,8 @@ var sJ = 70 * Nu, cJ = -110 * Nu, lJ = 2, uJ = 48, dJ = class extends WE {
|
|
|
84482
84838
|
}
|
|
84483
84839
|
getDefaultSphereConfig() {
|
|
84484
84840
|
return {
|
|
84485
|
-
radius:
|
|
84486
|
-
resolution:
|
|
84841
|
+
radius: EJ,
|
|
84842
|
+
resolution: DJ
|
|
84487
84843
|
};
|
|
84488
84844
|
}
|
|
84489
84845
|
getAxes() {
|
|
@@ -84509,36 +84865,36 @@ var sJ = 70 * Nu, cJ = -110 * Nu, lJ = 2, uJ = 48, dJ = class extends WE {
|
|
|
84509
84865
|
};
|
|
84510
84866
|
//#endregion
|
|
84511
84867
|
//#region src/mobjects/text/registerFont.ts
|
|
84512
|
-
function
|
|
84868
|
+
function kJ(e, t) {
|
|
84513
84869
|
if (typeof document > "u" || typeof FontFace > "u" || document.fonts === void 0) return !1;
|
|
84514
84870
|
let n = typeof t == "string" && !/^\s*(url|local)\s*\(/i.test(t) ? `url("${t}")` : t, r = new FontFace(e, n);
|
|
84515
84871
|
return document.fonts.add(r), !0;
|
|
84516
84872
|
}
|
|
84517
84873
|
//#endregion
|
|
84518
84874
|
//#region src/integrations/webcomponent.ts
|
|
84519
|
-
var
|
|
84875
|
+
var AJ = 800, jJ = 450, MJ = { importModule: (e) => import(
|
|
84520
84876
|
/* @vite-ignore */
|
|
84521
84877
|
e
|
|
84522
84878
|
) };
|
|
84523
|
-
function
|
|
84879
|
+
function NJ(e) {
|
|
84524
84880
|
return typeof e.togglePlayPause == "function";
|
|
84525
84881
|
}
|
|
84526
|
-
function
|
|
84882
|
+
function PJ(e) {
|
|
84527
84883
|
try {
|
|
84528
84884
|
e.dispose();
|
|
84529
84885
|
} catch (e) {
|
|
84530
84886
|
qf.error("<manim-scene> failed to dispose instance:", e);
|
|
84531
84887
|
}
|
|
84532
84888
|
}
|
|
84533
|
-
function
|
|
84889
|
+
function FJ(e, t) {
|
|
84534
84890
|
let n = e?.trim();
|
|
84535
84891
|
return n ? /^\d+(\.\d+)?$/.test(n) ? `${n}px` : n : `${t}px`;
|
|
84536
84892
|
}
|
|
84537
|
-
function
|
|
84893
|
+
function IJ(e) {
|
|
84538
84894
|
let t = e?.trim();
|
|
84539
84895
|
return !t || !/^\d+(\.\d+)?$/.test(t) ? null : Number(t);
|
|
84540
84896
|
}
|
|
84541
|
-
var
|
|
84897
|
+
var LJ = typeof HTMLElement < "u" ? HTMLElement : class {}, RJ = class extends LJ {
|
|
84542
84898
|
static get observedAttributes() {
|
|
84543
84899
|
return [
|
|
84544
84900
|
"width",
|
|
@@ -84584,7 +84940,7 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84584
84940
|
}
|
|
84585
84941
|
_applyContainerStyle() {
|
|
84586
84942
|
let e = this._container;
|
|
84587
|
-
e && (e.style.width =
|
|
84943
|
+
e && (e.style.width = FJ(this.getAttribute("width"), AJ), e.style.height = FJ(this.getAttribute("height"), jJ), e.style.position = "relative", e.style.overflow = "hidden", e.style.background = this.getAttribute("background") ?? "");
|
|
84588
84944
|
}
|
|
84589
84945
|
_mount() {
|
|
84590
84946
|
return this._mountPromise = this._doMount(), this._mountPromise;
|
|
@@ -84603,7 +84959,7 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84603
84959
|
return;
|
|
84604
84960
|
}
|
|
84605
84961
|
if (e !== this._loadToken) {
|
|
84606
|
-
|
|
84962
|
+
PJ(r);
|
|
84607
84963
|
return;
|
|
84608
84964
|
}
|
|
84609
84965
|
this._instance = r, this._applyPlaybackOptions();
|
|
@@ -84612,7 +84968,7 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84612
84968
|
if (this._sceneFactory) return this._sceneFactory;
|
|
84613
84969
|
let t = this.getAttribute("src");
|
|
84614
84970
|
if (!t) return null;
|
|
84615
|
-
let n = await
|
|
84971
|
+
let n = await MJ.importModule(t);
|
|
84616
84972
|
if (e !== this._loadToken) return null;
|
|
84617
84973
|
let r = n.default;
|
|
84618
84974
|
return typeof r == "function" ? r : (qf.error(`<manim-scene> module "${t}" has no default-export factory function.`), null);
|
|
@@ -84620,7 +84976,7 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84620
84976
|
_applyPlaybackOptions() {
|
|
84621
84977
|
let e = this._instance;
|
|
84622
84978
|
if (!e) return;
|
|
84623
|
-
let t =
|
|
84979
|
+
let t = NJ(e);
|
|
84624
84980
|
t && (e.loop = this.hasAttribute("loop")), t || this._syncSceneControls(e), this.hasAttribute("autoplay") && !e.isPlaying && (t ? e.play() : e.resume());
|
|
84625
84981
|
}
|
|
84626
84982
|
_syncSceneControls(e) {
|
|
@@ -84630,9 +84986,9 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84630
84986
|
_resizeInstance() {
|
|
84631
84987
|
let e = this._instance;
|
|
84632
84988
|
if (!e) return;
|
|
84633
|
-
let t =
|
|
84989
|
+
let t = IJ(this.getAttribute("width")), n = IJ(this.getAttribute("height"));
|
|
84634
84990
|
if (t === null || n === null) return;
|
|
84635
|
-
let r =
|
|
84991
|
+
let r = NJ(e) ? e.scene : e;
|
|
84636
84992
|
try {
|
|
84637
84993
|
r.resize(t, n);
|
|
84638
84994
|
} catch (e) {
|
|
@@ -84648,78 +85004,78 @@ var bJ = typeof HTMLElement < "u" ? HTMLElement : class {}, xJ = class extends b
|
|
|
84648
85004
|
}
|
|
84649
85005
|
this._controls = null;
|
|
84650
85006
|
}
|
|
84651
|
-
this._instance &&= (
|
|
85007
|
+
this._instance &&= (PJ(this._instance), null);
|
|
84652
85008
|
}
|
|
84653
85009
|
_clearContainerChildren() {
|
|
84654
85010
|
let e = this._container;
|
|
84655
85011
|
if (e) for (; e.firstChild;) e.removeChild(e.firstChild);
|
|
84656
85012
|
}
|
|
84657
85013
|
};
|
|
84658
|
-
function
|
|
84659
|
-
typeof customElements > "u" || typeof HTMLElement > "u" || customElements.get(e) || customElements.define(e,
|
|
85014
|
+
function zJ(e = "manim-scene") {
|
|
85015
|
+
typeof customElements > "u" || typeof HTMLElement > "u" || customElements.get(e) || customElements.define(e, RJ);
|
|
84660
85016
|
}
|
|
84661
85017
|
//#endregion
|
|
84662
85018
|
//#region src/serialization/registry.ts
|
|
84663
|
-
var
|
|
84664
|
-
function
|
|
84665
|
-
|
|
85019
|
+
var BJ = /* @__PURE__ */ new Map();
|
|
85020
|
+
function VJ(e, t) {
|
|
85021
|
+
BJ.set(e, t);
|
|
84666
85022
|
}
|
|
84667
|
-
function
|
|
84668
|
-
|
|
85023
|
+
function HJ(e) {
|
|
85024
|
+
BJ.delete(e);
|
|
84669
85025
|
}
|
|
84670
|
-
function
|
|
84671
|
-
return
|
|
85026
|
+
function UJ(e) {
|
|
85027
|
+
return BJ.get(e);
|
|
84672
85028
|
}
|
|
84673
|
-
function
|
|
84674
|
-
return [...
|
|
85029
|
+
function WJ() {
|
|
85030
|
+
return [...BJ.keys()].sort();
|
|
84675
85031
|
}
|
|
84676
85032
|
//#endregion
|
|
84677
85033
|
//#region src/serialization/props.ts
|
|
84678
|
-
function
|
|
85034
|
+
function GJ(e, t) {
|
|
84679
85035
|
return typeof e == "number" && Number.isFinite(e) ? e : t;
|
|
84680
85036
|
}
|
|
84681
|
-
function
|
|
85037
|
+
function KJ(e, t) {
|
|
84682
85038
|
return typeof e == "string" ? e : t;
|
|
84683
85039
|
}
|
|
84684
|
-
function
|
|
85040
|
+
function qJ(e, t) {
|
|
84685
85041
|
return typeof e == "boolean" ? e : t;
|
|
84686
85042
|
}
|
|
84687
|
-
function
|
|
85043
|
+
function JJ(e) {
|
|
84688
85044
|
return typeof e == "string" ? e : void 0;
|
|
84689
85045
|
}
|
|
84690
|
-
function
|
|
85046
|
+
function YJ(e) {
|
|
84691
85047
|
return Array.isArray(e) && e.length === 3 && e.every((e) => typeof e == "number" && Number.isFinite(e));
|
|
84692
85048
|
}
|
|
84693
|
-
function
|
|
84694
|
-
return
|
|
85049
|
+
function XJ(e, t) {
|
|
85050
|
+
return YJ(e) ? [
|
|
84695
85051
|
e[0],
|
|
84696
85052
|
e[1],
|
|
84697
85053
|
e[2]
|
|
84698
85054
|
] : t;
|
|
84699
85055
|
}
|
|
84700
|
-
function
|
|
85056
|
+
function ZJ(e) {
|
|
84701
85057
|
if (!Array.isArray(e)) return [];
|
|
84702
85058
|
let t = [];
|
|
84703
|
-
for (let n of e)
|
|
85059
|
+
for (let n of e) YJ(n) && t.push([
|
|
84704
85060
|
n[0],
|
|
84705
85061
|
n[1],
|
|
84706
85062
|
n[2]
|
|
84707
85063
|
]);
|
|
84708
85064
|
return t;
|
|
84709
85065
|
}
|
|
84710
|
-
function
|
|
85066
|
+
function QJ(e) {
|
|
84711
85067
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
84712
85068
|
}
|
|
84713
85069
|
//#endregion
|
|
84714
85070
|
//#region src/serialization/defaults.ts
|
|
84715
|
-
function
|
|
84716
|
-
return typeof e == "number" && Number.isFinite(e) ? e :
|
|
85071
|
+
function $J(e) {
|
|
85072
|
+
return typeof e == "number" && Number.isFinite(e) ? e : KJ(e, "normal");
|
|
84717
85073
|
}
|
|
84718
|
-
function
|
|
85074
|
+
function eY(e) {
|
|
84719
85075
|
return e === "left" || e === "right" ? e : "center";
|
|
84720
85076
|
}
|
|
84721
|
-
function
|
|
84722
|
-
|
|
85077
|
+
function tY() {
|
|
85078
|
+
VJ("Circle", {
|
|
84723
85079
|
serialize: (e) => {
|
|
84724
85080
|
let t = e;
|
|
84725
85081
|
return {
|
|
@@ -84728,10 +85084,10 @@ function RJ() {
|
|
|
84728
85084
|
};
|
|
84729
85085
|
},
|
|
84730
85086
|
deserialize: (e) => new EO({
|
|
84731
|
-
radius:
|
|
84732
|
-
numPoints:
|
|
85087
|
+
radius: GJ(e.radius, 1),
|
|
85088
|
+
numPoints: GJ(e.numPoints, 64)
|
|
84733
85089
|
})
|
|
84734
|
-
}),
|
|
85090
|
+
}), VJ("Rectangle", {
|
|
84735
85091
|
serialize: (e) => {
|
|
84736
85092
|
let t = e;
|
|
84737
85093
|
return {
|
|
@@ -84740,13 +85096,13 @@ function RJ() {
|
|
|
84740
85096
|
};
|
|
84741
85097
|
},
|
|
84742
85098
|
deserialize: (e) => new GE({
|
|
84743
|
-
width:
|
|
84744
|
-
height:
|
|
85099
|
+
width: GJ(e.width, 2),
|
|
85100
|
+
height: GJ(e.height, 1)
|
|
84745
85101
|
})
|
|
84746
|
-
}),
|
|
85102
|
+
}), VJ("Square", {
|
|
84747
85103
|
serialize: (e) => ({ sideLength: e._width }),
|
|
84748
|
-
deserialize: (e) => new KE({ sideLength:
|
|
84749
|
-
}),
|
|
85104
|
+
deserialize: (e) => new KE({ sideLength: GJ(e.sideLength, 2) })
|
|
85105
|
+
}), VJ("Line", {
|
|
84750
85106
|
serialize: (e) => {
|
|
84751
85107
|
let t = e;
|
|
84752
85108
|
return {
|
|
@@ -84755,27 +85111,27 @@ function RJ() {
|
|
|
84755
85111
|
};
|
|
84756
85112
|
},
|
|
84757
85113
|
deserialize: (e) => new rD({
|
|
84758
|
-
start:
|
|
85114
|
+
start: XJ(e.start, [
|
|
84759
85115
|
0,
|
|
84760
85116
|
0,
|
|
84761
85117
|
0
|
|
84762
85118
|
]),
|
|
84763
|
-
end:
|
|
85119
|
+
end: XJ(e.end, [
|
|
84764
85120
|
1,
|
|
84765
85121
|
0,
|
|
84766
85122
|
0
|
|
84767
85123
|
])
|
|
84768
85124
|
})
|
|
84769
|
-
}),
|
|
85125
|
+
}), VJ("Dot", {
|
|
84770
85126
|
serialize: (e) => ({ radius: e._radius }),
|
|
84771
|
-
deserialize: (e) => new XO({ radius:
|
|
84772
|
-
}),
|
|
85127
|
+
deserialize: (e) => new XO({ radius: GJ(e.radius, .08) })
|
|
85128
|
+
}), VJ("Polygon", {
|
|
84773
85129
|
serialize: (e) => ({
|
|
84774
85130
|
vertices: e.getVertices().map((e) => [...e]),
|
|
84775
85131
|
closed: e._closed
|
|
84776
85132
|
}),
|
|
84777
85133
|
deserialize: (e) => {
|
|
84778
|
-
let t =
|
|
85134
|
+
let t = ZJ(e.vertices);
|
|
84779
85135
|
return new DO({
|
|
84780
85136
|
vertices: t.length >= 2 ? t : [[
|
|
84781
85137
|
0,
|
|
@@ -84786,16 +85142,16 @@ function RJ() {
|
|
|
84786
85142
|
0,
|
|
84787
85143
|
0
|
|
84788
85144
|
]],
|
|
84789
|
-
closed:
|
|
85145
|
+
closed: qJ(e.closed, !0)
|
|
84790
85146
|
});
|
|
84791
85147
|
}
|
|
84792
|
-
}),
|
|
85148
|
+
}), VJ("Group", {
|
|
84793
85149
|
serialize: () => ({}),
|
|
84794
85150
|
deserialize: () => new PT()
|
|
84795
|
-
}),
|
|
85151
|
+
}), VJ("VGroup", {
|
|
84796
85152
|
serialize: () => ({}),
|
|
84797
85153
|
deserialize: () => new B()
|
|
84798
|
-
}),
|
|
85154
|
+
}), VJ("Text", {
|
|
84799
85155
|
serialize: (e) => {
|
|
84800
85156
|
let t = e;
|
|
84801
85157
|
return {
|
|
@@ -84810,16 +85166,16 @@ function RJ() {
|
|
|
84810
85166
|
};
|
|
84811
85167
|
},
|
|
84812
85168
|
deserialize: (e) => new Uw({
|
|
84813
|
-
text:
|
|
84814
|
-
fontSize:
|
|
84815
|
-
fontFamily:
|
|
84816
|
-
fontWeight:
|
|
84817
|
-
fontStyle:
|
|
84818
|
-
lineHeight:
|
|
84819
|
-
letterSpacing:
|
|
84820
|
-
textAlign:
|
|
85169
|
+
text: KJ(e.text, ""),
|
|
85170
|
+
fontSize: GJ(e.fontSize, 48),
|
|
85171
|
+
fontFamily: KJ(e.fontFamily, "CMU Serif, Georgia, Times New Roman, serif"),
|
|
85172
|
+
fontWeight: $J(e.fontWeight),
|
|
85173
|
+
fontStyle: KJ(e.fontStyle, "normal"),
|
|
85174
|
+
lineHeight: GJ(e.lineHeight, 1.2),
|
|
85175
|
+
letterSpacing: GJ(e.letterSpacing, 0),
|
|
85176
|
+
textAlign: eY(e.textAlign)
|
|
84821
85177
|
})
|
|
84822
|
-
}),
|
|
85178
|
+
}), VJ("MathTex", {
|
|
84823
85179
|
serialize: (e) => {
|
|
84824
85180
|
let t = e;
|
|
84825
85181
|
return {
|
|
@@ -84829,15 +85185,15 @@ function RJ() {
|
|
|
84829
85185
|
};
|
|
84830
85186
|
},
|
|
84831
85187
|
deserialize: (e) => new oM({
|
|
84832
|
-
latex:
|
|
84833
|
-
fontSize:
|
|
84834
|
-
displayMode:
|
|
85188
|
+
latex: KJ(e.latex, ""),
|
|
85189
|
+
fontSize: GJ(e.fontSize, 1),
|
|
85190
|
+
displayMode: qJ(e.displayMode, !0)
|
|
84835
85191
|
})
|
|
84836
85192
|
});
|
|
84837
85193
|
}
|
|
84838
85194
|
//#endregion
|
|
84839
85195
|
//#region src/serialization/types.ts
|
|
84840
|
-
var
|
|
85196
|
+
var nY = "manim-web-scene", rY = {
|
|
84841
85197
|
position: [
|
|
84842
85198
|
0,
|
|
84843
85199
|
0,
|
|
@@ -84854,7 +85210,7 @@ var zJ = "manim-web-scene", BJ = {
|
|
|
84854
85210
|
1
|
|
84855
85211
|
]
|
|
84856
85212
|
};
|
|
84857
|
-
function
|
|
85213
|
+
function iY(e) {
|
|
84858
85214
|
return {
|
|
84859
85215
|
position: [
|
|
84860
85216
|
e.position.x,
|
|
@@ -84873,98 +85229,98 @@ function VJ(e) {
|
|
|
84873
85229
|
]
|
|
84874
85230
|
};
|
|
84875
85231
|
}
|
|
84876
|
-
function
|
|
85232
|
+
function aY(e) {
|
|
84877
85233
|
let t = {};
|
|
84878
85234
|
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
85235
|
}
|
|
84880
|
-
function
|
|
84881
|
-
let n =
|
|
85236
|
+
function oY(e, t) {
|
|
85237
|
+
let n = QJ(t) ? t : {}, r = XJ(n.position, rY.position), i = XJ(n.rotation, rY.rotation), a = XJ(n.scale, rY.scale);
|
|
84882
85238
|
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
85239
|
}
|
|
84884
|
-
function
|
|
84885
|
-
let n =
|
|
85240
|
+
function sY(e, t) {
|
|
85241
|
+
let n = QJ(t) ? t : {};
|
|
84886
85242
|
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 =
|
|
85243
|
+
let r = JJ(n.strokeColor), i = JJ(n.fillColor);
|
|
84888
85244
|
r !== void 0 && (e.color = r), r !== void 0 && (e.strokeColor = r), i !== void 0 && (e.fillColor = i);
|
|
84889
85245
|
}
|
|
84890
|
-
function
|
|
84891
|
-
let t = e.constructor.name, n =
|
|
85246
|
+
function cY(e) {
|
|
85247
|
+
let t = e.constructor.name, n = UJ(t), r = {
|
|
84892
85248
|
type: t,
|
|
84893
85249
|
props: n ? n.serialize(e) : {},
|
|
84894
|
-
transform:
|
|
84895
|
-
style:
|
|
84896
|
-
children: e.children.map(
|
|
85250
|
+
transform: iY(e),
|
|
85251
|
+
style: aY(e),
|
|
85252
|
+
children: e.children.map(cY)
|
|
84897
85253
|
};
|
|
84898
85254
|
return n || (r.unknown = !0), r;
|
|
84899
85255
|
}
|
|
84900
|
-
function
|
|
84901
|
-
if (!
|
|
84902
|
-
let t =
|
|
85256
|
+
function lY(e) {
|
|
85257
|
+
if (!QJ(e) || e.unknown === !0) return null;
|
|
85258
|
+
let t = JJ(e.type);
|
|
84903
85259
|
if (t === void 0) return null;
|
|
84904
|
-
let n =
|
|
85260
|
+
let n = UJ(t);
|
|
84905
85261
|
if (!n) return null;
|
|
84906
|
-
let r =
|
|
84907
|
-
if (
|
|
84908
|
-
let e =
|
|
85262
|
+
let r = QJ(e.props) ? e.props : {}, i = n.deserialize(r);
|
|
85263
|
+
if (oY(i, e.transform), sY(i, e.style), Array.isArray(e.children)) for (let t of e.children) {
|
|
85264
|
+
let e = lY(t);
|
|
84909
85265
|
e && i.add(e);
|
|
84910
85266
|
}
|
|
84911
85267
|
return i;
|
|
84912
85268
|
}
|
|
84913
|
-
function
|
|
85269
|
+
function uY(e) {
|
|
84914
85270
|
let t = [];
|
|
84915
|
-
for (let n of e.mobjects) t.push(
|
|
85271
|
+
for (let n of e.mobjects) t.push(cY(n));
|
|
84916
85272
|
return {
|
|
84917
|
-
format:
|
|
85273
|
+
format: nY,
|
|
84918
85274
|
version: 1,
|
|
84919
85275
|
mobjects: t
|
|
84920
85276
|
};
|
|
84921
85277
|
}
|
|
84922
|
-
function
|
|
84923
|
-
if (!
|
|
85278
|
+
function dY(e, t) {
|
|
85279
|
+
if (!QJ(e) || !Array.isArray(e.mobjects)) return [];
|
|
84924
85280
|
let n = [];
|
|
84925
85281
|
for (let r of e.mobjects) {
|
|
84926
|
-
let e =
|
|
85282
|
+
let e = lY(r);
|
|
84927
85283
|
e && (t.add(e), n.push(e));
|
|
84928
85284
|
}
|
|
84929
85285
|
return n;
|
|
84930
85286
|
}
|
|
84931
85287
|
//#endregion
|
|
84932
85288
|
//#region src/serialization/urlState.ts
|
|
84933
|
-
var
|
|
85289
|
+
var fY = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", pY = (() => {
|
|
84934
85290
|
let e = /* @__PURE__ */ new Map();
|
|
84935
|
-
for (let t = 0; t < 64; t++) e.set(
|
|
85291
|
+
for (let t = 0; t < 64; t++) e.set(fY.charAt(t), t);
|
|
84936
85292
|
return e;
|
|
84937
85293
|
})();
|
|
84938
|
-
function
|
|
85294
|
+
function mY(e) {
|
|
84939
85295
|
let t = "";
|
|
84940
85296
|
for (let n = 0; n < e.length; n += 3) {
|
|
84941
85297
|
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 +=
|
|
85298
|
+
t += fY.charAt(c >> 18 & 63), t += fY.charAt(c >> 12 & 63), i && (t += fY.charAt(c >> 6 & 63)), a && (t += fY.charAt(c & 63));
|
|
84943
85299
|
}
|
|
84944
85300
|
return t;
|
|
84945
85301
|
}
|
|
84946
|
-
function
|
|
85302
|
+
function hY(e) {
|
|
84947
85303
|
let t = e.length;
|
|
84948
85304
|
if (t % 4 == 1) return null;
|
|
84949
85305
|
let n = [];
|
|
84950
85306
|
for (let r = 0; r < t; r += 4) {
|
|
84951
|
-
let i = Math.min(4, t - r), a =
|
|
85307
|
+
let i = Math.min(4, t - r), a = pY.get(e.charAt(r)), o = pY.get(e.charAt(r + 1));
|
|
84952
85308
|
if (a === void 0 || o === void 0) return null;
|
|
84953
|
-
let s = i > 2 ?
|
|
85309
|
+
let s = i > 2 ? pY.get(e.charAt(r + 2)) : 0, c = i > 3 ? pY.get(e.charAt(r + 3)) : 0;
|
|
84954
85310
|
if (s === void 0 || c === void 0) return null;
|
|
84955
85311
|
let l = a << 18 | o << 12 | s << 6 | c;
|
|
84956
85312
|
n.push(l >> 16 & 255), i > 2 && n.push(l >> 8 & 255), i > 3 && n.push(l & 255);
|
|
84957
85313
|
}
|
|
84958
85314
|
return Uint8Array.from(n);
|
|
84959
85315
|
}
|
|
84960
|
-
function
|
|
85316
|
+
function gY(e) {
|
|
84961
85317
|
let t = JSON.stringify(e), n = typeof t == "string" ? t : "null";
|
|
84962
|
-
return
|
|
85318
|
+
return mY(new TextEncoder().encode(n));
|
|
84963
85319
|
}
|
|
84964
|
-
function
|
|
85320
|
+
function _Y(e) {
|
|
84965
85321
|
let t = e.startsWith("#") ? e.slice(1) : e;
|
|
84966
85322
|
if (t.length === 0) return null;
|
|
84967
|
-
let n =
|
|
85323
|
+
let n = hY(t);
|
|
84968
85324
|
if (n === null) return null;
|
|
84969
85325
|
try {
|
|
84970
85326
|
let e = new TextDecoder().decode(n);
|
|
@@ -84973,18 +85329,18 @@ function eY(e) {
|
|
|
84973
85329
|
return null;
|
|
84974
85330
|
}
|
|
84975
85331
|
}
|
|
84976
|
-
function
|
|
85332
|
+
function vY() {
|
|
84977
85333
|
return typeof window < "u" && window.location ? window.location : null;
|
|
84978
85334
|
}
|
|
84979
|
-
function
|
|
85335
|
+
function yY() {
|
|
84980
85336
|
return typeof window < "u" && window.history ? window.history : null;
|
|
84981
85337
|
}
|
|
84982
|
-
function
|
|
84983
|
-
let n =
|
|
85338
|
+
function bY(e, t = {}) {
|
|
85339
|
+
let n = vY();
|
|
84984
85340
|
if (!n) return;
|
|
84985
|
-
let r =
|
|
85341
|
+
let r = gY(e), i = `#${r}`;
|
|
84986
85342
|
if (t.replace) {
|
|
84987
|
-
let e =
|
|
85343
|
+
let e = yY();
|
|
84988
85344
|
if (e && typeof e.replaceState == "function") {
|
|
84989
85345
|
e.replaceState(e.state ?? null, "", i);
|
|
84990
85346
|
return;
|
|
@@ -84992,29 +85348,29 @@ function rY(e, t = {}) {
|
|
|
84992
85348
|
}
|
|
84993
85349
|
n.hash = r;
|
|
84994
85350
|
}
|
|
84995
|
-
function
|
|
84996
|
-
let e =
|
|
84997
|
-
return e ?
|
|
85351
|
+
function xY() {
|
|
85352
|
+
let e = vY();
|
|
85353
|
+
return e ? _Y(e.hash) : null;
|
|
84998
85354
|
}
|
|
84999
|
-
function
|
|
85355
|
+
function SY(e) {
|
|
85000
85356
|
if (typeof window > "u" || typeof window.addEventListener != "function") return () => void 0;
|
|
85001
|
-
let t = () => e(
|
|
85357
|
+
let t = () => e(xY());
|
|
85002
85358
|
return window.addEventListener("hashchange", t), () => window.removeEventListener("hashchange", t);
|
|
85003
85359
|
}
|
|
85004
|
-
function
|
|
85360
|
+
function CY(e) {
|
|
85005
85361
|
let t = {};
|
|
85006
85362
|
for (let n of e) t[n.id] = n.get();
|
|
85007
85363
|
return t;
|
|
85008
85364
|
}
|
|
85009
|
-
function
|
|
85365
|
+
function wY(e, t) {
|
|
85010
85366
|
if (typeof t != "object" || !t || Array.isArray(t)) return !1;
|
|
85011
85367
|
let n = t, r = !1;
|
|
85012
85368
|
for (let t of e) Object.prototype.hasOwnProperty.call(n, t.id) && (t.set(n[t.id]), r = !0);
|
|
85013
85369
|
return r;
|
|
85014
85370
|
}
|
|
85015
|
-
function
|
|
85016
|
-
let { replace: n = !0, restoreOnBind: r = !0, listen: i = !0 } = t, a = () =>
|
|
85017
|
-
return r && s(), i && (c =
|
|
85371
|
+
function TY(e, t = {}) {
|
|
85372
|
+
let { replace: n = !0, restoreOnBind: r = !0, listen: i = !0 } = t, a = () => CY(e), o = () => bY(a(), { replace: n }), s = () => wY(e, xY()), c = null;
|
|
85373
|
+
return r && s(), i && (c = SY((t) => wY(e, t))), {
|
|
85018
85374
|
capture: a,
|
|
85019
85375
|
save: o,
|
|
85020
85376
|
restore: s,
|
|
@@ -85025,13 +85381,13 @@ function cY(e, t = {}) {
|
|
|
85025
85381
|
}
|
|
85026
85382
|
//#endregion
|
|
85027
85383
|
//#region src/serialization/parametrized.ts
|
|
85028
|
-
function
|
|
85384
|
+
function EY(e) {
|
|
85029
85385
|
return Array.isArray(e) && e.length === 3 && e.every((e) => typeof e == "number" && Number.isFinite(e));
|
|
85030
85386
|
}
|
|
85031
|
-
function
|
|
85032
|
-
return typeof e == "number" ? "number" : typeof e == "string" ? "string" : typeof e == "boolean" ? "boolean" :
|
|
85387
|
+
function DY(e) {
|
|
85388
|
+
return typeof e == "number" ? "number" : typeof e == "string" ? "string" : typeof e == "boolean" ? "boolean" : EY(e) ? "vec3" : Array.isArray(e) ? "array" : QJ(e) ? "object" : null;
|
|
85033
85389
|
}
|
|
85034
|
-
function
|
|
85390
|
+
function OY(e, t, n) {
|
|
85035
85391
|
switch (t) {
|
|
85036
85392
|
case "number":
|
|
85037
85393
|
if (typeof e == "number" && Number.isFinite(e)) return e;
|
|
@@ -85042,46 +85398,46 @@ function dY(e, t, n) {
|
|
|
85042
85398
|
return typeof e == "boolean" ? +!!e : n;
|
|
85043
85399
|
case "string": return typeof e == "string" ? e : typeof e == "number" && Number.isFinite(e) || typeof e == "boolean" ? String(e) : n;
|
|
85044
85400
|
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
|
|
85401
|
+
case "vec3": return XJ(e, EY(n) ? n : [
|
|
85046
85402
|
0,
|
|
85047
85403
|
0,
|
|
85048
85404
|
0
|
|
85049
85405
|
]);
|
|
85050
85406
|
case "array": return Array.isArray(e) ? e : n;
|
|
85051
|
-
case "object": return
|
|
85407
|
+
case "object": return QJ(e) ? e : n;
|
|
85052
85408
|
}
|
|
85053
85409
|
}
|
|
85054
|
-
function
|
|
85055
|
-
let r = e.defaultProps[t], i = e.schema?.[t] ??
|
|
85056
|
-
return i === null ? n === void 0 ? r : n :
|
|
85410
|
+
function kY(e, t, n) {
|
|
85411
|
+
let r = e.defaultProps[t], i = e.schema?.[t] ?? DY(r);
|
|
85412
|
+
return i === null ? n === void 0 ? r : n : OY(n, i, r);
|
|
85057
85413
|
}
|
|
85058
|
-
function
|
|
85414
|
+
function AY(e, t, n) {
|
|
85059
85415
|
let r = { ...t };
|
|
85060
|
-
if (n) for (let t of Object.keys(n)) Object.prototype.hasOwnProperty.call(e.defaultProps, t) && (r[t] =
|
|
85416
|
+
if (n) for (let t of Object.keys(n)) Object.prototype.hasOwnProperty.call(e.defaultProps, t) && (r[t] = kY(e, t, n[t]));
|
|
85061
85417
|
return r;
|
|
85062
85418
|
}
|
|
85063
|
-
function
|
|
85419
|
+
function jY(e) {
|
|
85064
85420
|
return e;
|
|
85065
85421
|
}
|
|
85066
|
-
function
|
|
85067
|
-
return
|
|
85422
|
+
function MY(e, t) {
|
|
85423
|
+
return AY(e, { ...e.defaultProps }, t);
|
|
85068
85424
|
}
|
|
85069
|
-
function
|
|
85070
|
-
let t =
|
|
85071
|
-
return
|
|
85425
|
+
function NY(e) {
|
|
85426
|
+
let t = xY();
|
|
85427
|
+
return MY(e, QJ(t) ? t : void 0);
|
|
85072
85428
|
}
|
|
85073
|
-
var
|
|
85429
|
+
var PY = async (e, t) => {
|
|
85074
85430
|
if (typeof fetch != "function") throw Error("renderParametrized: no global fetch available. Pass options.fetch to inject one.");
|
|
85075
85431
|
let n = await fetch(e, t);
|
|
85076
85432
|
if (!n.ok) throw Error(`renderParametrized: fetch failed for ${e} (status ${n.status})`);
|
|
85077
85433
|
return n.json();
|
|
85078
85434
|
};
|
|
85079
|
-
function
|
|
85435
|
+
function FY(e, t) {
|
|
85080
85436
|
let n = t.width ?? e.renderer.width, r = t.height ?? e.renderer.height;
|
|
85081
85437
|
(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
85438
|
}
|
|
85083
|
-
async function
|
|
85084
|
-
let r = n.fetch ??
|
|
85439
|
+
async function IY(e, t, n = {}) {
|
|
85440
|
+
let r = n.fetch ?? PY, i = MY(e, t), a, o = {};
|
|
85085
85441
|
if (e.calculateMetadata) {
|
|
85086
85442
|
let t = await e.calculateMetadata({
|
|
85087
85443
|
props: i,
|
|
@@ -85092,7 +85448,7 @@ async function yY(e, t, n = {}) {
|
|
|
85092
85448
|
width: t.width,
|
|
85093
85449
|
height: t.height,
|
|
85094
85450
|
fps: t.fps
|
|
85095
|
-
}, t.props && (i =
|
|
85451
|
+
}, t.props && (i = AY(e, i, t.props));
|
|
85096
85452
|
}
|
|
85097
85453
|
let s = n.scene;
|
|
85098
85454
|
s ||= pE.createHeadless({
|
|
@@ -85100,9 +85456,9 @@ async function yY(e, t, n = {}) {
|
|
|
85100
85456
|
...o.width === void 0 ? {} : { width: o.width },
|
|
85101
85457
|
...o.height === void 0 ? {} : { height: o.height },
|
|
85102
85458
|
...o.fps === void 0 ? {} : { targetFps: o.fps }
|
|
85103
|
-
}),
|
|
85104
|
-
let c =
|
|
85105
|
-
return n.writeUrl &&
|
|
85459
|
+
}), FY(s, o);
|
|
85460
|
+
let c = gY(i);
|
|
85461
|
+
return n.writeUrl && bY(i, { replace: n.urlReplace ?? !0 }), await e.build(s, i, a), {
|
|
85106
85462
|
scene: s,
|
|
85107
85463
|
props: i,
|
|
85108
85464
|
data: a,
|
|
@@ -85117,10 +85473,10 @@ async function yY(e, t, n = {}) {
|
|
|
85117
85473
|
}
|
|
85118
85474
|
//#endregion
|
|
85119
85475
|
//#region src/serialization/index.ts
|
|
85120
|
-
|
|
85476
|
+
tY();
|
|
85121
85477
|
//#endregion
|
|
85122
85478
|
//#region src/mobjects/geo/geojson.ts
|
|
85123
|
-
function
|
|
85479
|
+
function LY(e) {
|
|
85124
85480
|
if (e.type === "Polygon") {
|
|
85125
85481
|
let t = e.coordinates[0];
|
|
85126
85482
|
return t ? [t] : [];
|
|
@@ -85134,26 +85490,26 @@ function bY(e) {
|
|
|
85134
85490
|
}
|
|
85135
85491
|
//#endregion
|
|
85136
85492
|
//#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) *
|
|
85493
|
+
var RY = Math.PI / 180;
|
|
85494
|
+
function zY(e = {}) {
|
|
85495
|
+
let { radius: t = 1, centerLon: n = 0, centerLat: r = 0, standardParallel: i = 0 } = e, a = Math.cos(i * RY);
|
|
85496
|
+
return ([e, i]) => [(e - n) * RY * t * a, (i - r) * RY * t];
|
|
85141
85497
|
}
|
|
85142
|
-
function
|
|
85498
|
+
function BY(e = {}) {
|
|
85143
85499
|
let { radius: t = 1, centerLon: n = 0, maxLatitude: r = 85.05112878 } = e;
|
|
85144
85500
|
return ([e, i]) => {
|
|
85145
|
-
let a = Math.max(-r, Math.min(r, i)) *
|
|
85146
|
-
return [(e - n) *
|
|
85501
|
+
let a = Math.max(-r, Math.min(r, i)) * RY;
|
|
85502
|
+
return [(e - n) * RY * t, t * Math.log(Math.tan(Math.PI / 4 + a / 2))];
|
|
85147
85503
|
};
|
|
85148
85504
|
}
|
|
85149
85505
|
//#endregion
|
|
85150
85506
|
//#region src/mobjects/geo/colorScale.ts
|
|
85151
|
-
var
|
|
85507
|
+
var VY = ["#0d1b2a", "#4cc9f0"], HY = class {
|
|
85152
85508
|
_palette;
|
|
85153
85509
|
_domain;
|
|
85154
85510
|
constructor(e = {}) {
|
|
85155
|
-
let { colors: t =
|
|
85156
|
-
this._palette = wh(t.length > 0 ? t :
|
|
85511
|
+
let { colors: t = VY, domain: n = [0, 1], samples: r = 256 } = e, i = Math.max(2, Math.floor(r));
|
|
85512
|
+
this._palette = wh(t.length > 0 ? t : VY, i), this._domain = [n[0], n[1]];
|
|
85157
85513
|
}
|
|
85158
85514
|
setDomainFromValues(e) {
|
|
85159
85515
|
let t = Infinity, n = -Infinity;
|
|
@@ -85169,7 +85525,7 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85169
85525
|
let a = Math.round(i * (this._palette.length - 1));
|
|
85170
85526
|
return this._palette[a];
|
|
85171
85527
|
}
|
|
85172
|
-
},
|
|
85528
|
+
}, UY = class extends PT {
|
|
85173
85529
|
_projection;
|
|
85174
85530
|
_colorScale;
|
|
85175
85531
|
_regions = [];
|
|
@@ -85177,10 +85533,10 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85177
85533
|
_regionPolygons = [];
|
|
85178
85534
|
constructor(e) {
|
|
85179
85535
|
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 =
|
|
85536
|
+
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 = zY() } = e;
|
|
85181
85537
|
this._projection = l;
|
|
85182
85538
|
let u = t.features ?? [], d = u.map((e, t) => n(e, t));
|
|
85183
|
-
this._colorScale = new
|
|
85539
|
+
this._colorScale = new HY({
|
|
85184
85540
|
colors: r,
|
|
85185
85541
|
domain: i
|
|
85186
85542
|
}), i || this._colorScale.setDomainFromValues(d.filter((e) => typeof e == "number" && Number.isFinite(e))), u.forEach((e, t) => {
|
|
@@ -85193,7 +85549,7 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85193
85549
|
});
|
|
85194
85550
|
}
|
|
85195
85551
|
_buildRegion(e, t, n) {
|
|
85196
|
-
let r = typeof t == "number" && Number.isFinite(t) ? this._colorScale.colorFor(t) : n.noDataColor, i =
|
|
85552
|
+
let r = typeof t == "number" && Number.isFinite(t) ? this._colorScale.colorFor(t) : n.noDataColor, i = LY(e.geometry), a = [];
|
|
85197
85553
|
for (let e of i) {
|
|
85198
85554
|
let t = this._buildPolygon(e, r, n);
|
|
85199
85555
|
t && a.push(t);
|
|
@@ -85202,7 +85558,7 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85202
85558
|
this.add(o), this._regions.push(o), this._regionColors.push(r), this._regionPolygons.push(a);
|
|
85203
85559
|
}
|
|
85204
85560
|
_buildPolygon(e, t, n) {
|
|
85205
|
-
let r =
|
|
85561
|
+
let r = GY(e);
|
|
85206
85562
|
if (r.length < 3) return null;
|
|
85207
85563
|
let i = new DO({
|
|
85208
85564
|
vertices: r.map((e) => {
|
|
@@ -85238,15 +85594,15 @@ var wY = ["#0d1b2a", "#4cc9f0"], TY = class {
|
|
|
85238
85594
|
getColorScale() {
|
|
85239
85595
|
return this._colorScale;
|
|
85240
85596
|
}
|
|
85241
|
-
},
|
|
85242
|
-
function
|
|
85597
|
+
}, WY = UY;
|
|
85598
|
+
function GY(e) {
|
|
85243
85599
|
if (e.length < 2) return e;
|
|
85244
85600
|
let t = e[0], n = e[e.length - 1];
|
|
85245
85601
|
return t[0] === n[0] && t[1] === n[1] ? e.slice(0, -1) : e;
|
|
85246
85602
|
}
|
|
85247
85603
|
//#endregion
|
|
85248
85604
|
//#region src/mobjects/geo/Globe.ts
|
|
85249
|
-
var
|
|
85605
|
+
var KY = Math.PI / 180, qY = class extends PT {
|
|
85250
85606
|
_radius;
|
|
85251
85607
|
_center;
|
|
85252
85608
|
_sphere;
|
|
@@ -85294,9 +85650,9 @@ var kY = Math.PI / 180, AY = class extends PT {
|
|
|
85294
85650
|
return [...this._plottedPoints];
|
|
85295
85651
|
}
|
|
85296
85652
|
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 =
|
|
85653
|
+
let { segments: r = 64, color: i = "#ef476f", lineWidth: a = 2, altitude: o = 0 } = n, s = this._radius * (1 + o), c = JY(e[0], e[1]), l = JY(t[0], t[1]), u = ZY(c[0] * l[0] + c[1] * l[1] + c[2] * l[2], -1, 1), d = Math.acos(u), f = Math.sin(d), p = [];
|
|
85298
85654
|
for (let e = 0; e <= r; e++) {
|
|
85299
|
-
let t =
|
|
85655
|
+
let t = YY(c, l, e / r, d, f);
|
|
85300
85656
|
p.push([
|
|
85301
85657
|
this._center[0] + s * t[0],
|
|
85302
85658
|
this._center[1] + s * t[1],
|
|
@@ -85313,8 +85669,8 @@ var kY = Math.PI / 180, AY = class extends PT {
|
|
|
85313
85669
|
}
|
|
85314
85670
|
graticule(e = {}) {
|
|
85315
85671
|
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(
|
|
85672
|
+
for (let e = -180; e < 180; e += n) o.add(this._gridLine(QY(e, r), i, a));
|
|
85673
|
+
for (let e = -90 + t; e < 90; e += t) o.add(this._gridLine($Y(e, r), i, a));
|
|
85318
85674
|
return this.add(o), o;
|
|
85319
85675
|
}
|
|
85320
85676
|
_gridLine(e, t, n) {
|
|
@@ -85326,7 +85682,7 @@ var kY = Math.PI / 180, AY = class extends PT {
|
|
|
85326
85682
|
});
|
|
85327
85683
|
}
|
|
85328
85684
|
_surfacePoint(e, t, n) {
|
|
85329
|
-
let r =
|
|
85685
|
+
let r = JY(e, t);
|
|
85330
85686
|
return [
|
|
85331
85687
|
this._center[0] + n * r[0],
|
|
85332
85688
|
this._center[1] + n * r[1],
|
|
@@ -85334,16 +85690,16 @@ var kY = Math.PI / 180, AY = class extends PT {
|
|
|
85334
85690
|
];
|
|
85335
85691
|
}
|
|
85336
85692
|
};
|
|
85337
|
-
function
|
|
85338
|
-
let n = e *
|
|
85693
|
+
function JY(e, t) {
|
|
85694
|
+
let n = e * KY, r = t * KY, i = Math.cos(n);
|
|
85339
85695
|
return [
|
|
85340
85696
|
i * Math.cos(r),
|
|
85341
85697
|
i * Math.sin(r),
|
|
85342
85698
|
Math.sin(n)
|
|
85343
85699
|
];
|
|
85344
85700
|
}
|
|
85345
|
-
function
|
|
85346
|
-
if (i < 1e-9) return
|
|
85701
|
+
function YY(e, t, n, r, i) {
|
|
85702
|
+
if (i < 1e-9) return XY([
|
|
85347
85703
|
e[0] + (t[0] - e[0]) * n,
|
|
85348
85704
|
e[1] + (t[1] - e[1]) * n,
|
|
85349
85705
|
e[2] + (t[2] - e[2]) * n
|
|
@@ -85355,7 +85711,7 @@ function MY(e, t, n, r, i) {
|
|
|
85355
85711
|
e[2] * a + t[2] * o
|
|
85356
85712
|
];
|
|
85357
85713
|
}
|
|
85358
|
-
function
|
|
85714
|
+
function XY(e) {
|
|
85359
85715
|
let t = Math.sqrt(e[0] * e[0] + e[1] * e[1] + e[2] * e[2]) || 1;
|
|
85360
85716
|
return [
|
|
85361
85717
|
e[0] / t,
|
|
@@ -85363,44 +85719,44 @@ function NY(e) {
|
|
|
85363
85719
|
e[2] / t
|
|
85364
85720
|
];
|
|
85365
85721
|
}
|
|
85366
|
-
function
|
|
85722
|
+
function ZY(e, t, n) {
|
|
85367
85723
|
return Math.max(t, Math.min(n, e));
|
|
85368
85724
|
}
|
|
85369
|
-
function
|
|
85725
|
+
function QY(e, t) {
|
|
85370
85726
|
let n = [];
|
|
85371
85727
|
for (let r = 0; r <= t; r++) n.push([-90 + 180 * r / t, e]);
|
|
85372
85728
|
return n;
|
|
85373
85729
|
}
|
|
85374
|
-
function
|
|
85730
|
+
function $Y(e, t) {
|
|
85375
85731
|
let n = [];
|
|
85376
85732
|
for (let r = 0; r <= t; r++) n.push([e, -180 + 360 * r / t]);
|
|
85377
85733
|
return n;
|
|
85378
85734
|
}
|
|
85379
85735
|
//#endregion
|
|
85380
85736
|
//#region src/mobjects/ml/mlStyles.ts
|
|
85381
|
-
var
|
|
85737
|
+
var eX = {
|
|
85382
85738
|
color: Nl,
|
|
85383
85739
|
fillColor: Nl,
|
|
85384
85740
|
fillOpacity: .3,
|
|
85385
85741
|
strokeWidth: 2
|
|
85386
|
-
},
|
|
85742
|
+
}, tX = {
|
|
85387
85743
|
color: wl,
|
|
85388
85744
|
strokeWidth: 1.5,
|
|
85389
85745
|
opacity: .35
|
|
85390
|
-
},
|
|
85391
|
-
function
|
|
85746
|
+
}, nX = hl;
|
|
85747
|
+
function rX(e, t) {
|
|
85392
85748
|
return {
|
|
85393
85749
|
...e,
|
|
85394
|
-
...
|
|
85750
|
+
...aX(t)
|
|
85395
85751
|
};
|
|
85396
85752
|
}
|
|
85397
|
-
function
|
|
85753
|
+
function iX(e, t) {
|
|
85398
85754
|
return {
|
|
85399
85755
|
...e,
|
|
85400
|
-
...
|
|
85756
|
+
...aX(t)
|
|
85401
85757
|
};
|
|
85402
85758
|
}
|
|
85403
|
-
function
|
|
85759
|
+
function aX(e) {
|
|
85404
85760
|
if (!e) return {};
|
|
85405
85761
|
let t = {};
|
|
85406
85762
|
for (let n of Object.keys(e)) e[n] !== void 0 && (t[n] = e[n]);
|
|
@@ -85408,7 +85764,7 @@ function HY(e) {
|
|
|
85408
85764
|
}
|
|
85409
85765
|
//#endregion
|
|
85410
85766
|
//#region src/mobjects/ml/NeuralNetworkLayer.ts
|
|
85411
|
-
var
|
|
85767
|
+
var oX = class extends B {
|
|
85412
85768
|
_nodes = [];
|
|
85413
85769
|
normalizeTransform(e = this._ownMatrix()) {
|
|
85414
85770
|
return this._flattenAsContainer(e);
|
|
@@ -85422,14 +85778,14 @@ var UY = class extends B {
|
|
|
85422
85778
|
nodeAnchors() {
|
|
85423
85779
|
return this._nodes.map((e) => e.getCenter());
|
|
85424
85780
|
}
|
|
85425
|
-
},
|
|
85781
|
+
}, sX = class extends oX {
|
|
85426
85782
|
_nodeRadius;
|
|
85427
85783
|
_nodeSpacing;
|
|
85428
85784
|
_nodeStyle;
|
|
85429
85785
|
constructor(e = {}) {
|
|
85430
85786
|
super();
|
|
85431
85787
|
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 =
|
|
85788
|
+
this._nodeRadius = e.nodeRadius ?? .25, this._nodeSpacing = e.nodeSpacing ?? .7, this._nodeStyle = rX(eX, e.nodeStyle), this._buildNodes(n);
|
|
85433
85789
|
}
|
|
85434
85790
|
_buildNodes(e) {
|
|
85435
85791
|
if (e === 0) return;
|
|
@@ -85458,7 +85814,7 @@ var UY = class extends B {
|
|
|
85458
85814
|
};
|
|
85459
85815
|
//#endregion
|
|
85460
85816
|
//#region src/mobjects/ml/featureMapStack.ts
|
|
85461
|
-
function
|
|
85817
|
+
function cX(e) {
|
|
85462
85818
|
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
85819
|
for (let e = 0; e < a; e++) {
|
|
85464
85820
|
let t = -o / 2 + e * r, a = o / 2 - e * r, s = new GE({
|
|
@@ -85482,15 +85838,15 @@ function GY(e) {
|
|
|
85482
85838
|
}
|
|
85483
85839
|
//#endregion
|
|
85484
85840
|
//#region src/mobjects/ml/ConvolutionalLayer.ts
|
|
85485
|
-
var
|
|
85841
|
+
var lX = class extends oX {
|
|
85486
85842
|
_width;
|
|
85487
85843
|
constructor(e = {}) {
|
|
85488
85844
|
super();
|
|
85489
|
-
let { nodes: t, width: n } =
|
|
85845
|
+
let { nodes: t, width: n } = cX({
|
|
85490
85846
|
numFeatureMaps: e.numFeatureMaps ?? 3,
|
|
85491
85847
|
mapSize: e.mapSize ?? .5,
|
|
85492
85848
|
offset: e.offset ?? .15,
|
|
85493
|
-
style:
|
|
85849
|
+
style: rX(eX, e.nodeStyle)
|
|
85494
85850
|
});
|
|
85495
85851
|
this._width = n;
|
|
85496
85852
|
for (let e of t) this._nodes.push(e), this.add(e);
|
|
@@ -85498,15 +85854,15 @@ var KY = class extends UY {
|
|
|
85498
85854
|
layerWidth() {
|
|
85499
85855
|
return this._width;
|
|
85500
85856
|
}
|
|
85501
|
-
},
|
|
85857
|
+
}, uX = class extends oX {
|
|
85502
85858
|
_width;
|
|
85503
85859
|
constructor(e = {}) {
|
|
85504
85860
|
super();
|
|
85505
|
-
let { nodes: t, width: n } =
|
|
85861
|
+
let { nodes: t, width: n } = cX({
|
|
85506
85862
|
numFeatureMaps: e.numFeatureMaps ?? 3,
|
|
85507
85863
|
mapSize: e.mapSize ?? .3,
|
|
85508
85864
|
offset: e.offset ?? .12,
|
|
85509
|
-
style:
|
|
85865
|
+
style: rX(eX, e.nodeStyle)
|
|
85510
85866
|
});
|
|
85511
85867
|
this._width = n;
|
|
85512
85868
|
for (let e of t) this._nodes.push(e), this.add(e);
|
|
@@ -85514,7 +85870,7 @@ var KY = class extends UY {
|
|
|
85514
85870
|
layerWidth() {
|
|
85515
85871
|
return this._width;
|
|
85516
85872
|
}
|
|
85517
|
-
},
|
|
85873
|
+
}, dX = class extends oX {
|
|
85518
85874
|
_cols;
|
|
85519
85875
|
_cellSize;
|
|
85520
85876
|
_grid;
|
|
@@ -85522,7 +85878,7 @@ var KY = class extends UY {
|
|
|
85522
85878
|
super();
|
|
85523
85879
|
let t = Math.max(0, Math.floor(e.rows ?? 3));
|
|
85524
85880
|
this._cols = Math.max(0, Math.floor(e.cols ?? 3)), this._cellSize = e.cellSize ?? .25;
|
|
85525
|
-
let n =
|
|
85881
|
+
let n = rX(eX, e.nodeStyle);
|
|
85526
85882
|
this._grid = this._buildGrid(t, this._cols, n), this.add(this._grid), t > 0 && this._cols > 0 && this._nodes.push(this._grid);
|
|
85527
85883
|
}
|
|
85528
85884
|
_buildGrid(e, t, n) {
|
|
@@ -85547,13 +85903,13 @@ var KY = class extends UY {
|
|
|
85547
85903
|
layerWidth() {
|
|
85548
85904
|
return Math.max(this._cols, 1) * this._cellSize;
|
|
85549
85905
|
}
|
|
85550
|
-
},
|
|
85906
|
+
}, fX = class extends B {
|
|
85551
85907
|
_layers;
|
|
85552
85908
|
_connections = [];
|
|
85553
85909
|
_stages = [];
|
|
85554
85910
|
_edgeStyle;
|
|
85555
85911
|
constructor(e = [], t = {}) {
|
|
85556
|
-
super(), this._layers = [...e], this._edgeStyle =
|
|
85912
|
+
super(), this._layers = [...e], this._edgeStyle = iX(tX, t.edgeStyle);
|
|
85557
85913
|
let n = t.layerSpacing ?? 1, r = t.connectAdjacent ?? !0;
|
|
85558
85914
|
this._placeLayers(n), r && this._buildConnections();
|
|
85559
85915
|
for (let e of this._connections) this.add(e);
|
|
@@ -85600,7 +85956,7 @@ var KY = class extends UY {
|
|
|
85600
85956
|
getConnectionStages() {
|
|
85601
85957
|
return this._stages.map((e) => [...e]);
|
|
85602
85958
|
}
|
|
85603
|
-
},
|
|
85959
|
+
}, pX = class extends V {
|
|
85604
85960
|
activation = 0;
|
|
85605
85961
|
_activationColor;
|
|
85606
85962
|
_peakOpacity;
|
|
@@ -85611,7 +85967,7 @@ var KY = class extends UY {
|
|
|
85611
85967
|
super(e, {
|
|
85612
85968
|
duration: t.duration ?? 1,
|
|
85613
85969
|
rateFunc: t.rateFunc ?? (t.restore ? hg : void 0)
|
|
85614
|
-
}), this._activationColor = t.activationColor ??
|
|
85970
|
+
}), this._activationColor = t.activationColor ?? nX, this._peakOpacity = t.peakOpacity ?? 1, this._restore = t.restore ?? !1;
|
|
85615
85971
|
}
|
|
85616
85972
|
begin() {
|
|
85617
85973
|
super.begin(), this._baseOpacity = this.mobject.opacity, this._baseColor = this.mobject.color, this.activation = 0;
|
|
@@ -85627,12 +85983,12 @@ var KY = class extends UY {
|
|
|
85627
85983
|
this._restore ? (this.mobject.setStrokeOpacity(this._baseOpacity), this.mobject.setColor(this._baseColor), this.activation = 0) : this.activation = 1, this.mobject._markDirty(), super.finish();
|
|
85628
85984
|
}
|
|
85629
85985
|
};
|
|
85630
|
-
function
|
|
85631
|
-
return new
|
|
85986
|
+
function mX(e, t) {
|
|
85987
|
+
return new pX(e, t);
|
|
85632
85988
|
}
|
|
85633
85989
|
//#endregion
|
|
85634
85990
|
//#region src/mobjects/ml/forwardPass.ts
|
|
85635
|
-
function
|
|
85991
|
+
function hX(e, t, n) {
|
|
85636
85992
|
let r = e.getConnectionStages(), i = t ? [...r].reverse() : r, a = {
|
|
85637
85993
|
duration: n.gapDuration ?? 1,
|
|
85638
85994
|
activationColor: n.activationColor,
|
|
@@ -85640,13 +85996,13 @@ function QY(e, t, n) {
|
|
|
85640
85996
|
restore: n.restore,
|
|
85641
85997
|
rateFunc: n.rateFunc
|
|
85642
85998
|
};
|
|
85643
|
-
return i.map((e) => new HT(e.map((e) => new
|
|
85999
|
+
return i.map((e) => new HT(e.map((e) => new pX(e, a)), { lagRatio: 0 }));
|
|
85644
86000
|
}
|
|
85645
|
-
function
|
|
85646
|
-
return new pH(
|
|
86001
|
+
function gX(e, t = {}) {
|
|
86002
|
+
return new pH(hX(e, !1, t), { lagRatio: t.lagRatio ?? 1 });
|
|
85647
86003
|
}
|
|
85648
|
-
function
|
|
85649
|
-
return new pH(
|
|
86004
|
+
function _X(e, t = {}) {
|
|
86005
|
+
return new pH(hX(e, !0, t), { lagRatio: t.lagRatio ?? 1 });
|
|
85650
86006
|
}
|
|
85651
86007
|
//#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 };
|
|
86008
|
+
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, UY as ChoroplethMap, EO as Circle, OU as Circumscribe, rW as Clickable, UB as ClockwiseTransform, GM as Code, HY 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, lX 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, nX 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, tX 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, eX 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, pX as EdgePulse, fk as Elbow, IO as Ellipse, Mk as Exclusion, WG as ExportSettingsPanel, zG as FPS_PRESETS, wB as FadeIn, EB as FadeOut, iV as FadeToColor, LB as FadeTransform, zB as FadeTransformPieces, sX 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, BW as GamepadInput, LN as GanttChart, _R as GenericGraph, WY as GeoMap, YW as GifExporter, jH as GlitchIn, qY 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, SK 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, dX 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, bK as ManimColor, RJ 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, qK as Munits, Vu as NORMAL, fX as NeuralNetwork, oX 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, WW as PanZoomControls, Rj as Paragraph, hj as ParametricFunction, UP as ParametricSurface, Mz as ParticleSystem, kL as PatternVMobject, jO as Pentagon, YK as Percent, $V as PhaseFlow, Bz as PhysicsWorld, VN as PieChart, GK as Pixels, QU as PlaybackControls, sK as Player, rK as PlayerController, GG as PlayerUI, Dz as PointCloudDot, Ez as PointMobject, QM as PolarPlane, DO as Polygon, MO as Polygram, NP as Polyhedron, uX as PoolingLayer, _O as PostProcessingPipeline, JP as Prism, RU as Pulse, BG 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, RG as RESOLUTION_PRESETS, xK as RGBA, Md as RIGHT, kN as RadarChart, TK 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, NW as STANDARD_AXES, MW as STANDARD_BUTTONS, 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, OJ 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, QW 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, mG 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, DK as adjacentNTuples, OK as adjacentPairs, Nj as alignmentToOffset, LK as allElementsAreInstances, CW as allOf, WH as always, HH as alwaysRedraw, JH as alwaysRotate, qH as alwaysShift, cq as angleAxisFromQuaternion, gq as angleBetweenVectors, hq 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, _X as backwardPass, iI as batch, vB as benzene, Qq as bezier, tJ as bezierRemap, Hq as binarySearch, wR as binaryTree, oI as bindSignalToTracker, TY as bindStateToUrl, ER as bipartiteGraph, ap as blendModeToThree, UU as blink, _N as boxSummary, CU as broadcast, cX as buildFeatureMapStack, ww as buildStyledTextLines, kq as cartesianToSpherical, Cq as centerOfMass, eU as changeDecimalToValue, lU as changeSpeed, $H as changingDecimal, Uq as choose, gG as chooseVideoExporterStrategy, $N as chordMatrixFromFlows, kU as circumscribe, TT as clearAnimationOverrides, Wq as clip, Bq 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, vq as compassDirections, bR as completeGraph, Sq as complexFuncToR3Func, tH as complexHomotopy, bq 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, RK as concatenateLists, Vq 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, XW as createGifExporter, sO as createLiveRegion, tI as createSignal, $W as createVideoExporter, hG as createWebCodecsExporter, Zd as cross, Zd as crossVec, iq as cross2d, Qh as cubicBezier, XH as cycleAnimation, nN as cycleColor, xR as cycleGraph, ZB as cyclicReplace, _Y as decodeStateFromHash, jY as defineParametrizedScene, DF as deriveBasePath, kF as deriveMtlUrl, cO as describeMobject, KT as deserializeMobject, dY as deserializeScene, lY as deserializeSceneMobject, IF as detectModelFormat, Fk as difference, Xd as dotVec, vg as doubleSmooth, dG 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, mX as edgePulse, dU as emphasizeRegion, gY as encodeStateToHash, EC as ensureKatexStyles, zY as equirectangular, yB as ethanol, Ik as exclusion, jg as exponentialDecay, fG as exportAndDownloadPNG, OG as exportAndDownloadSVG, FG as exportAndDownloadSlidesToPDF, cG as exportFramePNG, uG as exportPNGSequence, DG as exportSVG, PG as exportSlidesToPDF, LG as exportSlidesToPPTX, fN as extent, LY as exteriorRings, XK 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, Eq as findIntersection, DU as flash, LU as focusOn, cR as forceDirectedLayout, QD as formatVttTimestamp, gX as forwardPass, vj as fourierCoefficients, Sj as fourierSeriesApproximation, bJ as get3dVmobEndCorner, vJ as get3dVmobEndCornerIndex, CJ as get3dVmobEndCornerUnitNormal, gJ as get3dVmobGradientStartAndEndPoints, yJ as get3dVmobStartCorner, _J as get3dVmobStartCornerIndex, SJ as get3dVmobStartCornerUnitNormal, xJ as get3dVmobUnitNormal, tp as getActiveTheme, CT as getAnimationOverride, fI as getDetText, pK as getFeatureFlags, cE as getReducedMotionRunTime, WJ as getSerializableTypes, UJ as getSerializer, EK as getShadedRgb, vh as getSmoothCubicBezierHandlePoints, bD as getSpeechSynthesizer, ep as getTheme, np as getThemeNames, _q as getUnitNormal, Nq as getWindingNumber, MH as glitchIn, TR as gridGraph, aH as growArrow, IV as growFromCenter, sH as growFromEdge, lH as growFromPoint, wT as hasAnimationOverride, HK as hashObj, _A as hexToRgb, lN as histogramBins, eH as homotopy, AA as hsvToRgb, QK 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, nJ as isClosed, uK as isFeatureEnabled, zW as isGamepadSupported, 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, Tq as lineIntersection, ig as linear, uU as linearSpeedRamp, Ag as lingering, rf as linspace, AK as listDifferenceUpdate, jK as listUpdate, zK as listify, qf as logger, VH as maintainPositionRelativeTo, iW as makeClickable, eW as makeDraggable, NK as makeEven, VK as makeEvenByCycling, HW as makeGamepadInput, nW as makeHoverable, jW as makeKeyboardInput, vW as makeMatrixTracker, cW as makeMovablePoint, GW as makePanZoomControls, pW as makeSlider, MJ as manimElementInternals, hF as marchingCubes, ij as marchingSquares, xB as masterTimeline, Yq as matchInterpolate, pI as matrixToMobject, mI as matrixToTexString, aN as mean, BY as mercator, _B as methane, qq as mid, wq as midpoint, WV as moveAlongPath, yT as moveToTarget, BV as moveToTargetPosition, pN as niceAxisRange, rq as normSquared, aq 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, SY 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, zq as pathAlongArc, Rq as pathAlongCircles, SR as pathGraph, qz as pendulum, jq as perpendicularBisector, rH as phaseFlow, pj as phasePortraitColor, pJ as pointLiesOnBezier, IK as powerset, aE as prefersReducedMotion, WC as preloadMathJax, hM as preloadTypst, ET as prepareAnimation, $K as printFamily, fJ as proportionsAlongBezierCurveForPoint, NY as propsFromUrl, zU as pulse, HG as qualityToBitrate, sN as quantile, lq as quaternionConjugate, sq as quaternionFromAngleAxis, oq as quaternionMult, xq as r3ToComplex, kA as randomBrightColor, OA as randomColor, XL as randomSpringPositions, xY as readStateFromUrl, yj as reconstructSample, dE as reducedRunTime, kJ as registerFont, zJ as registerManimElement, VJ as registerSerializableMobject, Qf as registerTheme, yq as regularVertices, _U as remove, kK as removeListRedundancies, BK as removeNones, jI as removeTextLetterByLetter, GC as renderLatexToSVG, IY as renderParametrized, _M as renderTypstToSVG, _T as replacementTransform, fK as resetFeatureFlags, lE as resetReducedMotion, rp as resetThemes, Lz as resolveBounds, IW as resolveButton, Rz as resolveCircleCircle, iX as resolveEdgeStyle, mH as resolveGlyphs, rX as resolveNodeStyle, SL as resolvePatternFill, MY as resolveProps, UG as resolveResolution, rV as restore, $T as restoreMobjectState, ZK as restructureListToExcludeCertainFamilyMembers, bg as reverse, SA as rgbToColor, gA as rgbToHex, jA as rgbToHsv, CA as rgbaToColor, SH as riseByLetter, jV as rotate, pq as rotateVector, xU as rotating, dq as rotationAboutZ, uq as rotationMatrix, fq 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, EG as sceneToSVG, GT as serializeMobject, uY as serializeScene, cY as serializeSceneMobject, dK 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, Dq as shoelace, Oq 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, Gq 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, Aq as sphericalToCartesian, dH as spinInFromNothing, XI as spiralIn, $q 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, Lq as straightPath, PK as stretchArrayToLength, Yd as subVec, eJ as subdivideBezier, NH as succession, GL as svgMobject, PC as svgToVMobjects, JB as swap, KP as texturedSphere, hg as thereAndBack, Eg as thereAndBackWithPause, Mq 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, MK as tuplify, YH as turnAnimationIntoUpdater, gH as typeOn, LI as typeWithCursor, CI as uncreate, Nk as union, FK as uniqChain, ef as unitPerpendicularTo, HJ 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, bY as writeStateToUrl, mq as zToVector };
|