UNPKG

urbi-exhibitions

Version:
1,349 lines 61.1 kB
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
};