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