@openephemeris/mcp-server 4.15.1 → 4.16.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/CHANGELOG.md +15 -0
- package/README.md +21 -22
- package/dist/backend/client.d.ts +2 -0
- package/dist/backend/client.js +15 -10
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.js +5 -3
- package/dist/prompts.js +2 -2
- package/dist/tools/apps/bazi-app.js +10 -10
- package/dist/tools/apps/bi-wheel-app.js +14 -14
- package/dist/tools/apps/bodygraph-app.js +35 -29
- package/dist/tools/apps/chart-wheel-app.js +12 -9
- package/dist/tools/apps/location-tools.js +17 -4
- package/dist/tools/apps/moon-phase-app.js +12 -11
- package/dist/tools/apps/transit-timeline-app.js +13 -14
- package/dist/tools/apps/vedic-chart-app.js +9 -8
- package/dist/tools/auth.js +14 -12
- package/dist/tools/dev.js +17 -29
- package/dist/tools/invocation-status.d.ts +25 -0
- package/dist/tools/invocation-status.js +69 -0
- package/dist/tools/specialized/account.js +6 -10
- package/dist/tools/specialized/acg.js +16 -21
- package/dist/tools/specialized/bazi.js +7 -12
- package/dist/tools/specialized/eclipse.js +6 -13
- package/dist/tools/specialized/electional.js +30 -37
- package/dist/tools/specialized/ephemeris_core.js +21 -17
- package/dist/tools/specialized/ephemeris_extended.js +22 -19
- package/dist/tools/specialized/human_design.js +11 -14
- package/dist/tools/specialized/moon.js +15 -26
- package/dist/tools/specialized/natal.js +9 -8
- package/dist/tools/specialized/progressed.js +6 -6
- package/dist/tools/specialized/relocation.js +6 -7
- package/dist/tools/specialized/returns.js +6 -8
- package/dist/tools/specialized/synastry.js +7 -8
- package/dist/tools/specialized/transits.js +15 -14
- package/dist/tools/specialized/vedic.js +7 -6
- package/dist/tools/ui-meta.d.ts +3 -28
- package/dist/tools/ui-meta.js +25 -16
- package/dist/ui/bi-wheel.html +468 -450
- package/dist/ui/chart-wheel.html +407 -389
- package/package.json +3 -2
package/dist/ui/bi-wheel.html
CHANGED
|
@@ -6611,7 +6611,7 @@ function i_(e5, t2) {
|
|
|
6611
6611
|
};
|
|
6612
6612
|
e5.addEventListener("pointerup", re2), e5.addEventListener("pointercancel", re2);
|
|
6613
6613
|
}
|
|
6614
|
-
var a_ = '"Segoe UI Symbol", "Noto Sans Symbols", "Noto Sans Symbols2", "Apple Symbols", "DejaVu Sans", serif', o_ = { fire: "#
|
|
6614
|
+
var a_ = '"Segoe UI Symbol", "Noto Sans Symbols", "Noto Sans Symbols2", "Apple Symbols", "DejaVu Sans", serif', o_ = { background: "#1b1b1d", foreground: "#f7f3f0", dim: "#6f7580", fire: "#d9506f", earth: "#22a67a", air: "#dcb238", water: "#3f93c2", points: "#2f89ab", others: "#d69a3a", house: "#7a8695", transit: "#c19bf2", fireTint: "rgba(217,80,111,0.20)", earthTint: "rgba(34,166,122,0.20)", airTint: "rgba(220,178,56,0.20)", waterTint: "rgba(63,147,194,0.20)", zodiacFillOpacity: 0.34, houseFillOpacity: 0.1, houseStrokeOpacity: 0.45 }, s_ = { background: "#fffdf1", foreground: "#0b1220", dim: "#6b5c4a", fire: "#c9456f", earth: "#1f9968", air: "#c9a23c", water: "#1f7fa3", points: "#1f6f96", others: "#c9903f", house: "#6f8496", transit: "#7b3fb5", fireTint: "rgba(201,69,111,0.34)", earthTint: "rgba(31,153,104,0.34)", airTint: "rgba(201,162,60,0.38)", waterTint: "rgba(31,127,163,0.34)", zodiacFillOpacity: 0.48, houseFillOpacity: 0.2, houseStrokeOpacity: 0.95 };
|
|
6615
6615
|
function c_(e5) {
|
|
6616
6616
|
return e5 ? o_ : s_;
|
|
6617
6617
|
}
|
|
@@ -6635,68 +6635,72 @@ function u_(e5, t2) {
|
|
|
6635
6635
|
return n2.house;
|
|
6636
6636
|
}
|
|
6637
6637
|
}
|
|
6638
|
-
|
|
6639
|
-
|
|
6640
|
-
return
|
|
6638
|
+
function d_(e5) {
|
|
6639
|
+
let t2 = c_(e5);
|
|
6640
|
+
return { ring: { stroke: t2.dim, opacity: 0.85 }, cuspIntermediate: { stroke: t2.dim, opacity: 0.85 }, cuspAngular: { stroke: t2.foreground, opacity: 0.75 }, tickMajor: { stroke: t2.foreground, opacity: 0.73 }, tickMinor: { stroke: t2.foreground, opacity: 0.48 }, cuspDash: (e6) => "".concat((e6 * 1.5).toFixed(2), " ").concat((e6 * 3).toFixed(2)), center: e5 ? t2.background : "#efeae1" };
|
|
6641
6641
|
}
|
|
6642
|
-
|
|
6642
|
+
var f_;
|
|
6643
|
+
function p_() {
|
|
6644
|
+
return f_ ? f_ === "dark" : window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
6645
|
+
}
|
|
6646
|
+
function m_(e5 = p_()) {
|
|
6643
6647
|
let t2 = e5 ? "dark" : "light";
|
|
6644
6648
|
return document.documentElement.setAttribute("data-theme", t2), t2;
|
|
6645
6649
|
}
|
|
6646
|
-
function
|
|
6647
|
-
|
|
6650
|
+
function h_(e5) {
|
|
6651
|
+
m_();
|
|
6648
6652
|
try {
|
|
6649
6653
|
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (t2) => {
|
|
6650
|
-
|
|
6654
|
+
f_ || e5 == null || e5(m_(t2.matches));
|
|
6651
6655
|
});
|
|
6652
6656
|
} catch (e6) {
|
|
6653
6657
|
}
|
|
6654
6658
|
}
|
|
6655
|
-
function
|
|
6659
|
+
function g_(e5, t2) {
|
|
6656
6660
|
var n2, r2;
|
|
6657
6661
|
let i2 = (e6) => {
|
|
6658
6662
|
let n3 = e6 == null ? void 0 : e6.theme;
|
|
6659
6663
|
if (n3 !== "light" && n3 !== "dark") return;
|
|
6660
|
-
|
|
6661
|
-
let r3 = document.documentElement.getAttribute("data-theme"), i3 =
|
|
6664
|
+
f_ = n3;
|
|
6665
|
+
let r3 = document.documentElement.getAttribute("data-theme"), i3 = m_(n3 === "dark");
|
|
6662
6666
|
i3 !== r3 && (t2 == null || t2(i3));
|
|
6663
6667
|
};
|
|
6664
6668
|
(n2 = e5.addEventListener) == null || n2.call(e5, "hostcontextchanged", i2), i2((r2 = e5.getHostContext) == null ? void 0 : r2.call(e5));
|
|
6665
6669
|
}
|
|
6666
|
-
function
|
|
6670
|
+
function __(e5, t2) {
|
|
6667
6671
|
if (e5.length <= 1) {
|
|
6668
6672
|
let t3 = /* @__PURE__ */ new Map();
|
|
6669
6673
|
for (let n3 of e5) t3.set(n3.name, n3.longitude);
|
|
6670
6674
|
return t3;
|
|
6671
6675
|
}
|
|
6672
6676
|
let n2 = [...e5].sort((e6, t3) => e6.longitude - t3.longitude), r2 = [], i2 = [];
|
|
6673
|
-
for (let e6 of n2) r2.push(e6.longitude), i2.push(
|
|
6674
|
-
|
|
6677
|
+
for (let e6 of n2) r2.push(e6.longitude), i2.push(v_(e6.longitude, i2, t2));
|
|
6678
|
+
b_(i2, r2, t2);
|
|
6675
6679
|
let a2 = /* @__PURE__ */ new Map();
|
|
6676
|
-
for (let e6 = 0; e6 < n2.length; e6++) a2.set(n2[e6].name,
|
|
6680
|
+
for (let e6 = 0; e6 < n2.length; e6++) a2.set(n2[e6].name, S_(i2[e6]));
|
|
6677
6681
|
return a2;
|
|
6678
6682
|
}
|
|
6679
|
-
function
|
|
6683
|
+
function v_(e5, t2, n2) {
|
|
6680
6684
|
if (t2.length === 0) return e5;
|
|
6681
6685
|
let r2 = Math.max(0.55, n2 / 4), i2 = Math.max(8, Math.min(40, n2 * 5)), a2 = Math.floor(i2 / r2);
|
|
6682
|
-
if (
|
|
6686
|
+
if (y_(e5, t2, n2)) return e5;
|
|
6683
6687
|
for (let i3 = 1; i3 <= a2; i3++) {
|
|
6684
6688
|
let a3 = i3 * r2;
|
|
6685
|
-
if (
|
|
6686
|
-
if (
|
|
6689
|
+
if (y_(e5 + a3, t2, n2)) return e5 + a3;
|
|
6690
|
+
if (y_(e5 - a3, t2, n2)) return e5 - a3;
|
|
6687
6691
|
}
|
|
6688
6692
|
return e5;
|
|
6689
6693
|
}
|
|
6690
|
-
function
|
|
6691
|
-
for (let r2 of t2) if (
|
|
6694
|
+
function y_(e5, t2, n2) {
|
|
6695
|
+
for (let r2 of t2) if (x_(e5, r2) < n2) return false;
|
|
6692
6696
|
return true;
|
|
6693
6697
|
}
|
|
6694
|
-
function
|
|
6698
|
+
function b_(e5, t2, n2) {
|
|
6695
6699
|
let r2 = e5.length;
|
|
6696
6700
|
if (!(r2 <= 1)) for (let t3 = 0; t3 < 80; t3++) {
|
|
6697
6701
|
let t4 = true;
|
|
6698
6702
|
for (let i2 = 0; i2 < r2; i2++) for (let a2 = i2 + 1; a2 < r2; a2++) {
|
|
6699
|
-
let r3 = n2 -
|
|
6703
|
+
let r3 = n2 - x_(e5[i2], e5[a2]);
|
|
6700
6704
|
if (r3 > 0.01) {
|
|
6701
6705
|
t4 = false;
|
|
6702
6706
|
let n3 = r3 * 0.65 / 2, o2 = e5[a2] - e5[i2];
|
|
@@ -6708,45 +6712,49 @@ function y_(e5, t2, n2) {
|
|
|
6708
6712
|
if (t4) break;
|
|
6709
6713
|
}
|
|
6710
6714
|
}
|
|
6711
|
-
function
|
|
6715
|
+
function x_(e5, t2) {
|
|
6712
6716
|
let n2 = ((t2 - e5) % 360 + 540) % 360 - 180;
|
|
6713
6717
|
return Math.abs(n2);
|
|
6714
6718
|
}
|
|
6715
|
-
function
|
|
6719
|
+
function S_(e5) {
|
|
6716
6720
|
return (e5 % 360 + 360) % 360;
|
|
6717
6721
|
}
|
|
6718
|
-
var
|
|
6722
|
+
var C_ = 310, w_ = 310, T_ = 240, E_ = 204, D_ = 190, O_ = 152, k_ = 118, A_ = 112, j_ = 290, M_ = 246, N_ = 264, P_ = 16;
|
|
6719
6723
|
function Y(e5, t2, n2) {
|
|
6720
6724
|
let r2 = -(e5 - n2 + 180) * Math.PI / 180;
|
|
6721
|
-
return { x:
|
|
6725
|
+
return { x: C_ + t2 * Math.cos(r2), y: w_ + t2 * Math.sin(r2) };
|
|
6722
6726
|
}
|
|
6723
6727
|
function X(e5) {
|
|
6724
6728
|
return document.createElementNS("http://www.w3.org/2000/svg", e5);
|
|
6725
6729
|
}
|
|
6726
|
-
var
|
|
6727
|
-
function
|
|
6730
|
+
var F_ = { sun: "\u2609\uFE0E", moon: "\u263D\uFE0E", mercury: "\u263F\uFE0E", venus: "\u2640\uFE0E", mars: "\u2642\uFE0E", jupiter: "\u2643\uFE0E", saturn: "\u2644\uFE0E", uranus: "\u2645\uFE0E", neptune: "\u2646\uFE0E", pluto: "\u2647\uFE0E", "north node": "\u260A\uFE0E", "south node": "\u260B\uFE0E", chiron: "\u26B7\uFE0E", "true node": "\u260A\uFE0E", north_node: "\u260A\uFE0E", south_node: "\u260B\uFE0E", true_node: "\u260A\uFE0E", asc: "AC", mc: "MC" }, I_ = ["\u2648", "\u2649", "\u264A", "\u264B", "\u264C", "\u264D", "\u264E", "\u264F", "\u2650", "\u2651", "\u2652", "\u2653"].map((e5) => e5 + "\uFE0E"), L_ = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"], R_ = { conjunction: "\u260C", opposition: "\u260D", trine: "\u25B3", square: "\u25A1", sextile: "\u26B9" };
|
|
6731
|
+
function z_(e5) {
|
|
6728
6732
|
let t2 = e5.toLowerCase();
|
|
6729
|
-
return getComputedStyle(document.documentElement).getPropertyValue("--xasp-".concat(t2)).trim() || u_(t2,
|
|
6733
|
+
return getComputedStyle(document.documentElement).getPropertyValue("--xasp-".concat(t2)).trim() || u_(t2, G_());
|
|
6730
6734
|
}
|
|
6731
|
-
function
|
|
6735
|
+
function B_(e5) {
|
|
6732
6736
|
return e5 <= 1 ? { dash: "", width: "1.8", opacity: "0.95" } : e5 <= 3 ? { dash: "5,4", width: "1.4", opacity: "0.75" } : { dash: "3,5", width: "1.0", opacity: "0.50" };
|
|
6733
6737
|
}
|
|
6734
|
-
var
|
|
6735
|
-
function
|
|
6736
|
-
let n2 =
|
|
6738
|
+
var V_ = { sun: { domicile: [4], exaltation: [0], detriment: [10], fall: [6] }, moon: { domicile: [3], exaltation: [1], detriment: [9], fall: [7] }, mercury: { domicile: [2, 5], exaltation: [5], detriment: [8, 11], fall: [11] }, venus: { domicile: [1, 6], exaltation: [11], detriment: [7, 0], fall: [5] }, mars: { domicile: [0, 7], exaltation: [9], detriment: [6, 1], fall: [3] }, jupiter: { domicile: [8, 11], exaltation: [3], detriment: [2, 5], fall: [9] }, saturn: { domicile: [9, 10], exaltation: [6], detriment: [3, 4], fall: [0] } };
|
|
6739
|
+
function H_(e5, t2) {
|
|
6740
|
+
let n2 = V_[e5.toLowerCase()];
|
|
6737
6741
|
if (!n2) return null;
|
|
6738
6742
|
let r2 = Math.floor((t2 % 360 + 360) % 360 / 30);
|
|
6739
6743
|
return n2.domicile.includes(r2) ? { label: "Domicile", emoji: "\u{1F3DB}", cssClass: "dignity-domicile", positive: true } : n2.exaltation.includes(r2) ? { label: "Exaltation", emoji: "\u2B06", cssClass: "dignity-exaltation", positive: true } : n2.detriment.includes(r2) ? { label: "Detriment", emoji: "\u2B07", cssClass: "dignity-detriment", positive: false } : n2.fall.includes(r2) ? { label: "Fall", emoji: "\u{1F53B}", cssClass: "dignity-fall", positive: false } : null;
|
|
6740
6744
|
}
|
|
6741
|
-
var
|
|
6742
|
-
function
|
|
6745
|
+
var U_ = ["fire", "earth", "air", "water", "fire", "earth", "air", "water", "fire", "earth", "air", "water"], W_ = ["cardinal", "fixed", "mutable", "cardinal", "fixed", "mutable", "cardinal", "fixed", "mutable", "cardinal", "fixed", "mutable"], G_ = p_, K_ = (e5) => l_(e5, G_());
|
|
6746
|
+
function q_(e5, t2, n2, r2, i2) {
|
|
6747
|
+
let a2 = +(((t2 - e5) % 360 + 360) % 360 > 180), o2 = Y(e5, n2, i2), s2 = Y(e5, r2, i2), c2 = Y(t2, r2, i2), l2 = Y(t2, n2, i2);
|
|
6748
|
+
return ["M ".concat(o2.x.toFixed(2), " ").concat(o2.y.toFixed(2)), "L ".concat(s2.x.toFixed(2), " ").concat(s2.y.toFixed(2)), "A ".concat(r2, " ").concat(r2, " 0 ").concat(a2, " 0 ").concat(c2.x.toFixed(2), " ").concat(c2.y.toFixed(2)), "L ".concat(l2.x.toFixed(2), " ").concat(l2.y.toFixed(2)), "A ".concat(n2, " ").concat(n2, " 0 ").concat(a2, " 1 ").concat(o2.x.toFixed(2), " ").concat(o2.y.toFixed(2)), "Z"].join(" ");
|
|
6749
|
+
}
|
|
6750
|
+
function J_(e5, t2, n2, r2, i2, a2, o2) {
|
|
6743
6751
|
let s2 = n2 * 30, c2 = s2 + 30, l2 = Y(s2, r2, t2), u2 = Y(s2, i2, t2), d2 = Y(c2, i2, t2), f2 = Y(c2, r2, t2), p2 = ["M ".concat(l2.x.toFixed(2), " ").concat(l2.y.toFixed(2)), "L ".concat(u2.x.toFixed(2), " ").concat(u2.y.toFixed(2)), "A ".concat(i2, " ").concat(i2, " 0 0 0 ").concat(d2.x.toFixed(2), " ").concat(d2.y.toFixed(2)), "L ".concat(f2.x.toFixed(2), " ").concat(f2.y.toFixed(2)), "A ".concat(r2, " ").concat(r2, " 0 0 1 ").concat(l2.x.toFixed(2), " ").concat(l2.y.toFixed(2)), "Z"].join(" "), m2 = X("path");
|
|
6744
6752
|
m2.setAttribute("d", p2), m2.setAttribute("fill", a2), m2.setAttribute("fill-opacity", String(o2)), m2.setAttribute("pointer-events", "none"), e5.appendChild(m2);
|
|
6745
6753
|
}
|
|
6746
|
-
var
|
|
6747
|
-
function
|
|
6754
|
+
var Y_ = /* @__PURE__ */ new Set(["sun", "moon", "mercury", "venus", "mars", "jupiter", "saturn", "uranus", "neptune", "pluto", "chiron", "north node", "south node", "true node", "north_node", "south_node", "true_node", "asc", "mc"]);
|
|
6755
|
+
function X_(e5) {
|
|
6748
6756
|
let t2 = (e5 % 360 + 360) % 360, n2 = Math.floor(t2 / 30), r2 = Math.floor(t2 % 30);
|
|
6749
|
-
return "".concat(r2, "\xB0").concat(Math.floor((t2 % 30 - r2) * 60).toString().padStart(2, "0"), "\u2032 ").concat(
|
|
6757
|
+
return "".concat(r2, "\xB0").concat(Math.floor((t2 % 30 - r2) * 60).toString().padStart(2, "0"), "\u2032 ").concat(L_[n2]);
|
|
6750
6758
|
}
|
|
6751
6759
|
function Z(e5) {
|
|
6752
6760
|
return e5.replace(/\b\w/g, (e6) => e6.toUpperCase());
|
|
@@ -6754,29 +6762,29 @@ function Z(e5) {
|
|
|
6754
6762
|
function Q(e5) {
|
|
6755
6763
|
return String(e5).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
6756
6764
|
}
|
|
6757
|
-
var
|
|
6758
|
-
function
|
|
6759
|
-
|
|
6765
|
+
var Z_ = "true";
|
|
6766
|
+
function Q_(e5) {
|
|
6767
|
+
Z_ = e5;
|
|
6760
6768
|
}
|
|
6761
|
-
function
|
|
6769
|
+
function $_(e5) {
|
|
6762
6770
|
let t2 = e5.some((e6) => e6.name === "true_node"), n2 = e5.some((e6) => e6.name === "north_node");
|
|
6763
6771
|
if (!t2 || !n2) return e5;
|
|
6764
|
-
let r2 =
|
|
6772
|
+
let r2 = Z_ === "true" ? "north_node" : "true_node";
|
|
6765
6773
|
return e5.filter((e6) => e6.name !== r2);
|
|
6766
6774
|
}
|
|
6767
|
-
function
|
|
6768
|
-
return Array.isArray(e5) ?
|
|
6775
|
+
function ev(e5) {
|
|
6776
|
+
return Array.isArray(e5) ? $_(e5.filter((e6) => e6 && typeof e6.longitude == "number" && isFinite(e6.longitude))) : e5 && typeof e5 == "object" ? $_(Object.entries(e5).filter(([e6]) => Y_.has(e6.toLowerCase())).map(([e6, t2]) => {
|
|
6769
6777
|
var n2, r2, i2, a2, o2, s2;
|
|
6770
6778
|
return { name: e6.toLowerCase(), longitude: (n2 = (r2 = t2.longitude) == null ? t2.lon : r2) == null ? 0 : n2, speed: (i2 = t2.longitude_speed) == null ? t2.speed : i2, retrograde: !!((a2 = t2.is_retrograde) == null ? t2.retrograde : a2), sign: (o2 = t2.sign_name) == null ? t2.sign : o2, house: (s2 = t2.house_number) == null ? t2.house : s2 };
|
|
6771
6779
|
})) : [];
|
|
6772
6780
|
}
|
|
6773
|
-
var
|
|
6774
|
-
function
|
|
6781
|
+
var tv = [{ type: "conjunction", angle: 0, orb: 8 }, { type: "opposition", angle: 180, orb: 8 }, { type: "trine", angle: 120, orb: 6 }, { type: "square", angle: 90, orb: 5 }, { type: "sextile", angle: 60, orb: 4 }];
|
|
6782
|
+
function nv(e5, t2, n2 = 1) {
|
|
6775
6783
|
let r2 = [];
|
|
6776
6784
|
for (let o2 of e5) for (let e6 of t2) {
|
|
6777
6785
|
let t3 = Math.abs(o2.longitude - e6.longitude) % 360;
|
|
6778
6786
|
t3 > 180 && (t3 = 360 - t3);
|
|
6779
|
-
for (let s2 of
|
|
6787
|
+
for (let s2 of tv) {
|
|
6780
6788
|
let c2 = s2.orb * n2, l2 = Math.abs(t3 - s2.angle);
|
|
6781
6789
|
if (l2 <= c2) {
|
|
6782
6790
|
var i2, a2;
|
|
@@ -6788,39 +6796,39 @@ function ev(e5, t2, n2 = 1) {
|
|
|
6788
6796
|
}
|
|
6789
6797
|
return r2.sort((e6, t3) => e6.orb - t3.orb).slice(0, 40);
|
|
6790
6798
|
}
|
|
6791
|
-
var
|
|
6792
|
-
function
|
|
6793
|
-
|
|
6799
|
+
var rv = null;
|
|
6800
|
+
function iv(e5) {
|
|
6801
|
+
rv = e5;
|
|
6794
6802
|
}
|
|
6795
|
-
var
|
|
6796
|
-
function
|
|
6797
|
-
return
|
|
6803
|
+
var av = null, ov = null;
|
|
6804
|
+
function sv() {
|
|
6805
|
+
return ov || (ov = document.getElementById("tooltip")), ov;
|
|
6798
6806
|
}
|
|
6799
|
-
function
|
|
6800
|
-
let a2 =
|
|
6807
|
+
function cv(e5, t2, n2, r2, i2) {
|
|
6808
|
+
let a2 = sv();
|
|
6801
6809
|
a2.innerHTML = '\n <div class="tooltip-title">'.concat(n2, '</div>\n <div class="tooltip-detail">').concat(r2, "</div>\n ").concat(i2 ? '<div class="tooltip-hint">'.concat(i2, "</div>") : "", "\n ");
|
|
6802
6810
|
let o2 = a2.getBoundingClientRect(), s2 = o2.width || 240, c2 = o2.height || 80, l2 = e5 + 14, u2 = t2 + 10;
|
|
6803
6811
|
l2 + s2 > window.innerWidth && (l2 = e5 - s2 - 8), u2 + c2 > window.innerHeight && (u2 = t2 - c2 - 8), a2.style.left = "".concat(l2, "px"), a2.style.top = "".concat(u2, "px"), a2.classList.add("visible");
|
|
6804
6812
|
}
|
|
6805
|
-
function
|
|
6806
|
-
|
|
6813
|
+
function lv() {
|
|
6814
|
+
sv().classList.remove("visible");
|
|
6807
6815
|
}
|
|
6808
|
-
var
|
|
6809
|
-
function
|
|
6816
|
+
var uv = { sun: "identity & vitality", moon: "emotions & instincts", mercury: "mind & communication", venus: "love & values", mars: "drive & desire", jupiter: "expansion & meaning", saturn: "discipline & mastery", uranus: "innovation & rebellion", neptune: "dreams & transcendence", pluto: "transformation & power", chiron: "wound & healing", "north node": "soul direction", "south node": "past-life gifts", "true node": "soul direction" }, dv = { conjunction: "fusion & amplification", opposition: "polarity & integration", trine: "ease & natural flow", square: "tension & growth", sextile: "opportunity & cooperation", quincunx: "adjustment & recalibration", semisquare: "friction & minor tension" }, fv = null, pv = null, mv = /* @__PURE__ */ new Map();
|
|
6817
|
+
function hv(e5) {
|
|
6810
6818
|
return "".concat(e5.planet1, "|inner|").concat(e5.planet2, "|outer|").concat(e5.type);
|
|
6811
6819
|
}
|
|
6812
|
-
var
|
|
6813
|
-
function
|
|
6820
|
+
var gv = { ASC: { title: "Ascendant", symbol: "AC", keyword: "self & first impressions", meaning: "The Ascendant is the mask you wear before the world \u2014 your embodied presence, physical appearance, and instinctive approach to new situations.", themes: ["identity", "appearance", "beginnings", "vitality", "self-projection"] }, DSC: { title: "Descendant", symbol: "DC", keyword: "partnership & mirrors", meaning: "The Descendant describes what you seek in others and the qualities you project onto relationships \u2014 the face you recognise in those you're drawn to.", themes: ["partnership", "marriage", "open enemies", "projection", "attraction"] }, MC: { title: "Midheaven", symbol: "MC", keyword: "vocation & public legacy", meaning: "The Midheaven marks the chart's highest point and governs reputation, career, and the long arc of your public life.", themes: ["career", "ambition", "reputation", "authority", "life direction"] }, IC: { title: "Imum Coeli", symbol: "IC", keyword: "roots & inner foundation", meaning: "The IC anchors the chart at its lowest point \u2014 home, ancestry, psychological foundations, and the private self that sustains the public Midheaven.", themes: ["home", "family", "ancestry", "inner life", "psychological roots"] } };
|
|
6821
|
+
function _v(e5, t2, n2, r2, i2) {
|
|
6814
6822
|
var a2, o2;
|
|
6815
|
-
let s2 =
|
|
6823
|
+
let s2 = Sv(), c2 = gv[t2];
|
|
6816
6824
|
if (!c2) return;
|
|
6817
|
-
let l2 =
|
|
6825
|
+
let l2 = X_(n2), u2 = Math.floor((n2 % 360 + 360) % 360 / 30), d2 = U_[u2], f2 = W_[u2], p2 = I_[u2], m2 = K_(u2), h2 = i2 ? "".concat(i2, " \xB7 Natal") : "Inner \xB7 Natal", g2 = av ? '<button class="ask-claude-btn" id="bi-ask-claude-angle-btn">\u2728 Interpret this</button>' : "";
|
|
6818
6826
|
s2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:#7060b8;font-family:system-ui;font-weight:700;font-size:14px">'.concat(Q(c2.symbol), '</span>\n <div class="info-title">\n <div style="display:flex;align-items:center;gap:6px;flex-wrap:wrap;">\n <strong>').concat(Q(c2.title), '</strong>\n <span class="wheel-badge inner">').concat(Q(h2), '</span>\n </div>\n <div class="info-subtitle">').concat(Q(p2), " ").concat(Q(l2), '</div>\n </div>\n <button class="info-close" id="bi-info-close-btn">\u2715</button>\n </div>\n <div style="font-size:11px;color:var(--text-secondary,#888);margin:6px 0 4px">\n <span style="color:').concat(m2, ';margin-right:4px">').concat(Q(p2), "</span>\n <em>").concat(Q(d2), " \xB7 ").concat(Q(f2), '</em>\n </div>\n <div style="font-size:12px;line-height:1.55;margin-bottom:8px">').concat(Q(c2.meaning), '</div>\n <div class="aspects-title">').concat(Q(c2.keyword), '</div>\n <div class="aspects-list">\n ').concat(c2.themes.map((e6) => '<div class="aspect-row"><span class="aspect-other">'.concat(Q(e6), "</span></div>")).join(""), "\n </div>\n ").concat(g2, "\n "), s2.classList.add("open"), s2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (a2 = document.getElementById("bi-info-close-btn")) == null || a2.addEventListener("click", () => {
|
|
6819
|
-
|
|
6827
|
+
Cv(), Av();
|
|
6820
6828
|
}), (o2 = document.getElementById("bi-ask-claude-angle-btn")) == null || o2.addEventListener("click", () => {
|
|
6821
|
-
if (!
|
|
6829
|
+
if (!av) return;
|
|
6822
6830
|
let e6 = document.getElementById("bi-ask-claude-angle-btn");
|
|
6823
|
-
!e6 || e6.disabled || (e6.disabled = true, e6.textContent = "\u23F3 Sending\u2026", e6.classList.add("sending"),
|
|
6831
|
+
!e6 || e6.disabled || (e6.disabled = true, e6.textContent = "\u23F3 Sending\u2026", e6.classList.add("sending"), av({ type: "angle_interpretation", data: { angle: c2.title, longitude: n2, sign: L_[u2], position: l2, element: d2, modality: f2, mode: r2 } }).then(() => {
|
|
6824
6832
|
e6.textContent = "\u2713 Sent", e6.classList.remove("sending"), e6.classList.add("sent"), setTimeout(() => {
|
|
6825
6833
|
e6.textContent = "\u2728 Interpret this", e6.classList.remove("sent"), e6.disabled = false;
|
|
6826
6834
|
}, 2500);
|
|
@@ -6829,32 +6837,32 @@ function hv(e5, t2, n2, r2, i2) {
|
|
|
6829
6837
|
}));
|
|
6830
6838
|
});
|
|
6831
6839
|
}
|
|
6832
|
-
var
|
|
6833
|
-
function
|
|
6840
|
+
var vv = { 1: "Identity & self", 2: "Resources & values", 3: "Mind & local", 4: "Roots & home", 5: "Creativity & play", 6: "Work & wellbeing", 7: "Partnership", 8: "Depth & shared", 9: "Meaning & travel", 10: "Vocation & visibility", 11: "Community & vision", 12: "Inner life" };
|
|
6841
|
+
function yv(e5, t2, n2) {
|
|
6834
6842
|
let r2 = (n2 - t2 + 360) % 360;
|
|
6835
6843
|
return e5.filter((e6) => {
|
|
6836
6844
|
let n3 = (e6.longitude - t2 + 360) % 360;
|
|
6837
6845
|
return n3 >= 0 && n3 < r2;
|
|
6838
6846
|
});
|
|
6839
6847
|
}
|
|
6840
|
-
function
|
|
6848
|
+
function bv(e5, t2, n2, r2, i2, a2, o2, s2) {
|
|
6841
6849
|
var c2, l2, u2, d2, f2;
|
|
6842
|
-
let p2 =
|
|
6843
|
-
let n3 =
|
|
6850
|
+
let p2 = Sv(), m2 = Math.floor((t2.cusp_lon % 360 + 360) % 360 / 30), h2 = (c2 = (l2 = t2.sign) == null ? L_[m2] : l2) == null ? "" : c2, g2 = (u2 = I_[m2]) == null ? "" : u2, _2 = yv(o2, t2.cusp_lon, n2.cusp_lon), v2 = yv(s2, t2.cusp_lon, n2.cusp_lon), y2 = i2 || "Natal", b2 = r2 === "synastry" ? a2 == null ? "Synastry" : a2 : "Transit", x2 = (e6, t3) => e6.length === 0 ? '<div class="no-aspects">\u2014</div>' : e6.map((e7) => {
|
|
6851
|
+
let n3 = X_(e7.longitude), r3 = e7.retrograde ? " \u211E" : "";
|
|
6844
6852
|
return '<div class="aspect-row">\n <span class="wheel-badge '.concat(t3, '" style="font-size:9px">').concat(Q(t3 === "inner" ? y2 : b2), '</span>\n <span class="aspect-other">').concat(Q(Z(e7.name))).concat(r3, '</span>\n <span class="aspect-meta">').concat(Q(n3), "</span>\n </div>");
|
|
6845
|
-
}).join(""), S2 =
|
|
6853
|
+
}).join(""), S2 = av ? '<button class="ask-claude-btn" id="bi-ask-claude-house-btn">\u2728 Interpret this</button>' : "";
|
|
6846
6854
|
p2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:#7060b8;font-family:system-ui;font-weight:700;font-size:14px">'.concat(t2.number, '</span>\n <div class="info-title">\n <div><strong>House ').concat(t2.number, '</strong></div>\n <div class="info-subtitle">').concat(Q(g2), " ").concat(Q(h2), " on cusp").concat(t2.ruler ? " \xB7 ruled by ".concat(Q(Z(t2.ruler))) : "", '</div>\n </div>\n <button class="info-close" id="bi-info-close-btn">\u2715</button>\n </div>\n <div class="aspects-title" style="margin-top:6px">').concat(Q(y2), ' planets</div>\n <div class="aspects-list">').concat(x2(_2, "inner"), '</div>\n <div class="aspects-title" style="margin-top:8px">').concat(Q(b2), ' planets currently here</div>\n <div class="aspects-list">').concat(x2(v2, "outer"), "</div>\n ").concat(S2, "\n "), p2.classList.add("open"), p2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (d2 = document.getElementById("bi-info-close-btn")) == null || d2.addEventListener("click", () => {
|
|
6847
|
-
|
|
6855
|
+
Cv(), Av();
|
|
6848
6856
|
}), (f2 = document.getElementById("bi-ask-claude-house-btn")) == null || f2.addEventListener("click", () => {
|
|
6849
6857
|
var e6;
|
|
6850
|
-
if (!
|
|
6858
|
+
if (!av) return;
|
|
6851
6859
|
let n3 = document.getElementById("bi-ask-claude-house-btn");
|
|
6852
|
-
!n3 || n3.disabled || (n3.disabled = true, n3.textContent = "\u23F3 Sending\u2026", n3.classList.add("sending"),
|
|
6860
|
+
!n3 || n3.disabled || (n3.disabled = true, n3.textContent = "\u23F3 Sending\u2026", n3.classList.add("sending"), av({ type: "house", data: { house_number: t2.number, cusp_sign: h2, cusp_longitude: t2.cusp_lon, ruler: (e6 = t2.ruler) == null ? null : e6, mode: r2, inner_label: y2, outer_label: b2, inner_planets: _2.map((e7) => {
|
|
6853
6861
|
var t3;
|
|
6854
|
-
return { name: e7.name, position:
|
|
6862
|
+
return { name: e7.name, position: X_(e7.longitude), retrograde: (t3 = e7.retrograde) == null ? false : t3 };
|
|
6855
6863
|
}), outer_planets: v2.map((e7) => {
|
|
6856
6864
|
var t3;
|
|
6857
|
-
return { name: e7.name, position:
|
|
6865
|
+
return { name: e7.name, position: X_(e7.longitude), retrograde: (t3 = e7.retrograde) == null ? false : t3 };
|
|
6858
6866
|
}) } }).then(() => {
|
|
6859
6867
|
n3.textContent = "\u2713 Sent", n3.classList.remove("sending"), n3.classList.add("sent"), setTimeout(() => {
|
|
6860
6868
|
n3.textContent = "\u2728 Interpret this", n3.classList.remove("sent"), n3.disabled = false;
|
|
@@ -6864,23 +6872,23 @@ function vv(e5, t2, n2, r2, i2, a2, o2, s2) {
|
|
|
6864
6872
|
}));
|
|
6865
6873
|
});
|
|
6866
6874
|
}
|
|
6867
|
-
function
|
|
6875
|
+
function xv(e5, t2, n2, r2, i2, a2, o2) {
|
|
6868
6876
|
var s2, c2;
|
|
6869
|
-
let l2 =
|
|
6870
|
-
let n3 =
|
|
6877
|
+
let l2 = Sv(), u2 = L_[t2], d2 = I_[t2], f2 = U_[t2], p2 = W_[t2], m2 = (e6) => Math.floor((e6.longitude % 360 + 360) % 360 / 30) === t2, h2 = a2.filter(m2), g2 = o2.filter(m2), _2 = r2 || "Natal", v2 = n2 === "synastry" ? i2 == null ? "Synastry" : i2 : "Transit", y2 = (e6, t3) => e6.length === 0 ? '<div class="no-aspects">\u2014</div>' : e6.map((e7) => {
|
|
6878
|
+
let n3 = X_(e7.longitude), r3 = e7.retrograde ? " \u211E" : "";
|
|
6871
6879
|
return '<div class="aspect-row">\n <span class="wheel-badge '.concat(t3, '" style="font-size:9px">').concat(Q(t3 === "inner" ? _2 : v2), '</span>\n <span class="aspect-other">').concat(Q(Z(e7.name))).concat(r3, '</span>\n <span class="aspect-meta">').concat(Q(n3), "</span>\n </div>");
|
|
6872
|
-
}).join(""), b2 =
|
|
6873
|
-
l2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:'.concat(
|
|
6874
|
-
|
|
6880
|
+
}).join(""), b2 = av ? '<button class="ask-claude-btn" id="bi-ask-claude-sign-btn">\u2728 Interpret this</button>' : "";
|
|
6881
|
+
l2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:'.concat(K_(t2), ';font-family:serif;font-weight:700;font-size:16px">').concat(Q(d2), '</span>\n <div class="info-title">\n <div><strong>').concat(Q(u2), '</strong></div>\n <div class="info-subtitle"><em>').concat(Q(Z(f2)), " \xB7 ").concat(Q(Z(p2)), '</em></div>\n </div>\n <button class="info-close" id="bi-info-close-btn">\u2715</button>\n </div>\n <div class="aspects-title" style="margin-top:6px">').concat(Q(_2), " planets in ").concat(Q(u2), '</div>\n <div class="aspects-list">').concat(y2(h2, "inner"), '</div>\n <div class="aspects-title" style="margin-top:8px">').concat(Q(v2), " planets currently in ").concat(Q(u2), '</div>\n <div class="aspects-list">').concat(y2(g2, "outer"), "</div>\n ").concat(b2, "\n "), l2.classList.add("open"), l2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (s2 = document.getElementById("bi-info-close-btn")) == null || s2.addEventListener("click", () => {
|
|
6882
|
+
Cv(), Av();
|
|
6875
6883
|
}), (c2 = document.getElementById("bi-ask-claude-sign-btn")) == null || c2.addEventListener("click", () => {
|
|
6876
|
-
if (!
|
|
6884
|
+
if (!av) return;
|
|
6877
6885
|
let e6 = document.getElementById("bi-ask-claude-sign-btn");
|
|
6878
|
-
!e6 || e6.disabled || (e6.disabled = true, e6.textContent = "\u23F3 Sending\u2026", e6.classList.add("sending"),
|
|
6886
|
+
!e6 || e6.disabled || (e6.disabled = true, e6.textContent = "\u23F3 Sending\u2026", e6.classList.add("sending"), av({ type: "sign", data: { sign: u2, element: Z(f2), modality: Z(p2), mode: n2, inner_label: _2, outer_label: v2, inner_planets: h2.map((e7) => {
|
|
6879
6887
|
var t3;
|
|
6880
|
-
return { name: e7.name, position:
|
|
6888
|
+
return { name: e7.name, position: X_(e7.longitude), retrograde: (t3 = e7.retrograde) == null ? false : t3 };
|
|
6881
6889
|
}), outer_planets: g2.map((e7) => {
|
|
6882
6890
|
var t3;
|
|
6883
|
-
return { name: e7.name, position:
|
|
6891
|
+
return { name: e7.name, position: X_(e7.longitude), retrograde: (t3 = e7.retrograde) == null ? false : t3 };
|
|
6884
6892
|
}) } }).then(() => {
|
|
6885
6893
|
e6.textContent = "\u2713 Sent", e6.classList.remove("sending"), e6.classList.add("sent"), setTimeout(() => {
|
|
6886
6894
|
e6.textContent = "\u2728 Interpret this", e6.classList.remove("sent"), e6.disabled = false;
|
|
@@ -6890,7 +6898,7 @@ function yv(e5, t2, n2, r2, i2, a2, o2) {
|
|
|
6890
6898
|
}));
|
|
6891
6899
|
});
|
|
6892
6900
|
}
|
|
6893
|
-
function
|
|
6901
|
+
function Sv() {
|
|
6894
6902
|
if (document.body.classList.contains("is-fullscreen")) {
|
|
6895
6903
|
let e6 = document.querySelector("#fs-bottom-bar [data-column='right']");
|
|
6896
6904
|
if (e6) {
|
|
@@ -6898,36 +6906,36 @@ function bv() {
|
|
|
6898
6906
|
return t3 || (t3 = document.createElement("div"), t3.className = "info-drawer info-drawer--fs", e6.appendChild(t3)), t3;
|
|
6899
6907
|
}
|
|
6900
6908
|
}
|
|
6901
|
-
if (
|
|
6902
|
-
|
|
6909
|
+
if (fv && fv.isConnected) return fv;
|
|
6910
|
+
fv = document.createElement("div"), fv.id = "bi-info-drawer", fv.className = "info-drawer";
|
|
6903
6911
|
let e5 = document.getElementById("chart-container");
|
|
6904
|
-
if (e5 != null && e5.parentElement) e5.parentElement.insertBefore(
|
|
6912
|
+
if (e5 != null && e5.parentElement) e5.parentElement.insertBefore(fv, e5.nextSibling);
|
|
6905
6913
|
else {
|
|
6906
6914
|
var t2;
|
|
6907
|
-
(t2 = document.getElementById("app")) == null || t2.appendChild(
|
|
6915
|
+
(t2 = document.getElementById("app")) == null || t2.appendChild(fv);
|
|
6908
6916
|
}
|
|
6909
|
-
return
|
|
6917
|
+
return fv;
|
|
6910
6918
|
}
|
|
6911
|
-
function
|
|
6919
|
+
function Cv() {
|
|
6912
6920
|
var e5;
|
|
6913
|
-
|
|
6921
|
+
fv == null || fv.classList.remove("open"), (e5 = document.querySelector("#fs-bottom-bar [data-column='right'] .info-drawer--fs")) == null || e5.classList.remove("open"), rv == null || rv(null);
|
|
6914
6922
|
}
|
|
6915
|
-
function
|
|
6923
|
+
function wv(e5, t2, n2, r2, i2, a2, o2) {
|
|
6916
6924
|
var s2, c2, l2, u2, d2;
|
|
6917
|
-
let f2 =
|
|
6925
|
+
let f2 = Sv(), p2 = (s2 = F_[t2.name.toLowerCase()]) == null ? "\u2605" : s2, m2 = (c2 = I_[Math.floor((t2.longitude % 360 + 360) % 360 / 30)]) == null ? "" : c2, h2 = H_(t2.name, t2.longitude), g2;
|
|
6918
6926
|
g2 = n2 === "inner" ? a2 ? "".concat(a2, " \xB7 Natal") : "Inner \xB7 Natal" : i2 === "transit" ? "Outer \xB7 Transit" : o2 ? "".concat(o2, " \xB7 Synastry") : "Outer \xB7 Synastry";
|
|
6919
6927
|
let _2 = n2, v2 = r2.filter((e6) => n2 === "inner" && e6.planet1 === t2.name || n2 === "outer" && e6.planet2 === t2.name).sort((e6, t3) => e6.orb - t3.orb), y2 = v2.length ? v2.map((e6) => {
|
|
6920
6928
|
var t3, r3, a3, o3, s3, c3, l3;
|
|
6921
|
-
let u3 = n2 === "inner" ? e6.planet2 : e6.planet1, d3 = (t3 =
|
|
6929
|
+
let u3 = n2 === "inner" ? e6.planet2 : e6.planet1, d3 = (t3 = F_[u3.toLowerCase()]) == null ? u3 : t3, f3 = (r3 = (a3 = R_[(o3 = (s3 = e6.type) == null ? void 0 : s3.toLowerCase()) == null ? "" : o3]) == null ? e6.type : a3) == null ? "\u2014" : r3, p3 = z_((c3 = (l3 = e6.type) == null ? void 0 : l3.toLowerCase()) == null ? "" : c3), m3 = "".concat(e6.orb.toFixed(1), "\xB0"), h3 = i2 === "transit" ? e6.applying ? "\u2197" : "\u2198" : e6.orb <= 1 ? "exact" : e6.orb <= 3 ? "tight" : "wide";
|
|
6922
6930
|
return '<div class="aspect-row">\n <span class="aspect-dot" style="background:'.concat(p3, '"></span>\n <span class="aspect-sym" style="color:').concat(p3, '">').concat(f3, '</span>\n <span class="aspect-other">').concat(Q(d3), " ").concat(Q(Z(u3)), '</span>\n <span class="aspect-meta">').concat(m3, " ").concat(h3, "</span>\n </div>");
|
|
6923
|
-
}).join("") : '<div class="no-aspects">No cross-aspects within orb</div>', b2 = (l2 =
|
|
6924
|
-
f2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph">'.concat(Q(p2), '</span>\n <div class="info-title">\n <div style="display:flex;align-items:center;gap:6px;flex-wrap:wrap;">\n <strong>').concat(Q(Z(t2.name)), "</strong>\n ").concat(t2.retrograde ? "<span style='color:#e05252'>\u211E</span>" : "", "\n ").concat(h2 ? '<span class="dignity-badge '.concat(h2.cssClass, '">').concat(h2.emoji, " ").concat(Q(h2.label), "</span>") : "", '\n <span class="wheel-badge ').concat(_2, '">').concat(Q(g2), '</span>\n </div>\n <div class="info-subtitle">').concat(Q(m2), " ").concat(Q(
|
|
6925
|
-
|
|
6931
|
+
}).join("") : '<div class="no-aspects">No cross-aspects within orb</div>', b2 = (l2 = L_[Math.floor((t2.longitude % 360 + 360) % 360 / 30)]) == null ? "Unknown" : l2, x2 = av ? '<button class="ask-claude-btn" id="bi-ask-claude-planet-btn">\u2728 Interpret this</button>' : "";
|
|
6932
|
+
f2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph">'.concat(Q(p2), '</span>\n <div class="info-title">\n <div style="display:flex;align-items:center;gap:6px;flex-wrap:wrap;">\n <strong>').concat(Q(Z(t2.name)), "</strong>\n ").concat(t2.retrograde ? "<span style='color:#e05252'>\u211E</span>" : "", "\n ").concat(h2 ? '<span class="dignity-badge '.concat(h2.cssClass, '">').concat(h2.emoji, " ").concat(Q(h2.label), "</span>") : "", '\n <span class="wheel-badge ').concat(_2, '">').concat(Q(g2), '</span>\n </div>\n <div class="info-subtitle">').concat(Q(m2), " ").concat(Q(X_(t2.longitude))).concat(t2.house ? " \xB7 House ".concat(t2.house) : "", '</div>\n </div>\n <button class="info-close" id="bi-info-close-btn">\u2715</button>\n </div>\n <div class="aspects-title">Cross-Aspects</div>\n <div class="aspects-list">').concat(y2, "</div>\n ").concat(x2, "\n "), f2.classList.add("open"), f2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (u2 = document.getElementById("bi-info-close-btn")) == null || u2.addEventListener("click", () => {
|
|
6933
|
+
Cv(), Av();
|
|
6926
6934
|
}), (d2 = document.getElementById("bi-ask-claude-planet-btn")) == null || d2.addEventListener("click", () => {
|
|
6927
6935
|
var e6, r3;
|
|
6928
|
-
if (!
|
|
6936
|
+
if (!av) return;
|
|
6929
6937
|
let a3 = document.getElementById("bi-ask-claude-planet-btn");
|
|
6930
|
-
!a3 || a3.disabled || (a3.disabled = true, a3.textContent = "\u23F3 Sending\u2026", a3.classList.add("sending"),
|
|
6938
|
+
!a3 || a3.disabled || (a3.disabled = true, a3.textContent = "\u23F3 Sending\u2026", a3.classList.add("sending"), av({ type: "planet", data: { planet_name: t2.name, wheel: n2, longitude: t2.longitude, sign: b2, position: "".concat(Math.floor(t2.longitude % 30), "\xB0 ").concat(b2), house: (e6 = t2.house) == null ? null : e6, retrograde: (r3 = t2.retrograde) == null ? false : r3, mode: i2, cross_aspects: v2.map((e7) => ({ type: e7.type, partner: n2 === "inner" ? e7.planet2 : e7.planet1, orb: e7.orb, applying: e7.applying, orb_label: i2 === "transit" ? e7.applying ? "applying" : "separating" : e7.orb <= 1 ? "exact" : e7.orb <= 3 ? "tight" : "wide" })) } }).then(() => {
|
|
6931
6939
|
a3.textContent = "\u2713 Sent", a3.classList.remove("sending"), a3.classList.add("sent"), setTimeout(() => {
|
|
6932
6940
|
a3.textContent = "\u2728 Interpret this", a3.classList.remove("sent"), a3.disabled = false;
|
|
6933
6941
|
}, 2500);
|
|
@@ -6936,15 +6944,15 @@ function Sv(e5, t2, n2, r2, i2, a2, o2) {
|
|
|
6936
6944
|
}));
|
|
6937
6945
|
});
|
|
6938
6946
|
}
|
|
6939
|
-
function
|
|
6947
|
+
function Tv(e5, t2, n2, r2, i2) {
|
|
6940
6948
|
var a2, o2, s2, c2, l2, u2, d2, f2, p2;
|
|
6941
|
-
let m2 =
|
|
6949
|
+
let m2 = Sv(), h2 = (a2 = F_[t2.planet1.toLowerCase()]) == null ? "\u2605" : a2, g2 = (o2 = F_[t2.planet2.toLowerCase()]) == null ? "\u2605" : o2, _2 = (s2 = R_[(c2 = (l2 = t2.type) == null ? void 0 : l2.toLowerCase()) == null ? "" : c2]) == null ? t2.type : s2, v2 = z_((u2 = (d2 = t2.type) == null ? void 0 : d2.toLowerCase()) == null ? "" : u2), y2 = r2 ? "".concat(r2, "'s ").concat(Z(t2.planet1)) : Z(t2.planet1), b2 = n2 === "transit" ? "Tr. ".concat(Z(t2.planet2)) : i2 ? "".concat(i2, "'s ").concat(Z(t2.planet2)) : Z(t2.planet2), x2 = n2 === "transit" ? t2.applying ? "\u2197 Applying" : "\u2198 Separating" : t2.orb <= 1 ? "Exact" : t2.orb <= 3 ? "Tight" : "Wide", S2 = av ? '<button class="ask-claude-btn" id="bi-ask-claude-asp-btn">\u2728 Interpret this</button>' : "";
|
|
6942
6950
|
m2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:'.concat(v2, '">').concat(Q(String(_2)), '</span>\n <div class="info-title">\n <div style="display:flex;align-items:center;gap:5px;flex-wrap:wrap;">\n <strong>').concat(Q(h2), " ").concat(Q(y2), '</strong>\n <span style="color:').concat(v2, '">').concat(Q(String(_2)), "</span>\n <strong>").concat(Q(g2), " ").concat(Q(b2), '</strong>\n </div>\n <div class="info-subtitle">').concat(t2.orb.toFixed(1), "\xB0 orb \xB7 ").concat(Q(x2), '</div>\n </div>\n <button class="info-close" id="bi-info-close-btn">\u2715</button>\n </div>\n <div style="display:flex;gap:6px;margin-bottom:10px;">\n <span class="wheel-badge inner">Inner \xB7 ').concat(Q(y2), '</span>\n <span class="wheel-badge outer">Outer \xB7 ').concat(Q(b2), "</span>\n </div>\n ").concat(S2, "\n "), m2.classList.add("open"), m2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (f2 = document.getElementById("bi-info-close-btn")) == null || f2.addEventListener("click", () => {
|
|
6943
|
-
|
|
6951
|
+
Cv(), Av();
|
|
6944
6952
|
}), (p2 = document.getElementById("bi-ask-claude-asp-btn")) == null || p2.addEventListener("click", () => {
|
|
6945
|
-
if (!
|
|
6953
|
+
if (!av) return;
|
|
6946
6954
|
let e6 = document.getElementById("bi-ask-claude-asp-btn");
|
|
6947
|
-
!e6 || e6.disabled || (e6.disabled = true, e6.textContent = "\u23F3 Sending\u2026", e6.classList.add("sending"),
|
|
6955
|
+
!e6 || e6.disabled || (e6.disabled = true, e6.textContent = "\u23F3 Sending\u2026", e6.classList.add("sending"), av({ type: "cross_aspect", data: { planet1: t2.planet1, wheel1: t2.wheel1, planet2: t2.planet2, wheel2: t2.wheel2, aspect_type: t2.type, orb: t2.orb, applying: t2.applying, mode: n2 } }).then(() => {
|
|
6948
6956
|
e6.textContent = "\u2713 Sent", e6.classList.remove("sending"), e6.classList.add("sent"), setTimeout(() => {
|
|
6949
6957
|
e6.textContent = "\u2728 Interpret this", e6.classList.remove("sent"), e6.disabled = false;
|
|
6950
6958
|
}, 2500);
|
|
@@ -6953,82 +6961,82 @@ function Cv(e5, t2, n2, r2, i2) {
|
|
|
6953
6961
|
}));
|
|
6954
6962
|
});
|
|
6955
6963
|
}
|
|
6956
|
-
function
|
|
6957
|
-
|
|
6964
|
+
function Ev(e5, t2) {
|
|
6965
|
+
mv.forEach(({ vis: n2, color: r2, symbolEls: i2 }, a2) => {
|
|
6958
6966
|
let o2 = a2.split("|");
|
|
6959
6967
|
(t2 === "inner" ? o2[0] === e5 : o2[2] === e5) ? (n2.style.stroke = r2, n2.style.strokeOpacity = "0.92", n2.style.strokeWidth = "1.8", n2.removeAttribute("stroke-dasharray"), n2.setAttribute("filter", "url(#aspect-glow)"), i2.forEach((e6) => e6.style.opacity = "1")) : (n2.style.strokeOpacity = "0.05", n2.style.strokeWidth = "0.5", n2.removeAttribute("filter"), i2.forEach((e6) => e6.style.opacity = "0.15"));
|
|
6960
|
-
}),
|
|
6968
|
+
}), Ov(e5, t2);
|
|
6961
6969
|
}
|
|
6962
|
-
function
|
|
6963
|
-
|
|
6970
|
+
function Dv(e5, t2) {
|
|
6971
|
+
mv.forEach(({ vis: n2, color: r2, symbolEls: i2 }, a2) => {
|
|
6964
6972
|
a2 === e5 ? (n2.style.stroke = t2, n2.style.strokeOpacity = "0.95", n2.style.strokeWidth = "2", n2.removeAttribute("stroke-dasharray"), n2.setAttribute("filter", "url(#aspect-glow)"), i2.forEach((e6) => e6.style.opacity = "1")) : (n2.style.strokeOpacity = "0.05", n2.style.strokeWidth = "0.5", n2.removeAttribute("filter"), i2.forEach((e6) => e6.style.opacity = "0.15"));
|
|
6965
6973
|
});
|
|
6966
6974
|
}
|
|
6967
|
-
function
|
|
6975
|
+
function Ov(e5, t2) {
|
|
6968
6976
|
let n2 = e5.toLowerCase(), r2 = /* @__PURE__ */ new Set(), i2 = /* @__PURE__ */ new Set();
|
|
6969
|
-
|
|
6977
|
+
mv.forEach((e6, a3) => {
|
|
6970
6978
|
var o2, s2;
|
|
6971
6979
|
let c2 = a3.split("|"), l2 = ((o2 = c2[0]) == null ? "" : o2).toLowerCase(), u2 = ((s2 = c2[2]) == null ? "" : s2).toLowerCase();
|
|
6972
6980
|
t2 === "inner" && l2 === n2 && i2.add(u2), t2 === "outer" && u2 === n2 && r2.add(l2);
|
|
6973
6981
|
});
|
|
6974
6982
|
let a2 = (e6, t3) => t3 === "inner" && r2.has(e6) || t3 === "outer" && i2.has(e6);
|
|
6975
|
-
|
|
6983
|
+
pv == null || pv.querySelectorAll(".planet-hit").forEach((e6) => {
|
|
6976
6984
|
var r3;
|
|
6977
6985
|
let i3 = e6.dataset.wheel, o2 = (r3 = e6.dataset.planet) == null ? "" : r3, s2 = o2 === n2 && i3 === t2, c2 = !s2 && a2(o2, i3);
|
|
6978
6986
|
e6.classList.toggle("dim", !s2 && !c2);
|
|
6979
|
-
}),
|
|
6987
|
+
}), pv == null || pv.querySelectorAll(".planet-glyph-group").forEach((e6) => {
|
|
6980
6988
|
var r3;
|
|
6981
6989
|
let i3 = e6.dataset.wheel, o2 = (r3 = e6.dataset.planet) == null ? "" : r3;
|
|
6982
6990
|
o2 === n2 && i3 === t2 ? e6.style.opacity = "1" : a2(o2, i3) ? e6.style.opacity = "0.55" : e6.style.opacity = "0.12";
|
|
6983
6991
|
});
|
|
6984
6992
|
}
|
|
6985
|
-
function
|
|
6986
|
-
|
|
6993
|
+
function kv() {
|
|
6994
|
+
mv.forEach(({ vis: e5, symbolEls: t2 }) => {
|
|
6987
6995
|
e5.style.strokeOpacity = "0.05", e5.style.strokeWidth = "0.5", e5.removeAttribute("filter"), t2.forEach((e6) => e6.style.opacity = "0.15");
|
|
6988
|
-
}),
|
|
6996
|
+
}), pv == null || pv.querySelectorAll(".planet-glyph-group").forEach((e5) => {
|
|
6989
6997
|
e5.style.opacity = "0.3";
|
|
6990
|
-
}),
|
|
6998
|
+
}), pv == null || pv.querySelectorAll(".planet-hit").forEach((e5) => {
|
|
6991
6999
|
e5.classList.add("dim");
|
|
6992
7000
|
});
|
|
6993
7001
|
}
|
|
6994
|
-
function
|
|
6995
|
-
|
|
6996
|
-
let i2 =
|
|
7002
|
+
function Av() {
|
|
7003
|
+
mv.forEach(({ vis: e5, color: t2, orb: n2, symbolEls: r2 }) => {
|
|
7004
|
+
let i2 = B_(n2 == null ? 4 : n2);
|
|
6997
7005
|
e5.style.stroke = t2, e5.style.strokeOpacity = i2.opacity, e5.style.strokeWidth = i2.width, e5.removeAttribute("filter"), i2.dash ? e5.setAttribute("stroke-dasharray", i2.dash) : e5.removeAttribute("stroke-dasharray"), r2.forEach((e6) => e6.style.opacity = "");
|
|
6998
|
-
}),
|
|
7006
|
+
}), pv == null || pv.querySelectorAll(".planet-glyph-group").forEach((e5) => {
|
|
6999
7007
|
e5.style.opacity = "";
|
|
7000
|
-
}),
|
|
7008
|
+
}), pv == null || pv.querySelectorAll(".planet-hit").forEach((e5) => e5.classList.remove("dim")), zv();
|
|
7001
7009
|
}
|
|
7002
|
-
function
|
|
7003
|
-
|
|
7010
|
+
function jv(e5) {
|
|
7011
|
+
mv.forEach(({ vis: t2, symbolEls: n2 }) => {
|
|
7004
7012
|
t2.style.display = e5 ? "" : "none", n2.forEach((t3) => t3.style.display = e5 ? "" : "none");
|
|
7005
|
-
}),
|
|
7013
|
+
}), pv == null || pv.querySelectorAll(".aspect-hit").forEach((t2) => {
|
|
7006
7014
|
t2.style.display = e5 ? "" : "none";
|
|
7007
7015
|
});
|
|
7008
7016
|
}
|
|
7009
|
-
function
|
|
7017
|
+
function Mv(e5, t2, n2) {
|
|
7010
7018
|
return "".concat(e5, "|inner|").concat(t2, "|outer|").concat(n2);
|
|
7011
7019
|
}
|
|
7012
|
-
function
|
|
7020
|
+
function Nv(e5, t2, n2, r2, i2) {
|
|
7013
7021
|
return t2 === "inner" && r2 === "outer" ? "".concat(e5, "|inner|").concat(n2, "|outer|").concat(i2) : r2 === "inner" && t2 === "outer" ? "".concat(n2, "|inner|").concat(e5, "|outer|").concat(i2) : [e5, n2].sort().join("|") + "|".concat(i2);
|
|
7014
7022
|
}
|
|
7015
|
-
function
|
|
7023
|
+
function Pv(e5, t2) {
|
|
7016
7024
|
return e5.filter((e6) => {
|
|
7017
7025
|
var n2;
|
|
7018
7026
|
return ((n2 = e6.type) == null ? "" : n2).toLowerCase() === t2;
|
|
7019
7027
|
});
|
|
7020
7028
|
}
|
|
7021
|
-
function
|
|
7029
|
+
function Fv(e5) {
|
|
7022
7030
|
let t2 = [];
|
|
7023
7031
|
if (!e5.length) return t2;
|
|
7024
|
-
let n2 =
|
|
7032
|
+
let n2 = Pv(e5, "trine"), r2 = Pv(e5, "square"), i2 = Pv(e5, "opposition"), a2 = Pv(e5, "conjunction"), o2 = /* @__PURE__ */ new Set();
|
|
7025
7033
|
for (let e6 = 0; e6 < n2.length; e6++) for (let r3 = e6 + 1; r3 < n2.length; r3++) {
|
|
7026
7034
|
let i3 = n2[e6], a3 = n2[r3];
|
|
7027
7035
|
if (i3.planet1 !== a3.planet1) continue;
|
|
7028
7036
|
let s3 = i3.planet1, c3 = i3.planet2, l2 = a3.planet2;
|
|
7029
7037
|
if (c3 === l2) continue;
|
|
7030
7038
|
let u2 = [s3, c3, l2].sort().join("|");
|
|
7031
|
-
o2.has(u2) || (o2.add(u2), t2.push({ name: "Cross Trine", description: "".concat(Z(s3), " trines ").concat(Z(c3), " & ").concat(Z(l2)), planets: [{ name: s3, wheel: "inner" }, { name: c3, wheel: "outer" }, { name: l2, wheel: "outer" }], aspectKeys: [
|
|
7039
|
+
o2.has(u2) || (o2.add(u2), t2.push({ name: "Cross Trine", description: "".concat(Z(s3), " trines ").concat(Z(c3), " & ").concat(Z(l2)), planets: [{ name: s3, wheel: "inner" }, { name: c3, wheel: "outer" }, { name: l2, wheel: "outer" }], aspectKeys: [Mv(s3, c3, "trine"), Mv(s3, l2, "trine")] }));
|
|
7032
7040
|
}
|
|
7033
7041
|
let s2 = /* @__PURE__ */ new Set();
|
|
7034
7042
|
for (let e6 of i2) {
|
|
@@ -7043,7 +7051,7 @@ function Nv(e5) {
|
|
|
7043
7051
|
if (s2.has(c3)) continue;
|
|
7044
7052
|
let l2;
|
|
7045
7053
|
if (l2 = o3 === "outer" ? e7 : r2.find((e8) => e8.planet1 === a3 && e8.planet2 === i3), l2) {
|
|
7046
|
-
s2.add(c3), t2.push({ name: "Cross T-Square", description: "Apex: ".concat(Z(a3), " (").concat(o3, ")"), planets: [{ name: n3, wheel: "inner" }, { name: i3, wheel: "outer" }, { name: a3, wheel: o3 }], aspectKeys: [
|
|
7054
|
+
s2.add(c3), t2.push({ name: "Cross T-Square", description: "Apex: ".concat(Z(a3), " (").concat(o3, ")"), planets: [{ name: n3, wheel: "inner" }, { name: i3, wheel: "outer" }, { name: a3, wheel: o3 }], aspectKeys: [Mv(n3, i3, "opposition"), Nv(n3, "inner", a3, o3, "square"), Nv(a3, o3, i3, "outer", "square")] });
|
|
7047
7055
|
break;
|
|
7048
7056
|
}
|
|
7049
7057
|
}
|
|
@@ -7059,26 +7067,26 @@ function Nv(e5) {
|
|
|
7059
7067
|
for (let [r3, i3] of e6) {
|
|
7060
7068
|
if (i3.length < 2) continue;
|
|
7061
7069
|
let e7 = "".concat(r3, "|").concat([...i3].sort().join("|"));
|
|
7062
|
-
n3.has(e7) || (n3.add(e7), t2.push({ name: "Cross Stellium", description: "".concat(Z(r3), " conjunct ").concat(i3.map(Z).join(" & "), " (cross-wheel)"), planets: [{ name: r3, wheel: "inner" }, ...i3.map((e8) => ({ name: e8, wheel: "outer" }))], aspectKeys: i3.map((e8) =>
|
|
7070
|
+
n3.has(e7) || (n3.add(e7), t2.push({ name: "Cross Stellium", description: "".concat(Z(r3), " conjunct ").concat(i3.map(Z).join(" & "), " (cross-wheel)"), planets: [{ name: r3, wheel: "inner" }, ...i3.map((e8) => ({ name: e8, wheel: "outer" }))], aspectKeys: i3.map((e8) => Mv(r3, e8, "conjunction")) }));
|
|
7063
7071
|
}
|
|
7064
7072
|
}
|
|
7065
7073
|
return t2;
|
|
7066
7074
|
}
|
|
7067
|
-
var
|
|
7068
|
-
function
|
|
7075
|
+
var Iv = { "Cross Trine": "rgba( 82,168,224, 0.14)", "Cross T-Square": "rgba(224,138, 82, 0.14)", "Cross Stellium": "rgba(154,127,212, 0.14)" }, Lv = { "Cross Trine": "rgba( 82,168,224, 0.70)", "Cross T-Square": "rgba(224,138, 82, 0.70)", "Cross Stellium": "rgba(154,127,212, 0.70)" };
|
|
7076
|
+
function Rv(e5, t2, n2, r2) {
|
|
7069
7077
|
var i2, a2;
|
|
7070
|
-
if (!
|
|
7078
|
+
if (!pv) return null;
|
|
7071
7079
|
let o2 = /* @__PURE__ */ new Map();
|
|
7072
7080
|
for (let e6 of t2) o2.set(e6.name.toLowerCase(), e6.longitude);
|
|
7073
7081
|
let s2 = /* @__PURE__ */ new Map();
|
|
7074
7082
|
for (let e6 of n2) s2.set(e6.name.toLowerCase(), e6.longitude);
|
|
7075
7083
|
let c2 = [];
|
|
7076
7084
|
for (let { name: t3, wheel: n3 } of e5.planets) {
|
|
7077
|
-
let e6 = n3 === "inner" ? o2 : s2, i3 = n3 === "inner" ?
|
|
7085
|
+
let e6 = n3 === "inner" ? o2 : s2, i3 = n3 === "inner" ? A_ : N_, a3 = e6.get(t3.toLowerCase());
|
|
7078
7086
|
a3 != null && c2.push(Y(a3, i3, r2));
|
|
7079
7087
|
}
|
|
7080
7088
|
if (c2.length < 2) return null;
|
|
7081
|
-
let l2 = (i2 =
|
|
7089
|
+
let l2 = (i2 = Iv[e5.name]) == null ? "rgba(128,128,128,0.12)" : i2, u2 = (a2 = Lv[e5.name]) == null ? "rgba(128,128,128,0.60)" : a2, d2;
|
|
7082
7090
|
if (c2.length === 2) {
|
|
7083
7091
|
let e6 = X("line");
|
|
7084
7092
|
e6.setAttribute("x1", c2[0].x.toFixed(1)), e6.setAttribute("y1", c2[0].y.toFixed(1)), e6.setAttribute("x2", c2[1].x.toFixed(1)), e6.setAttribute("y2", c2[1].y.toFixed(1)), e6.setAttribute("stroke", u2), e6.setAttribute("stroke-width", "2"), e6.setAttribute("fill", "none"), d2 = e6;
|
|
@@ -7087,37 +7095,37 @@ function Iv(e5, t2, n2, r2) {
|
|
|
7087
7095
|
t3.setAttribute("points", e6.map((e7) => "".concat(e7.x.toFixed(1), ",").concat(e7.y.toFixed(1))).join(" ")), t3.setAttribute("fill", l2), t3.setAttribute("stroke", u2), t3.setAttribute("stroke-width", "1.5"), t3.setAttribute("stroke-linejoin", "round"), d2 = t3;
|
|
7088
7096
|
}
|
|
7089
7097
|
d2.setAttribute("pointer-events", "none"), d2.setAttribute("class", "pattern-overlay");
|
|
7090
|
-
let f2 =
|
|
7091
|
-
return f2 ?
|
|
7098
|
+
let f2 = pv.querySelector(".aspect-hit");
|
|
7099
|
+
return f2 ? pv.insertBefore(d2, f2) : pv.appendChild(d2), d2;
|
|
7092
7100
|
}
|
|
7093
|
-
function
|
|
7094
|
-
|
|
7101
|
+
function zv() {
|
|
7102
|
+
pv == null || pv.querySelectorAll(".pattern-overlay").forEach((e5) => e5.remove());
|
|
7095
7103
|
}
|
|
7096
|
-
function
|
|
7104
|
+
function Bv(e5) {
|
|
7097
7105
|
let t2 = new Set(e5.aspectKeys);
|
|
7098
|
-
|
|
7106
|
+
mv.forEach(({ vis: e6, color: n3, symbolEls: r2 }, i2) => {
|
|
7099
7107
|
t2.has(i2) ? (e6.style.stroke = n3, e6.style.strokeOpacity = "0.92", e6.style.strokeWidth = "1.8", e6.removeAttribute("stroke-dasharray"), e6.setAttribute("filter", "url(#aspect-glow)"), r2.forEach((e7) => e7.style.opacity = "1")) : (e6.style.strokeOpacity = "0.05", e6.style.strokeWidth = "0.5", e6.removeAttribute("filter"), r2.forEach((e7) => e7.style.opacity = "0.15"));
|
|
7100
7108
|
});
|
|
7101
7109
|
let n2 = new Set(e5.planets.map((e6) => "".concat(e6.name.toLowerCase(), "|").concat(e6.wheel)));
|
|
7102
|
-
|
|
7110
|
+
pv == null || pv.querySelectorAll(".planet-glyph-group").forEach((e6) => {
|
|
7103
7111
|
var t3, r2;
|
|
7104
7112
|
let i2 = "".concat((t3 = e6.dataset.planet) == null ? "" : t3, "|").concat((r2 = e6.dataset.wheel) == null ? "" : r2);
|
|
7105
7113
|
e6.style.opacity = n2.has(i2) ? "1" : "0.12";
|
|
7106
|
-
}),
|
|
7114
|
+
}), pv == null || pv.querySelectorAll(".planet-hit").forEach((e6) => {
|
|
7107
7115
|
var t3, r2;
|
|
7108
7116
|
let i2 = "".concat((t3 = e6.dataset.planet) == null ? "" : t3, "|").concat((r2 = e6.dataset.wheel) == null ? "" : r2);
|
|
7109
7117
|
e6.classList.toggle("dim", !n2.has(i2));
|
|
7110
7118
|
});
|
|
7111
7119
|
}
|
|
7112
|
-
function
|
|
7120
|
+
function Vv(e5, t2, n2, r2, i2, a2) {
|
|
7113
7121
|
var o2, s2, c2, l2, u2, d2, f2, p2, m2, h2, g2, _2;
|
|
7114
|
-
|
|
7122
|
+
av = i2 == null ? null : i2;
|
|
7115
7123
|
let v2 = (o2 = t2.mode) == null ? "synastry" : o2, y2 = (s2 = t2._birth_params_inner) == null ? void 0 : s2.location, b2 = (c2 = t2._birth_params_outer) == null ? void 0 : c2.location, x2 = e5.querySelector("#pan-zoom-controls");
|
|
7116
|
-
e5.innerHTML = "", x2 && e5.appendChild(x2),
|
|
7117
|
-
let S2 =
|
|
7118
|
-
te2.length === 0 && S2.length > 0 && ee2.length > 0 && (te2 =
|
|
7119
|
-
let w2 = (d2 = (f2 = (p2 = C2[0]) == null ? void 0 : p2.cusp_lon) == null ? t2.ascendant : f2) == null ? 0 : d2, T2 =
|
|
7120
|
-
E2.setAttribute("viewBox", "0 0 620 620"), E2.setAttribute("width", "100%"), E2.setAttribute("height", "100%"), E2.style.display = "block", e5.appendChild(E2),
|
|
7124
|
+
e5.innerHTML = "", x2 && e5.appendChild(x2), mv.clear(), Cv();
|
|
7125
|
+
let S2 = ev(t2.inner), ee2 = ev(t2.outer), C2 = (l2 = t2.inner_houses) == null ? [] : l2, te2 = (u2 = t2.cross_aspects) == null ? [] : u2;
|
|
7126
|
+
te2.length === 0 && S2.length > 0 && ee2.length > 0 && (te2 = nv(S2, ee2));
|
|
7127
|
+
let w2 = (d2 = (f2 = (p2 = C2[0]) == null ? void 0 : p2.cusp_lon) == null ? t2.ascendant : f2) == null ? 0 : d2, T2 = G_(), E2 = X("svg");
|
|
7128
|
+
E2.setAttribute("viewBox", "0 0 620 620"), E2.setAttribute("width", "100%"), E2.setAttribute("height", "100%"), E2.style.display = "block", e5.appendChild(E2), pv = E2;
|
|
7121
7129
|
let ne2 = X("defs");
|
|
7122
7130
|
ne2.innerHTML = '\n <filter id="aspect-glow" x="-50%" y="-50%" width="200%" height="200%">\n <feGaussianBlur in="SourceGraphic" stdDeviation="2.5" result="blur" />\n <feComposite in="SourceGraphic" in2="blur" operator="over" />\n </filter>\n ', E2.appendChild(ne2), i_(E2, "pan-zoom-controls");
|
|
7123
7131
|
let re2 = X("g");
|
|
@@ -7133,226 +7141,236 @@ function zv(e5, t2, n2, r2, i2, a2) {
|
|
|
7133
7141
|
let se2 = X("g");
|
|
7134
7142
|
E2.appendChild(se2);
|
|
7135
7143
|
let ce2 = X("circle");
|
|
7136
|
-
ce2.setAttribute("cx", "310"), ce2.setAttribute("cy", "310"), ce2.setAttribute("r", "304"), ce2.style.fill = "var(--bg, #faf9f5)"
|
|
7137
|
-
let le2 =
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
ue2
|
|
7141
|
-
|
|
7142
|
-
|
|
7144
|
+
ce2.setAttribute("cx", "310"), ce2.setAttribute("cy", "310"), ce2.setAttribute("r", "304"), ce2.style.fill = "var(--bg, #faf9f5)";
|
|
7145
|
+
let le2 = d_(T2), ue2 = (e6, t3) => {
|
|
7146
|
+
e6.setAttribute("stroke", le2.ring.stroke), e6.setAttribute("stroke-opacity", String(le2.ring.opacity)), e6.setAttribute("stroke-width", t3);
|
|
7147
|
+
};
|
|
7148
|
+
ue2(ce2, "0.5"), ce2.setAttribute("pointer-events", "none"), re2.appendChild(ce2);
|
|
7149
|
+
let de2 = X("circle");
|
|
7150
|
+
de2.setAttribute("cx", "310"), de2.setAttribute("cy", "310"), de2.setAttribute("r", String(j_)), de2.setAttribute("fill", "var(--outer-ring, #fdf5e4)"), ue2(de2, "0.8"), de2.setAttribute("pointer-events", "none"), D2.appendChild(de2);
|
|
7151
|
+
let fe2 = X("circle");
|
|
7152
|
+
fe2.setAttribute("cx", "310"), fe2.setAttribute("cy", "310"), fe2.setAttribute("r", String(M_)), fe2.style.fill = "var(--bg, #faf9f5)", ue2(fe2, "0.8"), fe2.setAttribute("pointer-events", "none"), D2.appendChild(fe2);
|
|
7153
|
+
for (let e6 = 0; e6 < 12; e6++) J_(D2, w2, e6, M_, j_, Hv(l_(e6, T2)), 0.16);
|
|
7143
7154
|
for (let e6 = 0; e6 < 12; e6++) {
|
|
7144
|
-
let t3 = e6 * 30, { x: n3, y: r3 } = Y(t3,
|
|
7145
|
-
o3.setAttribute("x1", n3.toFixed(1)), o3.setAttribute("y1", r3.toFixed(1)), o3.setAttribute("x2", i3.toFixed(1)), o3.setAttribute("y2", a3.toFixed(1)),
|
|
7155
|
+
let t3 = e6 * 30, { x: n3, y: r3 } = Y(t3, M_, w2), { x: i3, y: a3 } = Y(t3, j_, w2), o3 = X("line");
|
|
7156
|
+
o3.setAttribute("x1", n3.toFixed(1)), o3.setAttribute("y1", r3.toFixed(1)), o3.setAttribute("x2", i3.toFixed(1)), o3.setAttribute("y2", a3.toFixed(1)), ue2(o3, "0.5"), o3.setAttribute("pointer-events", "none"), D2.appendChild(o3);
|
|
7146
7157
|
let { x: s3, y: c3 } = Y(t3 + 15, 536 / 2, w2), l3 = X("text");
|
|
7147
|
-
l3.setAttribute("x", s3.toFixed(1)), l3.setAttribute("y", c3.toFixed(1)), l3.setAttribute("text-anchor", "middle"), l3.setAttribute("dominant-baseline", "central"), l3.setAttribute("font-size", "12"), l3.setAttribute("fill",
|
|
7158
|
+
l3.setAttribute("x", s3.toFixed(1)), l3.setAttribute("y", c3.toFixed(1)), l3.setAttribute("text-anchor", "middle"), l3.setAttribute("dominant-baseline", "central"), l3.setAttribute("font-size", "12"), l3.setAttribute("fill", Hv(l_(e6, T2))), l3.setAttribute("pointer-events", "none"), l3.style.fontFamily = a_, l3.textContent = I_[e6], D2.appendChild(l3);
|
|
7148
7159
|
for (let e7 = 1; e7 < 30; e7++) {
|
|
7149
|
-
let n4 = t3 + e7, r4 = e7 % 5 == 0, i4 = r4 ?
|
|
7150
|
-
l4.setAttribute("x1", a4.toFixed(1)), l4.setAttribute("y1", o4.toFixed(1)), l4.setAttribute("x2", s4.toFixed(1)), l4.setAttribute("y2", c4.toFixed(1))
|
|
7151
|
-
|
|
7152
|
-
|
|
7153
|
-
|
|
7154
|
-
let
|
|
7155
|
-
|
|
7156
|
-
|
|
7160
|
+
let n4 = t3 + e7, r4 = e7 % 5 == 0, i4 = r4 ? j_ - 8 : j_ - 3.5, { x: a4, y: o4 } = Y(n4, j_, w2), { x: s4, y: c4 } = Y(n4, i4, w2), l4 = X("line");
|
|
7161
|
+
l4.setAttribute("x1", a4.toFixed(1)), l4.setAttribute("y1", o4.toFixed(1)), l4.setAttribute("x2", s4.toFixed(1)), l4.setAttribute("y2", c4.toFixed(1));
|
|
7162
|
+
let u4 = r4 ? le2.tickMajor : le2.tickMinor;
|
|
7163
|
+
l4.setAttribute("stroke", u4.stroke), l4.setAttribute("stroke-opacity", String(u4.opacity)), l4.setAttribute("stroke-width", r4 ? "0.8" : "0.5"), l4.setAttribute("pointer-events", "none"), D2.appendChild(l4);
|
|
7164
|
+
}
|
|
7165
|
+
let { x: u3, y: d3 } = Y(t3, j_, w2), { x: f3, y: p3 } = Y(t3 + 30, j_, w2), { x: m3, y: h3 } = Y(t3, M_, w2), { x: g3, y: _3 } = Y(t3 + 30, M_, w2), x3 = X("path");
|
|
7166
|
+
x3.setAttribute("d", ["M ".concat(u3.toFixed(1), " ").concat(d3.toFixed(1)), "A ".concat(j_, " ").concat(j_, " 0 0 0 ").concat(f3.toFixed(1), " ").concat(p3.toFixed(1)), "L ".concat(g3.toFixed(1), " ").concat(_3.toFixed(1)), "A ".concat(M_, " ").concat(M_, " 0 0 1 ").concat(m3.toFixed(1), " ").concat(h3.toFixed(1)), "Z"].join(" ")), x3.setAttribute("fill", "transparent"), x3.setAttribute("class", "hit-region sign-hit"), x3.style.pointerEvents = "all", x3.style.cursor = "pointer";
|
|
7167
|
+
let C3 = "".concat(I_[e6], " ").concat(L_[e6]), te3 = "".concat(Z(U_[e6]), " \xB7 ").concat(Z(W_[e6]));
|
|
7168
|
+
Uv(x3, "".concat(L_[e6], " \u2014 click for sign info")), x3.addEventListener("mouseenter", (e7) => cv(e7.clientX, e7.clientY, C3, te3, "Click for interpretation")), x3.addEventListener("mousemove", (e7) => cv(e7.clientX, e7.clientY, C3, te3, "Click for interpretation")), x3.addEventListener("mouseleave", lv), x3.addEventListener("click", (t4) => {
|
|
7169
|
+
lv(), rv == null || rv("".concat(C3)), xv(t4, e6, v2, y2, b2, S2, ee2);
|
|
7157
7170
|
}), se2.appendChild(x3);
|
|
7158
7171
|
}
|
|
7159
7172
|
let pe2 = X("circle");
|
|
7160
|
-
pe2.setAttribute("cx", "310"), pe2.setAttribute("cy", "310"), pe2.setAttribute("r", String(
|
|
7173
|
+
pe2.setAttribute("cx", "310"), pe2.setAttribute("cy", "310"), pe2.setAttribute("r", String(T_)), pe2.setAttribute("fill", "var(--inner-ring, #f2ede6)"), ue2(pe2, "0.6"), pe2.setAttribute("pointer-events", "none"), D2.appendChild(pe2);
|
|
7161
7174
|
let me2 = X("circle");
|
|
7162
|
-
me2.setAttribute("cx", "310"), me2.setAttribute("cy", "310"), me2.setAttribute("r", String(
|
|
7163
|
-
for (let e6 = 0; e6 < 12; e6++)
|
|
7164
|
-
let he2 = T2 ? "rgba(180,170,160,0.28)" : "rgba(100,90,80,0.22)", ge2 = T2 ? "rgba(180,170,160,0.50)" : "rgba(100,90,80,0.40)";
|
|
7175
|
+
me2.setAttribute("cx", "310"), me2.setAttribute("cy", "310"), me2.setAttribute("r", String(E_)), me2.style.fill = "var(--bg, #faf9f5)", ue2(me2, "0.6"), me2.setAttribute("pointer-events", "none"), D2.appendChild(me2);
|
|
7176
|
+
for (let e6 = 0; e6 < 12; e6++) J_(D2, w2, e6, E_, T_, l_(e6, T2), c_(T2).zodiacFillOpacity);
|
|
7165
7177
|
for (let e6 = 0; e6 < 12; e6++) {
|
|
7166
|
-
let t3 = e6 * 30, { x: n3, y: r3 } = Y(t3,
|
|
7167
|
-
o3.setAttribute("x1", n3.toFixed(1)), o3.setAttribute("y1", r3.toFixed(1)), o3.setAttribute("x2", i3.toFixed(1)), o3.setAttribute("y2", a3.toFixed(1)),
|
|
7178
|
+
let t3 = e6 * 30, { x: n3, y: r3 } = Y(t3, E_, w2), { x: i3, y: a3 } = Y(t3, T_, w2), o3 = X("line");
|
|
7179
|
+
o3.setAttribute("x1", n3.toFixed(1)), o3.setAttribute("y1", r3.toFixed(1)), o3.setAttribute("x2", i3.toFixed(1)), o3.setAttribute("y2", a3.toFixed(1)), ue2(o3, "0.5"), o3.setAttribute("pointer-events", "none"), D2.appendChild(o3);
|
|
7168
7180
|
let { x: s3, y: c3 } = Y(t3 + 15, 444 / 2, w2), l3 = X("text");
|
|
7169
|
-
l3.setAttribute("x", s3.toFixed(1)), l3.setAttribute("y", c3.toFixed(1)), l3.setAttribute("text-anchor", "middle"), l3.setAttribute("dominant-baseline", "central"), l3.setAttribute("font-size", "13"), l3.setAttribute("fill", l_(e6, T2)), l3.setAttribute("pointer-events", "none"), l3.style.fontFamily = a_, l3.textContent =
|
|
7181
|
+
l3.setAttribute("x", s3.toFixed(1)), l3.setAttribute("y", c3.toFixed(1)), l3.setAttribute("text-anchor", "middle"), l3.setAttribute("dominant-baseline", "central"), l3.setAttribute("font-size", "13"), l3.setAttribute("fill", l_(e6, T2)), l3.setAttribute("pointer-events", "none"), l3.style.fontFamily = a_, l3.textContent = I_[e6], D2.appendChild(l3);
|
|
7170
7182
|
for (let e7 = 1; e7 < 30; e7++) {
|
|
7171
|
-
let n4 = t3 + e7, r4 = e7 % 5 == 0, i4 = r4 ?
|
|
7172
|
-
l4.setAttribute("x1", a4.toFixed(1)), l4.setAttribute("y1", o4.toFixed(1)), l4.setAttribute("x2", s4.toFixed(1)), l4.setAttribute("y2", c4.toFixed(1))
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
let
|
|
7178
|
-
|
|
7179
|
-
let
|
|
7180
|
-
|
|
7181
|
-
let
|
|
7182
|
-
|
|
7183
|
+
let n4 = t3 + e7, r4 = e7 % 5 == 0, i4 = r4 ? T_ - 7 : T_ - 3, { x: a4, y: o4 } = Y(n4, T_, w2), { x: s4, y: c4 } = Y(n4, i4, w2), l4 = X("line");
|
|
7184
|
+
l4.setAttribute("x1", a4.toFixed(1)), l4.setAttribute("y1", o4.toFixed(1)), l4.setAttribute("x2", s4.toFixed(1)), l4.setAttribute("y2", c4.toFixed(1));
|
|
7185
|
+
let u3 = r4 ? le2.tickMajor : le2.tickMinor;
|
|
7186
|
+
l4.setAttribute("stroke", u3.stroke), l4.setAttribute("stroke-opacity", String(u3.opacity)), l4.setAttribute("stroke-width", r4 ? "0.8" : "0.5"), l4.setAttribute("pointer-events", "none"), D2.appendChild(l4);
|
|
7187
|
+
}
|
|
7188
|
+
}
|
|
7189
|
+
let he2 = X("g");
|
|
7190
|
+
he2.setAttribute("pointer-events", "none"), he2.setAttribute("opacity", T2 ? "0.18" : "0.10"), he2.setAttribute("transform", "translate(".concat(C_, ", ").concat(w_, ")"));
|
|
7191
|
+
let ge2 = X("circle");
|
|
7192
|
+
ge2.setAttribute("cx", "0"), ge2.setAttribute("cy", "0"), ge2.setAttribute("r", "46"), ge2.setAttribute("fill", "none"), ge2.setAttribute("stroke", "var(--gold, #c8a84b)"), ge2.setAttribute("stroke-width", "2"), he2.appendChild(ge2);
|
|
7193
|
+
let _e2 = X("circle");
|
|
7194
|
+
_e2.setAttribute("cx", "0"), _e2.setAttribute("cy", "0"), _e2.setAttribute("r", "36"), _e2.setAttribute("fill", "none"), _e2.setAttribute("stroke", "var(--gold, #c8a84b)"), _e2.setAttribute("stroke-width", "0.7"), he2.appendChild(_e2);
|
|
7195
|
+
let ve2 = X("text");
|
|
7196
|
+
ve2.setAttribute("x", "0"), ve2.setAttribute("y", "1"), ve2.setAttribute("text-anchor", "middle"), ve2.setAttribute("dominant-baseline", "central"), ve2.setAttribute("font-size", "18"), ve2.setAttribute("font-weight", "600"), ve2.setAttribute("letter-spacing", "3"), ve2.setAttribute("fill", "var(--gold, #c8a84b)"), ve2.style.fontFamily = "'Geist', system-ui, sans-serif", ve2.textContent = "OE", he2.appendChild(ve2);
|
|
7183
7197
|
for (let e6 of [0, 90, 180, 270]) {
|
|
7184
7198
|
let t3 = e6 * Math.PI / 180, n3 = Math.cos(t3) * 38, r3 = Math.sin(t3) * 38, i3 = Math.cos(t3) * 46, a3 = Math.sin(t3) * 46, o3 = X("line");
|
|
7185
|
-
o3.setAttribute("x1", n3.toFixed(1)), o3.setAttribute("y1", r3.toFixed(1)), o3.setAttribute("x2", i3.toFixed(1)), o3.setAttribute("y2", a3.toFixed(1)), o3.setAttribute("stroke", "var(--gold, #c8a84b)"), o3.setAttribute("stroke-width", "1.5"),
|
|
7186
|
-
}
|
|
7187
|
-
re2.appendChild(
|
|
7188
|
-
let
|
|
7189
|
-
|
|
7190
|
-
let
|
|
7191
|
-
if (
|
|
7192
|
-
let t3 = C2[e6], n3 = C2[(e6 + 1) % C2.length], r3 = [1, 4, 7, 10].includes(t3.number),
|
|
7193
|
-
|
|
7194
|
-
let
|
|
7195
|
-
|
|
7196
|
-
let
|
|
7197
|
-
|
|
7198
|
-
let
|
|
7199
|
-
|
|
7200
|
-
|
|
7201
|
-
|
|
7202
|
-
|
|
7203
|
-
|
|
7204
|
-
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7199
|
+
o3.setAttribute("x1", n3.toFixed(1)), o3.setAttribute("y1", r3.toFixed(1)), o3.setAttribute("x2", i3.toFixed(1)), o3.setAttribute("y2", a3.toFixed(1)), o3.setAttribute("stroke", "var(--gold, #c8a84b)"), o3.setAttribute("stroke-width", "1.5"), he2.appendChild(o3);
|
|
7200
|
+
}
|
|
7201
|
+
re2.appendChild(he2);
|
|
7202
|
+
let ye2 = X("circle");
|
|
7203
|
+
ye2.setAttribute("cx", "310"), ye2.setAttribute("cy", "310"), ye2.setAttribute("r", String(E_)), ye2.style.fill = "var(--surface, #f2f1ea)", ye2.setAttribute("pointer-events", "none"), ie2.appendChild(ye2);
|
|
7204
|
+
let be2 = X("circle");
|
|
7205
|
+
if (be2.setAttribute("cx", "310"), be2.setAttribute("cy", "310"), be2.setAttribute("r", String(k_)), be2.style.fill = le2.center, ue2(be2, "0.8"), be2.setAttribute("pointer-events", "none"), ie2.appendChild(be2), C2.length > 0) for (let e6 = 0; e6 < C2.length; e6++) {
|
|
7206
|
+
let t3 = C2[e6], n3 = C2[(e6 + 1) % C2.length], r3 = [1, 4, 7, 10].includes(t3.number), i3 = X("path");
|
|
7207
|
+
i3.setAttribute("d", q_(t3.cusp_lon, n3.cusp_lon, k_, E_, w2)), i3.setAttribute("fill", l_(Math.floor((t3.cusp_lon % 360 + 360) % 360 / 30), T2)), i3.setAttribute("fill-opacity", String(c_(T2).houseFillOpacity)), i3.setAttribute("pointer-events", "none"), ie2.appendChild(i3);
|
|
7208
|
+
let { x: a3, y: o3 } = Y(t3.cusp_lon, k_, w2), { x: s3, y: c3 } = Y(t3.cusp_lon, E_, w2), l3 = X("line");
|
|
7209
|
+
l3.setAttribute("x1", a3.toFixed(1)), l3.setAttribute("y1", o3.toFixed(1)), l3.setAttribute("x2", s3.toFixed(1)), l3.setAttribute("y2", c3.toFixed(1));
|
|
7210
|
+
let u3 = r3 ? le2.cuspAngular : le2.cuspIntermediate;
|
|
7211
|
+
l3.setAttribute("stroke", u3.stroke), l3.setAttribute("stroke-opacity", String(u3.opacity)), l3.setAttribute("stroke-width", r3 ? "1.8" : "0.9"), r3 || l3.setAttribute("stroke-dasharray", le2.cuspDash(0.9)), l3.setAttribute("pointer-events", "none"), ie2.appendChild(l3);
|
|
7212
|
+
let d3 = (n3.cusp_lon - t3.cusp_lon + 360) % 360, { x: f3, y: p3 } = Y(t3.cusp_lon + d3 / 2, O_, w2), m3 = X("text");
|
|
7213
|
+
m3.setAttribute("x", f3.toFixed(1)), m3.setAttribute("y", p3.toFixed(1)), m3.setAttribute("text-anchor", "middle"), m3.setAttribute("dominant-baseline", "central"), m3.setAttribute("font-size", "12"), m3.setAttribute("fill", c_(T2).foreground), m3.setAttribute("opacity", "0.9"), m3.setAttribute("font-weight", r3 ? "700" : "600"), m3.setAttribute("pointer-events", "none"), m3.textContent = String(t3.number), ie2.appendChild(m3);
|
|
7214
|
+
let h3 = X("circle");
|
|
7215
|
+
h3.setAttribute("cx", f3.toFixed(1)), h3.setAttribute("cy", p3.toFixed(1)), h3.setAttribute("r", "14"), h3.setAttribute("fill", "transparent"), h3.setAttribute("class", "hit-region house-hit"), h3.style.pointerEvents = "all", h3.style.cursor = "pointer";
|
|
7216
|
+
let g3 = "House ".concat(t3.number), _3 = "".concat(vv[t3.number] ? vv[t3.number] + " \xB7 " : "").concat(X_(t3.cusp_lon));
|
|
7217
|
+
Uv(h3, "".concat(g3, " \u2014 click for interpretation")), h3.addEventListener("mouseenter", (e7) => cv(e7.clientX, e7.clientY, g3, _3, "Click for interpretation")), h3.addEventListener("mousemove", (e7) => cv(e7.clientX, e7.clientY, g3, _3, "Click for interpretation")), h3.addEventListener("mouseleave", lv), h3.addEventListener("click", (e7) => {
|
|
7218
|
+
lv(), rv == null || rv("".concat(g3, " \xB7 ").concat(X_(t3.cusp_lon))), bv(e7, t3, n3, v2, y2, b2, S2, ee2);
|
|
7219
|
+
}), se2.appendChild(h3);
|
|
7220
|
+
}
|
|
7221
|
+
let O2 = C2.find((e6) => e6.number === 1), xe2 = C2.find((e6) => e6.number === 4), k2 = C2.find((e6) => e6.number === 7), Se2 = C2.find((e6) => e6.number === 10), Ce2 = [{ lon: (m2 = O2 == null ? void 0 : O2.cusp_lon) == null ? w2 : m2, label: "ASC" }, { lon: (h2 = k2 == null ? void 0 : k2.cusp_lon) == null ? (w2 + 180) % 360 : h2, label: "DSC" }, { lon: (g2 = Se2 == null ? void 0 : Se2.cusp_lon) == null ? (w2 + 270) % 360 : g2, label: "MC" }, { lon: (_2 = xe2 == null ? void 0 : xe2.cusp_lon) == null ? (w2 + 90) % 360 : _2, label: "IC" }];
|
|
7222
|
+
for (let e6 of Ce2) {
|
|
7223
|
+
var we2;
|
|
7224
|
+
let t3 = gv[e6.label], { x: n3, y: r3 } = Y(e6.lon, j_ - 8, w2), i3 = X("text");
|
|
7225
|
+
i3.setAttribute("x", n3.toFixed(1)), i3.setAttribute("y", r3.toFixed(1)), i3.setAttribute("text-anchor", "middle"), i3.setAttribute("dominant-baseline", "central"), i3.setAttribute("font-size", "12"), i3.setAttribute("font-weight", "700"), i3.setAttribute("fill", c_(T2).foreground), i3.setAttribute("pointer-events", "none"), i3.style.transition = "opacity 150ms ease", i3.textContent = e6.label, ie2.appendChild(i3);
|
|
7208
7226
|
let a3 = X("circle");
|
|
7209
|
-
a3.setAttribute("cx", n3.toFixed(1)), a3.setAttribute("cy", r3.toFixed(1)), a3.setAttribute("r", "14"), a3.setAttribute("fill", "transparent"), a3.setAttribute("class", "hit-region angle-hit"), a3.style.pointerEvents = "all", a3.style.cursor = "pointer",
|
|
7210
|
-
let o3 =
|
|
7227
|
+
a3.setAttribute("cx", n3.toFixed(1)), a3.setAttribute("cy", r3.toFixed(1)), a3.setAttribute("r", "14"), a3.setAttribute("fill", "transparent"), a3.setAttribute("class", "hit-region angle-hit"), a3.style.pointerEvents = "all", a3.style.cursor = "pointer", Uv(a3, "".concat((we2 = t3 == null ? void 0 : t3.title) == null ? e6.label : we2, " \u2014 click for interpretation"));
|
|
7228
|
+
let o3 = X_(e6.lon), s3 = "".concat(t3 != null && t3.keyword ? t3.keyword + " \xB7 " : "").concat(o3);
|
|
7211
7229
|
a3.addEventListener("mouseenter", (n4) => {
|
|
7212
7230
|
var r4;
|
|
7213
|
-
|
|
7231
|
+
cv(n4.clientX, n4.clientY, "".concat(e6.label, " \u2014 ").concat((r4 = t3 == null ? void 0 : t3.title) == null ? "" : r4), s3, "Click for interpretation"), i3.style.opacity = "0.6";
|
|
7214
7232
|
}), a3.addEventListener("mouseleave", () => {
|
|
7215
|
-
|
|
7233
|
+
lv(), i3.style.opacity = "";
|
|
7216
7234
|
}), a3.addEventListener("click", (n4) => {
|
|
7217
7235
|
var r4;
|
|
7218
|
-
|
|
7236
|
+
lv(), kv(), rv == null || rv("".concat(e6.label, " \u2014 ").concat((r4 = t3 == null ? void 0 : t3.title) == null ? "" : r4, " \xB7 ").concat(o3)), _v(n4, e6.label, e6.lon, v2, y2);
|
|
7219
7237
|
}), se2.appendChild(a3);
|
|
7220
7238
|
}
|
|
7221
7239
|
for (let e6 of te2) {
|
|
7222
|
-
var De2, Oe2, ke2, Ae2, je2, Me2, Ne2, Pe2, Fe2, Ie2
|
|
7240
|
+
var Te2, Ee2, De2, Oe2, ke2, Ae2, je2, Me2, Ne2, Pe2, Fe2, Ie2;
|
|
7223
7241
|
let t3 = S2.find((t4) => t4.name.toLowerCase() === e6.planet1.toLowerCase()), n3 = ee2.find((t4) => t4.name.toLowerCase() === e6.planet2.toLowerCase());
|
|
7224
7242
|
if (!t3 || !n3) continue;
|
|
7225
|
-
let i3 =
|
|
7243
|
+
let i3 = z_((Te2 = (Ee2 = e6.type) == null ? void 0 : Ee2.toLowerCase()) == null ? "" : Te2), a3 = B_(e6.orb), { x: o3, y: s3 } = Y(t3.longitude, A_, w2), { x: c3, y: l3 } = Y(n3.longitude, M_, w2), u3 = X("line");
|
|
7226
7244
|
u3.setAttribute("x1", o3.toFixed(1)), u3.setAttribute("y1", s3.toFixed(1)), u3.setAttribute("x2", c3.toFixed(1)), u3.setAttribute("y2", l3.toFixed(1)), a3.dash && u3.setAttribute("stroke-dasharray", a3.dash), u3.setAttribute("stroke-linecap", "round"), u3.setAttribute("pointer-events", "none"), u3.style.stroke = i3, u3.style.strokeOpacity = a3.opacity, u3.style.strokeWidth = a3.width, ae2.appendChild(u3);
|
|
7227
7245
|
let d3 = o3 + (c3 - o3) * 0.35, f3 = s3 + (l3 - s3) * 0.35, p3 = Math.hypot(c3 - o3, l3 - s3), m3 = [];
|
|
7228
7246
|
if (p3 > 40) {
|
|
7229
|
-
var
|
|
7230
|
-
let t4 = (
|
|
7247
|
+
var Le2, A2, Re2;
|
|
7248
|
+
let t4 = (Le2 = R_[(A2 = (Re2 = e6.type) == null ? void 0 : Re2.toLowerCase()) == null ? "" : A2]) == null ? "" : Le2;
|
|
7231
7249
|
if (t4) {
|
|
7232
7250
|
let e7 = X("circle");
|
|
7233
|
-
e7.setAttribute("cx", d3.toFixed(1)), e7.setAttribute("cy", f3.toFixed(1)), e7.setAttribute("r", "9"), e7.setAttribute("fill",
|
|
7251
|
+
e7.setAttribute("cx", d3.toFixed(1)), e7.setAttribute("cy", f3.toFixed(1)), e7.setAttribute("r", "9"), e7.setAttribute("fill", le2.center), e7.setAttribute("stroke", i3), e7.setAttribute("stroke-opacity", "0.9"), e7.setAttribute("stroke-width", "1"), e7.setAttribute("pointer-events", "none"), e7.classList.add("aspect-symbol-group"), ae2.appendChild(e7), m3.push(e7);
|
|
7234
7252
|
let n4 = X("text");
|
|
7235
|
-
n4.setAttribute("x", d3.toFixed(1)), n4.setAttribute("y", f3.toFixed(1)), n4.setAttribute("text-anchor", "middle"), n4.setAttribute("dominant-baseline", "central"), n4.setAttribute("font-size", "
|
|
7253
|
+
n4.setAttribute("x", d3.toFixed(1)), n4.setAttribute("y", f3.toFixed(1)), n4.setAttribute("text-anchor", "middle"), n4.setAttribute("dominant-baseline", "central"), n4.setAttribute("font-size", "11"), n4.setAttribute("font-weight", "700"), n4.setAttribute("fill", i3), n4.setAttribute("pointer-events", "none"), n4.classList.add("aspect-symbol-group"), n4.textContent = t4, ae2.appendChild(n4), m3.push(n4);
|
|
7236
7254
|
}
|
|
7237
7255
|
}
|
|
7238
7256
|
let h3 = X("line");
|
|
7239
|
-
h3.setAttribute("x1", o3.toFixed(1)), h3.setAttribute("y1", s3.toFixed(1)), h3.setAttribute("x2", c3.toFixed(1)), h3.setAttribute("y2", l3.toFixed(1)), h3.setAttribute("stroke", "transparent"), h3.setAttribute("stroke-width", "20"), h3.setAttribute("fill", "none"), h3.setAttribute("class", "hit-region aspect-hit"), h3.style.pointerEvents = "all",
|
|
7240
|
-
let g3 = (
|
|
7257
|
+
h3.setAttribute("x1", o3.toFixed(1)), h3.setAttribute("y1", s3.toFixed(1)), h3.setAttribute("x2", c3.toFixed(1)), h3.setAttribute("y2", l3.toFixed(1)), h3.setAttribute("stroke", "transparent"), h3.setAttribute("stroke-width", "20"), h3.setAttribute("fill", "none"), h3.setAttribute("class", "hit-region aspect-hit"), h3.style.pointerEvents = "all", Uv(h3, "Aspect: ".concat(e6.type || "Aspect", " between inner ").concat(e6.planet1, " and outer ").concat(e6.planet2));
|
|
7258
|
+
let g3 = (De2 = F_[t3.name.toLowerCase()]) == null ? t3.name : De2, _3 = (Oe2 = F_[n3.name.toLowerCase()]) == null ? n3.name : Oe2, x3 = (ke2 = (Ae2 = R_[(je2 = (Me2 = e6.type) == null ? void 0 : Me2.toLowerCase()) == null ? "" : je2]) == null ? e6.type : Ae2) == null ? "" : ke2, C3 = v2 === "transit" ? e6.applying ? " (applying)" : " (separating)" : e6.orb <= 1 ? " (exact)" : e6.orb <= 3 ? " (tight)" : " (wide)", te3 = (Ne2 = dv[(Pe2 = (Fe2 = e6.type) == null ? void 0 : Fe2.toLowerCase()) == null ? "" : Pe2]) == null ? "" : Ne2, T3 = "".concat(te3 ? te3 + " \xB7 " : "").concat(g3, " ").concat(x3, " ").concat(_3, " \xB7 ").concat(e6.orb.toFixed(1), "\xB0 orb").concat(C3);
|
|
7241
7259
|
h3.addEventListener("mouseenter", (t4) => {
|
|
7242
7260
|
var n4;
|
|
7243
|
-
return
|
|
7261
|
+
return cv(t4.clientX, t4.clientY, Z((n4 = e6.type) == null ? "Cross-Aspect" : n4), T3, "Click for interpretation");
|
|
7244
7262
|
}), h3.addEventListener("mousemove", (t4) => {
|
|
7245
7263
|
var n4;
|
|
7246
|
-
return
|
|
7247
|
-
}), h3.addEventListener("mouseleave",
|
|
7264
|
+
return cv(t4.clientX, t4.clientY, Z((n4 = e6.type) == null ? "Cross-Aspect" : n4), T3, "Click for interpretation");
|
|
7265
|
+
}), h3.addEventListener("mouseleave", lv), h3.addEventListener("click", (t4) => {
|
|
7248
7266
|
var n4, a4, o4, s4, c4, l4;
|
|
7249
|
-
|
|
7250
|
-
let u4 = (n4 =
|
|
7251
|
-
|
|
7252
|
-
}),
|
|
7267
|
+
lv(), Dv(hv(e6), i3), Tv(t4, e6, v2, y2, b2);
|
|
7268
|
+
let u4 = (n4 = F_[e6.planet1.toLowerCase()]) == null ? e6.planet1 : n4, d4 = (a4 = F_[e6.planet2.toLowerCase()]) == null ? e6.planet2 : a4, f4 = (o4 = (s4 = R_[(c4 = (l4 = e6.type) == null ? void 0 : l4.toLowerCase()) == null ? "" : c4]) == null ? e6.type : s4) == null ? "" : o4, p4 = y2 ? "".concat(y2, "'s ").concat(u4) : "".concat(u4), m4 = v2 === "transit" ? "Tr. ".concat(d4) : b2 ? "".concat(b2, "'s ").concat(d4) : d4;
|
|
7269
|
+
rv == null || rv("".concat(p4, " ").concat(f4, " ").concat(m4, " \xB7 ").concat(e6.orb.toFixed(1), "\xB0")), r2(e6);
|
|
7270
|
+
}), mv.set(hv(e6), { vis: u3, color: i3, aspectType: ((Ie2 = e6.type) == null ? void 0 : Ie2.toLowerCase()) || "unknown", orb: e6.orb, symbolEls: m3 }), se2.appendChild(h3);
|
|
7253
7271
|
}
|
|
7254
|
-
let
|
|
7255
|
-
|
|
7272
|
+
let ze2 = __(ee2.map((e6) => ({ name: e6.name.toLowerCase(), longitude: e6.longitude })), 7), Be2 = X("g");
|
|
7273
|
+
Be2.setAttribute("class", "outer-planet-group"), oe2.appendChild(Be2);
|
|
7256
7274
|
for (let e6 of ee2) {
|
|
7257
|
-
var
|
|
7258
|
-
let t3 = (
|
|
7259
|
-
s3.setAttribute("class", "planet-glyph-group"), s3.dataset.planet = r3, s3.dataset.wheel = "outer", s3.style.transition = "opacity 200ms ease",
|
|
7275
|
+
var Ve2, He2, Ue2;
|
|
7276
|
+
let t3 = (Ve2 = F_[e6.name.toLowerCase()]) == null ? "\u2605" : Ve2, r3 = e6.name.toLowerCase(), i3 = (He2 = ze2.get(r3)) == null ? e6.longitude : He2, { x: a3, y: o3 } = Y(i3, N_, w2), s3 = X("g");
|
|
7277
|
+
s3.setAttribute("class", "planet-glyph-group"), s3.dataset.planet = r3, s3.dataset.wheel = "outer", s3.style.transition = "opacity 200ms ease", Be2.appendChild(s3);
|
|
7260
7278
|
let { x: c3, y: l3 } = Y(e6.longitude, 251, w2), u3 = X("circle");
|
|
7261
|
-
if (u3.setAttribute("cx", c3.toFixed(1)), u3.setAttribute("cy", l3.toFixed(1)), u3.setAttribute("r", "2.5"), u3.setAttribute("fill", "var(--outer-tick, #c8860e)"), u3.setAttribute("opacity", "0.75"), u3.setAttribute("pointer-events", "none"), s3.appendChild(u3),
|
|
7279
|
+
if (u3.setAttribute("cx", c3.toFixed(1)), u3.setAttribute("cy", l3.toFixed(1)), u3.setAttribute("r", "2.5"), u3.setAttribute("fill", "var(--outer-tick, #c8860e)"), u3.setAttribute("opacity", "0.75"), u3.setAttribute("pointer-events", "none"), s3.appendChild(u3), x_(e6.longitude, i3) > 2) {
|
|
7262
7280
|
let e7 = X("line");
|
|
7263
7281
|
e7.setAttribute("x1", c3.toFixed(1)), e7.setAttribute("y1", l3.toFixed(1)), e7.setAttribute("x2", a3.toFixed(1)), e7.setAttribute("y2", o3.toFixed(1)), e7.setAttribute("stroke", "var(--outer-tick, #c8860e)"), e7.setAttribute("stroke-width", "0.7"), e7.setAttribute("stroke-opacity", "0.35"), e7.setAttribute("stroke-linecap", "round"), e7.setAttribute("pointer-events", "none"), s3.appendChild(e7);
|
|
7264
7282
|
}
|
|
7265
7283
|
let d3 = X("text");
|
|
7266
7284
|
d3.setAttribute("x", a3.toFixed(1)), d3.setAttribute("y", o3.toFixed(1)), d3.setAttribute("text-anchor", "middle"), d3.setAttribute("dominant-baseline", "central"), d3.setAttribute("font-size", "18"), d3.setAttribute("font-weight", "600"), d3.setAttribute("pointer-events", "none"), d3.style.fill = c_(T2).transit, d3.style.fontFamily = a_, d3.textContent = t3, s3.appendChild(d3);
|
|
7267
|
-
let f3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), { x: p3, y: m3 } = Y(i3,
|
|
7285
|
+
let f3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), { x: p3, y: m3 } = Y(i3, N_ - 14, w2), h3 = X("text");
|
|
7268
7286
|
if (h3.setAttribute("x", p3.toFixed(1)), h3.setAttribute("y", m3.toFixed(1)), h3.setAttribute("text-anchor", "middle"), h3.setAttribute("dominant-baseline", "central"), h3.setAttribute("font-size", "8.5"), h3.setAttribute("fill", "#b08030"), h3.setAttribute("pointer-events", "none"), h3.textContent = "".concat(f3, "\xB0"), s3.appendChild(h3), e6.retrograde) {
|
|
7269
7287
|
let { x: e7, y: t4 } = Y(i3, 277, w2), n3 = X("text");
|
|
7270
7288
|
n3.setAttribute("x", e7.toFixed(1)), n3.setAttribute("y", t4.toFixed(1)), n3.setAttribute("text-anchor", "middle"), n3.setAttribute("dominant-baseline", "central"), n3.setAttribute("font-size", "8"), n3.setAttribute("fill", "#e05252"), n3.setAttribute("pointer-events", "none"), n3.textContent = "\u211E", s3.appendChild(n3);
|
|
7271
7289
|
}
|
|
7272
|
-
let g3 =
|
|
7290
|
+
let g3 = H_(e6.name, e6.longitude);
|
|
7273
7291
|
if (g3) {
|
|
7274
7292
|
let { x: e7, y: t4 } = Y(i3, 276, w2), n3 = X("circle");
|
|
7275
7293
|
n3.setAttribute("cx", e7.toFixed(1)), n3.setAttribute("cy", t4.toFixed(1)), n3.setAttribute("r", "2.5"), n3.setAttribute("fill", g3.positive ? "oklch(72% 0.12 80)" : "oklch(55% 0.18 20 / 0.6)"), n3.setAttribute("pointer-events", "none"), s3.appendChild(n3);
|
|
7276
7294
|
}
|
|
7277
7295
|
let _3 = X("circle");
|
|
7278
|
-
_3.setAttribute("cx", a3.toFixed(1)), _3.setAttribute("cy", o3.toFixed(1)), _3.setAttribute("r", String(
|
|
7279
|
-
let x3 = "".concat(v2 === "transit" ? "Tr. " : b2 ? "".concat(b2, "'s ") : "").concat(t3, " ").concat(Z(e6.name)), S3 = g3 ? " \xB7 ".concat(g3.label) : "", ee3 = (
|
|
7280
|
-
_3.addEventListener("mouseenter", (e7) =>
|
|
7296
|
+
_3.setAttribute("cx", a3.toFixed(1)), _3.setAttribute("cy", o3.toFixed(1)), _3.setAttribute("r", String(P_)), _3.setAttribute("fill", "transparent"), _3.setAttribute("class", "hit-region planet-hit"), _3.dataset.planet = r3, _3.dataset.wheel = "outer", _3.style.pointerEvents = "all", Uv(_3, "Outer Planet: ".concat(e6.name));
|
|
7297
|
+
let x3 = "".concat(v2 === "transit" ? "Tr. " : b2 ? "".concat(b2, "'s ") : "").concat(t3, " ").concat(Z(e6.name)), S3 = g3 ? " \xB7 ".concat(g3.label) : "", ee3 = (Ue2 = uv[e6.name.toLowerCase()]) == null ? "" : Ue2, C3 = "".concat(ee3 ? ee3 + " \xB7 " : "").concat(X_(e6.longitude)).concat(e6.house ? " \xB7 H".concat(e6.house) : "").concat(e6.retrograde ? " \u211E" : "").concat(S3);
|
|
7298
|
+
_3.addEventListener("mouseenter", (e7) => cv(e7.clientX, e7.clientY, x3, C3, "Click to explore")), _3.addEventListener("mousemove", (e7) => cv(e7.clientX, e7.clientY, x3, C3, "Click to explore")), _3.addEventListener("mouseleave", lv), _3.addEventListener("click", (t4) => {
|
|
7281
7299
|
var r4, i4;
|
|
7282
|
-
|
|
7283
|
-
let a4 = (r4 =
|
|
7284
|
-
|
|
7300
|
+
lv(), Ev(e6.name, "outer"), wv(t4, e6, "outer", te2, v2, y2, b2);
|
|
7301
|
+
let a4 = (r4 = F_[e6.name.toLowerCase()]) == null ? "\u2605" : r4, o4 = Math.floor((e6.longitude % 360 + 360) % 360 / 30), s4 = v2 === "transit" ? "Tr. " : b2 ? "".concat(b2, "'s ") : "";
|
|
7302
|
+
rv == null || rv("".concat(s4).concat(a4, " ").concat(Z(e6.name), " \xB7 ").concat((i4 = L_[o4]) == null ? "" : i4)), n2(e6, "outer", te2);
|
|
7285
7303
|
}), s3.appendChild(_3);
|
|
7286
7304
|
}
|
|
7287
|
-
let
|
|
7288
|
-
|
|
7305
|
+
let We2 = __(S2.map((e6) => ({ name: e6.name.toLowerCase(), longitude: e6.longitude })), 8), Ge2 = X("g");
|
|
7306
|
+
Ge2.setAttribute("class", "inner-planet-group"), oe2.appendChild(Ge2);
|
|
7289
7307
|
for (let e6 of S2) {
|
|
7290
|
-
var
|
|
7291
|
-
let t3 = (
|
|
7292
|
-
s3.setAttribute("class", "planet-glyph-group"), s3.dataset.planet = r3, s3.dataset.wheel = "inner", s3.style.transition = "opacity 200ms ease",
|
|
7293
|
-
let { x: c3, y: l3 } = Y(e6.longitude,
|
|
7294
|
-
if (u3.setAttribute("cx", c3.toFixed(1)), u3.setAttribute("cy", l3.toFixed(1)), u3.setAttribute("r", "2.5"), u3.setAttribute("fill", "var(--inner-tick, #7060b8)"), u3.setAttribute("opacity", "0.65"), u3.setAttribute("pointer-events", "none"), s3.appendChild(u3),
|
|
7308
|
+
var Ke2, qe2, Je2;
|
|
7309
|
+
let t3 = (Ke2 = F_[e6.name.toLowerCase()]) == null ? "\u2605" : Ke2, r3 = e6.name.toLowerCase(), i3 = (qe2 = We2.get(r3)) == null ? e6.longitude : qe2, { x: a3, y: o3 } = Y(i3, D_, w2), s3 = X("g");
|
|
7310
|
+
s3.setAttribute("class", "planet-glyph-group"), s3.dataset.planet = r3, s3.dataset.wheel = "inner", s3.style.transition = "opacity 200ms ease", Ge2.appendChild(s3);
|
|
7311
|
+
let { x: c3, y: l3 } = Y(e6.longitude, E_ - 5, w2), u3 = X("circle");
|
|
7312
|
+
if (u3.setAttribute("cx", c3.toFixed(1)), u3.setAttribute("cy", l3.toFixed(1)), u3.setAttribute("r", "2.5"), u3.setAttribute("fill", "var(--inner-tick, #7060b8)"), u3.setAttribute("opacity", "0.65"), u3.setAttribute("pointer-events", "none"), s3.appendChild(u3), x_(e6.longitude, i3) > 2) {
|
|
7295
7313
|
let e7 = X("line");
|
|
7296
7314
|
e7.setAttribute("x1", c3.toFixed(1)), e7.setAttribute("y1", l3.toFixed(1)), e7.setAttribute("x2", a3.toFixed(1)), e7.setAttribute("y2", o3.toFixed(1)), e7.setAttribute("stroke", "var(--inner-tick, #7060b8)"), e7.setAttribute("stroke-width", "0.7"), e7.setAttribute("stroke-opacity", "0.35"), e7.setAttribute("stroke-linecap", "round"), e7.setAttribute("pointer-events", "none"), s3.appendChild(e7);
|
|
7297
7315
|
}
|
|
7298
7316
|
let d3 = X("text");
|
|
7299
|
-
d3.setAttribute("x", a3.toFixed(1)), d3.setAttribute("y", o3.toFixed(1)), d3.setAttribute("text-anchor", "middle"), d3.setAttribute("dominant-baseline", "central"), d3.setAttribute("font-size", "
|
|
7300
|
-
let f3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), { x: p3, y: m3 } = Y(i3,
|
|
7301
|
-
if (h3.setAttribute("x", p3.toFixed(1)), h3.setAttribute("y", m3.toFixed(1)), h3.setAttribute("text-anchor", "middle"), h3.setAttribute("dominant-baseline", "central"), h3.setAttribute("font-size", "8.5"), h3.setAttribute("fill", T2
|
|
7317
|
+
d3.setAttribute("x", a3.toFixed(1)), d3.setAttribute("y", o3.toFixed(1)), d3.setAttribute("text-anchor", "middle"), d3.setAttribute("dominant-baseline", "central"), d3.setAttribute("font-size", "20"), d3.setAttribute("font-weight", "600"), d3.setAttribute("pointer-events", "none"), d3.style.fill = c_(T2).foreground, d3.style.fontFamily = a_, d3.textContent = t3, s3.appendChild(d3);
|
|
7318
|
+
let f3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), { x: p3, y: m3 } = Y(i3, D_ - 17, w2), h3 = X("text");
|
|
7319
|
+
if (h3.setAttribute("x", p3.toFixed(1)), h3.setAttribute("y", m3.toFixed(1)), h3.setAttribute("text-anchor", "middle"), h3.setAttribute("dominant-baseline", "central"), h3.setAttribute("font-size", "8.5"), h3.setAttribute("fill", c_(T2).foreground), h3.setAttribute("opacity", "0.8"), h3.setAttribute("pointer-events", "none"), h3.textContent = "".concat(f3, "\xB0"), s3.appendChild(h3), e6.retrograde) {
|
|
7302
7320
|
let { x: e7, y: t4 } = Y(i3, 204, w2), n3 = X("text");
|
|
7303
7321
|
n3.setAttribute("x", e7.toFixed(1)), n3.setAttribute("y", t4.toFixed(1)), n3.setAttribute("text-anchor", "middle"), n3.setAttribute("dominant-baseline", "central"), n3.setAttribute("font-size", "8"), n3.setAttribute("fill", "#e05252"), n3.setAttribute("pointer-events", "none"), n3.textContent = "\u211E", s3.appendChild(n3);
|
|
7304
7322
|
}
|
|
7305
|
-
let g3 =
|
|
7323
|
+
let g3 = H_(e6.name, e6.longitude);
|
|
7306
7324
|
if (g3) {
|
|
7307
7325
|
let { x: e7, y: t4 } = Y(i3, 202, w2), n3 = X("circle");
|
|
7308
7326
|
n3.setAttribute("cx", e7.toFixed(1)), n3.setAttribute("cy", t4.toFixed(1)), n3.setAttribute("r", "2.5"), n3.setAttribute("fill", g3.positive ? "oklch(72% 0.12 80)" : "oklch(55% 0.18 20 / 0.6)"), n3.setAttribute("pointer-events", "none"), s3.appendChild(n3);
|
|
7309
7327
|
}
|
|
7310
7328
|
let _3 = X("circle");
|
|
7311
|
-
_3.setAttribute("cx", a3.toFixed(1)), _3.setAttribute("cy", o3.toFixed(1)), _3.setAttribute("r", String(
|
|
7312
|
-
let x3 = y2 ? "".concat(y2, "'s ").concat(t3, " ").concat(Z(e6.name)) : "".concat(t3, " ").concat(Z(e6.name), " (natal)"), S3 = g3 ? " \xB7 ".concat(g3.label) : "", ee3 = (
|
|
7313
|
-
_3.addEventListener("mouseenter", (e7) =>
|
|
7329
|
+
_3.setAttribute("cx", a3.toFixed(1)), _3.setAttribute("cy", o3.toFixed(1)), _3.setAttribute("r", String(P_)), _3.setAttribute("fill", "transparent"), _3.setAttribute("class", "hit-region planet-hit"), _3.dataset.planet = r3, _3.dataset.wheel = "inner", _3.style.pointerEvents = "all", Uv(_3, "Inner Planet: ".concat(e6.name));
|
|
7330
|
+
let x3 = y2 ? "".concat(y2, "'s ").concat(t3, " ").concat(Z(e6.name)) : "".concat(t3, " ").concat(Z(e6.name), " (natal)"), S3 = g3 ? " \xB7 ".concat(g3.label) : "", ee3 = (Je2 = uv[e6.name.toLowerCase()]) == null ? "" : Je2, C3 = "".concat(ee3 ? ee3 + " \xB7 " : "").concat(X_(e6.longitude)).concat(e6.house ? " \xB7 H".concat(e6.house) : "").concat(e6.retrograde ? " \u211E" : "").concat(S3);
|
|
7331
|
+
_3.addEventListener("mouseenter", (e7) => cv(e7.clientX, e7.clientY, x3, C3, "Click to explore")), _3.addEventListener("mousemove", (e7) => cv(e7.clientX, e7.clientY, x3, C3, "Click to explore")), _3.addEventListener("mouseleave", lv), _3.addEventListener("click", (t4) => {
|
|
7314
7332
|
var r4, i4, a4;
|
|
7315
|
-
|
|
7316
|
-
let o4 = (r4 =
|
|
7317
|
-
|
|
7333
|
+
lv(), Ev(e6.name, "inner"), wv(t4, e6, "inner", te2, v2, y2, b2);
|
|
7334
|
+
let o4 = (r4 = F_[e6.name.toLowerCase()]) == null ? "\u2605" : r4, s4 = Math.floor((e6.longitude % 360 + 360) % 360 / 30), c4 = y2 ? "".concat(y2, "'s ").concat(o4, " ").concat(Z(e6.name), " \xB7 ").concat((i4 = L_[s4]) == null ? "" : i4) : "".concat(o4, " ").concat(Z(e6.name), " \xB7 ").concat((a4 = L_[s4]) == null ? "" : a4, " (natal)");
|
|
7335
|
+
rv == null || rv(c4), n2(e6, "inner", te2);
|
|
7318
7336
|
}), s3.appendChild(_3);
|
|
7319
7337
|
}
|
|
7320
|
-
let
|
|
7321
|
-
|
|
7322
|
-
let
|
|
7338
|
+
let Ye2 = "__biWheelClickOutside__", Xe2 = document[Ye2];
|
|
7339
|
+
Xe2 && document.removeEventListener("click", Xe2, false);
|
|
7340
|
+
let Ze2 = (e6) => {
|
|
7323
7341
|
let t3 = e6.target;
|
|
7324
|
-
!t3.closest(".hit-region") && !t3.closest("#bi-info-drawer") && (
|
|
7342
|
+
!t3.closest(".hit-region") && !t3.closest("#bi-info-drawer") && (Av(), Cv());
|
|
7325
7343
|
};
|
|
7326
|
-
document[
|
|
7327
|
-
let
|
|
7328
|
-
e6.key === "Escape" && (
|
|
7344
|
+
document[Ye2] = Ze2, document.addEventListener("click", Ze2, false);
|
|
7345
|
+
let Qe2 = (e6) => {
|
|
7346
|
+
e6.key === "Escape" && (Av(), Cv());
|
|
7329
7347
|
};
|
|
7330
|
-
document.removeEventListener("keydown", window.__biWheelEscHandler, false), window.__biWheelEscHandler =
|
|
7348
|
+
document.removeEventListener("keydown", window.__biWheelEscHandler, false), window.__biWheelEscHandler = Qe2, document.addEventListener("keydown", Qe2, false);
|
|
7331
7349
|
}
|
|
7332
|
-
function
|
|
7350
|
+
function Hv(e5) {
|
|
7333
7351
|
let t2 = parseInt(e5.slice(1, 3), 16), n2 = parseInt(e5.slice(3, 5), 16), r2 = parseInt(e5.slice(5, 7), 16), i2 = 0.6;
|
|
7334
7352
|
return "rgb(".concat(Math.round(t2 * (1 - i2) + 208 * i2), ",").concat(Math.round(n2 * (1 - i2) + 144 * i2), ",").concat(Math.round(r2 * (1 - i2) + 32 * i2), ")");
|
|
7335
7353
|
}
|
|
7336
|
-
function
|
|
7354
|
+
function Uv(e5, t2) {
|
|
7337
7355
|
e5 && (e5.setAttribute("tabindex", "0"), e5.setAttribute("role", "button"), e5.setAttribute("aria-label", t2), e5.addEventListener("keydown", (t3) => {
|
|
7338
7356
|
let n2 = t3;
|
|
7339
7357
|
(n2.key === "Enter" || n2.key === " ") && (n2.preventDefault(), e5.dispatchEvent(new MouseEvent("click", { bubbles: true, cancelable: true })));
|
|
7340
7358
|
}));
|
|
7341
7359
|
}
|
|
7342
|
-
function
|
|
7360
|
+
function Wv(e5) {
|
|
7343
7361
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
7344
7362
|
}
|
|
7345
|
-
function
|
|
7363
|
+
function Gv(e5) {
|
|
7346
7364
|
return e5.replace(/_/g, " ").replace(/\b\w/g, (e6) => e6.toUpperCase());
|
|
7347
7365
|
}
|
|
7348
|
-
function
|
|
7349
|
-
let t2 = e5.filter((e6) => e6.items.length > 0).map((e6) => '<div class="legend-group"><span class="legend-group-title">'.concat(
|
|
7366
|
+
function Kv(e5) {
|
|
7367
|
+
let t2 = e5.filter((e6) => e6.items.length > 0).map((e6) => '<div class="legend-group"><span class="legend-group-title">'.concat(Wv(e6.title), "</span>") + e6.items.map((e7) => '<span class="legend-item"><span class="legend-glyph">'.concat(Wv(e7.glyph), "</span>").concat(Wv(e7.label), "</span>")).join("") + "</div>").join("");
|
|
7350
7368
|
return t2 ? '<details class="glyph-legend"><summary><span class="legend-spark">\u2726</span> Legend</summary><div class="legend-body">'.concat(t2, "</div></details>") : "";
|
|
7351
7369
|
}
|
|
7352
|
-
var
|
|
7353
|
-
function
|
|
7370
|
+
var qv = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2}))?(?:\.\d+)?$/;
|
|
7371
|
+
function Jv(e5, t2) {
|
|
7354
7372
|
if (!e5) return null;
|
|
7355
|
-
let n2 =
|
|
7373
|
+
let n2 = qv.exec(e5.trim());
|
|
7356
7374
|
if (n2) {
|
|
7357
7375
|
let [, e6, t3, r3, i2, a2, o2] = n2, s2 = new Date(Date.UTC(+e6, t3 - 1, +r3, +i2, +a2, o2 ? +o2 : 0));
|
|
7358
7376
|
return isNaN(s2.getTime()) ? null : { date: s2, timeZone: "UTC" };
|
|
@@ -7360,17 +7378,17 @@ function Kv(e5, t2) {
|
|
|
7360
7378
|
let r2 = new Date(e5);
|
|
7361
7379
|
return isNaN(r2.getTime()) ? null : { date: r2, timeZone: t2 || "UTC" };
|
|
7362
7380
|
}
|
|
7363
|
-
function
|
|
7381
|
+
function Yv(e5) {
|
|
7364
7382
|
var t2;
|
|
7365
7383
|
if (!e5) return "";
|
|
7366
7384
|
let n2 = [], r2 = (t2 = e5.location) == null ? void 0 : t2.trim();
|
|
7367
7385
|
if (r2 ? n2.push(r2) : typeof e5.latitude == "number" && typeof e5.longitude == "number" && n2.push("".concat(e5.latitude.toFixed(2), ", ").concat(e5.longitude.toFixed(2))), e5.datetime) {
|
|
7368
|
-
let t3 = /^\d{4}-\d{2}-\d{2}/.test(e5.datetime.trim()) ?
|
|
7386
|
+
let t3 = /^\d{4}-\d{2}-\d{2}/.test(e5.datetime.trim()) ? Jv(e5.datetime, e5.timezone) : null;
|
|
7369
7387
|
t3 ? n2.push(t3.date.toLocaleString("en-US", { timeZone: t3.timeZone, day: "numeric", month: "short", year: "numeric", hour: "numeric", minute: "2-digit" })) : n2.push(e5.datetime);
|
|
7370
7388
|
}
|
|
7371
7389
|
return n2.join(" \xB7 ");
|
|
7372
7390
|
}
|
|
7373
|
-
var
|
|
7391
|
+
var Xv = class e4 {
|
|
7374
7392
|
constructor(t2) {
|
|
7375
7393
|
var n2, r2, i2, a2, s2, c2;
|
|
7376
7394
|
o(this, "config", void 0), o(this, "params", void 0), o(this, "dateInput", void 0), o(this, "timeInput", void 0), o(this, "refreshBtn", void 0), o(this, "locInput", void 0), o(this, "locDropdown", void 0), o(this, "summaryBar", void 0), o(this, "extraToggleInput", void 0), o(this, "searchTimeout", null), o(this, "searchVersion", 0), o(this, "isSearching", false), o(this, "suggestions", []), o(this, "activeIndex", -1), o(this, "selecting", false), o(this, "listboxId", "loc-listbox-".concat(e4.comboSeq++)), this.config = t2, this.params = { date: ((n2 = t2.initialParams) == null ? void 0 : n2.date) || this.getTodayDate(), time: ((r2 = t2.initialParams) == null ? void 0 : r2.time) || "12:00", latitude: ((i2 = t2.initialParams) == null ? void 0 : i2.latitude) || null, longitude: ((a2 = t2.initialParams) == null ? void 0 : a2.longitude) || null, timezone: ((s2 = t2.initialParams) == null ? void 0 : s2.timezone) || null, locationName: ((c2 = t2.initialParams) == null ? void 0 : c2.locationName) || null }, this.render();
|
|
@@ -7550,14 +7568,14 @@ var Jv = class e4 {
|
|
|
7550
7568
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
7551
7569
|
}
|
|
7552
7570
|
};
|
|
7553
|
-
o(
|
|
7554
|
-
var
|
|
7555
|
-
function
|
|
7571
|
+
o(Xv, "comboSeq", 0);
|
|
7572
|
+
var Zv = { "chart-wheel": { stripIcon: "\u2726", stripTitle: "About the Natal Chart", stripHints: ["Click any <strong>planet</strong> for a deep placement reading", "Click any <strong>aspect line</strong> for its dynamic interpretation", "Click any <strong>house cusp</strong> for house themes", "Use the <strong>date controls</strong> to move through time"], modalText: "This wheel is an exact celestial snapshot of the sky at a given moment and place \u2014 every planet, house, and aspect line is clickable." }, "bi-wheel": { stripIcon: "\u2295", stripTitle: "About the Bi-Wheel", stripHints: ["Click any <strong>inner planet</strong> for natal placement depth", "Click any <strong>outer planet</strong> for transit or synastry meaning", "Click a <strong>cross-aspect line</strong> for inter-chart dynamics", "Use the <strong>date controls</strong> to advance transits"], modalText: "Two charts are layered here \u2014 the inner wheel is the natal chart; the outer ring shows the second chart (transits or another person's planets)." }, bodygraph: { stripIcon: "\u25C8", stripTitle: "About the Bodygraph", stripHints: ["Click any <strong>center</strong> (defined or undefined) for its meaning", "Click any <strong>channel</strong> to explore its life theme", "Click any <strong>gate number</strong> for its I Ching hexagram reading", "Click a <strong>planet row</strong> in the sidebar for its HD role"], modalText: "The bodygraph is a living map of the energy centres, channels, and gates that define a Human Design chart." }, "vedic-chart": { stripIcon: "\u{1F549}", stripTitle: "About the Jyotish Chart", stripHints: ["Click any <strong>rashi cell</strong> for its themes and any planets placed there", "The <strong>diagonal mark</strong> shows the Lagna (Ascendant) rashi", "Use the <strong>action bar</strong> for a full chart interpretation", "Click <strong>Moon & Nakshatra</strong> for lunar mansion detail"], modalText: "This is a Vedic birth chart rendered as a South Indian Rashi grid \u2014 sidereal planetary placements by fixed sign." }, "transit-timeline": { stripIcon: "\u2604", stripTitle: "About the Transit Timeline", stripHints: ["Each entry is an <strong>exact transit hit</strong> \u2014 a transiting planet contacting a natal point", "Events are <strong>grouped by month</strong> in chronological order", "The <strong>\u211E marker</strong> flags a retrograde crossing", "Click any transit for a focused <strong>interpretation</strong>"], modalText: "This timeline lists upcoming transits to the natal chart \u2014 the exact dates outer-planet energies activate each placement." }, "moon-phase": { stripIcon: "\u263E", stripTitle: "About the Moon Phase Dial", stripHints: ["Click the <strong>Moon</strong> for its phase interpretation", "Click the <strong>Void-of-Course</strong> card when the Moon is VOC", "Use the <strong>date control</strong> to move the sky to any moment"], modalText: "The dial shows the Moon's live illumination, phase, sign, and void-of-course status for the selected moment." }, bazi: { stripIcon: "\u56DB", stripTitle: "About the BaZi Chart", stripHints: ["Click any <strong>pillar</strong> (Year, Month, Day, Hour) for its interpretation", "The <strong>Day Master</strong> is the core identity element", "The <strong>Wu Xing bar</strong> shows the Five Element balance"], modalText: "This BaZi (Four Pillars of Destiny) chart maps the Heavenly Stems and Earthly Branches present at a given moment of birth." } }, Qv = '\n .oe-welcome-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: oklch(0% 0 0 / 0.55);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n z-index: 9999;\n display: flex;\n align-items: center;\n justify-content: center;\n animation: oe-fade-in 0.4s ease both;\n font-family: system-ui, sans-serif;\n }\n\n .oe-welcome-modal {\n /* Themed, not hardcoded: the title/text/hints below all resolve through\n var(--text\u2026), so a fixed dark surface here meant that once the light\n palette became reachable the modal rendered near-black text on a\n near-black card \u2014 1.09:1, effectively invisible. The fallback is the\n previous literal, and every app\'s dark --surface is oklch(11-12%), so\n dark rendering is unchanged. */\n background: var(--surface, oklch(11% 0.010 265));\n border: 1px solid var(--gold-glow, oklch(72% 0.12 80 / 0.20));\n border-radius: 16px;\n padding: 32px;\n width: 90%;\n max-width: 440px;\n box-shadow: 0 20px 40px oklch(0% 0 0 / 0.55), inset 0 1px 0 oklch(100% 0 0 / 0.06);\n animation: oe-modal-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n\n @keyframes oe-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n @keyframes oe-modal-in {\n from { opacity: 0; transform: scale(0.95) translateY(10px); }\n to { opacity: 1; transform: scale(1) translateY(0); }\n }\n\n .oe-welcome-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n }\n\n .oe-welcome-icon {\n font-size: 28px;\n color: var(--gold, oklch(72% 0.12 80));\n line-height: 1;\n text-shadow: 0 0 10px var(--gold-glow, oklch(72% 0.12 80 / 0.30));\n }\n\n .oe-welcome-title {\n font-size: 20px;\n font-weight: 600;\n color: var(--text, oklch(92% 0.006 265));\n margin: 0;\n letter-spacing: 0.02em;\n }\n\n .oe-welcome-text {\n font-size: 14.5px;\n line-height: 1.5;\n color: var(--text-secondary, oklch(68% 0.008 265));\n margin: 0;\n }\n\n .oe-welcome-hints {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin: 8px 0 12px 0;\n padding: 0;\n list-style: none;\n }\n\n .oe-welcome-hints li {\n font-size: 13.5px;\n line-height: 1.4;\n color: var(--text-secondary, oklch(68% 0.008 265));\n display: flex;\n align-items: flex-start;\n gap: 10px;\n opacity: 0;\n animation: oe-fade-in 0.4s ease forwards;\n }\n\n /* Stagger the hints */\n .oe-welcome-hints li:nth-child(1) { animation-delay: 0.15s; }\n .oe-welcome-hints li:nth-child(2) { animation-delay: 0.25s; }\n .oe-welcome-hints li:nth-child(3) { animation-delay: 0.35s; }\n .oe-welcome-hints li:nth-child(4) { animation-delay: 0.45s; }\n\n .oe-welcome-hints li::before {\n content: "\u2726";\n color: var(--gold-dim, oklch(52% 0.06 80));\n font-size: 12px;\n padding-top: 2px;\n }\n\n .oe-welcome-hints strong {\n color: var(--text, oklch(92% 0.006 265));\n font-weight: 600;\n }\n\n .oe-welcome-button {\n align-self: flex-end;\n background: var(--gold-subtle, oklch(72% 0.12 80 / 0.10));\n color: var(--gold, oklch(72% 0.12 80));\n border: 1px solid var(--gold-glow, oklch(72% 0.12 80 / 0.20));\n padding: 10px 24px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: background 0.2s ease, border-color 0.2s ease;\n margin-top: 4px;\n }\n\n .oe-welcome-button:hover {\n background: oklch(72% 0.12 80 / 0.18);\n border-color: oklch(72% 0.12 80 / 0.40);\n }\n\n .oe-welcome-button:focus-visible {\n outline: 2px solid var(--gold, oklch(72% 0.12 80));\n outline-offset: 2px;\n }\n\n .oe-welcome-backdrop.is-dismissing {\n animation: oe-fade-out 0.3s ease forwards;\n }\n\n .oe-welcome-backdrop.is-dismissing .oe-welcome-modal {\n animation: oe-modal-out 0.3s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n }\n\n @keyframes oe-fade-out {\n to { opacity: 0; }\n }\n\n @keyframes oe-modal-out {\n to { opacity: 0; transform: scale(0.95) translateY(10px); }\n }\n';
|
|
7573
|
+
function $v() {
|
|
7556
7574
|
if (document.getElementById("oe-first-run-styles")) return;
|
|
7557
7575
|
let e5 = document.createElement("style");
|
|
7558
|
-
e5.id = "oe-first-run-styles", e5.textContent =
|
|
7576
|
+
e5.id = "oe-first-run-styles", e5.textContent = Qv, document.head.appendChild(e5);
|
|
7559
7577
|
}
|
|
7560
|
-
function
|
|
7578
|
+
function ey(e5) {
|
|
7561
7579
|
let t2 = document.activeElement, n2 = document.createElement("div");
|
|
7562
7580
|
n2.className = "oe-welcome-backdrop";
|
|
7563
7581
|
let r2 = document.createElement("div");
|
|
@@ -7575,34 +7593,34 @@ function Qv(e5) {
|
|
|
7575
7593
|
e6.key === "Escape" && (e6.preventDefault(), o2()), e6.key === "Tab" && (e6.preventDefault(), a2.focus());
|
|
7576
7594
|
}), requestAnimationFrame(() => a2.focus()), n2;
|
|
7577
7595
|
}
|
|
7578
|
-
function
|
|
7579
|
-
|
|
7580
|
-
let t2 =
|
|
7596
|
+
function ty(e5) {
|
|
7597
|
+
$v();
|
|
7598
|
+
let t2 = ey(Zv[e5]);
|
|
7581
7599
|
document.body.appendChild(t2);
|
|
7582
7600
|
}
|
|
7583
|
-
var
|
|
7584
|
-
function
|
|
7601
|
+
var ny = "\n .oe-info-button {\n position: fixed;\n top: 12px;\n right: 12px;\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: var(--surface-2, oklch(16% 0.010 265));\n border: 1px solid var(--border-strong, oklch(30% 0.010 265));\n color: var(--text-secondary, oklch(68% 0.008 265));\n font: 600 14px/1 Georgia, serif;\n font-style: italic;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 9998;\n transition: all 150ms ease;\n }\n\n .oe-info-button:hover {\n background: var(--surface, oklch(11% 0.010 265));\n border-color: var(--gold-dim, oklch(52% 0.06 80));\n color: var(--gold, oklch(72% 0.12 80));\n }\n\n .oe-info-button:focus-visible {\n outline: 2px solid var(--gold, oklch(72% 0.12 80));\n outline-offset: 2px;\n }\n";
|
|
7602
|
+
function ry() {
|
|
7585
7603
|
if (document.getElementById("oe-info-button-styles")) return;
|
|
7586
7604
|
let e5 = document.createElement("style");
|
|
7587
|
-
e5.id = "oe-info-button-styles", e5.textContent =
|
|
7605
|
+
e5.id = "oe-info-button-styles", e5.textContent = ny, document.head.appendChild(e5);
|
|
7588
7606
|
}
|
|
7589
|
-
function
|
|
7607
|
+
function iy(e5) {
|
|
7590
7608
|
if (document.getElementById("oe-info-button")) return;
|
|
7591
|
-
|
|
7609
|
+
ry();
|
|
7592
7610
|
let t2 = document.createElement("button");
|
|
7593
|
-
t2.id = "oe-info-button", t2.className = "oe-info-button", t2.setAttribute("aria-label", "About this chart"), t2.title = "About this chart", t2.textContent = "i", t2.addEventListener("click", () =>
|
|
7611
|
+
t2.id = "oe-info-button", t2.className = "oe-info-button", t2.setAttribute("aria-label", "About this chart"), t2.title = "About this chart", t2.textContent = "i", t2.addEventListener("click", () => ty(e5)), document.body.appendChild(t2);
|
|
7594
7612
|
}
|
|
7595
|
-
function
|
|
7613
|
+
function ay(e5) {
|
|
7596
7614
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
7597
7615
|
}
|
|
7598
|
-
function
|
|
7599
|
-
let { container: t2, message: n2, onRetry: r2, retryLabel: i2 = "\u21BA Try again" } = e5, a2 = r2 ? '<button class="error-retry-btn" type="button">'.concat(
|
|
7600
|
-
if (t2.innerHTML = '<div class="error-state" role="alert"><div class="error-icon" aria-hidden="true">\u26A0\uFE0F</div><p class="error-msg">'.concat(
|
|
7616
|
+
function oy(e5) {
|
|
7617
|
+
let { container: t2, message: n2, onRetry: r2, retryLabel: i2 = "\u21BA Try again" } = e5, a2 = r2 ? '<button class="error-retry-btn" type="button">'.concat(ay(i2), "</button>") : "";
|
|
7618
|
+
if (t2.innerHTML = '<div class="error-state" role="alert"><div class="error-icon" aria-hidden="true">\u26A0\uFE0F</div><p class="error-msg">'.concat(ay(n2), "</p>") + a2 + "</div>", t2.removeAttribute("hidden"), r2) {
|
|
7601
7619
|
var o2;
|
|
7602
7620
|
(o2 = t2.querySelector(".error-retry-btn")) == null || o2.addEventListener("click", r2);
|
|
7603
7621
|
}
|
|
7604
7622
|
}
|
|
7605
|
-
function
|
|
7623
|
+
function sy(e5) {
|
|
7606
7624
|
var t2;
|
|
7607
7625
|
if (!e5) return null;
|
|
7608
7626
|
if (e5.structuredContent != null && typeof e5.structuredContent == "object") return e5.structuredContent;
|
|
@@ -7615,7 +7633,7 @@ function ay(e5) {
|
|
|
7615
7633
|
}
|
|
7616
7634
|
return null;
|
|
7617
7635
|
}
|
|
7618
|
-
function
|
|
7636
|
+
function cy(e5, t2, n2 = []) {
|
|
7619
7637
|
var r2, i2;
|
|
7620
7638
|
if (!t2 || t2.querySelector("#btn-fullscreen")) return;
|
|
7621
7639
|
let a2 = document.createElement("button");
|
|
@@ -7698,14 +7716,14 @@ function oy(e5, t2, n2 = []) {
|
|
|
7698
7716
|
}, 4e3);
|
|
7699
7717
|
}
|
|
7700
7718
|
}
|
|
7701
|
-
function
|
|
7719
|
+
function ly(e5, t2) {
|
|
7702
7720
|
e5.ontoolcancelled = (e6) => {
|
|
7703
7721
|
var n2, r2, i2;
|
|
7704
7722
|
let a2 = (n2 = e6.reason) == null ? "Tool call was cancelled" : n2;
|
|
7705
|
-
console.warn("[AppChrome] Tool cancelled:", a2), (r2 = t2.statusFn) == null || r2.call(t2, null), !t2.loadingEl.hidden && t2.loadingEl.getAttribute("hidden") === null && (t2.loadingEl.setAttribute("hidden", ""), t2.contentEl.removeAttribute("hidden")), (i2 = t2.paramControls) == null || (i2 = i2.call(t2)) == null || i2.setBusy(false),
|
|
7723
|
+
console.warn("[AppChrome] Tool cancelled:", a2), (r2 = t2.statusFn) == null || r2.call(t2, null), !t2.loadingEl.hidden && t2.loadingEl.getAttribute("hidden") === null && (t2.loadingEl.setAttribute("hidden", ""), t2.contentEl.removeAttribute("hidden")), (i2 = t2.paramControls) == null || (i2 = i2.call(t2)) == null || i2.setBusy(false), uy(a2);
|
|
7706
7724
|
};
|
|
7707
7725
|
}
|
|
7708
|
-
function
|
|
7726
|
+
function uy(e5) {
|
|
7709
7727
|
var t2;
|
|
7710
7728
|
(t2 = document.getElementById("cancel-toast")) == null || t2.remove();
|
|
7711
7729
|
let n2 = document.createElement("div");
|
|
@@ -7713,7 +7731,7 @@ function cy(e5) {
|
|
|
7713
7731
|
n2.classList.remove("visible"), setTimeout(() => n2.remove(), 300);
|
|
7714
7732
|
}, 3e3);
|
|
7715
7733
|
}
|
|
7716
|
-
function
|
|
7734
|
+
function dy(e5) {
|
|
7717
7735
|
var t2;
|
|
7718
7736
|
function n2(e6) {
|
|
7719
7737
|
if (!e6) return;
|
|
@@ -7726,149 +7744,149 @@ function ly(e5) {
|
|
|
7726
7744
|
n2(e6);
|
|
7727
7745
|
});
|
|
7728
7746
|
}
|
|
7729
|
-
var
|
|
7730
|
-
|
|
7731
|
-
$ &&
|
|
7747
|
+
var fy = document.getElementById("chart-container"), py = document.getElementById("loading-state"), my = document.getElementById("mode-badge"), hy = document.getElementById("chart-status"), gy = document.getElementById("aspect-filter"), _y = document.getElementById("chart-provenance"), vy = document.getElementById("bi-patterns-strip"), yy = document.getElementById("param-controls-container"), by = new r_({ name: "Bi-Wheel Chart Explorer", version: "1.0.0" }), $ = null, xy = null, Sy = false, Cy = false, wy = "placidus";
|
|
7748
|
+
h_(() => {
|
|
7749
|
+
$ && $y($);
|
|
7732
7750
|
});
|
|
7733
|
-
var
|
|
7734
|
-
function
|
|
7735
|
-
if (
|
|
7751
|
+
var Ty = "true";
|
|
7752
|
+
function Ey(e5) {
|
|
7753
|
+
if (hy) {
|
|
7736
7754
|
if (!e5) {
|
|
7737
|
-
|
|
7755
|
+
hy.classList.remove("visible");
|
|
7738
7756
|
return;
|
|
7739
7757
|
}
|
|
7740
|
-
|
|
7758
|
+
hy.textContent = "\xB7 ".concat(e5), hy.classList.add("visible");
|
|
7741
7759
|
}
|
|
7742
7760
|
}
|
|
7743
|
-
|
|
7744
|
-
function
|
|
7745
|
-
|
|
7761
|
+
iv(Ey);
|
|
7762
|
+
function Dy() {
|
|
7763
|
+
py.hidden = false, fy.hidden = true, my.hidden = true, _y && (_y.hidden = true), vy && (vy.hidden = true, vy.innerHTML = "");
|
|
7746
7764
|
}
|
|
7747
|
-
function
|
|
7748
|
-
|
|
7765
|
+
function Oy() {
|
|
7766
|
+
py.hidden = true, fy.hidden = false, fy.classList.remove("refreshing"), my.hidden = false, _y && (_y.hidden = false);
|
|
7749
7767
|
}
|
|
7750
|
-
function
|
|
7751
|
-
if (!$ ||
|
|
7752
|
-
|
|
7768
|
+
function ky() {
|
|
7769
|
+
if (!$ || fy.hidden) {
|
|
7770
|
+
Dy();
|
|
7753
7771
|
return;
|
|
7754
7772
|
}
|
|
7755
|
-
|
|
7773
|
+
fy.classList.add("refreshing");
|
|
7756
7774
|
}
|
|
7757
|
-
function
|
|
7758
|
-
|
|
7775
|
+
function Ay() {
|
|
7776
|
+
fy.classList.remove("refreshing"), fy.classList.remove("chart-rendered"), fy.offsetWidth, fy.classList.add("chart-rendered");
|
|
7759
7777
|
}
|
|
7760
|
-
function
|
|
7761
|
-
|
|
7778
|
+
function jy(e5, t2) {
|
|
7779
|
+
py.hidden = true, _y && (_y.hidden = true), oy({ container: fy, message: e5, onRetry: t2 });
|
|
7762
7780
|
}
|
|
7763
|
-
function
|
|
7781
|
+
function My(e5) {
|
|
7764
7782
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
7765
7783
|
}
|
|
7766
|
-
async function
|
|
7784
|
+
async function Ny(e5) {
|
|
7767
7785
|
try {
|
|
7768
|
-
(await
|
|
7786
|
+
(await by.sendMessage({ role: "user", content: [{ type: "text", text: e5 }] })).isError && console.error("[BiWheel] Host rejected sendMessage");
|
|
7769
7787
|
} catch (e6) {
|
|
7770
7788
|
console.error("[BiWheel] sendMessage failed:", e6);
|
|
7771
7789
|
}
|
|
7772
7790
|
}
|
|
7773
|
-
function
|
|
7774
|
-
let t2 =
|
|
7791
|
+
function Py(e5) {
|
|
7792
|
+
let t2 = sy(e5);
|
|
7775
7793
|
return t2 && "inner" in t2 && "outer" in t2 ? t2 : null;
|
|
7776
7794
|
}
|
|
7777
|
-
var
|
|
7778
|
-
function
|
|
7795
|
+
var Fy = [{ label: "Tight", mult: 0.55 }, { label: "Standard", mult: 1 }, { label: "Wide", mult: 1.6 }], Iy = true, Ly = 1;
|
|
7796
|
+
function Ry() {
|
|
7779
7797
|
var e5, t2, n2;
|
|
7780
|
-
if (!
|
|
7798
|
+
if (!gy) return;
|
|
7781
7799
|
let r2 = (t2 = { synastry: "Synastry \u2192 Natal", transit: "Transit \u2192 Natal", progressed: "Progressions \u2192 Natal", solar_return: "Solar Return \u2192 Natal", lunar_return: "Lunar Return \u2192 Natal", solar_arc: "Solar Arc \u2192 Natal" }[(e5 = $ == null ? void 0 : $.mode) == null ? "synastry" : e5]) == null ? "Cross-Wheel" : t2, i2 = [{ key: "placidus", label: "Placidus" }, { key: "whole_sign", label: "Whole Sign" }, { key: "equal", label: "Equal" }, { key: "koch", label: "Koch" }, { key: "regiomontanus", label: "Regio." }], a2 = (() => {
|
|
7782
7800
|
var e6, t3;
|
|
7783
7801
|
let n3 = /* @__PURE__ */ new Set();
|
|
7784
7802
|
for (let r3 of [...(e6 = $ == null ? void 0 : $.inner) == null ? [] : e6, ...(t3 = $ == null ? void 0 : $.outer) == null ? [] : t3]) r3 && typeof r3 == "object" && "name" in r3 && n3.add(String(r3.name).toLowerCase());
|
|
7785
7803
|
return n3.has("north_node") && n3.has("true_node");
|
|
7786
7804
|
})();
|
|
7787
|
-
|
|
7788
|
-
let o2 = a2 ? '\n <div class="asp-section">\n <span class="asp-section-label">Nodes</span>\n <button class="orb-preset-btn node-btn'.concat(
|
|
7789
|
-
|
|
7790
|
-
let s2 = [...
|
|
7805
|
+
Q_(Ty);
|
|
7806
|
+
let o2 = a2 ? '\n <div class="asp-section">\n <span class="asp-section-label">Nodes</span>\n <button class="orb-preset-btn node-btn'.concat(Ty === "mean" ? " active" : "", '" data-node="mean" title="Mean lunar node (averaged orbit)">Mean</button>\n <button class="orb-preset-btn node-btn').concat(Ty === "true" ? " active" : "", '" data-node="true" title="True (osculating) lunar node">True</button>\n </div>') : "";
|
|
7807
|
+
Iy = true, gy.innerHTML = '\n <div class="asp-panel">\n <div class="asp-section">\n <span class="asp-section-label">Aspects</span>\n <button class="aspect-toggle-btn active" id="aspect-vis-toggle"\n title="Toggle all aspect lines & symbols">\n <span class="toggle-icon">\u2295</span> '.concat(r2, '\n </button>\n </div>\n <div class="asp-section">\n <span class="asp-section-label">Orb</span>\n ').concat(Fy.map((e6) => '<button class="orb-preset-btn'.concat(e6.mult === Ly ? " active" : "", '" data-mult="').concat(e6.mult, '" title="').concat(e6.label, ' orbs">').concat(e6.label, "</button>")).join(""), '\n </div>\n <div class="asp-section">\n <span class="asp-section-label">Houses</span>\n ').concat(i2.map((e6) => '<button class="orb-preset-btn house-btn'.concat(e6.key === wy ? " active" : "", '" data-hs="').concat(e6.key, '" title="').concat(e6.label, ' houses">').concat(e6.label, "</button>")).join(""), "\n </div>").concat(o2, "\n </div>\n ");
|
|
7808
|
+
let s2 = [...ev($ == null ? void 0 : $.inner), ...ev($ == null ? void 0 : $.outer)], c2 = /* @__PURE__ */ new Set(), l2 = [];
|
|
7791
7809
|
for (let e6 of s2) {
|
|
7792
7810
|
let t3 = e6.name.toLowerCase();
|
|
7793
7811
|
if (c2.has(t3)) continue;
|
|
7794
7812
|
c2.add(t3);
|
|
7795
|
-
let n3 =
|
|
7796
|
-
n3 && l2.push({ glyph: n3, label:
|
|
7813
|
+
let n3 = F_[t3];
|
|
7814
|
+
n3 && l2.push({ glyph: n3, label: Gv(e6.name) });
|
|
7797
7815
|
}
|
|
7798
7816
|
let u2 = [...new Set(((n2 = $ == null ? void 0 : $.cross_aspects) == null ? [] : n2).map((e6) => {
|
|
7799
7817
|
var t3;
|
|
7800
7818
|
return ((t3 = e6.type) == null ? "" : t3).toLowerCase();
|
|
7801
7819
|
}).filter(Boolean))].map((e6) => {
|
|
7802
7820
|
var t3;
|
|
7803
|
-
return { glyph: (t3 =
|
|
7821
|
+
return { glyph: (t3 = R_[e6]) == null ? "" : t3, label: Gv(e6) };
|
|
7804
7822
|
}).filter((e6) => e6.glyph);
|
|
7805
|
-
|
|
7823
|
+
gy.insertAdjacentHTML("beforeend", Kv([{ title: "Bodies", items: l2 }, { title: "Aspects", items: u2 }])), gy.removeAttribute("hidden");
|
|
7806
7824
|
let d2 = document.getElementById("aspect-vis-toggle");
|
|
7807
7825
|
d2 == null || d2.addEventListener("click", () => {
|
|
7808
|
-
|
|
7809
|
-
}),
|
|
7826
|
+
Iy = !Iy, jv(Iy), d2.classList.toggle("active", Iy), d2.querySelector(".toggle-icon").textContent = Iy ? "\u2295" : "\u2296";
|
|
7827
|
+
}), gy.querySelectorAll(".orb-preset-btn[data-mult]").forEach((e6) => {
|
|
7810
7828
|
e6.addEventListener("click", () => {
|
|
7811
7829
|
var t3;
|
|
7812
7830
|
let n3 = parseFloat((t3 = e6.dataset.mult) == null ? "1" : t3);
|
|
7813
|
-
n3 !==
|
|
7831
|
+
n3 !== Ly && (Ly = n3, gy.querySelectorAll(".orb-preset-btn[data-mult]").forEach((e7) => e7.classList.toggle("active", e7.dataset.mult === String(n3))), $ && zy($, n3));
|
|
7814
7832
|
});
|
|
7815
|
-
}),
|
|
7833
|
+
}), gy.querySelectorAll(".house-btn").forEach((e6) => {
|
|
7816
7834
|
e6.addEventListener("click", () => {
|
|
7817
7835
|
var t3;
|
|
7818
7836
|
let n3 = (t3 = e6.dataset.hs) == null ? "placidus" : t3;
|
|
7819
|
-
n3 ===
|
|
7837
|
+
n3 === wy || !$ || (wy = n3, gy.querySelectorAll(".house-btn").forEach((e7) => e7.classList.toggle("active", e7.dataset.hs === n3)), rb(n3));
|
|
7820
7838
|
});
|
|
7821
|
-
}),
|
|
7839
|
+
}), gy.querySelectorAll(".node-btn").forEach((e6) => {
|
|
7822
7840
|
e6.addEventListener("click", () => {
|
|
7823
7841
|
let t3 = e6.dataset.node === "mean" ? "mean" : "true";
|
|
7824
|
-
t3 ===
|
|
7842
|
+
t3 === Ty || !$ || (Ty = t3, Q_(t3), gy.querySelectorAll(".node-btn").forEach((e7) => e7.classList.toggle("active", e7.dataset.node === t3)), zy($, Ly));
|
|
7825
7843
|
});
|
|
7826
7844
|
});
|
|
7827
7845
|
}
|
|
7828
|
-
function
|
|
7846
|
+
function zy(e5, t2) {
|
|
7829
7847
|
var n2, r2, i2, a2;
|
|
7830
|
-
let o2 =
|
|
7831
|
-
|
|
7848
|
+
let o2 = ev(e5.inner), s2 = ev(e5.outer), c2 = nv(o2, s2, t2), l2 = { ...e5, cross_aspects: c2 };
|
|
7849
|
+
Vv(fy, l2, ib, ab, Jy, Qy()), Iy || jv(false);
|
|
7832
7850
|
let u2 = (r2 = (i2 = (a2 = ((n2 = l2.inner_houses) == null ? [] : n2)[0]) == null ? void 0 : a2.cusp_lon) == null ? l2.ascendant : i2) == null ? 0 : r2;
|
|
7833
|
-
|
|
7851
|
+
nb(Fv(c2), o2, s2, u2);
|
|
7834
7852
|
}
|
|
7835
|
-
var
|
|
7836
|
-
function
|
|
7837
|
-
|
|
7853
|
+
var By = null;
|
|
7854
|
+
function Vy(e5) {
|
|
7855
|
+
By = e5, e5 ? fy.setAttribute("data-focus", e5) : fy.removeAttribute("data-focus"), my.querySelectorAll(".mode-badge-name").forEach((t2) => {
|
|
7838
7856
|
let n2 = t2.dataset.focus;
|
|
7839
7857
|
t2.classList.toggle("focused", n2 === e5);
|
|
7840
|
-
}), $ &&
|
|
7858
|
+
}), $ && qy($, e5);
|
|
7841
7859
|
}
|
|
7842
|
-
function
|
|
7860
|
+
function Hy(e5) {
|
|
7843
7861
|
var t2, n2, r2, i2, a2, o2, s2;
|
|
7844
7862
|
let c2 = (t2 = e5.mode) == null ? "synastry" : t2, l2 = (n2 = (r2 = e5._birth_params_inner) == null ? void 0 : r2.location) == null ? "Person 1" : n2, u2 = (i2 = (a2 = e5._birth_params_outer) == null ? void 0 : a2.location) == null ? c2 === "transit" ? "Transits" : "Person 2" : i2;
|
|
7845
|
-
|
|
7863
|
+
By = null, fy.removeAttribute("data-focus");
|
|
7846
7864
|
let d2 = "";
|
|
7847
7865
|
if (c2 === "transit" && (o2 = e5._birth_params_outer) != null && o2.datetime) try {
|
|
7848
|
-
let t3 =
|
|
7849
|
-
t3 && (d2 = '<span class="mode-badge-date">'.concat(
|
|
7866
|
+
let t3 = Jv(e5._birth_params_outer.datetime, e5._birth_params_outer.timezone);
|
|
7867
|
+
t3 && (d2 = '<span class="mode-badge-date">'.concat(My(t3.date.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric", timeZone: t3.timeZone })), "</span>"));
|
|
7850
7868
|
} catch (e6) {
|
|
7851
7869
|
}
|
|
7852
|
-
|
|
7870
|
+
my.innerHTML = '\n <button class="mode-badge-name inner-name" data-focus="inner" title="Click to focus inner (natal) wheel">\n <span class="mode-badge-dot-inner"></span>'.concat(My(l2), '\n </button>\n <button class="mode-badge-swap" title="Toggle focus">\u21C4</button>\n <button class="mode-badge-name outer-name" data-focus="outer" title="Click to focus outer (').concat(c2, ') wheel">\n <span class="mode-badge-dot-outer"></span>').concat(My(u2), "\n </button>\n ").concat(d2), my.querySelectorAll(".mode-badge-name").forEach((e6) => {
|
|
7853
7871
|
e6.addEventListener("click", () => {
|
|
7854
7872
|
let t3 = e6.dataset.focus;
|
|
7855
|
-
|
|
7873
|
+
Vy(By === t3 ? null : t3);
|
|
7856
7874
|
});
|
|
7857
|
-
}), (s2 =
|
|
7858
|
-
|
|
7875
|
+
}), (s2 = my.querySelector(".mode-badge-swap")) == null || s2.addEventListener("click", () => {
|
|
7876
|
+
Vy(By === "inner" ? "outer" : "inner");
|
|
7859
7877
|
});
|
|
7860
7878
|
}
|
|
7861
|
-
var
|
|
7862
|
-
function
|
|
7879
|
+
var Uy = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"], Wy = { sun: "\u2609", moon: "\u263D", mercury: "\u263F", venus: "\u2640", mars: "\u2642", jupiter: "\u2643", saturn: "\u2644", uranus: "\u2645", neptune: "\u2646", pluto: "\u2647", asc: "AC", mc: "MC" };
|
|
7880
|
+
function Gy(e5, t2) {
|
|
7863
7881
|
var n2, r2;
|
|
7864
7882
|
let i2 = e5.find((e6) => e6.name.toLowerCase() === t2);
|
|
7865
7883
|
if (!i2) return "\u2014";
|
|
7866
7884
|
let a2 = Math.floor((i2.longitude % 360 + 360) % 360 / 30), o2 = Math.floor(i2.longitude % 30);
|
|
7867
|
-
return "".concat((n2 =
|
|
7885
|
+
return "".concat((n2 = Wy[t2]) == null ? t2 : n2, " ").concat(o2, "\xB0 ").concat((r2 = Uy[a2]) == null ? "" : r2);
|
|
7868
7886
|
}
|
|
7869
|
-
function
|
|
7887
|
+
function Ky(e5, t2) {
|
|
7870
7888
|
try {
|
|
7871
|
-
let n2 =
|
|
7889
|
+
let n2 = Jv(e5, t2);
|
|
7872
7890
|
if (!n2) return e5;
|
|
7873
7891
|
let { date: r2, timeZone: i2 } = n2;
|
|
7874
7892
|
return r2.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric", timeZone: i2 }) + " \xB7 " + r2.toLocaleTimeString("en-US", { hour: "numeric", minute: "2-digit", hour12: true, timeZone: i2 });
|
|
@@ -7876,22 +7894,22 @@ function Wy(e5, t2) {
|
|
|
7876
7894
|
return e5;
|
|
7877
7895
|
}
|
|
7878
7896
|
}
|
|
7879
|
-
function
|
|
7897
|
+
function qy(e5, t2) {
|
|
7880
7898
|
var n2, r2, i2, a2, o2;
|
|
7881
|
-
if (!
|
|
7882
|
-
let s2 = t2 == null ? "inner" : t2, c2 = s2 === "inner" ? e5.inner : e5.outer, l2 = s2 === "inner" ? e5._birth_params_inner : e5._birth_params_outer, u2 = (n2 = e5.mode) == null ? "synastry" : n2, d2 = (r2 = l2 == null ? void 0 : l2.location) == null ? s2 === "inner" ? "Inner chart" : u2 === "transit" ? "Transits" : "Outer chart" : r2, f2 = (i2 = l2 == null ? void 0 : l2.timezone) == null ? null : i2, p2 = l2 != null && l2.datetime ?
|
|
7899
|
+
if (!_y) return;
|
|
7900
|
+
let s2 = t2 == null ? "inner" : t2, c2 = s2 === "inner" ? e5.inner : e5.outer, l2 = s2 === "inner" ? e5._birth_params_inner : e5._birth_params_outer, u2 = (n2 = e5.mode) == null ? "synastry" : n2, d2 = (r2 = l2 == null ? void 0 : l2.location) == null ? s2 === "inner" ? "Inner chart" : u2 === "transit" ? "Transits" : "Outer chart" : r2, f2 = (i2 = l2 == null ? void 0 : l2.timezone) == null ? null : i2, p2 = l2 != null && l2.datetime ? Ky(l2.datetime, f2) : null, m2 = s2 === "inner" ? e5.inner_houses : (a2 = e5.outer_houses) == null ? [] : a2, h2 = (o2 = e5.house_system) == null ? m2.length > 0 ? "Placidus" : null : o2, g2 = Gy(c2, "sun"), _2 = Gy(c2, "moon"), v2 = Gy(c2, "asc");
|
|
7883
7901
|
if (v2 === "AC \u2014" && m2.length > 0) {
|
|
7884
7902
|
let e6 = m2.find((e7) => e7.number === 1);
|
|
7885
7903
|
if (e6) {
|
|
7886
7904
|
var y2;
|
|
7887
7905
|
let t3 = Math.floor((e6.cusp_lon % 360 + 360) % 360 / 30);
|
|
7888
|
-
v2 = "AC ".concat(Math.floor(e6.cusp_lon % 30), "\xB0 ").concat((y2 =
|
|
7906
|
+
v2 = "AC ".concat(Math.floor(e6.cusp_lon % 30), "\xB0 ").concat((y2 = Uy[t3]) == null ? "" : y2);
|
|
7889
7907
|
}
|
|
7890
7908
|
}
|
|
7891
7909
|
let b2 = s2 === "outer" && u2 === "transit" ? "Transit" : s2 === "outer" ? "Synastry" : "Natal";
|
|
7892
|
-
|
|
7910
|
+
_y.innerHTML = '\n <div class="prov-name">'.concat(My(d2), '\n <span class="prov-mode-tag">').concat(My(b2), '</span>\n </div>\n <div class="prov-trio">\n <span class="prov-planet">').concat(My(g2), '</span>\n <span class="prov-sep">\xB7</span>\n <span class="prov-planet">').concat(My(_2), '</span>\n <span class="prov-sep">\xB7</span>\n <span class="prov-planet">').concat(My(v2), "</span>\n </div>\n ").concat(p2 ? '<div class="prov-meta">'.concat(My(p2)).concat(f2 ? ' <span class="prov-tz">'.concat(My(f2), "</span>") : "", "</div>") : "", "\n ").concat(h2 ? '<div class="prov-meta">'.concat(My(h2), " houses</div>") : "", "\n "), _y.hidden = false;
|
|
7893
7911
|
}
|
|
7894
|
-
async function
|
|
7912
|
+
async function Jy(e5) {
|
|
7895
7913
|
var t2;
|
|
7896
7914
|
let n2 = (t2 = $ == null ? void 0 : $.mode) == null ? "synastry" : t2, r2 = "";
|
|
7897
7915
|
if (e5.type === "planet") {
|
|
@@ -7918,36 +7936,36 @@ async function Ky(e5) {
|
|
|
7918
7936
|
r2 = "Interpret the ".concat(String(t3.name), " forming in this ").concat(n2, " bi-wheel involving ").concat(s3, ". ") + (t3.description ? "".concat(String(t3.description), ". ") : "") + "This is a cross-chart pattern \u2014 it spans both wheels, so the meaning lives in the interaction between the ".concat(a3, " foundation and the ").concat(o3, " activation. Give a rich interpretation covering: (1) the core dynamic this pattern creates, (2) how the ").concat(a3, " planets set the stage, (3) what the ").concat(o3, " planets activate or challenge, (4) the psychological theme and practical expression").concat(n2 === "transit" ? ", and (5) timing \u2014 what to do with this energy now" : "", ".");
|
|
7919
7937
|
}
|
|
7920
7938
|
if (!r2) return;
|
|
7921
|
-
let h2 =
|
|
7939
|
+
let h2 = Yv($ == null ? void 0 : $._birth_params_inner), g2 = Yv($ == null ? void 0 : $._birth_params_outer);
|
|
7922
7940
|
if (h2 || g2) {
|
|
7923
7941
|
let e6 = n2 === "transit" ? "Natal" : "Inner wheel", t3 = n2 === "transit" ? "Transits" : "Outer wheel";
|
|
7924
7942
|
r2 = "".concat([h2 ? "".concat(e6, ": ").concat(h2) : "", g2 ? "".concat(t3, ": ").concat(g2) : ""].filter(Boolean).join("\n"), "\n\n").concat(r2);
|
|
7925
7943
|
}
|
|
7926
|
-
await
|
|
7944
|
+
await Ny(r2);
|
|
7927
7945
|
}
|
|
7928
|
-
async function
|
|
7946
|
+
async function Yy() {
|
|
7929
7947
|
var e5, t2, n2, r2, i2, a2, o2, s2;
|
|
7930
7948
|
if (!$) return;
|
|
7931
7949
|
let c2 = $, l2 = (e5 = c2.mode) == null ? "synastry" : e5, u2 = String((t2 = (n2 = c2._birth_params_inner) == null ? void 0 : n2.location) == null ? "Person 1" : t2), d2 = l2 === "transit" ? "transits (".concat(String((r2 = (i2 = c2._birth_params_outer) == null ? void 0 : i2.location) == null ? "today" : r2), ")") : String((a2 = (o2 = c2._birth_params_outer) == null ? void 0 : o2.location) == null ? "Person 2" : a2), f2 = ((s2 = c2.cross_aspects) == null ? [] : s2).slice(0, 8).map((e6) => " \u2022 ".concat(e6.planet1, " ").concat(e6.type, " ").concat(e6.planet2, " (").concat(e6.orb.toFixed(1), "\xB0").concat(e6.applying === void 0 ? "" : ", ".concat(e6.applying ? "applying" : "separating"), ")")).join("\n") || " \u2022 No cross-aspects within orb";
|
|
7932
|
-
await
|
|
7950
|
+
await Ny(l2 === "transit" ? "Please interpret this transit chart for ".concat(u2, ".\n\nKey transit cross-aspects:\n").concat(f2, "\n\nCover: (1) The most significant active transits and their themes, (2) Timing \u2014 what's applying vs separating, (3) Practical guidance \u2014 what to focus on now, (4) The overall energetic signature of this moment in time.") : "Please interpret this synastry bi-wheel between ".concat(u2, " and ").concat(d2, ".\n\nTop cross-wheel aspects:\n").concat(f2, "\n\nCover: (1) The core relational dynamic and overall compatibility theme, (2) The most significant planet-to-planet contacts and their meaning, (3) Areas of natural ease vs creative tension, (4) How each person experiences the other energetically."));
|
|
7933
7951
|
}
|
|
7934
|
-
async function
|
|
7952
|
+
async function Xy() {
|
|
7935
7953
|
var e5, t2, n2, r2, i2, a2;
|
|
7936
7954
|
if (!$) return;
|
|
7937
7955
|
let o2 = $, s2 = (e5 = o2.mode) == null ? "synastry" : e5, c2 = String((t2 = (n2 = o2._birth_params_inner) == null ? void 0 : n2.location) == null ? "Person 1" : t2), l2 = s2 === "transit" ? "today's transits" : String((r2 = (i2 = o2._birth_params_outer) == null ? void 0 : i2.location) == null ? "Person 2" : r2), u2 = ((a2 = o2.cross_aspects) == null ? [] : a2).slice(0, 6).map((e6) => "".concat(e6.planet1, " ").concat(e6.type, " ").concat(e6.planet2, " (").concat(e6.orb.toFixed(1), "\xB0)")).join(", ") || "none detected";
|
|
7938
|
-
await
|
|
7956
|
+
await Ny(s2 === "transit" ? "I'm exploring a transit chart for ".concat(c2, ". The active cross-aspects include: ").concat(u2, ".\n\nBased on these transits, please suggest 3-4 specific, insightful questions I could ask to understand this moment \u2014 such as what each transit means for different life areas, timing, or how to work with the energy consciously. Present each as a tappable question I can ask you.") : "I'm exploring a synastry chart between ".concat(c2, " and ").concat(l2, ". The key cross-wheel contacts include: ").concat(u2, ".\n\nBased on these connections, please suggest 3-4 specific, insightful questions I could ask to understand this relationship dynamic \u2014 such as what specific aspects mean, areas of natural ease or tension, or how these two charts interact. Present each as a tappable question I can ask you."));
|
|
7939
7957
|
}
|
|
7940
|
-
async function
|
|
7941
|
-
if (
|
|
7958
|
+
async function Zy(e5) {
|
|
7959
|
+
if (Sy) try {
|
|
7942
7960
|
var t2;
|
|
7943
|
-
await
|
|
7961
|
+
await by.updateModelContext({ content: [{ type: "text", text: "User selected ".concat(e5.type, ": ").concat(JSON.stringify(e5.data, null, 2), "\nMode: ").concat((t2 = $ == null ? void 0 : $.mode) == null ? "synastry" : t2) }] });
|
|
7944
7962
|
} catch (e6) {
|
|
7945
7963
|
}
|
|
7946
7964
|
}
|
|
7947
|
-
function
|
|
7948
|
-
if (
|
|
7965
|
+
function Qy() {
|
|
7966
|
+
if (Cy) return async (e5) => {
|
|
7949
7967
|
var t2;
|
|
7950
|
-
let n2 = await
|
|
7968
|
+
let n2 = await by.createSamplingMessage({ maxTokens: 150, systemPrompt: "You are an expert astrologer interpreting a ".concat(($ == null ? void 0 : $.mode) === "synastry" ? "synastry (relationship)" : "".concat((t2 = $ == null ? void 0 : $.mode) == null ? "transit" : t2, " (planetary weather)"), " chart. Give a focused, mode-appropriate interpretation. Insightful and concise."), messages: [{ role: "user", content: { type: "text", text: e5 } }] });
|
|
7951
7969
|
if (n2.isError) {
|
|
7952
7970
|
var r2, i2;
|
|
7953
7971
|
throw Error((r2 = (i2 = n2.error) == null ? void 0 : i2.message) == null ? "Sampling failed" : r2);
|
|
@@ -7957,133 +7975,133 @@ function Xy() {
|
|
|
7957
7975
|
throw Error("Unexpected sampling response format");
|
|
7958
7976
|
};
|
|
7959
7977
|
}
|
|
7960
|
-
function
|
|
7978
|
+
function $y(e5) {
|
|
7961
7979
|
var t2, n2, r2, i2, a2, o2, s2;
|
|
7962
|
-
$ = e5, clearTimeout(
|
|
7963
|
-
let c2 =
|
|
7964
|
-
|
|
7980
|
+
$ = e5, clearTimeout(sb), Hy(e5), Vv(fy, e5, ib, ab, Jy, Qy()), Ry(), qy(e5, By);
|
|
7981
|
+
let c2 = ev(e5.inner), l2 = ev(e5.outer), u2 = (n2 = (r2 = (i2 = ((t2 = e5.inner_houses) == null ? [] : t2)[0]) == null ? void 0 : i2.cusp_lon) == null ? e5.ascendant : r2) == null ? 0 : n2;
|
|
7982
|
+
nb(Fv((a2 = e5.cross_aspects) == null ? [] : a2), c2, l2, u2), e5.house_system && (wy = e5.house_system);
|
|
7965
7983
|
let d2 = document.getElementById("bi-action-bar");
|
|
7966
7984
|
if (!d2) {
|
|
7967
7985
|
d2 = document.createElement("div"), d2.id = "bi-action-bar", d2.className = "hd-action-bar";
|
|
7968
7986
|
let e6 = document.querySelector("#fs-bottom-bar [data-column='right']");
|
|
7969
7987
|
if (e6) e6.appendChild(d2);
|
|
7970
7988
|
else {
|
|
7971
|
-
let e7 = document.getElementById("app"), t3 =
|
|
7989
|
+
let e7 = document.getElementById("app"), t3 = my.parentElement === e7 ? my : null;
|
|
7972
7990
|
e7 == null || e7.insertBefore(d2, t3);
|
|
7973
7991
|
}
|
|
7974
7992
|
}
|
|
7975
|
-
d2.innerHTML = '\n <button class="action-btn action-btn--primary" id="bi-interpret-btn">\u2728 Interpret this chart</button>\n <button class="action-btn" id="bi-questions-btn">\u{1F52E} What should I ask?</button>\n ', (o2 = d2.querySelector("#bi-interpret-btn")) == null || o2.addEventListener("click", () => void
|
|
7993
|
+
d2.innerHTML = '\n <button class="action-btn action-btn--primary" id="bi-interpret-btn">\u2728 Interpret this chart</button>\n <button class="action-btn" id="bi-questions-btn">\u{1F52E} What should I ask?</button>\n ', (o2 = d2.querySelector("#bi-interpret-btn")) == null || o2.addEventListener("click", () => void Yy()), (s2 = d2.querySelector("#bi-questions-btn")) == null || s2.addEventListener("click", () => void Xy()), Oy(), Ay(), iy("bi-wheel");
|
|
7976
7994
|
}
|
|
7977
|
-
var
|
|
7978
|
-
function
|
|
7979
|
-
if (!
|
|
7995
|
+
var eb = null, tb = { "Cross Trine": "#52a8e0", "Cross T-Square": "#e08a52", "Cross Stellium": "#9a7fd4" };
|
|
7996
|
+
function nb(e5, t2, n2, r2) {
|
|
7997
|
+
if (!vy) return;
|
|
7980
7998
|
if (e5.length === 0) {
|
|
7981
|
-
|
|
7999
|
+
vy.hidden = true, vy.innerHTML = "";
|
|
7982
8000
|
return;
|
|
7983
8001
|
}
|
|
7984
|
-
|
|
8002
|
+
eb = null, vy.innerHTML = '\n <span class="patterns-label">Cross-Patterns:</span>\n '.concat(e5.map((e6, t3) => {
|
|
7985
8003
|
var n3;
|
|
7986
|
-
let r3 = (n3 =
|
|
8004
|
+
let r3 = (n3 = tb[e6.name]) == null ? "#888" : n3;
|
|
7987
8005
|
return '<button class="pattern-pill"\n data-idx="'.concat(t3, '"\n data-color="').concat(r3, '"\n style="color:').concat(r3, ";border-color:").concat(r3, '"\n title="').concat(e6.description, '">\n ').concat(e6.name, '\n <span class="pattern-pill-detail">').concat(e6.description, "</span>\n </button>");
|
|
7988
|
-
}).join(""), "\n "),
|
|
8006
|
+
}).join(""), "\n "), vy.removeAttribute("hidden");
|
|
7989
8007
|
let i2 = document.createElement("button");
|
|
7990
|
-
i2.className = "pattern-ask-claude-btn", i2.textContent = "\u2728 Interpret", i2.style.display = "none",
|
|
8008
|
+
i2.className = "pattern-ask-claude-btn", i2.textContent = "\u2728 Interpret", i2.style.display = "none", vy.appendChild(i2), i2.addEventListener("click", () => {
|
|
7991
8009
|
var t3;
|
|
7992
|
-
let n3 =
|
|
8010
|
+
let n3 = eb;
|
|
7993
8011
|
if (n3 === null) return;
|
|
7994
8012
|
let r3 = e5[n3];
|
|
7995
|
-
r3 && (i2.disabled = true, i2.textContent = "\u23F3 Sending\u2026",
|
|
8013
|
+
r3 && (i2.disabled = true, i2.textContent = "\u23F3 Sending\u2026", Jy({ type: "pattern", data: { name: r3.name, planets: r3.planets, description: (t3 = r3.description) == null ? "" : t3 } }).then(() => {
|
|
7996
8014
|
i2.textContent = "\u2713 Sent", setTimeout(() => {
|
|
7997
8015
|
i2.textContent = "\u2728 Interpret", i2.disabled = false;
|
|
7998
8016
|
}, 2500);
|
|
7999
8017
|
}).catch(() => {
|
|
8000
8018
|
i2.textContent = "\u26A0 Failed", i2.disabled = false;
|
|
8001
8019
|
}));
|
|
8002
|
-
}),
|
|
8020
|
+
}), vy.querySelectorAll(".pattern-pill").forEach((a2) => {
|
|
8003
8021
|
a2.addEventListener("click", () => {
|
|
8004
8022
|
var o2, s2;
|
|
8005
8023
|
let c2 = parseInt((o2 = a2.dataset.idx) == null ? "-1" : o2, 10), l2 = e5[c2];
|
|
8006
8024
|
if (!l2) return;
|
|
8007
8025
|
let u2 = (s2 = a2.dataset.color) == null ? "#888" : s2;
|
|
8008
|
-
if (
|
|
8009
|
-
|
|
8026
|
+
if (eb === c2) {
|
|
8027
|
+
eb = null, a2.classList.remove("active"), a2.style.background = "transparent", a2.style.color = u2, a2.style.borderColor = u2, Av(), zv(), i2.style.display = "none";
|
|
8010
8028
|
return;
|
|
8011
8029
|
}
|
|
8012
|
-
|
|
8030
|
+
eb = c2, vy.querySelectorAll(".pattern-pill").forEach((e6) => {
|
|
8013
8031
|
var t3;
|
|
8014
8032
|
e6.classList.remove("active");
|
|
8015
8033
|
let n3 = (t3 = e6.dataset.color) == null ? "#888" : t3;
|
|
8016
8034
|
e6.style.color = n3, e6.style.borderColor = n3, e6.style.background = "transparent";
|
|
8017
|
-
}), a2.classList.add("active"), a2.style.background = u2, a2.style.color = "#fff", a2.style.borderColor = u2,
|
|
8035
|
+
}), a2.classList.add("active"), a2.style.background = u2, a2.style.color = "#fff", a2.style.borderColor = u2, Bv(l2), zv(), Rv(l2, t2, n2, r2), i2.style.display = "", i2.textContent = "\u2728 Interpret", i2.disabled = false;
|
|
8018
8036
|
});
|
|
8019
8037
|
});
|
|
8020
8038
|
}
|
|
8021
|
-
async function
|
|
8039
|
+
async function rb(e5) {
|
|
8022
8040
|
if (!$) return;
|
|
8023
8041
|
let t2 = $;
|
|
8024
|
-
|
|
8042
|
+
ky();
|
|
8025
8043
|
try {
|
|
8026
8044
|
var n2, r2, i2, a2, o2, s2, c2, l2, u2, d2;
|
|
8027
|
-
let f2 = new Promise((e6, t3) => setTimeout(() => t3(Error("House system recalculate timed out")), 3e4)), p2 =
|
|
8028
|
-
p2 ?
|
|
8045
|
+
let f2 = new Promise((e6, t3) => setTimeout(() => t3(Error("House system recalculate timed out")), 3e4)), p2 = Py(await Promise.race([by.callServerTool({ name: "bi_wheel_recalculate", arguments: { mode: t2.mode, person1_datetime: (n2 = t2._birth_params_inner) == null ? void 0 : n2.datetime, person1_latitude: (r2 = t2._birth_params_inner) == null ? void 0 : r2.latitude, person1_longitude: (i2 = t2._birth_params_inner) == null ? void 0 : i2.longitude, person1_timezone: (a2 = t2._birth_params_inner) == null ? void 0 : a2.timezone, person1_name: (o2 = t2._birth_params_inner) == null ? void 0 : o2.location, person2_datetime: (s2 = t2._birth_params_outer) == null ? void 0 : s2.datetime, person2_latitude: (c2 = t2._birth_params_outer) == null ? void 0 : c2.latitude, person2_longitude: (l2 = t2._birth_params_outer) == null ? void 0 : l2.longitude, person2_timezone: (u2 = t2._birth_params_outer) == null ? void 0 : u2.timezone, person2_name: (d2 = t2._birth_params_outer) == null ? void 0 : d2.location, house_system: e5 } }), f2]));
|
|
8046
|
+
p2 ? $y(p2) : $ && Oy();
|
|
8029
8047
|
} catch (e6) {
|
|
8030
|
-
console.error("[BiWheel] House system recalculate failed:", e6), $ &&
|
|
8048
|
+
console.error("[BiWheel] House system recalculate failed:", e6), $ && Oy();
|
|
8031
8049
|
}
|
|
8032
8050
|
}
|
|
8033
|
-
function
|
|
8051
|
+
function ib(e5, t2, n2) {
|
|
8034
8052
|
var r2, i2, a2, o2, s2;
|
|
8035
8053
|
let c2 = Math.floor((e5.longitude % 360 + 360) % 360 / 30), l2 = (r2 = (i2 = e5.sign) == null ? ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"][c2] : i2) == null ? "Unknown" : r2;
|
|
8036
|
-
|
|
8054
|
+
Zy({ type: "planet", data: { planet_name: e5.name, wheel: t2, longitude: e5.longitude, sign: l2, position: "".concat(Math.floor(e5.longitude % 30), "\xB0 ").concat(l2), house: (a2 = e5.house) == null ? null : a2, retrograde: (o2 = e5.retrograde) == null ? false : o2, mode: (s2 = $ == null ? void 0 : $.mode) == null ? "synastry" : s2, cross_aspects: n2.filter((n3) => t2 === "inner" && n3.planet1 === e5.name || t2 === "outer" && n3.planet2 === e5.name).slice(0, 5).map((e6) => ({ type: e6.type, partner: t2 === "inner" ? e6.planet2 : e6.planet1, orb: e6.orb, applying: e6.applying, orb_label: e6.orb <= 1 ? "exact" : e6.orb <= 3 ? "tight" : "wide" })) } });
|
|
8037
8055
|
}
|
|
8038
|
-
function
|
|
8056
|
+
function ab(e5) {
|
|
8039
8057
|
var t2;
|
|
8040
8058
|
let n2 = $ == null ? void 0 : $.inner.find((t3) => t3.name === e5.planet1), r2 = $ == null ? void 0 : $.outer.find((t3) => t3.name === e5.planet2), i2 = n2 ? Math.floor((n2.longitude % 360 + 360) % 360 / 30) : NaN, a2 = r2 ? Math.floor((r2.longitude % 360 + 360) % 360 / 30) : NaN, o2 = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"];
|
|
8041
|
-
|
|
8059
|
+
Zy({ type: "cross_aspect", data: { planet1: e5.planet1, wheel1: e5.wheel1, planet2: e5.planet2, wheel2: e5.wheel2, aspect_type: e5.type, orb: e5.orb, applying: e5.applying, planet1_sign: isNaN(i2) ? null : o2[i2], planet2_sign: isNaN(a2) ? null : o2[a2], mode: (t2 = $ == null ? void 0 : $.mode) == null ? "synastry" : t2 } });
|
|
8042
8060
|
}
|
|
8043
|
-
|
|
8044
|
-
clearTimeout(
|
|
8045
|
-
let t2 =
|
|
8061
|
+
by.ontoolresult = (e5) => {
|
|
8062
|
+
clearTimeout(sb);
|
|
8063
|
+
let t2 = Py(e5);
|
|
8046
8064
|
if (!t2) {
|
|
8047
|
-
|
|
8065
|
+
jy("The chart didn't load. Tap to try again.", ob);
|
|
8048
8066
|
return;
|
|
8049
8067
|
}
|
|
8050
|
-
if (!
|
|
8068
|
+
if (!xy) {
|
|
8051
8069
|
var n2, r2, i2, a2;
|
|
8052
8070
|
let e6 = (n2 = t2._birth_params_outer) == null ? {} : n2, o2 = (r2 = e6.datetime) == null ? "" : r2, s2 = (i2 = e6.location) == null ? "" : i2, c2 = (a2 = e6.timezone) == null ? "" : a2, l2 = e6.latitude, u2 = e6.longitude, d2 = "", f2 = "12:00";
|
|
8053
8071
|
if (o2 && o2.includes("T")) {
|
|
8054
8072
|
let e7 = o2.split("T");
|
|
8055
8073
|
d2 = e7[0], f2 = e7[1].substring(0, 5);
|
|
8056
8074
|
}
|
|
8057
|
-
|
|
8058
|
-
|
|
8075
|
+
xy = new Xv({ app: by, container: yy, initialParams: { date: d2, time: f2, locationName: s2, timezone: c2, latitude: typeof l2 == "number" ? l2 : null, longitude: typeof u2 == "number" ? u2 : null }, showStepControls: t2.mode === "transit", costHint: "~2 credits", onRefresh: async (e7) => {
|
|
8076
|
+
xy == null || xy.setBusy(true), ky(), yy.setAttribute("hidden", "");
|
|
8059
8077
|
try {
|
|
8060
8078
|
var n3, r3, i3, a3, o3;
|
|
8061
|
-
let s3 = "".concat(e7.date, "T").concat(e7.time, ":00"), c3 = new Promise((e8, t3) => setTimeout(() => t3(Error("Bi-wheel recalculate timed out after 30s")), 3e4)), l3 =
|
|
8062
|
-
l3 ?
|
|
8079
|
+
let s3 = "".concat(e7.date, "T").concat(e7.time, ":00"), c3 = new Promise((e8, t3) => setTimeout(() => t3(Error("Bi-wheel recalculate timed out after 30s")), 3e4)), l3 = Py(await Promise.race([by.callServerTool({ name: "bi_wheel_recalculate", arguments: { mode: t2.mode, person1_datetime: (n3 = t2._birth_params_inner) == null ? void 0 : n3.datetime, person1_latitude: (r3 = t2._birth_params_inner) == null ? void 0 : r3.latitude, person1_longitude: (i3 = t2._birth_params_inner) == null ? void 0 : i3.longitude, person1_timezone: (a3 = t2._birth_params_inner) == null ? void 0 : a3.timezone, person1_name: (o3 = t2._birth_params_inner) == null ? void 0 : o3.location, person2_datetime: "".concat(s3).concat(e7.timezone ? "" : "Z"), person2_latitude: e7.latitude, person2_longitude: e7.longitude, person2_timezone: e7.timezone, person2_name: e7.locationName } }), c3]));
|
|
8080
|
+
l3 ? $y(l3) : $ && Oy();
|
|
8063
8081
|
} catch (e8) {
|
|
8064
|
-
console.error("[BiWheel] Recalculate failed or timed out:", e8), $ &&
|
|
8082
|
+
console.error("[BiWheel] Recalculate failed or timed out:", e8), $ && Oy();
|
|
8065
8083
|
} finally {
|
|
8066
|
-
|
|
8084
|
+
xy == null || xy.setBusy(false), yy.removeAttribute("hidden");
|
|
8067
8085
|
}
|
|
8068
8086
|
} });
|
|
8069
8087
|
}
|
|
8070
|
-
|
|
8088
|
+
$y(t2), yy.removeAttribute("hidden");
|
|
8071
8089
|
};
|
|
8072
|
-
function
|
|
8073
|
-
clearTimeout(
|
|
8074
|
-
|
|
8075
|
-
}, 3e4),
|
|
8090
|
+
function ob() {
|
|
8091
|
+
clearTimeout(sb), Dy(), sb = setTimeout(() => {
|
|
8092
|
+
fy.hidden && jy("The chart didn't load. Tap to try again.", ob);
|
|
8093
|
+
}, 3e4), by.sendMessage({ role: "user", content: [{ type: "text", text: "Please regenerate the bi-wheel chart." }] }).catch(() => {
|
|
8076
8094
|
});
|
|
8077
8095
|
}
|
|
8078
|
-
var
|
|
8079
|
-
|
|
8096
|
+
var sb = setTimeout(() => {
|
|
8097
|
+
fy.hidden && jy("Chart data is taking longer than expected.", ob);
|
|
8080
8098
|
}, 3e4);
|
|
8081
|
-
|
|
8099
|
+
Dy(), ly(by, { loadingEl: py, contentEl: fy, statusFn: Ey, paramControls: () => xy }), (async () => {
|
|
8082
8100
|
try {
|
|
8083
|
-
await
|
|
8084
|
-
let e5 =
|
|
8085
|
-
|
|
8086
|
-
$ &&
|
|
8101
|
+
await by.connect();
|
|
8102
|
+
let e5 = by.getHostCapabilities();
|
|
8103
|
+
Sy = !!(e5 != null && e5.modelContext), Cy = !!(e5 != null && e5.sampling), cy(by, document.getElementById("pan-zoom-controls"), ["mode-badge", "aspect-filter", "param-controls-container", "chart-provenance", "bi-patterns-strip", "bi-action-bar"]), dy(by), g_(by, () => {
|
|
8104
|
+
$ && $y($);
|
|
8087
8105
|
});
|
|
8088
8106
|
} catch (e5) {
|
|
8089
8107
|
console.error("[BiWheel] connect() failed:", e5);
|