urbi-exhibitions
Version:
1,349 lines • 61.1 kB
JavaScript
import { jsxs as R, jsx as u, Fragment as fe } from "react/jsx-runtime";
import * as Dt from "react";
import { memo as cA, useState as qA, useMemo as PA, useEffect as gA, createContext as de, useContext as pe, useCallback as WA } from "react";
import { renderToStaticMarkup as TA } from "react-dom/server";
import { d as ge } from "../index-Brsqgp8S.js";
import { c as lA, g as Lt } from "../_commonjsHelpers-DaMA6jEr.js";
import { a as Yt, c as vA } from "../cn-BYe7EnTr.js";
import { u as jt } from "../exhibitionContext-C8CeOMRn.js";
var at, Ct;
function he() {
if (Ct) return at;
Ct = 1;
var a = 9007199254740991, c = "[object Arguments]", s = "[object Function]", g = "[object GeneratorFunction]", l = typeof lA == "object" && lA && lA.Object === Object && lA, h = typeof self == "object" && self && self.Object === Object && self, p = l || h || Function("return this")();
function L(o, Q) {
for (var T = -1, AA = Q.length, x = o.length; ++T < AA; )
o[x + T] = Q[T];
return o;
}
var y = Object.prototype, C = y.hasOwnProperty, w = y.toString, m = p.Symbol, N = y.propertyIsEnumerable, j = m ? m.isConcatSpreadable : void 0;
function E(o, Q, T, AA, x) {
var K = -1, VA = o.length;
for (T || (T = k), x || (x = []); ++K < VA; ) {
var f = o[K];
T(f) ? L(x, f) : x[x.length] = f;
}
return x;
}
function k(o) {
return B(o) || J(o) || !!(j && o && o[j]);
}
function O(o) {
var Q = o ? o.length : 0;
return Q ? E(o) : [];
}
function J(o) {
return P(o) && C.call(o, "callee") && (!N.call(o, "callee") || w.call(o) == c);
}
var B = Array.isArray;
function _(o) {
return o != null && H(o.length) && !X(o);
}
function P(o) {
return $(o) && _(o);
}
function X(o) {
var Q = I(o) ? w.call(o) : "";
return Q == s || Q == g;
}
function H(o) {
return typeof o == "number" && o > -1 && o % 1 == 0 && o <= a;
}
function I(o) {
var Q = typeof o;
return !!o && (Q == "object" || Q == "function");
}
function $(o) {
return !!o && typeof o == "object";
}
return at = O, at;
}
var be = he();
const me = /* @__PURE__ */ Lt(be), Mt = 14, We = 10, KA = cA(
({
tooltipPosition: a = "top",
icon: c,
children: s,
size: g = 20,
aura: l,
isTooltipTransparent: h
}) => {
const p = l === "static-half" ? Mt / 2 : Mt, L = p + (l ? We : 0) + g / 2;
return /* @__PURE__ */ R(
"div",
{
"data-marker": "",
className: "relative cursor-pointer",
children: [
/* @__PURE__ */ u(
"div",
{
style: {
height: `${g}px`,
width: `${g}px`,
borderWidth: l ? p : void 0
},
className: "border-th-marker-aura absolute box-content -translate-y-1/2 rounded-full ltr:-translate-x-1/2 rtl:translate-x-1/2",
children: /* @__PURE__ */ u(
"div",
{
className: "bg-th-marker relative flex items-center justify-center rounded-full",
style: { height: `${g}px`, width: `${g}px` },
children: c
}
)
}
),
s && /* @__PURE__ */ R(
"div",
{
style: {
top: a === "bottom" ? L : void 0,
bottom: a === "top" ? L : void 0
},
className: Yt(
"t-medium bg-clr-control text-clr-control-text absolute text-[14px] leading-[17px] ltr:-translate-x-1/2 rtl:translate-x-1/2",
!h && "card-base rounded-[13px] px-[9px] py-[7px]"
),
children: [
s,
!h && /* @__PURE__ */ u(
"div",
{
className: Yt(
"absolute h-0 w-0 backdrop-blur-[20px] ltr:left-1/2 ltr:-translate-x-1/2 rtl:right-1/2 rtl:translate-x-1/2",
a === "top" ? "border-t-clr-control top-full border-x-[9px] border-t-[6px] border-x-white/0" : "border-b-clr-control bottom-full border-x-[9px] border-b-[6px] border-x-white/0"
)
}
)
]
}
)
]
}
);
}
);
KA.displayName = "Marker";
const BA = 18, It = cA(
({
tooltipPosition: a = "top",
children: c
}) => /* @__PURE__ */ R("div", { className: "relative cursor-pointer", children: [
/* @__PURE__ */ u(
"div",
{
style: {
height: `${BA}px`,
width: `${BA}px`
},
className: vA(
"absolute z-10 box-content -translate-y-1/2 rounded-full backdrop-blur-[10px] ltr:-translate-x-1/2 rtl:translate-x-1/2"
),
children: /* @__PURE__ */ u(
"div",
{
className: vA(
"relative flex items-center justify-center rounded-full",
"border-th-marker-stroke border-[4px] bg-white"
),
style: {
height: `${BA}px`,
width: `${BA}px`
}
}
)
}
),
c && /* @__PURE__ */ R(fe, { children: [
/* @__PURE__ */ u(
"div",
{
className: "bg-th-marker absolute inset-y-0 left-[2px] h-[250px] w-[2px] origin-top",
style: {
rotate: ve(a)
}
}
),
/* @__PURE__ */ u(
"div",
{
className: vA(
"t-medium absolute text-[14px] leading-[17px]",
qe(a)
),
children: c
}
)
] })
] })
), qe = (a) => {
switch (a) {
case "bottom":
return "-translate-x-1/2 top-[210px]";
case "top":
return "-translate-x-1/2 bottom-[210px]";
case "left":
return "-translate-x-full -translate-y-1/2 left-[-64px]";
case "right":
return "-translate-y-1/2 left-[64px]";
case "top-left":
return "-translate-x-full bottom-[140px] left-[-140px]";
case "top-right":
return "bottom-[140px] left-[140px]";
case "bottom-left":
return "-translate-x-full left-[-140px] top-[140px]";
case "bottom-right":
return "left-[140px] top-[140px]";
}
}, ve = (a) => {
switch (a) {
case "top-right":
return "-135deg";
case "top-left":
return "135deg";
case "bottom-right":
return "-45deg";
case "bottom-left":
return "45deg";
case "bottom":
return "0deg";
case "top":
return "180deg";
case "right":
return "-90deg";
case "left":
return "90deg";
}
};
It.displayName = "PovMarker";
var XA = { exports: {} };
XA.exports;
var Nt;
function Ve() {
return Nt || (Nt = 1, function(a, c) {
var s = 200, g = "Expected a function", l = "__lodash_hash_undefined__", h = 1, p = 2, L = 1 / 0, y = 9007199254740991, C = "[object Arguments]", w = "[object Array]", m = "[object Boolean]", N = "[object Date]", j = "[object Error]", E = "[object Function]", k = "[object GeneratorFunction]", O = "[object Map]", J = "[object Number]", B = "[object Object]", _ = "[object Promise]", P = "[object RegExp]", X = "[object Set]", H = "[object String]", I = "[object Symbol]", $ = "[object WeakMap]", o = "[object ArrayBuffer]", Q = "[object DataView]", T = "[object Float32Array]", AA = "[object Float64Array]", x = "[object Int8Array]", K = "[object Int16Array]", VA = "[object Int32Array]", f = "[object Uint8Array]", q = "[object Uint8ClampedArray]", W = "[object Uint16Array]", D = "[object Uint32Array]", G = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, U = /^\w*$/, GA = /^\./, DA = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, YA = /[\\^$.*+?()[\]{}|]/g, CA = /\\(\\)?/g, MA = /^\[object .+?Constructor\]$/, zA = /^(?:0|[1-9]\d*)$/, v = {};
v[T] = v[AA] = v[x] = v[K] = v[VA] = v[f] = v[q] = v[W] = v[D] = !0, v[C] = v[w] = v[o] = v[m] = v[Q] = v[N] = v[j] = v[E] = v[O] = v[J] = v[B] = v[P] = v[X] = v[H] = v[$] = !1;
var st = typeof lA == "object" && lA && lA.Object === Object && lA, Ot = typeof self == "object" && self && self.Object === Object && self, sA = st || Ot || Function("return this")(), ot = c && !c.nodeType && c, it = ot && !0 && a && !a.nodeType && a, Tt = it && it.exports === ot, lt = Tt && st.process, ct = function() {
try {
return lt && lt.binding("util");
} catch {
}
}(), ut = ct && ct.isTypedArray;
function Bt(A, t) {
var r = A ? A.length : 0;
return !!r && zt(A, t, 0) > -1;
}
function Kt(A, t) {
for (var r = -1, e = A ? A.length : 0; ++r < e; )
if (t(A[r], r, A))
return !0;
return !1;
}
function Gt(A, t, r, e) {
for (var i = A.length, n = r + -1; ++n < i; )
if (t(A[n], n, A))
return n;
return -1;
}
function zt(A, t, r) {
if (t !== t)
return Gt(A, Ft, r);
for (var e = r - 1, i = A.length; ++e < i; )
if (A[e] === t)
return e;
return -1;
}
function Ft(A) {
return A !== A;
}
function Rt(A) {
return function(t) {
return t == null ? void 0 : t[A];
};
}
function Ut(A, t) {
for (var r = -1, e = Array(A); ++r < A; )
e[r] = t(r);
return e;
}
function kt(A) {
return function(t) {
return A(t);
};
}
function Jt(A, t) {
return A.has(t);
}
function _t(A, t) {
return A == null ? void 0 : A[t];
}
function FA(A) {
var t = !1;
if (A != null && typeof A.toString != "function")
try {
t = !!(A + "");
} catch {
}
return t;
}
function $t(A) {
var t = -1, r = Array(A.size);
return A.forEach(function(e, i) {
r[++t] = [i, e];
}), r;
}
function Ar(A, t) {
return function(r) {
return A(t(r));
};
}
function RA(A) {
var t = -1, r = Array(A.size);
return A.forEach(function(e) {
r[++t] = e;
}), r;
}
var tr = Array.prototype, rr = Function.prototype, NA = Object.prototype, UA = sA["__core-js_shared__"], ft = function() {
var A = /[^.]+$/.exec(UA && UA.keys && UA.keys.IE_PROTO || "");
return A ? "Symbol(src)_1." + A : "";
}(), dt = rr.toString, tA = NA.hasOwnProperty, hA = NA.toString, er = RegExp(
"^" + dt.call(tA).replace(YA, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
), pt = sA.Symbol, gt = sA.Uint8Array, nr = NA.propertyIsEnumerable, ar = tr.splice, sr = Ar(Object.keys, Object), kA = mA(sA, "DataView"), wA = mA(sA, "Map"), JA = mA(sA, "Promise"), bA = mA(sA, "Set"), _A = mA(sA, "WeakMap"), xA = mA(Object, "create"), or = fA(kA), ir = fA(wA), lr = fA(JA), cr = fA(bA), ur = fA(_A), ZA = pt ? pt.prototype : void 0, $A = ZA ? ZA.valueOf : void 0, ht = ZA ? ZA.toString : void 0;
function uA(A) {
var t = -1, r = A ? A.length : 0;
for (this.clear(); ++t < r; ) {
var e = A[t];
this.set(e[0], e[1]);
}
}
function fr() {
this.__data__ = xA ? xA(null) : {};
}
function dr(A) {
return this.has(A) && delete this.__data__[A];
}
function pr(A) {
var t = this.__data__;
if (xA) {
var r = t[A];
return r === l ? void 0 : r;
}
return tA.call(t, A) ? t[A] : void 0;
}
function gr(A) {
var t = this.__data__;
return xA ? t[A] !== void 0 : tA.call(t, A);
}
function hr(A, t) {
var r = this.__data__;
return r[A] = xA && t === void 0 ? l : t, this;
}
uA.prototype.clear = fr, uA.prototype.delete = dr, uA.prototype.get = pr, uA.prototype.has = gr, uA.prototype.set = hr;
function rA(A) {
var t = -1, r = A ? A.length : 0;
for (this.clear(); ++t < r; ) {
var e = A[t];
this.set(e[0], e[1]);
}
}
function br() {
this.__data__ = [];
}
function mr(A) {
var t = this.__data__, r = LA(t, A);
if (r < 0)
return !1;
var e = t.length - 1;
return r == e ? t.pop() : ar.call(t, r, 1), !0;
}
function Wr(A) {
var t = this.__data__, r = LA(t, A);
return r < 0 ? void 0 : t[r][1];
}
function qr(A) {
return LA(this.__data__, A) > -1;
}
function vr(A, t) {
var r = this.__data__, e = LA(r, A);
return e < 0 ? r.push([A, t]) : r[e][1] = t, this;
}
rA.prototype.clear = br, rA.prototype.delete = mr, rA.prototype.get = Wr, rA.prototype.has = qr, rA.prototype.set = vr;
function eA(A) {
var t = -1, r = A ? A.length : 0;
for (this.clear(); ++t < r; ) {
var e = A[t];
this.set(e[0], e[1]);
}
}
function Vr() {
this.__data__ = {
hash: new uA(),
map: new (wA || rA)(),
string: new uA()
};
}
function wr(A) {
return jA(this, A).delete(A);
}
function xr(A) {
return jA(this, A).get(A);
}
function yr(A) {
return jA(this, A).has(A);
}
function Pr(A, t) {
return jA(this, A).set(A, t), this;
}
eA.prototype.clear = Vr, eA.prototype.delete = wr, eA.prototype.get = xr, eA.prototype.has = yr, eA.prototype.set = Pr;
function yA(A) {
var t = -1, r = A ? A.length : 0;
for (this.__data__ = new eA(); ++t < r; )
this.add(A[t]);
}
function Xr(A) {
return this.__data__.set(A, l), this;
}
function Dr(A) {
return this.__data__.has(A);
}
yA.prototype.add = yA.prototype.push = Xr, yA.prototype.has = Dr;
function nA(A) {
this.__data__ = new rA(A);
}
function Yr() {
this.__data__ = new rA();
}
function Cr(A) {
return this.__data__.delete(A);
}
function Mr(A) {
return this.__data__.get(A);
}
function Nr(A) {
return this.__data__.has(A);
}
function Zr(A, t) {
var r = this.__data__;
if (r instanceof rA) {
var e = r.__data__;
if (!wA || e.length < s - 1)
return e.push([A, t]), this;
r = this.__data__ = new eA(e);
}
return r.set(A, t), this;
}
nA.prototype.clear = Yr, nA.prototype.delete = Cr, nA.prototype.get = Mr, nA.prototype.has = Nr, nA.prototype.set = Zr;
function Lr(A, t) {
var r = dA(A) || xt(A) ? Ut(A.length, String) : [], e = r.length, i = !!e;
for (var n in A)
tA.call(A, n) && !(i && (n == "length" || qt(n, e))) && r.push(n);
return r;
}
function LA(A, t) {
for (var r = A.length; r--; )
if (wt(A[r][0], t))
return r;
return -1;
}
function bt(A, t) {
t = IA(t, A) ? [t] : mt(t);
for (var r = 0, e = t.length; A != null && r < e; )
A = A[QA(t[r++])];
return r && r == e ? A : void 0;
}
function jr(A) {
return hA.call(A);
}
function Ir(A, t) {
return A != null && t in Object(A);
}
function At(A, t, r, e, i) {
return A === t ? !0 : A == null || t == null || !SA(A) && !EA(t) ? A !== A && t !== t : Qr(A, t, At, r, e, i);
}
function Qr(A, t, r, e, i, n) {
var d = dA(A), V = dA(t), b = w, Z = w;
d || (b = oA(A), b = b == C ? B : b), V || (Z = oA(t), Z = Z == C ? B : Z);
var Y = b == B && !FA(A), M = Z == B && !FA(t), S = b == Z;
if (S && !Y)
return n || (n = new nA()), d || ae(A) ? Wt(A, t, r, e, i, n) : Ur(A, t, b, r, e, i, n);
if (!(i & p)) {
var z = Y && tA.call(A, "__wrapped__"), F = M && tA.call(t, "__wrapped__");
if (z || F) {
var iA = z ? A.value() : A, aA = F ? t.value() : t;
return n || (n = new nA()), r(iA, aA, e, i, n);
}
}
return S ? (n || (n = new nA()), kr(A, t, r, e, i, n)) : !1;
}
function Sr(A, t, r, e) {
var i = r.length, n = i;
if (A == null)
return !n;
for (A = Object(A); i--; ) {
var d = r[i];
if (d[2] ? d[1] !== A[d[0]] : !(d[0] in A))
return !1;
}
for (; ++i < n; ) {
d = r[i];
var V = d[0], b = A[V], Z = d[1];
if (d[2]) {
if (b === void 0 && !(V in A))
return !1;
} else {
var Y = new nA(), M;
if (!(M === void 0 ? At(Z, b, e, h | p, Y) : M))
return !1;
}
}
return !0;
}
function Er(A) {
if (!SA(A) || Ae(A))
return !1;
var t = Pt(A) || FA(A) ? er : MA;
return t.test(fA(A));
}
function Hr(A) {
return EA(A) && rt(A.length) && !!v[hA.call(A)];
}
function Or(A) {
return typeof A == "function" ? A : A == null ? le : typeof A == "object" ? dA(A) ? Kr(A[0], A[1]) : Br(A) : ue(A);
}
function Tr(A) {
if (!te(A))
return sr(A);
var t = [];
for (var r in Object(A))
tA.call(A, r) && r != "constructor" && t.push(r);
return t;
}
function Br(A) {
var t = Jr(A);
return t.length == 1 && t[0][2] ? Vt(t[0][0], t[0][1]) : function(r) {
return r === A || Sr(r, A, t);
};
}
function Kr(A, t) {
return IA(A) && vt(t) ? Vt(QA(A), t) : function(r) {
var e = oe(r, A);
return e === void 0 && e === t ? ie(r, A) : At(t, e, void 0, h | p);
};
}
function Gr(A) {
return function(t) {
return bt(t, A);
};
}
function zr(A) {
if (typeof A == "string")
return A;
if (et(A))
return ht ? ht.call(A) : "";
var t = A + "";
return t == "0" && 1 / A == -1 / 0 ? "-0" : t;
}
function Fr(A, t, r) {
var e = -1, i = Bt, n = A.length, d = !0, V = [], b = V;
if (n >= s) {
var Z = t ? null : Rr(A);
if (Z)
return RA(Z);
d = !1, i = Jt, b = new yA();
} else
b = t ? [] : V;
A:
for (; ++e < n; ) {
var Y = A[e], M = t ? t(Y) : Y;
if (Y = Y !== 0 ? Y : 0, d && M === M) {
for (var S = b.length; S--; )
if (b[S] === M)
continue A;
t && b.push(M), V.push(Y);
} else i(b, M, r) || (b !== V && b.push(M), V.push(Y));
}
return V;
}
function mt(A) {
return dA(A) ? A : re(A);
}
var Rr = bA && 1 / RA(new bA([, -0]))[1] == L ? function(A) {
return new bA(A);
} : ce;
function Wt(A, t, r, e, i, n) {
var d = i & p, V = A.length, b = t.length;
if (V != b && !(d && b > V))
return !1;
var Z = n.get(A);
if (Z && n.get(t))
return Z == t;
var Y = -1, M = !0, S = i & h ? new yA() : void 0;
for (n.set(A, t), n.set(t, A); ++Y < V; ) {
var z = A[Y], F = t[Y];
if (e)
var iA = d ? e(F, z, Y, t, A, n) : e(z, F, Y, A, t, n);
if (iA !== void 0) {
if (iA)
continue;
M = !1;
break;
}
if (S) {
if (!Kt(t, function(aA, pA) {
if (!S.has(pA) && (z === aA || r(z, aA, e, i, n)))
return S.add(pA);
})) {
M = !1;
break;
}
} else if (!(z === F || r(z, F, e, i, n))) {
M = !1;
break;
}
}
return n.delete(A), n.delete(t), M;
}
function Ur(A, t, r, e, i, n, d) {
switch (r) {
case Q:
if (A.byteLength != t.byteLength || A.byteOffset != t.byteOffset)
return !1;
A = A.buffer, t = t.buffer;
case o:
return !(A.byteLength != t.byteLength || !e(new gt(A), new gt(t)));
case m:
case N:
case J:
return wt(+A, +t);
case j:
return A.name == t.name && A.message == t.message;
case P:
case H:
return A == t + "";
case O:
var V = $t;
case X:
var b = n & p;
if (V || (V = RA), A.size != t.size && !b)
return !1;
var Z = d.get(A);
if (Z)
return Z == t;
n |= h, d.set(A, t);
var Y = Wt(V(A), V(t), e, i, n, d);
return d.delete(A), Y;
case I:
if ($A)
return $A.call(A) == $A.call(t);
}
return !1;
}
function kr(A, t, r, e, i, n) {
var d = i & p, V = nt(A), b = V.length, Z = nt(t), Y = Z.length;
if (b != Y && !d)
return !1;
for (var M = b; M--; ) {
var S = V[M];
if (!(d ? S in t : tA.call(t, S)))
return !1;
}
var z = n.get(A);
if (z && n.get(t))
return z == t;
var F = !0;
n.set(A, t), n.set(t, A);
for (var iA = d; ++M < b; ) {
S = V[M];
var aA = A[S], pA = t[S];
if (e)
var Xt = d ? e(pA, aA, S, t, A, n) : e(aA, pA, S, A, t, n);
if (!(Xt === void 0 ? aA === pA || r(aA, pA, e, i, n) : Xt)) {
F = !1;
break;
}
iA || (iA = S == "constructor");
}
if (F && !iA) {
var HA = A.constructor, OA = t.constructor;
HA != OA && "constructor" in A && "constructor" in t && !(typeof HA == "function" && HA instanceof HA && typeof OA == "function" && OA instanceof OA) && (F = !1);
}
return n.delete(A), n.delete(t), F;
}
function jA(A, t) {
var r = A.__data__;
return $r(t) ? r[typeof t == "string" ? "string" : "hash"] : r.map;
}
function Jr(A) {
for (var t = nt(A), r = t.length; r--; ) {
var e = t[r], i = A[e];
t[r] = [e, i, vt(i)];
}
return t;
}
function mA(A, t) {
var r = _t(A, t);
return Er(r) ? r : void 0;
}
var oA = jr;
(kA && oA(new kA(new ArrayBuffer(1))) != Q || wA && oA(new wA()) != O || JA && oA(JA.resolve()) != _ || bA && oA(new bA()) != X || _A && oA(new _A()) != $) && (oA = function(A) {
var t = hA.call(A), r = t == B ? A.constructor : void 0, e = r ? fA(r) : void 0;
if (e)
switch (e) {
case or:
return Q;
case ir:
return O;
case lr:
return _;
case cr:
return X;
case ur:
return $;
}
return t;
});
function _r(A, t, r) {
t = IA(t, A) ? [t] : mt(t);
for (var e, i = -1, d = t.length; ++i < d; ) {
var n = QA(t[i]);
if (!(e = A != null && r(A, n)))
break;
A = A[n];
}
if (e)
return e;
var d = A ? A.length : 0;
return !!d && rt(d) && qt(n, d) && (dA(A) || xt(A));
}
function qt(A, t) {
return t = t ?? y, !!t && (typeof A == "number" || zA.test(A)) && A > -1 && A % 1 == 0 && A < t;
}
function IA(A, t) {
if (dA(A))
return !1;
var r = typeof A;
return r == "number" || r == "symbol" || r == "boolean" || A == null || et(A) ? !0 : U.test(A) || !G.test(A) || t != null && A in Object(t);
}
function $r(A) {
var t = typeof A;
return t == "string" || t == "number" || t == "symbol" || t == "boolean" ? A !== "__proto__" : A === null;
}
function Ae(A) {
return !!ft && ft in A;
}
function te(A) {
var t = A && A.constructor, r = typeof t == "function" && t.prototype || NA;
return A === r;
}
function vt(A) {
return A === A && !SA(A);
}
function Vt(A, t) {
return function(r) {
return r == null ? !1 : r[A] === t && (t !== void 0 || A in Object(r));
};
}
var re = tt(function(A) {
A = se(A);
var t = [];
return GA.test(A) && t.push(""), A.replace(DA, function(r, e, i, n) {
t.push(i ? n.replace(CA, "$1") : e || r);
}), t;
});
function QA(A) {
if (typeof A == "string" || et(A))
return A;
var t = A + "";
return t == "0" && 1 / A == -1 / 0 ? "-0" : t;
}
function fA(A) {
if (A != null) {
try {
return dt.call(A);
} catch {
}
try {
return A + "";
} catch {
}
}
return "";
}
function ee(A, t) {
return A && A.length ? Fr(A, Or(t)) : [];
}
function tt(A, t) {
if (typeof A != "function" || t && typeof t != "function")
throw new TypeError(g);
var r = function() {
var e = arguments, i = t ? t.apply(this, e) : e[0], n = r.cache;
if (n.has(i))
return n.get(i);
var d = A.apply(this, e);
return r.cache = n.set(i, d), d;
};
return r.cache = new (tt.Cache || eA)(), r;
}
tt.Cache = eA;
function wt(A, t) {
return A === t || A !== A && t !== t;
}
function xt(A) {
return ne(A) && tA.call(A, "callee") && (!nr.call(A, "callee") || hA.call(A) == C);
}
var dA = Array.isArray;
function yt(A) {
return A != null && rt(A.length) && !Pt(A);
}
function ne(A) {
return EA(A) && yt(A);
}
function Pt(A) {
var t = SA(A) ? hA.call(A) : "";
return t == E || t == k;
}
function rt(A) {
return typeof A == "number" && A > -1 && A % 1 == 0 && A <= y;
}
function SA(A) {
var t = typeof A;
return !!A && (t == "object" || t == "function");
}
function EA(A) {
return !!A && typeof A == "object";
}
function et(A) {
return typeof A == "symbol" || EA(A) && hA.call(A) == I;
}
var ae = ut ? kt(ut) : Hr;
function se(A) {
return A == null ? "" : zr(A);
}
function oe(A, t, r) {
var e = A == null ? void 0 : bt(A, t);
return e === void 0 ? r : e;
}
function ie(A, t) {
return A != null && _r(A, t, Ir);
}
function nt(A) {
return yt(A) ? Lr(A) : Tr(A);
}
function le(A) {
return A;
}
function ce() {
}
function ue(A) {
return IA(A) ? Rt(QA(A)) : Gr(A);
}
a.exports = ee;
}(XA, XA.exports)), XA.exports;
}
var we = Ve();
const xe = /* @__PURE__ */ Lt(we), Qt = cA(({ city: a, limit: c = 2 }) => {
const s = xe(a.complexes, "id"), g = s.filter((h) => !a.complexPreviews || a.complexPreviews.includes(h.id)).slice(0, c), l = s.length - g.length;
return /* @__PURE__ */ R(
"div",
{
className: "-mx-1 flex",
dir: "ltr",
children: [
g.map((h, p) => /* @__PURE__ */ u(
"div",
{
"data-complex-marker": "",
"data-complex-marker-id": h.id,
className: "border-clr-preview bg-clr-preview mx-1 h-16 w-16 shrink-0 rounded border-4 bg-contain bg-no-repeat",
style: {
backgroundImage: `url(${h.image})`
}
},
p
)),
!!l && /* @__PURE__ */ R("div", { className: "bg-clr-preview mx-1 flex h-16 w-16 shrink-0 items-center justify-center rounded text-2xl font-bold", children: [
"+",
l
] })
]
}
);
});
Qt.displayName = "ComplexesList";
const St = cA(
({ complex: a, t: c }) => /* @__PURE__ */ R(
"div",
{
dir: "ltr",
className: "mx-[-3px] flex",
children: [
a.image && /* @__PURE__ */ u(
"div",
{
id: "complexPreview",
className: "border-clr-preview bg-clr-preview mx-[3px] h-[70px] w-[70px] shrink-0 rounded border-4 bg-contain bg-no-repeat",
style: {
backgroundImage: `url('${a.image}')`
}
}
),
/* @__PURE__ */ u("div", { className: "t-medium text-clr-control-text mx-[3px] flex h-[70px] min-w-[90px] grow items-center justify-center text-center text-[12px] leading-[15px] whitespace-normal", children: /* @__PURE__ */ u("span", { children: c(a.title) }) })
]
}
)
);
St.displayName = "ComplexCardPreview";
const ye = "data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoEP/P5XxfEIm4ZYjAAAAAElFTkSuQmCC", Et = cA(
({ complex: a, pov: c, t: s }) => /* @__PURE__ */ u(
"div",
{
dir: "ltr",
className: "bg-clr-control w-[384px] rounded-3xl bg-cover bg-right-top bg-no-repeat p-7",
style: { backgroundImage: `url(${ye})` },
children: /* @__PURE__ */ R("div", { children: [
/* @__PURE__ */ u("div", { className: "text-th-marker mb-3", children: s(a.title).toUpperCase() }),
/* @__PURE__ */ u("div", { className: "mb-4 text-3xl font-medium", children: s(c.title) }),
/* @__PURE__ */ u("div", { children: s(c.description) })
] })
}
)
);
Et.displayName = "ComplexPovTooltip";
const Pe = 8, Xe = 16, De = 5, Ye = cA(
({
children: a,
activeBuildingId: c,
activePovId: s,
map: g,
gltfPlugin: l,
cityBuildings: h,
onBuildingClick: p,
onResetBuilding: L,
onPovClick: y,
onResetPov: C,
onCityClick: w,
minZoomCityMarker: m = Pe,
gltfMinStyleZoom: N = Xe,
shouldRemoveModelsOnUnmount: j = !1,
shouldRemovePovMarkers: E = !1,
onAllModelsLoaded: k,
markerOptions: O = {},
ComplexesListComponent: J = Qt,
ComplexCardPreviewComponent: B = St,
shouldAddComplexesList: _ = !0
}) => {
const { theme: P, t: X } = jt(), H = P === "dark", [I, $] = qA("city"), [o, Q] = qA(!1), T = PA(() => h.reduce(
(f, q) => f.concat(me(q.complexes.map((W) => W.buildings))),
[]
), [h]), AA = PA(() => h.reduce(
(f, q) => f.concat(q.complexes.map((W) => ({ ...W, cityId: q.id }))),
[]
), [h]), x = PA(() => AA.find((f) => f.id === c), [c, AA]), K = PA(() => {
var f;
return (f = x == null ? void 0 : x.pointsOfView) == null ? void 0 : f.find(
(q) => q.id === s
);
}, [x, s]), VA = (f) => H && f.isDark ? !0 : !H && !f.isDark;
return gA(() => {
const f = ge(({ isUser: q }) => {
const W = g.getStyleZoom();
if (W < m) {
I !== "city" && ($("city"), q && (L(), C == null || C()));
return;
}
if (W < N) {
I !== "buildings" && ($("buildings"), q && (L(), C == null || C()));
return;
}
if (I !== "model") {
$("model");
return;
}
}, De);
return g.on("zoom", f), () => {
g.off("zoom", f);
};
}, [I, m, N]), gA(() => {
const f = T.filter(
(q) => l.getModelStatus(q.modelId) === 0
);
return l.addModels(f).then(() => {
Q(!0), k == null || k();
}).catch((q) => {
console.log("[Immersive] Loading model error: ", q);
}), () => {
j && l.hideModels(T.map((q) => q.modelId));
};
}, [T, j]), gA(() => {
o && T.forEach((f) => {
VA(f) ? l.showModel(f.modelId) : l.hideModel(f.modelId);
});
}, [o, T, P]), gA(() => {
if (x) return;
const f = [], q = [];
if (I === "city")
return L(), C == null || C(), h.forEach((W) => {
const D = W.mapOptions;
if (!D || !D.center) return;
const G = new mapgl.HtmlMarker(g, {
html: TA(
/* @__PURE__ */ u(
KA,
{
...O,
tooltipPosition: W.tooltipPosition,
children: _ ? /* @__PURE__ */ u(J, { city: W }) : null
}
)
),
coordinates: D.center,
preventMapInteractions: !1
});
f.push(G);
const U = (GA) => {
const DA = GA.target;
if (!DA) return;
const YA = DA.closest(
"[data-complex-marker]"
);
if (YA) {
const CA = YA.dataset.complexMarkerId, MA = W.complexes.find(
(zA) => zA.id === CA
);
CA && MA && p(MA);
return;
}
w(W);
};
q.push(U), G.getContent().addEventListener("click", U);
}), () => {
f.forEach((W, D) => {
W.getContent().removeEventListener("click", q[D]), W.destroy();
});
};
}, [
I,
h,
x,
O,
_,
J
]), gA(() => {
if (x) return;
const f = [], q = [];
return (I === "buildings" || I === "model") && AA.forEach((W) => {
const D = {
t: X,
complex: W
}, G = new mapgl.HtmlMarker(g, {
coordinates: W.coordinates,
html: TA(
/* @__PURE__ */ u(
KA,
{
...O,
tooltipPosition: W.tooltipPosition,
children: /* @__PURE__ */ u(B, { ...D })
}
)
),
preventMapInteractions: !1
});
f.push(G);
const U = () => {
p(W);
};
q.push(U), G.getContent().addEventListener("click", U);
}), () => {
f.forEach((W, D) => {
W.getContent().removeEventListener("click", q[D]), W.destroy();
});
};
}, [
I,
AA,
x,
O,
B,
X
]), gA(() => {
if (!x || E) return;
const f = [], q = [], W = x.pointsOfView || [];
if (!K)
W.forEach((D) => {
const G = new mapgl.HtmlMarker(g, {
html: TA(
/* @__PURE__ */ u(
KA,
{
...O,
tooltipPosition: D.markerTooltipPos ?? "bottom",
children: /* @__PURE__ */ u("span", { className: "font-medium whitespace-nowrap", children: X(D.title) })
}
)
),
coordinates: [...D.lonLat, D.height ?? 0],
preventMapInteractions: !1
}), U = () => {
y == null || y(D);
};
G.getContent().addEventListener("click", U), q.push(U), f.push(G);
});
else if (K) {
const D = new mapgl.HtmlMarker(g, {
html: TA(
/* @__PURE__ */ u(It, { tooltipPosition: K.tooltipPos, children: /* @__PURE__ */ u(
Et,
{
t: X,
complex: x,
pov: K
}
) })
),
coordinates: [...K.lonLat, K.height ?? 0],
preventMapInteractions: !1
});
f.push(D);
}
return () => {
f.forEach((D, G) => {
D.getContent().removeEventListener("click", q[G]), D.destroy();
});
};
}, [
I,
K,
x,
E,
O,
X
]), a;
}
);
Ye.displayName = "ImmersiveScenario";
const Ce = cA(
({
complex: a,
className: c,
architectsLabel: s = "Architects",
yearLabel: g = "Year of completion",
style: l,
dir: h = "ltr"
}) => {
const { t: p } = jt();
return /* @__PURE__ */ u(
"article",
{
dir: h,
className: vA(
"bg-clr-control w-[410px] rounded-2xl border border-white/10 p-6",
c
),
style: l,
children: /* @__PURE__ */ R("div", { children: [
/* @__PURE__ */ u("h2", { className: "mb-4 text-3xl font-semibold", children: p(a.title) }),
a.description && /* @__PURE__ */ u("p", { children: p(a.description) }),
a.architects && /* @__PURE__ */ R("div", { className: "mt-6", children: [
/* @__PURE__ */ u("p", { className: "text-clr-control-sub-text font-semibold", children: p(s) }),
/* @__PURE__ */ u("p", { children: p(a.architects) })
] }),
a.year && /* @__PURE__ */ R("div", { className: "mt-6", children: [
/* @__PURE__ */ u("p", { className: "text-clr-control-sub-text font-semibold", children: p(g) }),
/* @__PURE__ */ u("p", { children: p(a.year) })
] })
] })
}
);
}
);
Ce.displayName = "ComplexCard";
const Zt = (a) => /* @__PURE__ */ Dt.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...a }, /* @__PURE__ */ Dt.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M14 7.1665L8 12.4998L14 17.8332", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" })), Me = cA(
({
initialValue: a,
pointsOfView: c,
onItemClick: s,
className: g,
style: l,
dir: h = "ltr"
}) => {
const [p, L] = qA(a), y = (c || []).map((m) => ({
value: m.id
}));
gA(() => {
L(a);
}, [a]);
const C = () => {
const m = y.findIndex((E) => E.value === p), N = m < y.length - 1 ? y[m + 1].value : y[0].value;
L(N);
const j = c == null ? void 0 : c.find((E) => E.id === N);
j && (s == null || s(j));
}, w = () => {
const m = y.findIndex((E) => E.value === p), N = m > 0 ? y[m - 1].value : y[y.length - 1].value;
L(N);
const j = c == null ? void 0 : c.find((E) => E.id === N);
j && (s == null || s(j));
};
return /* @__PURE__ */ R(
"div",
{
dir: h,
className: vA(
"bg-clr-control flex items-center rounded-[36px] p-3",
g
),
style: l,
children: [
/* @__PURE__ */ u(
"div",
{
className: "bg-clr-preview text-th-marker flex h-12 w-12 shrink-0 cursor-pointer items-center justify-center rounded-full",
onClick: w,
children: /* @__PURE__ */ u(Zt, {})
}
),
/* @__PURE__ */ u("div", { className: "mx-11 flex w-full items-center justify-center", children: y.map(({ value: m }) => /* @__PURE__ */ u(
"div",
{
className: vA(
"mx-4 h-5 w-5 cursor-pointer rounded-full",
p === m ? "bg-th-marker" : "bg-clr-preview"
),
onClick: () => {
const N = c == null ? void 0 : c.find(
(j) => j.id === m
);
L(m), N && (s == null || s(N));
}
},
m
)) }),
/* @__PURE__ */ u(
"div",
{
className: "bg-clr-preview text-th-marker flex h-12 w-12 shrink-0 rotate-180 cursor-pointer items-center justify-center rounded-full",
onClick: C,
children: /* @__PURE__ */ u(Zt, {})
}
)
]
}
);
}
);
Me.displayName = "PovPagination";
const Ee = ({
mapFlight: a,
map: c,
building: s,
actionBeforeFlight: g,
actionAfterFlight: l
}) => {
if (g == null || g(), s.flightScenario) {
a.runFlight(c, [
...s.flightScenario,
{
f: () => {
s.flightDontResetView ? l == null || l() : a.flyToOpts(
c,
s.mapOptions,
() => l == null ? void 0 : l()
);
}
}
]);
return;
}
a.runBuildingFlight(
c,
{
center: s.coordinates,
styleZoom: s.flightStyleZoom,
pitch: s.flightPitch,
rotationDuration: s.flightRotationDuration
},
() => {
a.flyToOpts(
c,
s.mapOptions,
() => l == null ? void 0 : l()
);
}
);
}, Ht = de(void 0), He = () => {
const a = pe(Ht);
if (!a)
throw new Error("useQuizContext must be used within a QuizProvider");
return a;
}, Oe = (a) => {
const { config: c, map: s, children: g } = a, [l, h] = qA(-1), [p, L] = qA({}), [y, C] = qA(!1), w = PA(() => c.questions, [c.questions]), m = WA(() => {
if (l >= 0 && l < w.length)
return w[l];
}, [l, w]), N = l === w.length - 1, j = l === 0, E = l >= 0, k = WA(() => {
const P = m();
if (P != null && P.onQuestionClose && s && P.onQuestionClose(s), N) {
C(!0);
return;
}
const X = l + 1;
h(X);
const H = w[X];
H != null && H.onQuestionOpen && s && H.onQuestionOpen(s);
}, [
l,
m,
N,
s,
w
]), O = WA(
(P) => {
const X = m();
X && (L((H) => ({
...H,
[X.id]: P
})), X.onQuestionAnswer && s && X.onQuestionAnswer(s, P));
},
[m, s]
), J = WA(() => {
const P = w.reduce((H, I) => p[I.id] === I.correctOption ? H + 1 : H, 0), X = w.length;
return { correct: P, total: X };
}, [p, w]), B = WA(() => {
h(-1), L({}), C(!1);
}, []), _ = WA(() => {
h(0);
const P = w[0];
P != null && P.onQuestionOpen && s && P.onQuestionOpen(s);
}, [s, w]);
return /* @__PURE__ */ u(
Ht.Provider,
{
value: {
currentQuestionIndex: l,
answers: p,
questions: w,
config: c,
goToNextQuestion: k,
answerQuestion: O,
getCurrentQuestion: m,
isLastQuestion: N,
isFirstQuestion: j,
getScore: J,
restart: B,
startQuiz: _,
isCompleted: y,
isStarted: E
},
children: g
}
);
};
export {
Ce as ComplexCard,
Ye as ImmersiveScenario,
Me as PovPagination,
Oe as QuizProvider,
Ee as flyOverImmersiveBuilding,
He as useQuizContext
};